Piratage éthique : identification des services avec nmap

Table des matières

Dans le post précédent de ethical hacking, nous expliquons brièvement diverses options pour obtenir une énumération des adresses IP et des sous-domaines lors de l’exécution d’un processus de piratage éthique. Si vous avez aimé que « c’est très sûr car qui va savoir que ce sous-domaine existe » (que même si vous ne pouvez pas le croire, c’est plus courant qu’il n’y paraît), ne manquez pas comment le « qui va savoir que je mets ce service dans ce port avec un numéro si étrange »

Bref, dans ce post nous allons essayer de voir comment il est possible de faire un inventaire des ports ouverts dans une IP ou une plage d’IPS, et même d’identifier la technologie sous un port ouvert, quand c’est possible. Fondamentalement, ce post va se concentrer sur l’utilisation d’un outil fantastique et essentiel, nmap. Bien qu’il s’agisse d’un outil généralement utilisé sous Linux (et bien sûr inclus dans la suite de référence que j’utilise dans ces articles, Kali), des compilations pour d’autres systèmes d’exploitation peuvent déjà être trouvées.

Avant d’aller au travail, nous tenons à avertir que nmap est un outil complexe et complet, avec une énorme quantité d’options, de paramètres, etc.; Cet article ne se veut pas un manuel d’utilisation de l’outil mais encore une fois une introduction à celui-ci pour comprendre l’identification des services comme une phase de piratage éthique préalable à la détection des vulnérabilités. Pour en savoir plus sur l’outil, nous vous recommandons de lire leur manuel.

L’outil Open Source nmap nous permet d’effectuer des analyses de réseaux et de ports, pouvant analyser une seule destination, une plage, une liste d’adresses IP Based Basée sur des requêtes TCP, UDP, ICMP, SCTP, etc. et intègre diverses techniques de numérisation. Nous recommandons en général d’actualiser certaines connaissances sur les protocoles de transport, par exemple en rappelant comment l’établissement d’une connexion TCP fonctionne avec la négociation en trois étapes: tout d’abord, appel de type SYN du client vers un port, PREMIÈRE réponse si le port est fermé ou SYN-ACK s’il est ouvert, et l’ACK du client vers le serveur pour terminer le processus. Nmap s’appuiera sur ces types de messages pour déterminer si un port est en écoute ou non à la destination. Parfois, cela ne peut pas être utilisé ou est détecté par le serveur distant, et il existe d’autres alternatives pour l’analyse.

Syntaxe générale

nmap { }

Notre première analyse

Nous pouvons exécuter la commande suivante:

nmap 45.33.49.119

Nous ne mettons aucun type de sondage, utilisez donc le sondage par défaut, TCP SYN. nmap envoie un SYN et suppose que le port est ouvert s’il reçoit un SYN ACN. Il n’y a pas non plus de paramètre supplémentaire d’options, et en tant que destination, il y a une seule adresse IP. Cette commande nous donnera un résultat similaire à ce qui suit:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-10-01 18:12 CESTNmap scan report for ack.nmap.org (45.33.49.119)Host is up (0.19s latency).Not shown: 993 filtered portsPORT STATE SERVICE22/tcp open ssh25/tcp open smtp70/tcp closed gopher80/tcp open http113/tcp closed ident443/tcp open https31337/tcp closed EliteNmap done: 1 IP address (1 host up) scanned in 10.86 seconds

