• Aucun résultat trouvé

Lors d’un pentest, il n’y a aucune honte à rechercher une victoire facile. Un scan ciblé cherche des systèmes d’exploitation spécifiques ainsi que des services, des versions de programmes ou des

configurations qu’on sait exploitables, ce qui offre une porte d’entrée facile dans un réseau cible. Par exemple, il est commun de scanner un réseau cible à la recherche de la faille MS08-067, puisque c’est (encore) une faille extrêmement répandue qui vous donnera l’accès SYSTEM plus rapidement qu’en scannant le réseau entier à la recherche de vulnérabilités.

Scan de Server Message Block

Metasploit peut parcourir un réseau et essayer d’identifier les versions de Microsoft Windows en utilisant le module smb_version.

Note

Si vous n’êtes pas familiers avec le SMB (Server Message Block, un protocole de partage de fichiers), étudiez un peu plus les différents protocoles avant de continuer. Vous devrez comprendre le fonctionnement de base des ports afin d’apprendre à attaquer un système avec succès.

Nous exécutons le module, réglons les options, le RHOSTS et commençons le scan :

m sf > us e s ca nner/s mb/s mb_vers io n m sf au xiliary(sm b_version ) > s ho w o ptio ns

Modu le option s:

Nam e Cu rren t Settin g Requ ired Description

---- --- ---

RHOSTS yes Th e target address ran ge or CIDR iden tifier

THREADS 1 yes Th e n u m ber of con cu rren t th reads

m sf au xiliary(sm b_version ) > s et RHOSTS 192.168.1.155

RHOSTS => 192.168.1.155

m sf au xiliary(sm b_version ) > run

[*] 192.168.1.155 is ru n n in g Win dows XP Service Pack 2 (lan gu age: En glish )

(n am e:DOOKIE-FA154354) (dom ain :WORKGROUP) [*] Scan n ed 1 of 1 h osts (100% com plete)

[*] Au xiliary m odu le execu tion com pleted

Comme vous pouvez le voir en ❶, le scanner smb_version a précisé exactement le système

d’exploitation comme Windows XP Service Pack 2. Puisque nous scannons seulement un système, nous laissons THREADS à 1. Si nous devions scanner plusieurs systèmes, tel un sous-réseau de classe C, nous pourrions prendre en considération une augmentation de la valeur de THREADS en utilisant

l’option use THREADS nombre. Les résultats de ce scan seront stockés dans la base de données de

Metasploit pour une utilisation ultérieure et on pourra y accéder à l’aide de la commande db_hosts.

m sf au xiliary(sm b_version ) > db_ho s ts -c a ddres s ,o s _fla vo r

Hosts

=====

address os_flavor Svcs Vu ln s Workspace

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

---192.168.1.155 Win dows XP 3 0 defau lt

m sf au xiliary(sm b_version ) >

Nous avons découvert un système sous Windows XP sans avoir à faire un scan sur tout le réseau. Cela est un excellent moyen pour cibler rapidement des hôtes vulnérables sans pour autant se faire

remarquer.

À la recherche de serveurs Microsoft SQL mal configurés

Les serveurs Microsoft SQL (MS SQL) mal configurés peuvent souvent fournir une voie d’accès dans un réseau cible. En fait, beaucoup d’administrateurs système ne se rendent même pas compte qu’ils administrent des machines exécutant MS SQL puisque le service est préinstallé car requis par un certain logiciel commun (Microsoft Visual Studio, par exemple). Ces installations sont souvent inutilisées, non mises à jour voire n’ont jamais été configurées.

Quand MS SQL est installé, il écoute, par défaut, sur le port TCP 1433 ou sur un port TCP dynamique.

Dans ce dernier cas, interrogez le port UDP 1434 pour le découvrir. Bien évidemment, Metasploit dispose d’un module permettant de se servir de cette "caractéristique" : mssql_ping.

Puisque mssql_ping utilise le protocole UDP, il peut être lent si l’on scanne un sous-réseau entier à cause des problèmes dus aux timeouts. Tandis que sur un réseau local (LAN), paramétrer THREADS à 255 accélérera énormément le scan. Lorsque Metasploit trouve des serveurs MS SQL, il affiche tous les détails qu’il peut en extraire, incluant le port TCP, peut-être le plus important, sur lequel le serveur est en écoute.

