Cuando uno habla de hacking o hacks, la mayoría de la gente lo asocia
con el típico nerd que vive con su mama y que desde el sótano de su casa
irrumpe en otras computadoras. En este articulo voy a hablar un poco de
las herramientas disponibles para hacer precisamente eso, pero por
motivos didácticos, así que no soy responsable de sus acciones. La
mayoría de ustedes han escuchado de nmap y nessus pero que hay de
las otras herramientas? echemosle un vistazo y juguemos un poco con la
red.
La preferida por muchos es tcpdump, es una herramienta que simplemente
nos permite escuchar todo el trafico de la red y graba todos estos
paquetes para que luego los podamos analizar. Si tienes mas de una NIC,
puedes especificar por cual quieres escuchar pasándole el parámetro -i
interfaz. Una cosa que me gusta es que tcpdump pone tu NIC en modo
promiscuo (o por lo menos intenta hacerlo) de forma predeterminada, de
esta forma puede escuchar todo el trafico de ese segmento de la red.
Para deshabilitar el modo promiscuo y limitar el trafico solo a el que
le compete a tu NIC puedes usar el parámetro -p. Hay muchos otros
parámetros que puedes usar, recuerda ejecutar man tcpdump para mas
información.
Aquí les dejo un video que muestra como saber que sitios web estan
visitanto desde nuestra red.
Ahora bien, vamos a cuidar nuestras espaldas y supongamos que
queremos saber que ordenadores están en tu segmento de red pero queremos
evitar enviar paquetes a la red preguntando por estos ordenadores para
que no nos delate (recuerda, este tipo de actividad le puede parecer
sospechoso al administrador). La herramienta indicada para esta tarea es
p0f, esta usa técnicas pasivas para tratar de adivinar que sistemas
existen en tu segmento de red y al igual que tcpdump permite
especificar la interfaz a usar y grabar trafico guardándolo en un
archivo estilo tpcdump.
Nuestras dos herramientas se empiezan a diferenciar a la hora de definir
de forma predeterminada el estado de promiscuidad de nuestra NIC, p0f
requiere que especifiques que quieres que la NIC este en modo promiscuo
y solo escucha cuando un ordenador en nuestra red abre nuevas
conexiones. Aquí una lista de parámetros útiles para p0f.
- -i Especifica la NIC por la que va a escuchar (p0f -i eth0)
- -w Guarda la salida en formato tcpdump (p0f -i eth0 -w
laboratorio.dump)
- -o Al igual que -w guarda la salida de este comando pero en un
archivo de texto sin formato tcpdump
- -O Proporciona una salida mas descriptiva. Tambien llamado modo ACK
- -p Indica que quieres que ponga la NIC en modo promiscuo (p0f -i eth0
-p)
- -s Analiza un archivo que previamente capturaste en formato tcpdump
El problema de todo esto hasta ahora es que es muy probable que el resto
de las maquinas esten bajo una NAT y no podamos verlas como tal, solo
veremos el router. Uno puede usar el parámetro -M que le indica a p0f
que use un algoritmo de detección de enmascaramiento e intenta
identificar estas maquinas individualmente.
Supongamos que ya sabemos cuales son los otros ordenadores que existen
en nuestra red, ahora lo interesante es saber que tipo de trafico
tienen, sera FTP? o tal vez HTTP?, POP?, IMAP? o cualquier otro que sea
de nuestro interés. Lo segundo que en mi caso me llama la atención es
ver desde donde viene este trafico, con quien se comunican estos otros
ordenadores? para responder todo esto podemos usar nuestra tercera
herramienta, dsniff.
Esta utilidad al igual que las anteriores nos permite especificar que
interfaz queremos usar e incluso podemos usar el parámetro -p para que
use archivos que han sido grabados previamente. Puedes habilitar la
detección automática de protocolos usando el parámetro -m lo que te va
dar detalles crudos de que hacen tus vecinos de red.
La salida de este comando luce algo asi:
~# dsniff -m
dsniff: listening on eth0
-----------------
02/01/11 09:50:19 tcp 10.153.212.26.46004 -> trillian.gtlib.gatech.edu.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org
-----------------
02/01/11 09:51:50 tcp 10.153.212.26.48257 -> linux.nssl.noaa.gov.21 (ftp)
USER anonymous
PASS mailto:axel-devel@lists.alioth.debian.org
-----------------
02/01/11 09:53:06 tcp 10.153.212.26.39551 -> chernabog.cc.vt.edu.21 (ftp)
USER anonymous
PASS chrome@example.com
Ahora que sabemos quienes están a nuestro alcance, que hacen y con
quien, podemos revisar la seguridad de los servicios que prestan, el mas
común es el servicio web.
Una herramienta buena para revisar como esta la seguridad de nuestro
servidor web es nitko. Puedes seleccionar el hostname con la opción -h
incluso puedes pasarle una lista de host o IPs en un archivo de texto.
nitko se enfoca en el puerto 80 de forma predeterminada pero puedes
alterar esto usando el parámetro -p de hecho tiene un montón de
parámetros que puedes usar para pruebas de seguridad especificas... mas
de las que quisiera mencionar aquí.
No quería terminar este articulo sin antes mencionar chkrootkit,
esta utilidad nos permite analizar sistemas y trata de terminar si han
sido manipulados, para ver una lista de las pruebas disponibles puedes
usar el parámetro -l. Útil para verificar si el sistema ha sido
infectado o si tiene rootkits.
Este articulo es para fines didácticos, para que 'juegues' en tu propia
red y no para que dañes sistemas ajenos ni adquieras a información que
no te pertenece.