Beispiel #1
0
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")
Beispiel #2
0
def handle_udp_hexdump(socket, data, srcpeername, dstport):
	tee_received_bin(data)