sábado, 2 de junio de 2012

Introducción a NMAP

Nmap (Network Mapper), es una herramienta open source, diseñada para explorar y para realizar auditorías de seguridad en una red de computadoras.
 
Esta herramienta puede ser utilizada para realizar auditorías de seguridad en una red, pero también puede ser utilizada para fines delictivos, ya que esta herramienta pone al descubierto,puertos abiertos en las computadoras de una red, así como también es posible conocer como se encuentra organizada, y de cuantas computadoras consta una red. 

Nmap esta incluido en la mayoría de repositorios de las distros linux, por lo que para instalarla se debe usar el manejador de paquetes de la distribución que utilizamos.

La sintaxis básica de nmap es:

nmap [tipo de scan] [opciones] 

Por ejemplo si tenemos un host en nuestra red, con dirección ip 192.168.0.1 y deseamos conocer que puertos tiene abiertos, ejecutamos:

nmap 192.168.0.1
 
Nmap nos mostrara en pantalla algo como esto:

Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-02 17:25 ECT
Nmap scan report for 10.0.0.10
Host is up (0.0035s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
80/tcp   open  http
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
515/tcp  open  printer
6000/tcp open  X11


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

Este resultado puede variar, dependiendo de las opciones que se le pasen a nmap o de la cantidad de puertos, que se encuentren abiertos en el host, que esta siendo analizado.

Si queremos, conocer que tipo de sistema operativo, esta corriendo el host al que le realizamos el scaneo, sólo basta agregar el parámetro -O a el comando nmap.

nmap -O 192.168.0.1

Nos mostrara un resultado como este:

 Starting Nmap 5.21 ( http://nmap.org ) at 2012-06-02 16:49 ECT
Nmap scan report for 10.0.0.21
Host is up (0.0017s latency).
Not shown: 980 closed ports
PORT      STATE SERVICE
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
554/tcp   open  rtsp
1110/tcp  open  nfsd-status
1688/tcp  open  unknown
2869/tcp  open  unknown
3260/tcp  open  iscsi
3261/tcp  open  unknown
3389/tcp  open  ms-term-serv
5357/tcp  open  unknown
10243/tcp open  unknown
49152/tcp open  unknown
49153/tcp open  unknown
49154/tcp open  unknown
49156/tcp open  unknown
49157/tcp open  unknown
49158/tcp open  unknown
49159/tcp open  unknown
49160/tcp open  unknown
Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 - SP2, Server 2008, or Windows 7 Ultimate (build 7000)
Network Distance: 1 hop

Pues, todo esto es la "huella" TCP/IP (TCP/IP fingerprint) que posee cada Sistema Operativo en particular.

Otra función de Nmap es identificar los hosts activos, en nuestra red.

Supongamos, que tenemos una red 10.0.0.0, y deseamos conocer que hosts se encuentran activos, fácilmente, lo podemos saber con nmap, esto lo podemos conocer
al realizar un ping scan.

nmap -sP -PN 10.0.0.0/24


Esta herramienta también permite realizar "stealth scans", con este tipo de scan, se pretende no ser detectado por software de detección de scaneos. Para lo cual se envían paquetes a los hosts con ciertos "flags" TCP activados o desactivados para evitar ser detectados. Básicamente existen tres tipos:
  • sN: Stealth, Null Scan, este tipo de scan pone en off todos los flags.
  • sF: Stealth FIN Scan, este tipo de scan usa paquetes con el flag FIN activado para las pruebas.
  • sX: Stealth Xmas Tree Scan, este tipo de scan envía paquetes con los flag FIN, URG, y PUSH activados.

Si deseamos hacer un "stealth scan" del tipo Xmas Tree, y además deseamos conocer
que sistema operativo esta corriendo el host de destino, ejecutamos:

nmap -sX -O -p- -PN 192.168.1.2

Con un "Decoy Scan" (opción -D) se trata de engañar al host, al cual se esta scaneando, diciéndole que los scans se están generando desde otros hosts, que se especifican en la opción -D.

En el siguiente ejemplo, realizamos un Stealth Xmas Tree scan (-sX) hacia el host 192.168.0.1, en los puertos 25(SMTP), 53(DNS), le indicamos a nmap que no genere pings hacia el host, y tratamos de engañar al host (-D, Decoy), haciéndole creer que los scans se están generando desde los hosts 1.2.3.4 y 5.6.7.8.

nmap -p 25,53 -sX -P0 -D 1.2.3.4,5.6.7.8 192.168.0.1

Existen Interfaces Gráficas para Nmap, en el caso que no deseen, utilizar la interfaz de comandos de nmap, fácilmente pueden usar un programa llamado zenmap.

Si requieren mas información sobre Nmap, pueden buscar ayuda en la página web http://nmap.org/ o consultar los manuales electrónicos con el comando:

man nmap

Etapa de Scaneo

Una que se recolectó información de un objetivo, en los datos recogidos debe haber una lista de direcciones IP.

Como se conoce, los servicios de red funcionan en puertos estandard y pueden dar una pista de cual es la función de cada servicio. Algunos puertos son comunes y reciben gran cantidad de datos, y algunos extraños y son raramente usados.

 La primera prueba para comprobar que un host (en nuestro caso el host del objetivo) es hacer un ping hacia la dirección IP que le corresponde. Esta prueba va a servir siempre y cuando estén permitidos los paquetes ICMP en el host, por lo que los resultados que se obtengan no son concluyentes.

La segunda prueba se la conoce como un Scaneo de Puertos. Para hacer esta prueba la herramienta mas utilizada se llama NMAP. Otra herramienta que se puede usar para este propósito es Nessus. Para instalar NMAP, se puede usar el comando:

apt-get install nmap

Para instalar Nessus, se lo debe descargar de la página web http://www.nessus.org. De acuerdo al sistema operativo que tenemos instalado, se debe bajar el paquete correspondiente y utilizar el manejador de paquetes de nuestra distribución para comenzar la instalación. Una vez instalada la aplicación, se debe reiniciar el servicio con el siguiente comando:

/etc/init.d/nessusd restart

Una vez se ha ejecutado el comando anterior se puede empezar a usar nessus, ingresando la siguiente dirección en nuestro navegador web:

https://localhost:8834/

Si requieren mayor información acerca de Nessus, pueden revisar la documentación oficial y manuales de usuario.

viernes, 1 de junio de 2012

TheHarvester y MetaGooFil

Son pequeños programas creados por Edge-Security, se los puede encontrar en la pagina web http://www.edge-security.com.

Los dos son programas escritos en python. Una vez se bajan los archivos, se los debe extraer, para lo cual se usa el comando:

tar xvf theHarvester.tar

El primero, theHarvester, busca información en los principales buscadores, como google o bing, relacionada con correos electrónicos y subdominios relacionados con un dominio.

Para usarlo, vamos a la carpeta donde se lo extrajo. Hay que asegurarse que el archivo theHarvester.py tenga los permisos de ejecución, para lo cual:


chmod +x theHarvester.py

Para empezar una búsqueda simplemente se ejecuta lo siguiente:

./theHarvester.py -d example.com -l 10 -b google

En donde:
  • -d se usa para especificar de que dominio se quiere obtener información.
  • -l le dice al programa que solo entregue 10 resultados.
  • -b sirve para especificar que motor de búsqueda se va a utilizar.
 El programa MetaGooFil, busca archivos que pertenecen a cierto dominio. Se debe seguir el mismo procedimiento del programa anterior para extraerlo y poder usarlo.

Antes de empezar a usarlo, es preferible crear una carpeta, en la cual se guarden los documentos encontrados. Para lo cual se puede usar el comando:

mkdir files

Para empezar una busque, se ejecuta lo siguiente:

./metagoofil.py -d example.com -f all -o results -t files

En donde:
  • -d se usa para especificar de que dominio se quiere obtener información.
  • -f especifica que tipo de archivos se quiere buscar y bajarse. La opción all hace que se localicen y bajen todos los archivos.
  • -o especifica el nombre del reporte que MetaGooFil va a generar.
  • -t indica el directorio en donde se deben guardar los archivos encontrados.