Voici comment vous pourriez exécuter un scan mssql_ping incluant la liste et le réglage des options, les résultats et le déroulement du scan en lui-même.

m sf > us e s ca nner/ms s ql/ms s ql_ping m sf au xiliary(m ssql_pin g) > s ho w o ptio ns

Modu le option s:

Nam e Cu rren t Settin g Requ ired Description ---- --- --- ---

---PASSWORD n o Th e password for th e specified u sern am e RHOSTS yes Th e target address ran ge or CIDR iden tifier THREADS 1 yes Th e n u m ber of con cu rren t th reads USERNAME sa n o Th e u sern am e to au th en ticate as

WORKSPACE n o Th e n am e of th e workspace to report data in to

m sf au xiliary(m ssql_pin g) > s et RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24

m sf au xiliary(m ssql_pin g) > s et THREADS 255 THREADS => 255

m sf au xiliary(m ssql_pin g) > run

[*] SQL Server in form ation for 192.168.1.155:

[*] ServerNam e = V-XPSP2-BARE

[*] In stan ceNam e = SQLEXPRESS

[*] IsClu stered = No

[*] Version = 10.0.1600.22

[*] tcp = 1433

Comme vous pouvez le voir, non seulement le scanner localise un serveur MS SQL ❶, mais il

identifie aussi le nom de l’instance ❷, la version du serveur SQL ❸ ainsi que le numéro du port TCP

❹ sur lequel il écoute. Pensez au temps que vous économisez avec ce scan ciblé au lieu d’utiliser nmap pour scanner tous les ports de toutes les machines d’un sous-réseau dans la recherche du port TCP en question.

Scan de serveurs SSH

Si, pendant un scan, vous trouvez des machines exécutant )" \b SSH (Secure Shell), vous devriez déterminer la version de ce dernier sur la cible. SSH étant un protocole sécurisé, diverses

vulnérabilités ont été identifiées dans ses implémentations. Vous pourriez être chanceux et trouver une vieille machine qui n’a pas été mise à jour. Vous pouvez utiliser le module ssh_version du framework pour déterminer la version SSH du serveur cible.

m sf > us e s ca nner/s s h/s s h_vers io n m sf au xiliary(ssh _version ) > s et THREADS 50 THREADS => 50

m sf au xiliary(ssh _version ) > run

[*] 192.168.1.1:22, SSH server version : SSH-2.0-dropbear_0.52 [*] Scan n ed 044 of 256 h osts (017% com plete)

[*] 192.168.1.101:22, SSH server version : SSH-2.0-Open SSH_5.1p1 Debian -3u bu n tu 1 [*] Scan n ed 100 of 256 h osts (039% com plete)

[*] 192.168.1.153:22, SSH server version : SSH-2.0-Open SSH_4.3p2 Debian -8u bu n tu 1 [*] 192.168.1.185:22, SSH server version : SSH-2.0-Open SSH_4.3

Cela signifie que quelques serveurs fonctionnent à des niveaux de mise à jour différents. Cette

information peut être utile si, par exemple, nous voulons attaquer une version spécifique d’OpenSSH comme celle que nous avons trouvée lors du scan ssh_version.

Scan FTP

Le FTP est un protocole compliqué et peu sûr. Les serveurs FTP sont souvent la voie la plus facile dans un réseau cible et vous devriez toujours scanner et identifier tous les serveurs FTP fonctionnant sur votre cible.

Ensuite, nous scannons la cible XP à la recherche de services FTP en utilisant le module ftp_version du framework :

m sf > us e s ca nner/ftp/ftp_vers io n m sf au xiliary(ftp_version ) > s ho w o ptio ns

Modu le option s:

Nam e Cu rren t Settin g Requ ired Description

---- --- ---

FTPPASS m ozilla@exam ple.com n o Th e password for th e specified u sern am e

FTPUSER an on ym ou s n o Th e u sern am e to au th en ticate as

RHOSTS yes Th e target address ran ge or CIDR iden tifier

RPORT 21 yes Th e target port

THREADS 1 yes Th e n u m ber of con cu rren t th reads

WORKSPACE n o Th e n am e of th e workspace to report data in to

m sf au xiliary(ftp_version ) > s et RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24

m sf au xiliary(ftp_version ) > s et THREADS 255 THREADS => 255

m sf au xiliary(ftp_version ) > run

