Windows Exploiting (Basic Guide - OSCP lvl)
Beginnen Sie mit der Installation des SLMail-Dienstes
SLMail-Dienst neu starten
Jedes Mal, wenn Sie den SLMail-Dienst neu starten müssen, können Sie dies über die Windows-Konsole tun:
Sehr einfaches Python-Exploit-Template
Ändern der Schriftart in Immunity Debugger
Gehe zu Options >> Appearance >> Fonts >> Ändern (Consolas, Fett, 9) >> OK
Prozess an Immunity Debugger anhängen:
Datei --> Anhängen
Und drücke die START-Taste
Exploit senden und überprüfen, ob EIP betroffen ist:
Jedes Mal, wenn du den Dienst unterbrichst, solltest du ihn neu starten, wie am Anfang dieser Seite angegeben.
Muster erstellen, um das EIP zu ändern
Das Muster sollte so groß sein wie der Puffer, den du zuvor verwendet hast, um den Dienst zu unterbrechen.
Ändern Sie den Puffer des Exploits und setzen Sie das Muster, und starten Sie den Exploit.
Ein neuer Absturz sollte auftreten, jedoch mit einer anderen EIP-Adresse:
Überprüfen Sie, ob die Adresse in Ihrem Muster enthalten war:
Sieht so aus, als ob wir das EIP im Offset 2606 des Puffers ändern können.
Überprüfen Sie dies, indem Sie den Puffer des Exploits ändern:
Mit diesem Puffer sollte der abgestürzte EIP auf 42424242 ("BBBB") zeigen.
Sieht so aus, als ob es funktioniert.
Überprüfen Sie den Shellcode-Speicherplatz im Stack
600B sollten für jeden leistungsstarken Shellcode ausreichen.
Lassen Sie uns den Puffer ändern:
Starte das neue Exploit und überprüfe den EBP und die Länge des nützlichen Shellcodes
Du kannst sehen, dass wenn die Schwachstelle erreicht wird, der EBP auf den Shellcode zeigt und dass wir viel Platz haben, um hier einen Shellcode zu platzieren.
In diesem Fall haben wir von 0x0209A128 bis 0x0209A2D6 = 430B. Genug.
Überprüfe auf ungültige Zeichen
Ändere erneut den Puffer:
Die badchars beginnen bei 0x01, weil 0x00 fast immer schlecht ist.
Führen Sie den Exploit wiederholt mit diesem neuen Puffer aus, indem Sie die Zeichen löschen, die als nutzlos erkannt wurden:.
Zum Beispiel:
In diesem Fall können Sie sehen, dass Sie das Zeichen 0x0A nicht verwenden sollten (nichts wird im Speicher gespeichert, da das Zeichen 0x09).
In diesem Fall können Sie sehen, dass das Zeichen 0x0D vermieden wird:
Finden Sie eine JMP ESP als Rücksprungadresse
Verwendung:
Du wirst die Speicherkarten auflisten. Suche nach einer DLL, die folgende Eigenschaften hat:
Rebase: False
SafeSEH: False
ASLR: False
NXCompat: False
OS Dll: True
Nun solltest du innerhalb dieses Speichers einige JMP ESP-Bytes finden. Führe dazu aus:
Dann, wenn eine Adresse gefunden wird, wählen Sie eine aus, die keine badchar enthält:
In diesem Fall, zum Beispiel: _0x5f4a358f_
Erstellen von Shellcode
Wenn der Exploit nicht funktioniert, obwohl er es sollte (Sie können mit ImDebg sehen, dass der Shellcode erreicht wird), versuchen Sie, andere Shellcodes zu erstellen (msfvenom erstellt verschiedene Shellcodes für dieselben Parameter).
Fügen Sie einige NOPS am Anfang des Shellcodes hinzu und verwenden Sie ihn und die Rücksprungadresse, um zu JMP ESP zu springen, und beenden Sie den Exploit:
Es gibt Shellcodes, die sich selbst überschreiben, daher ist es wichtig, immer einige NOPs vor dem Shellcode hinzuzufügen.
Verbesserung des Shellcodes
Fügen Sie diese Parameter hinzu:
Last updated