def handle_udp_netis_backdoor(socket, data, srcpeername, dstport): tee_received_bin(data) if data == '\n': print("Netis backdoor scan received") socket.sendto(tee_sent_bin('\n\0\0\6\0\1\0\0\0\0\320\245Login:'******'AAAAAAAAnetcore\0'): print("Netis backdoor enable command received") socket.sendto(tee_sent_bin('AA\0\5ABAA\0\0\0\0Login successed!\r\n'), srcpeername) # sic elif data.startswith('AA\0\0AAAA?\0'): print("Netis backdoor version query received") socket.sendto(tee_sent_bin('AA\0\5ABAA\0\0\1\0IGD MPT Interface daemon 1.0\0'), srcpeername) elif data.startswith('AA\0\0AAAA$GetVersion\0'): print("Netis backdoor $GetVersion command received") socket.sendto(tee_sent_bin('AA\0\5ABAA\0\0\0\0{}'.format(VERSION_TEXT)), srcpeername) elif data.startswith('AA\0\0AAAA$Help\0'): print("Netis backdoor $Help command received") socket.sendto(tee_sent_bin('AA\0\5ABAA\0\0\1\0{}'.format(HELP_TEXT)), srcpeername) elif data.startswith('AA\0\0AAAA'): print("\nNetis backdoor execute command received:") command = tee_received_text(data[8:].strip()) print("") outstream = StringIO.StringIO() outstream.send = outstream.write # HACK process_commandline(outstream, command) output = tee_sent_text(outstream.getvalue()) print("\nAssembled reply packets:") marker = 'B' while len(output) > 0: curr_block = output[:1991] output = output[1991:] socket.sendto(tee_sent_bin('AA\0\4A{}AA{}'.format(marker, curr_block)), srcpeername) marker = chr(1 + ord(marker)) socket.sendto(tee_sent_bin('AA\0\5A{}AA\0\0\0\0'.format(marker)), srcpeername) else: print("Unknown Netis backdoor command")
def handle_udp_hexdump(socket, data, srcpeername, dstport): tee_received_bin(data)