Retour en quelques secondes d’une liste de ports ouverts sur cette adresse IP, y compris un SSH, un serveur de messagerie SMTP, un serveur Web et un éventuel orifice arrière (https://www.speedguide.net/port.php?port=31337).

Dans de nombreux cas, il s’agit simplement d’un premier point d’analyse bien que, par exemple, le logiciel derrière un serveur FTP, SSH, etc., est entièrement mis à jour et il n’y a pas de vulnérabilités connues. Vous pouvez, par exemple, lancer une attaque par force brute avec un dictionnaire sur le SSH ou le FTP en essayant d’y accéder (il existe un grand nombre de serveurs de ce type avec des informations d’identification par défaut ou non sécurisées).

Il existe des outils automatiques (bots) qui analysent essentiellement en continu de larges plages d’adresses IP à la recherche de ports ouverts reconnaissables, par exemple une base de données (MongoDB, MySQL, PostgreSQL, etc.), et lorsqu’ils détectent un port ouvert, ils tentent automatiquement une connexion avec des informations d’identification par défaut. Par exemple, dans le cas d’installations LAMP/WAMP typiques, un accès root/au port MySQL. Et fondamentalement, un grand nombre de bases de données ont été piratées sans intervention humaine préalable. C’est viable même si nous l’avons ouvert dans un autre port, car il est possible d’identifier dans de nombreux cas que ce qui est dans le port 5555 « pour induire en erreur », pour dire quelque chose, est un MySQL à travers l’empreinte digitale du service, comme nous le verrons plus loin.

En bref, il est très dangereux de laisser des identifiants par défaut sur des serveurs web, routeurs, FTPs, SSHs, bases de données because car personne n’a besoin d’avoir une manie, un bot le fera.

 Escanear ips avec nmap

Un premier paramètre

Si nous voulons avoir des informations sur la façon dont nmap a obtenu ces informations, nous pouvons augmenter les traces avec le paramètre -v (verbeux) ou -vv, où nous pouvons voir que nmap a émis des commandes SYN et dans certains cas reçu RESET (port fermé), dans d’autres SYN-ACK (port ouvert) et dans d’autres aucune réponse (« filtrée »), ce qui peut nous faire comprendre qu’un pare-feu arrête notre requête:

PORT STATE SERVICE REASON22/tcp open ssh syn-ack ttl 5325/tcp open smtp syn-ack ttl 5370/tcp closed gopher reset ttl 5280/tcp open http syn-ack ttl 53113/tcp closed ident reset ttl 52443/tcp open https syn-ack ttl 5331337/tcp closed Elite reset ttl 53

Augmenter la plage d’adresses IP à analyser

nmap 192.168.10.0/24 (subred completa)nmap 192.168.10.1-20 (20 IPs)nmap 192.168.10.*nmap 192.168.10.1 192.168.10.2 192.168.10.3

Ou par exemple, imaginez que nous avons accumulé des adresses IP à partir de notre énumération initiale, et que nous avons un fichier avec les différentes adresses IP séparées par des onglets ou des sauts de ligne (une adresse IP ou une plage par ligne). Nous pouvons charger le fichier avec le paramètre -IL (liste d’entrées) et ainsi scanner l’ensemble de l’inventaire IP. Il permet également, par exemple, d’exclure certaines adresses IP spécifiques avec –exclude ou –excludefile.

Définition des ports à analyser

Nous pouvons définir manuellement les ports que nous voulons analyser. Par exemple, si nous recherchons des serveurs Web sur les ports 80, 443 et 8080 dans un sous-réseau, nous pourrions le faire avec le paramètre -p:

nmap -p 80,443,8080 192.168.10.0/24

Nous pouvons également demander à nmap d’analyser les « N » (entiers) ports les plus courants ; Par exemple, d’analyser les 25 ports les plus courants dans une plage d’adresses IP:

nmap --top-ports 25 192.168.10.0/24

Recevoir une réponse comme celle-ci:

PORT STATE SERVICE21/tcp closed ftp22/tcp open ssh23/tcp closed telnet25/tcp closed smtp53/tcp open domain80/tcp open http110/tcp closed pop3111/tcp open rpcbind135/tcp closed msrpc139/tcp open netbios-ssn143/tcp closed imap199/tcp closed smux443/tcp closed https445/tcp open microsoft-ds587/tcp closed submission993/tcp closed imaps995/tcp closed pop3s1025/tcp closed NFS-or-IIS1720/tcp closed h323q9311723/tcp closed pptp3306/tcp closed mysql3389/tcp closed ms-wbt-server5900/tcp open vnc8080/tcp closed http-proxy8888/tcp closed sun-answerbook

Nous pouvons demander que tous les ports TCP, UDP et SCTP (plus lents) avec l’identifiant -p- soient analysés:

nmap -p- 192.168.10.0/24

Identification des systèmes d’exploitation et des services

Comme nous le voyons, nmap nous permet de détecter les ports qui écoutent sur une IP ou une plage. Plus tard, nous verrons également comment d’autres techniques d’enquête peuvent être définies. De plus, nmap nous permet d’essayer d’identifier quelle technologie (produit, version, etc.) est derrière un port ouvert, ou même le système d’exploitation installé sur un serveur, avec les paramètres -O et -sV. Cette détection est basée sur la « signature » (empreinte digitale) des réponses que le service donne à certains appels.

nmap -O -sV 192.168.10.5
PORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 6.7p1 Raspbian 5+deb8u3 (protocol 2.0)53/tcp open domain ISC BIND 9.9.5 (Raspbian Linux 8.0 (Jessie based))80/tcp open http Apache httpd 2.4.10 ((Raspbian))111/tcp open rpcbind 2-4 (RPC #100000)139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)4567/tcp open http Jetty 9.4.8.v201711215900/tcp open vnc RealVNC Enterprise 5.3 or later (protocol 5.0)MAC Address: B8:27:EB:CD:FE:89 (Raspberry Pi Foundation)Device type: general purposeRunning: Linux 3.X|4.XOS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4OS details: Linux 3.2 - 4.9Network Distance: 1 hopService Info: Host: RASPBERRYPI; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Dans ce cas, nous savons non seulement que cette machine a certains ports ouverts. Il nous indique également qu’il s’agit d’un Raspberry exécutant Raspbian (avec lequel, par exemple, nous pourrions faire un test de force brute avec un utilisateur « pi », qui est l’utilisateur par défaut), et les versions des différents ports qui écoutent, afin que ces informations puissent être utilisées pour exploiter des vulnérabilités sur des versions non corrigées, etc.

Utilisation de plus de techniques d’interrogation

Par défaut, nmap utilise SYN comme technique d’interrogation. C’est une technique rapide et peu intrusive / détectable, mais parfois, elle prend en charge un total de 12 techniques différentes que nous pouvons définir comme paramètres, comme nous pouvons le voir dans le manuel d’utilisation de l’outil.

Par exemple, si nous voulons effectuer une analyse basée sur des appels UDP, nous pouvons effectuer un appel du type:

nmap -sU 192.168.10.5

Recherche de vulnérabilités avec nmap

Bien qu’il existe des outils plus « confortables » et spécifiques pour la recherche de vulnérabilités, tels que Nessus, ou des suites telles que Metasploit qui consolident divers outils, nmap nous permet également d’effectuer une analyse de vulnérabilités.

Pour ce faire, il utilise une série de scripts Lua qui se trouvent dans un chemin de notre machine (dans le cas de Kali, dans /usr/share/nmap/scripts/) et qui peuvent être invoqués avec –script ou son équivalent -sC.Les scripts

peuvent appartenir à une ou plusieurs catégories, nous pouvons donc demander à nmap d’évaluer, par exemple, tous les scripts d’une catégorie par rapport à un hôte. Il existe des catégories particulièrement intéressantes telles que « vuln » (scripts dédiés à la détection de vulnérabilités à la destination), « exploit », etc.

Par exemple, si nous voulons analyser les scripts de catégorie de vulnérabilité par rapport à un hôte:

nmap --script vuln scanme.nmap.org
PORT STATE SERVICE22/tcp open ssh80/tcp open http| http-csrf: | Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=scanme.nmap.org| Found the following possible CSRF vulnerabilities: | | Path: http://scanme.nmap.org:80/| Form id: cse-search-box-sidebar|_ Form action: https://nmap.org/search.html|http-dombased-xss: Couldn't find any DOM based XSS. | http-enum: | /images/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)' | /shared/: Potentially interesting directory w/ listing on 'apache/2.4.7 (ubuntu)'| http-slowloris-check: | VULNERABLE:| Slowloris DOS attack| State: LIKELY VULNERABLE| IDs: CVE:CVE-2007-6750| Slowloris tries to keep many connections to the target web server open and hold them open as long as possible. It accomplishes this by opening connections to the target web server and sending a partial request. By doing so, it starves the http server's resources causing Denial Of Service.| Disclosure date: 2009-09-17| References:| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750|_ http://ha.ckers.org/slowloris/|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.9929/tcp open nping-echo31337/tcp open Elite

Comme nous pouvons le voir, le script a détecté une vulnérabilité potentielle basée sur l’attaque par déni de service Slowloris. Si nous analysons les scripts qui se trouvent dans la route mentionnée ci-dessus, nous voyons qu’il y en a précisément un qui exploite cette vulnérabilité, appelé http-slowloris. Si nous voulons plus d’informations sur le script, nous pouvons lancer la commande suivante:

nmap --script-help http-slowloris

Expliquant comment fonctionne le script, comment le lancer (il est également possible de le faire avec le nmap lui-même avec –script et –script-args), etc. Nous pouvons également obtenir par exemple une description de tous les scripts qui recherchent des vulnérabilités:

nmap --script-help vuln

Nous pouvons également par exemple lancer tous les scripts d’un certain type. Par exemple, si nous voulons analyser les vulnérabilités via le protocole SMB sur un hôte donné:

nmap --script smb-* 192.168.10.5

Nous pouvons également, par exemple, évaluer une vulnérabilité sur l’ensemble de notre réseau, en choisissant un script spécifique par rapport à une plage. Le paramètre -script

nmap --script-help vuln
nmap --script

En bref, nmap inclut même des options intéressantes pour évaluer les vulnérabilités et même lancer des exploits, bien qu’il existe d’autres outils couramment utilisés à cette fin.

 Empleada contectándose a la VPN para poder teletrabajar

Autres options intéressantes

Comme nous l’avons commenté, nmap a de nombreuses options et il est impossible d’essayer de couvrir même un petit pourcentage dans un message. En fait, il existe un livre officiel nmap de près de 500 pages… Mais en tout cas nous essayons de commenter ici certains qui semblent intéressants.

Comme nous l’avons commenté, nmap a de nombreuses options et il est impossible d’essayer de couvrir même un petit pourcentage dans un post. En fait, il existe un livre officiel nmap de près de 500 pages… Mais en tout cas nous essayons de commenter ici certains qui semblent intéressants.

  • L’outil vous permet de générer le résultat de l’analyse dans un fichier de sortie traitable, par exemple au format XML, avec -oX ou -oN.
  • Lorsque nous analysons de larges plages d’adresses IP, nous pouvons désactiver la tentative de résolution inverse DNS avec le paramètre -n.
  • Lors de l’exécution d’une commande, nous pouvons augmenter le niveau d’information affiché sur la console (verbosité) en appuyant sur la touche « V ».
  • Si nous avons un pare-feu qui nous coupe, nous pouvons essayer -Pn.

En bref, nous avons essayé de développer une « brève » introduction à nmap en tant qu’outil d’identification des ports et services ouverts sur un hôte ou une plage d’adresses IP. Dans les articles suivants, nous verrons d’autres moyens de détecter les vulnérabilités.

Tout est prêt?

Il est temps de gérer les documents plus efficacement

Leave a Reply

Votre adresse e-mail ne sera pas publiée.