Básicos 17: Penetration testing (+Nmap Linux) (parte. III)


Básicos 17, +Nmap Linux (parte. III), BLOG - 2

Básicos 17, +Nmap Linux (parte. III), BLOG - 4

Básicos 17, +Nmap Linux (parte. III), BLOG - 3

Nota 1; Más "información" sobre "Nmap", aparte de la escrita en el artículo "Básicos 15". Sólo para Linux.

Básicos 17, +Nmap Linux (parte. III), BLOG - 5

Captura: Breve descripción }:D
Captura: Breve descripción }:D
Nota 2; Para los que no os guste trabajar con la "línea de comandos" (consola), podéis utilizar "Zenmap" (Nmap con GUI)... :)

Básicos 17, +Nmap Linux (parte. III), BLOG - 7


Básicos 17, +Nmap Linux (parte. III), BLOG - 8

Básicos 17, +Nmap Linux (parte. III), BLOG - 9

-) # yum install nmap

Básicos 17, +Nmap Linux (parte. III), BLOG - 10

-) # apt-get install nmap


Básicos 17, +Nmap Linux (parte. III), BLOG - 11

Nota 3; Para "Windows", os podéis descargar los "binarios" del sitio web oficial de "Nmap" (download), o pinchando en el logo de "open source".. };]

Básicos 17, +Nmap Linux (parte. III), BLOG - 12

Básicos 17, +Nmap Linux (parte. III), BLOG - 13

Básicos 17, +Nmap Linux (parte. III), BLOG - 14

Una vez hecha la presentación del comando y el modo de llevara a cabo su instalación, vamos “ipso facto” con los ejemplos que nos van a mostrar algunas de sus capacidades y a confirmar su facilidad de uso, potencia y flexibilidad. Lo primero que debemos hacer es echar un vistazo a las “opciones generales” de uso, para ello lanzamos el comando sin parámetros;

# nmap
Nmap 6.40 ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL : Input from list of hosts/networks
  -iR : Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile : Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver

[...]

Básicos 17, +Nmap Linux (parte. III), BLOG - 15

No existe nada más básico para comenzar que “saber“, que podemos elegir entre dos opciones:

-) Escanear un únicohost” en busca de información sobre él mismo (servicios abiertos, puertos de escucha, sistema operativo…).

-) Una red completa.

Si queremos escanear una red podemos especificar la máscara en formato CIDR, rango concreto de “IPs” (10.0.0255.1254)…

El modo más básico de escanear un “host” es indicar su “IP” o “hostname” como parámetro a “Nmap“;

# nmap 192.168.1.100

Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-26 18:12 CEST
Nmap scan report for centos7 (192.168.1.100)
Host is up (0.000023s latency).
Not shown: 999 closed ports
PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 2.56 seconds

Como podéis observar, este escaneo sencillo nos muestra el sistema operativo del “host“, los puertos abiertos/cerrados/filtrados y los servicios asociados. Esto mismo lo podríamos hacer para un segmento de red completo y ejecutaría el escaneo en todas las máquinas de la red;

# nmap 192.168.1.0/24

Si queremos excluir algún “host” de la red, los especificamos con el parámetro “–exclude” seguido de los “hosts” separados por comas;

# nmap 192.168.1.0/24 --exclude 192.168.1.1,192.168.1.100

Podemos leer los “hosts” a incluir y excluir en el escaneo directamente de una lista en archivo de texto.

Básicos 17, +Nmap Linux (parte. III), BLOG - 16

# nmap -iL archivo_de_entrada

Básicos 17, +Nmap Linux (parte. III), BLOG - 17

# nmap --excludefile archivo_de_entrada

Básicos 17, +Nmap Linux (parte. III), BLOG - 18

Con los anteriores ejemplos, además de buscar “hosts” en una red también – se escaneaban todos los puertos y servicios de cada “host” -. Esto conlleva bastante tiempo, así que si lo único que queremos hacer es “rastrear rápidamente la red” en busca de los “hosts” que están “online” tenemos los – 10.111.1.114ejemplos siguientes;

Básicos 17, +Nmap Linux (parte. III), BLOG - 19

# nmap -sL 192.168.1.0/24

Básicos 17, +Nmap Linux (parte. III), BLOG - 20

# nmap -sn 192.168.1.0/24

Básicos 17, +Nmap Linux (parte. III), BLOG - 21

# nmap -sP 192.168.1.0/24

Básicos 17, +Nmap Linux (parte. III), BLOG - 22

Cuando ejecutamos el primer comando se escaneaban los puertos de cada “host” que se consultaba. Concretamente “sin parámetros” se escanean “1000 puertos TCP“. El estado de los puertos se divide en los siguientes, y así es como nos lo mostrará en la salida del comando;

-) open, closed, filtered, unfiltered, open|filtered, y closed|filtered.

Básicamente, puerto abierto, cerrado, filtrado, no filtrado, abierto|filtrado y cerrado|filtrado.

La técnica de escaneo es realmente amplia, hay muchísimas combinaciones y parámetros disponibles así que vamos a mostrar tan solo unos cuantos ejemplos.

Básicos 17, +Nmap Linux (parte. III), BLOG - 23

# nmap -v 192.168.1.100
-) Nota 4; "Verbose" -: Puede ser activado durante el proceso de inicio y permite ver toda la información de lo que ocurre en el "sistema operativo" cuando está arrancando.