[*] 192.168.1.155:21 FTP Ban n er: Min ftpd ready

Le scanner identifie avec succès un serveur FTP ❶. Voyons maintenant si ce serveur permet des connexions anonymes utilisant le scanner/ftp/anonymous du framework.

m sf > us e a uxilia ry/s ca nner/ftp/a no nymo us m sf au xiliary(an on ym ou s) > s et RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24

m sf au xiliary(an on ym ou s) > s et THREADS 50 THREADS => 50

m sf au xiliary(an on ym ou s) > run

[*] Scan n ed 045 of 256 h osts (017% com plete)

[*] 192.168.1.155:21 An on ym ou s READ/WRITE (220 Min ftpd ready)

Le scanner signale en ❶ que l’accès anonyme est permis et que les utilisateurs anonymes ont les droits de lecture et d’écriture sur le serveur. Autrement dit, nous avons entièrement accès au système distant et à tous les fichiers auxquels le serveur FTP peut accéder.

Balayage de SNMP (Simple Network Management Protocol)

Le SNMP (Simple Network Management Protocol) est typique des dispositifs réseaux qui couvrent l’utilisation de la bande passante, les taux de collision ainsi que d’autres informations. Cependant, certains systèmes d’exploitation ont aussi des serveurs SNMP fournissant des informations,

notamment l’utilisation du processeur, la mémoire disponible et d’autres détails propres au système.

Les comodités configurées par administrateur système peuvent devenir une mine d’or pour le pentester puisque les serveurs SNMP offrent des informations considérables sur un système spécifique et peuvent même vous aider à compromettre un système distant. Si, par exemple, vous pouvez accéder à la communauté read/write d’un routeur Cisco, vous pouvez télécharger la

configuration entière du routeur, le modifier et le renvoyer à celui-ci.

Le framework Metasploit inclut un module auxiliaire appelé scanner/snmp/snmp_enum conçu spécifiquement pour des énumérations SNMP. Avant de commencer le scan, gardez à l’esprit que les communautés SNMP en lecture seule (RO) et en lecture/écriture (RW) joueront un rôle important dans le type

d’informations que vous pourrez extraire d’un dispositif donné. Sur des dispositifs Windows configurés avec SNMP, vous pouvez souvent utiliser les communautés RO ou RW pour extraire le niveau du patch, les services en cours d’exécution, les noms d’utilisateurs, l’uptime, les routes et d’autres informations qui peuvent faciliter les choses durant un pentest. Les communautés SNMP sont essentiellement des mots de passe utilisés pour demander des informations ou pour écrire la

configuration d’un appareil.

Après avoir deviné les identifiants, le SNMP (selon la version) permet tout : depuis une révélation excessive des informations jusqu’à la compromission d’un système entier. SNMPv1 et v2 sont des protocoles imparfaits. SNMPv3, qui fusionne le chiffrement et de meilleurs mécanismes de contrôle, est significativement plus sécurisé. Pour obtenir l’accès à un switch, vous devrez d’abord tenter de trouver ses communautés. Le module scanner/snmp/snmp_login du framework essaiera une liste de mots contre une ou plusieurs adresses IPs.

m sf > us e us e s ca nner/s nmp/s nmp_lo g in

m sf au xiliary(sn m p_login ) > s et RHOSTS 192.168.1.0/24 RHOSTS => 192.168.1.0/24

m sf au xiliary(sn m p_login ) > s et THREADS 50 THREADS => 50

m sf au xiliary(sn m p_login ) > run

[*] >> progress (192.168.1.0-192.168.1.255) 0/30208...

[*] 192.168.1.2 ’pu blic’ ’GSM7224 L2 Man aged Gigabit Switch ’

[*]

[*]

m sf au xiliary(sn m p_login ) >

Une rapide recherche Google sur GSM7224 montre que le scanner a trouvé les identifiants publics ❶ et privés ❷ d’un switch Netgear. Croyez-le ou non, ce résultat n’a pas été mis en place pour ce livre. Il s’agit des réglages d’usine par défaut pour ce switch.

Vous rencontrerez souvent des situations époustouflantes comme celle-ci pendant votre carrière de

pentester, puisque beaucoup d’administrateurs utilisent des appareils dans un réseau avec leurs

réglages par défaut. La situation est encore plus effrayante quand vous pensez que ces appareils sont accessibles depuis Internet dans de grandes sociétés.