IMPORTANT: Per accedir als fitxer de subversion: http://acacha.org/svn (sense password). Poc a poc s'aniran migrant els enllaços. Encara però funciona el subversion de la farga però no se sap fins quan... (usuari: prova i la paraula de pas 123456)

Alert.png Aquesta wiki forma part dels materials d'un curs
Curs: DissenyXarxesLinux, LinuxAdministracioAvancada
Fitxers: Protocols_de_xarxes_UNIX.pdf
Repositori SVN: http://anonymous@svn.projectes.lafarga.cat/svn/iceupc/DissenyXarxaLocalLinux, http://anonymous@svn.projectes.lafarga.cat/svn/iceupc/LinuxAdministracioAvan%c3%a7ada
Usuari: anonymous
Paraula de pas: sense paraula de pas
Autors: Sergi Tur Badenas

Nmap (“Network Mapper”) és un escaner de xarxes que serveix per explorar i auditar la seguretat de les xarxes.

Ús

Un exemple de nmap:

$ sudo nmap localhost

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 17:41 CET
Interesting ports on casa-linux (127.0.0.1):
Not shown: 1667 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
631/tcp  open  ipp
706/tcp  open  silc
2049/tcp open  nfs
3306/tcp open  mysql
5432/tcp open  postgres 

Nmap finished: 1 IP address (1 host up) scanned in 0.103 seconds

Les utilitats de nmap són moltes. Algunes idees:

  • Conèixer els ports que estan oberts en un ordinador.
  • Saber si una màquina està utilitzant un firewall o no.
  • Conèixer la MAC d'una o múltiples màquines.
  • Conèixer el fabricant de la targeta de xarxa d'un ordinador.
  • Identificar màquines dins d'una xarxa.
  • Identificar el sistema operatiu d'una màquina de la xarxa.

Podem encara obtenir més informació amb el paràmetre -A

sudo nmap -A localhost

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 17:49 CET
Interesting ports on casa-linux (127.0.0.1):
Not shown: 1667 closed ports
PORT     STATE SERVICE     VERSION
22/tcp   open  ssh         OpenSSH 4.3p2 Debian-5ubuntu1 (protocol 2.0)
25/tcp   open  smtp        Postfix smtpd
80/tcp   open  http        Apache httpd 2.0.55 ((Ubuntu) PHP/5.1.6)
111/tcp  open  rpcbind      2 (rpc #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X (workgroup: MSHOME)
389/tcp  open  ldap        OpenLDAP 2.2.X
445/tcp  open  netbios-ssn Samba smbd 3.X (workgroup: MSHOME)
631/tcp  open  ipp         CUPS 1.2
706/tcp  open  mountd       1-3 (rpc #100005)
2049/tcp open  nfs          2-4 (rpc #100003)
3306/tcp open  mysql       MySQL 5.0.24a-Debian_9-log
5432/tcp open  postgresql  PostgreSQL DB
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:

Service Info: Host:  casa-linux
Nmap finished: 1 IP address (1 host up) scanned in 20.824 seconds

Com veieu podem obtenir el nom del host, les versions dels programes que s'estan executant en cada port, el sistema operatiu de la màquina, etc. Ho podem provar amb una màquina més famosa:

$ sudo nmap -A www.google.es

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 17:56 CET
Warning: Hostname www.google.es resolves to 4 IPs. Using 216.239.59.147.
Interesting ports on 216.239.59.147:
Not shown: 1675 filtered ports
PORT    STATE  SERVICE  VERSION
80/tcp  open   http     Google httpd 2.1 (GWS)
113/tcp closed auth
179/tcp closed bgp
443/tcp open   ssl/http Google httpd 1.3 (GFE)
No exact OS matches for host (If you know what OS is running on it, see http://www.insecure.org/cgi-bin/nmap-submit.cgi).
TCP/IP fingerprint:
...................................

Service Info: OS: Linux 

Nmap finished: 1 IP address (1 host up) scanned in 59.597 seconds

Algunes màquines es poden resistir més a ser escanejades (firewalls i altres proteccions). Nmap té paràmetres que poden "eludir" aquestes proteccions:

$ sudo nmap www.la-moncloa.es

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 18:16 CET
Note: Host seems down. If it is really up, but blocking our ping probes, try -P0
Nmap finished: 1 IP address (0 hosts up) scanned in 2.154 seconds
$ sudo nmap -P0 www.la-moncloa.es
Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 18:17 CET
Interesting ports on 217.140.16.48:
Not shown: 1678 filtered ports
PORT   STATE SERVICE
80/tcp open  http

Nmap finished: 1 IP address (1 host up) scanned in 87.270 seconds

Nmap permet escanejar subxarxes senceres o subrangs:

$sudo nmap 192.168.1.1/24

Starting Nmap 4.10 ( http://www.insecure.org/nmap/ ) at 2006-12-28 17:35 CET
Interesting ports on 192.168.1.1:
Not shown: 1675 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
23/tcp open  telnet
80/tcp open  http
MAC Address: 00:30:DA:89:FC:8A (Comtrend CO.)

Interesting ports on 192.168.1.33:
Not shown: 1670 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
389/tcp  open  ldap
445/tcp  open  microsoft-ds
706/tcp  open  silc
2049/tcp open  nfs

Nmap finished: 256 IP addresses (2 hosts up) scanned in 6.615 seconds

L'últim exemple és la típica sortida resultant d'executar nmap en una xarxa casera de classe C amb un sol PC connectat i un router que dóna accés a Internet.

Si la xarxa és molt gran, pot ser interessant guardar el resultat de nmap a un fitxer utilitzant una redirecció

$ sudo nmap 192.168.1.1/24 > xarxa.txt

NOTA: Executar nmap amb permisos de superusuari o sense permisos pot modificar els resultats. Per exemple, per obtenir les adreces MAC només es pot amb permisos de superusuari.

  • Paquet: nmap
  • Path: /usr/bin/nmap (podeu trobar el camí de la comanda executant which nmap)
  • Manual: man nmap

Una alternativa a nmap és [[Paketto_Keiretsu#Scanrand Scanrand] de Paketto Keiretsu.

Exemples

Detecció del sistema operatiu (OS Detection)

Es fa amb l'opció -O:

$ nmap -O -v scanme.nmap.org

nmap UDP

Per fer un escaner de ports UDP:

$ sudo nmap -sU localhost -p 53


Escanejar tots els ports

$ sudo nmap -p- www.prova.com

Obtenir les adreces IP que tenen cert servei obert

$ nmap -sP 192.168.1.1/24 |grep 192 |awk {'print $2'} > ips.txt  //amb vermell es el rang de ips.
$ cssh `cat ips.txt`

Vegeu també

Enllaços externs