Básicos 17, +Nmap Linux (parte. III), BLOG - 24

# nmap -p 80 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 25

nmap -sT 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 26

nmap -sU 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 27

nmap -sO 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 28

# nmap -p 80-200 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 29

# nmap -p U:53,161,8888,T:1000-2000,80,25,8888,8080 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 30

Con este comando de “Nmapaveriguaremos el “sistema operativo” del “host” y otra información como los “puertos abiertos“, el “uptime” de la máquina, etc…;

# nmap -v -O --osscan-guess localhost

Ejemplo de salida del comando;

Initiating SYN Stealth Scan at 18:56
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 25/tcp on 127.0.0.1
Completed SYN Stealth Scan at 12:56, 2.51s elapsed (1000 total ports)
Initiating OS detection (try #1) against localhost (127.0.0.1)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000030s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.7 - 3.9
Uptime guess: 0.004 days (since Fri Sep 26 12:50:15 2014)
Network Distance: 0 hops
TCP Sequence Prediction: Difficulty=259 (Good luck!)
IP ID Sequence Generation: All zeros

Read data files from: /usr/bin/../share/nmap
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 5.46 seconds
           Raw packets sent: 1119 (51.988KB) | Rcvd: 2250 (98.720KB)

Básicos 17, +Nmap Linux (parte. III), BLOG - 31

# nmap -sV 192.168.1.100

Muestra de la salida del comando;

Starting Nmap 5.21 ( http://nmap.org ) at 2014-09-26 18:21 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000040s latency).
Not shown: 998 closed ports
PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 5.8p1 Debian 1ubuntu3 (protocol 2.0)
631/tcp open  ipp     CUPS 1.4
Service Info: OS: Linux

Básicos 17, +Nmap Linux (parte. III), BLOG - 32

# nmap -sV --version-all localhost

Starting Nmap 6.40 ( http://nmap.org ) at 2014-09-26 18:05 CEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000073s latency).
Other addresses for localhost (not scanned): 127.0.0.1
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.4 (protocol 2.0)
25/tcp open  smtp    Postfix smtpd
Service Info: Host:  localhost.localdomain

Básicos 17, +Nmap Linux (parte. III), BLOG - 33

Si un “firewall” está bloqueando, por ejemplo, el protocoloICMP“, podemos utilizar otros métodos para buscarhosts” en una red, en estos ejemplos hacemos uso de “TCP ACK” (parámetro PA) y “TCP Syn” (parámetro PS);

# nmap -PS 192.168.1.100
# nmap -PA 192.168.1.100

También podemos averiguar con “Nmap” si el “host” se encuentra detrás de un “firewall“;

# nmap -sA 192.168.1.100

Básicos 17, +Nmap Linux (parte. III), BLOG - 34

# nmap --iflist 192.168.1.100

Starting Nmap 5.21 ( http://nmap.org ) at 2014-09-26 18:45 CEST
************************INTERFACES************************
DEV  (SHORT) IP/MASK        TYPE     UP MAC
lo   (lo)    127.0.0.1/8    loopback up
eth0 (eth0)  192.168.1.100/24 ethernet up XX:XX:XX:XX:XX:XX

**************************ROUTES**************************
DST/MASK      DEV  GATEWAY
192.168.1.0/0  eth0
169.254.0.0/0 eth0
0.0.0.0/0     eth0 192.168.1.1

Básicos 17, +Nmap Linux (parte. III), BLOG - 35

Todos los ejemplos anteriores se basaban en “IPv4“. Para que los escaneos se realicen contra “IPv6utilizamos el parámetro “-6″, valdría para cualquier ejemplo anterior añadiendo el parámetro y cambiando por una “IPv6“;

# nmap -6 -v FE80:0000:0000:0000:0202:B3FF:FE1E:8329
# nmap -sV -6 FE80:0000:0000:0000:0202:B3FF:FE1E:8329
# nmap -p 80 -6 FE80:0000:0000:0000:0202:B3FF:FE1E:8329

Pues hasta aquí el artículoBásicos 17ampliando un poco más el conocimiento acerca de “Nmap“. Cabe destacar que esta “herramienta” (Nmap) es muy potente (todo un mundo) con lo cuál se necesitaría un libro entero para aprovecharNmap” al 100%. Si queréis profundizar un poco más en el funcionamiento de “Nmap“, podéis leer la guía de referencia de la página oficial. Ahí encontraréis más ejemplos de los indicados en este artículo y más documentación sobre la herramienta.. }:D

Nota 5; Guía de referencia de la página oficial "aquí"... ;)

Básicos 17, +Nmap Linux (parte. III), BLOG - 36

Salu2


TonyHAT - 262

Anuncios

3 comentarios en “Básicos 17: Penetration testing (+Nmap Linux) (parte. III)”

    1. Hola gabo! · ¿Qué tal estas?

      Nmap es muy potente y bastantes adjetivos más (los que se te ocurran siempre a su favor). Hay que dedicar muchas, pero muchas horas, para lograr manejar esta herramienta, y.. claro está, la parte práctica también es muy importante 🙂

      Despacio y con buena letra, como se suele decir por estos lares gabo.. }:D

      Un abrazo!

      Me gusta

Responder

Por favor, inicia sesión con uno de estos métodos para publicar tu comentario:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s