martes, 6 de julio de 2010

Etapas Hacking: Escaneo y Enumeracion

Por ahi urgetenado me encontre con este articulo de Symphony ke esta notable y muy bn explicado

copy and paste y ke pa!! XDD!!

_____________________________________________________________

By
Symphony

Bueno voy a exponer en este post alguna de las etapas de un ataque hacia alguna empresa u objetivo en si, las medidas que se toman y analizar conceptos.
Bien en este post hablamos un poco de footprinting, el como analizar a nuestro objetivo ahora hablaremos de las dos etapas posteriores al footprinting.
Junto al footprinting, el escaneo y enumeracion son las fases de obtencion de informacion previas a un ataque.

La enumeracion comienza apenas finalizado el escaneo y su objetivo es el de enumerar e identificar los nombres de los equipos,usuarios, y recursos compartidos entre otra informacion.


El escaneo es el proceso de localizacion de sistemas que esten en la red. Un ethical hacker utiliza este proceso para encontrar las IP de objetivos. Los siguientes datos ayudan a l atacante a poder decidirse por el tipo de exploit a utilizar:

Direccion de IP
Sistema Operativo
Servicios disponibles
Aplicaciones instaladas.


Segun la metodologia de un CEH existen tres tipos de escaneo:

Escaneo de puertos: determina los puertos TCP/IP abiertos y disponibles
Escaneo de Red: determina los host que se encuentren activos
Escaneo de Vulnerabilidades: determina la existencia de vulnerabilidad conocidas en los host.

Es importante conocer la existen herramientas que pueden detectar cuando se esta realizando un escaneo. Pero dentro de todo estamos dentro de lo que marca la ley.


This image has been resized. Click this bar to view the full image. The original image is sized 1024x600.


Metodologia CEH :
1) verificacion de sistemas vivos
2) comprobacion de puertos abiertos
3) servicios , identificaicon
4) Banner Grabbing / OS fingerprinting
5) Escaneo de vulnerabilidades
6) dibujar diagramas de red de host vulnerables
7) preparacion de Proxys
8) Ataque


Esta metodologia utilizado a la hora de conduir el proceso de escaneo de una red. Su principal objetvo, es el de asegurar que ningun sistema o vulnerabilidad es pasada por alto.

Respecto de Escaeno de Puertos, las contramedidas son procesos o herramientas que los administradores de seguridad configuran para detectar posibles intentos de escaneos en sus redes.

Algunas de las contramedidas necesarias para prevenir que un atacante obtenga información de la red son las siguientes:
implementar una arquitectura de seguridad apropiada, que contenga firewalls a distintos niveles e IDS.
Los Ethical Hackers utilizan sus herramientas para auditar las contramedidas implementadas.

Por ejemplo, una vez que el firewall está ubicado donde corresponde, una herramienta de escaneo de puertos ayudará a determinar si el firewall detecta y detiene dichos intentos de escaneo.

El firewall debe trabajar en modo statefull, es decir, debe permitir analizar los datos dentro de los paquetes y no solo las cabeceras
TCP.
Los sistemas NIDS, se utilizan entre otras cosas para identificar
métodos de detección de sistemas operativos llevados a cabo por
distintas herramientas (Ej: nmap)
Solamente se deben tener abiertos los puertos que se van a utilizar. El resto, deberían estar cerrados o filtrados. Los empleados de la organización, deben estar correctamente
concientizados respecto a la seguridad y también estar al tanto de
las distintas políticas que deben seguir.


Flags de Conexiones TCP
Los tipos de escaneos se basan en las conexiones TCP estas requieren llevar adelante el Three.way handshake o saludo de 3 vias. Previamente a cualquier transferencia de datos entre emisor y receptor.

Dado que el protocolo TCP es orientado a la conexion, el proceso por el cual se establecen,reinician y finalizan las conexiones estan contempladas en el procolo. Para esto se utilizan distintas notificaciones denominadas FLAGS.
Un atacante intentara saltarse ese proceso de deteccion manipulando dichos flags en lugar de establecer conexiones TCP normales.

Cita:
SYN: synchronize, inicia la conexion entre 2 host
ACK : acknowledge, establece la conexion, luego del SYN
PSH: push, reenvia los datos en el buffer
URG: urgent, los datos deben enviarse rapidamente
FIN: finish, termina la conexion
RST: reset, corta abruptamente la conexion.

Tecnicas de Escaneo

TCP connect() scanning:
esta es la forma mas poplar de escaneo Tcp y consiste basicamente en usar la llamada sistema connect() del sistema operativo, si se logra establecer la conexion con el puerto de la otra pc entonces este puerto esta abierto. las ventajas que tiene esta forma de escaneo es que no se necesita ningun privilegio especial para poder llevarla a cabo, en la mayoria de los unix cualquier usuario puer hacer uso de la llamada connect(). El lado negativo es que es muy facil de detectar y de filtrar

Comportamiento del escaneo:
Código:
host local ---[SYN]---> [O] Puerto TCP abierto en el host remoto

host local <---[SYN/ACK]--- [O] Puerto TCP abierto en el host remoto host local ---[ACK]---> [O] Puerto TCP abierto en el host remoto
host local ---[SYN]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[SYN]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-

En nmap podemos invocar un escaneo TCP connect() mediante el comando:
Código:
nmap -vv -P0 -sT xxx.xxx.xxx.xxx


TCP SYN scanning: esta tecnica es la llamada escaneo "half open" o mitad abierta porque no establecemos una conexion TCP completa. Lo que hacemos es enviar un paquete SYN como si fueramos a entablar una conexion TCP completa y esperamos por una respuesta. Podemos recibir un SYN/ACK si el puerto esta escuchando o un RST si el puerta esta cerrado, SI recibimos un SYN/ACK en respuesta, inmediatamente le enviamos un RST. La mayor ventaja de esta tecnica es que muy pocos server nos loguean y la desventaja es que se necesita privilegios de root para construir estos paquetes SYN a enviar

Comportamiento del escaneo:
Código:
host local ---[SYN]---> [O] Puerto TCP abierto en el host remoto

host local <---[SYN/ACK]--- [O] Puerto TCP abierto en el host remoto host local ---[RST]---> [O] Puerto TCP abierto en el host remoto
host local ---[SYN]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[SYN]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-

En nmap podemos invocar un escaneo TCP SYN mediante el comando:
Código:
nmap -vv -P0 -sS xxx.xxx.xxx.xxx





TCP FIN scanning: algunos firewalls y packets filters escuchan por los paquetes SYN en algunos puertos y programas como el synlogger puerden detectar este tipo de escaneo. En cambio los paquetes FIN pueden penetrar sin mayot problema. La idea consiste en que al enviar un paquete FIN si el puerto esta cerrado nos va a devolver un RST y si el puerto esta abierto nos va a ignorar. Esto se debe a un error en las implementaciones TCP pero no funciona 100%. La mayoria de los sistemas parecen susceptibles excepto lso sistemas Microsoft que son inmunes ( auqneu no lo creas)

Comportamiento del escaneo:
Código:
host local ---[FIN]---> [O] Puerto TCP abierto en el host remoto

-SIN RESPUESTA-
host local ---[FIN]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[FIN]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-

En nmap podemos invocar un escaneo TCP FIN mediante el comando:
Código:
nmap -vv -P0 -sF xxx.xxx.xxx.xxx



UDP scan

Esta técnica, frente a las demás técnicas orientadas a TCP, está orientada al protocolo UDP y sus puertos.
Aunque a priori parezca que los puertos UDP no son muy nteresantes, servicios como el rpcbind de Solaris,TFTP, SNMP, NFS... usan todos ellos UDP como protocolo de transferencia.
El sistema de escaneo consiste en mandar un paquete UDP vacío (0 bytes de datos) al puerto que deseamos escanear. Si el puerto está cerrado, el sistema responderá con un paquete ICMP de tipo 3
(destino inalcanzable). En caso de no responder, el puerto puede estar abierto o silencioso.
Este sistema puede presentar un grave problema de carencia de velocidad según en qué sistemas, y es que en el RFC #1812-”Requirements for IP version 4 routers” (ftp://ftp.rfc-editor.org/in-notes/rfc1812.txt) se recomienda limitar la capacidad de generación de mensajes ICMP de error. En sistemas Linux
(consultar el fichero /ipv4/icmp.h de las fuentes del kernel) esta limitación está fijada en unos 20 mensajes por segundo. Sistemas como Solaris son más estrictos y tiene la limitación fijada en 2 por segundo. Pero hay un sistema que, para variar, no hace mucho caso a los estándares, por lo que no tiene ninguna limitación prefijada... sí: Windows. Un escaneo UDP a un sistema Windows resulta extremadamente rápido como consecuencia de ello.


Comportamiento del escaneo:
Código:
host local ---{UDP}---> {O} Puerto UDP abierto en el host remoto

-SIN RESPUESTA-
host local ---{UDP}---> {X} Puerto UDP cerrado en el host remoto
host local <---|ICMP #3|--- {X} Puerto UDP cerrado en el host remoto host local ---{UDP}---> {~} Puerto UDP silencioso en el host remoto
-SIN RESPUESTA-

En nmap podemos invocar un escaneo UDP mediante el comando:
Código:
nmap -vv -P0 -sU xxx.xxx.xxx.xxx



ACK scan
La mayoría de las técnicas de escaneo nos permiten identificar con exactitud los puertos abiertos o
cerrados, pero generalmente los puertos silenciosos no se pueden identificar con claridad. El escaneo
ACK está destinado a identificar de forma precisa cuándo un puerto se encuentra en estado
silencioso. Esta técnica es usada también para poder escanear hosts que estén detrás de un firewall que bloquee los intentos de conexión (paquetes SYN).
Su funcionamiento se basa en el envío de paquetes ACK con números de secuencia y confirmación aleatorios. Cuando reciba el paquete, si el puerto se encuentra abierto, responderá con un paquete RST,
pues no identificará la conexión como suya; si el puerto está cerrado responderá con un paquete RST,pero si no se obtiene respuesta (obviamente primero debemos asegurarnos que el host está en línea) podemos identificar claramente el puerto como filtrado (puerto silencioso).
Normalmente el escaneo ACK se realiza como apoyo a un escaneo anterior, para determinar los puertos silenciosos y poder identificar mediante una combinación de técnicas el estado real de todos ellos. Por ejemplo, ante un host con un firewall que bloquee intentos de conexión (SYN), podemos realizar un FIN scan para determinar los puertos cerrados, y después un ACK scan para determinar qué puertos están abiertos y cuáles silenciosos.
Esta técnica también es usada como variante del ping (ICMP echo) de toda la vida, para saber si un host está activo (recibiremos respuesta RST) o no (cuando no hay respuesta o la respuesta es destino
inalcanzable).
Comportamiento del escaneo:
Código:
host local ---[ACK]---> [O] Puerto TCP abierto en el host remoto

host local <---[RST]--- [O] Puerto TCP abierto en el host remoto host local ---[ACK]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[ACK]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-

En nmap podemos invocar un escaneo ACK mediante el comando:
Código:
nmap -vv -sA xxx.xxx.xxx.xxx



Null scan

Este escaneo tiene muchos puntos en común con el escaneo FIN. Su funcionamiento base es el mismo:
enviamos un paquete malformado (en este caso se trata de un paquete TCP con todos los flags desactivados) y esperamos la respuesta. En caso de que el puerto destino esté cerrado, nos responderá con un paquete RST; y en caso de no recibir nada (nuestro paquete es ignorado), se trata de un puerto abierto o silencioso.
La ventaja frente al escaneo FIN radica en que ciertos firewalls vigilan los paquetes de finalización de conexión además de los de establecimiento, de forma que el escaneo nulo podrá realizarse allí dónde el FIN no sería posible. El resto de ventajas y desventajas son las mismas que en el escaneo FIN.
Comportamiento del escaneo:

Código:
 host local ---[        ]---> [O] Puerto TCP abierto en el host remoto

-SIN RESPUESTA-
host local ---[ ]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[ ]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-
En nmap podemos invocar un escaneo Null mediante el comando:
Código:
nmap -vv -P0 -sN xxx.xxx.xxx.xxx


Xmas scan

El escaneo Xmas se basa también en el principio de la respuesta RST por parte de un puerto cerrado al recibir un paquete incorrecto (como el escaneo FIN). En el caso del escaneo Xmas, se trata de un paquete
con los flags FIN, URG y PSH activados (aunque ciertasi mplementaciones activan FIN, URG, PSH, ACK y SYN e incluso algunas activan todos los flags). Podría decirse que es lo contrario del escaneo Null, pero logrando el mismo efecto.
Al igual que el escaneo Null, se usa bajo ciertas circunstancias en las que el escaneo FIN no es posible; y también comparte con éstos sus particularidades.

Comportamiento del escaneo:
Código:
host local ---[xmas]---> [O] Puerto TCP abierto en el host remoto

-SIN RESPUESTA-
host local ---[xmas]---> [X] Puerto TCP cerrado en el host remoto
host local <---[RST]--- [X] Puerto TCP cerrado en el host remoto host local ---[xmas]---> [~] Puerto TCP silencioso en el host remoto
-SIN RESPUESTA-
En nmap podemos invocar un escaneo Xmas mediante el comando:
Código:
 nmap -vv -P0 -sX xxx.xxx.xxx.xxx

Bien estas son algunas de las tecnicas que podemos utilizar a lo largo de la recopilacion de informacion sobre un objetivo, podemos nombrar para no alargar el post algunas mas un poco mas avanzadas como Reverse Ident , Zombie Scan , Ftp bounce scan , etc. Pero hablemos un poco tambien de la enumeracion:

Es la extraccion de nombres de usuarios y de grupo, nombres de equipos, recursos de red recursos compartidos y servicios.
Implica conexiones activas a los sistemas y consultas directas para obtener info.
Las tecnicas de enumeracion usualmente se realizan dentro de la red.
Extraer nombres de usuarios de Windows
Extraer nombres de usuarios utilizando SNMP
Extraer nombres de usuarios utilizando ID de e.mails
Extraer informacion utilizando contraseñas default
Extraer informacion de AD mediante fuerza bruta

Algunas herramientas que podemos ver son : DumpSec, Hyena, The SMB Auditing Tool , The NetBios Auditing Tool.

Tecnicas de enumeracion DNS

Las siguientes tecnicas de enumeracion estan basadas en el protocolo DNS y son:

*
Reverse DNS lookup: Realiza una peticion PTR para obtener el hostname de la direccion IP.

*
Name servers record lookup: Obtiene el name server autoritario de el host objetivo.

*
Mail exchange record lookup: Obtiene el registro MX de un dominio objetivo.

*
DNS AXFR zone transfer: El servidor que sirve de domain zone a la maquina objetivo puede ser propenso a un ataque de transferencia de zona.

*
Host name brute forcing: Usando una tecnica de fuerza bruta para suponer un hostname en el dominio enumerado.


Enumeracion en windows NT/2000 y 2003

Existen 2 grandes vulnerabilidades en los sistemas windows y estas son:
Null Sesion-anonymous login :
NETBIOS y CIFS/SMB incluyen APIs que permiten acceder a mucha informacion de los sistemas, sobre los puertos TCP y UDP 135 a139 y 145. El modo de acceder a esas apis es a traves de el llamado Null session o anonymous login.
Esto nos dara recursos compartidos y muchas cositas mas que si las explico todas no termino nunca mas.
Para Realizar una Null session podemos utilizar el comando :
>net view \\victima\ipc /u:”" “”
Si nos contesta con Comando completado exitosamente es porque logramos obtener una null session , de lo contrario nos contestara con un “System Error 5″.
Si necesitan mas informacion sobre el comando net view pueden tipear net view ?.


Ejemplo de enumeración de aplicaciones por el metodo banner grabbing.


Código:
C:/>telnet www.webvictima.com			# #							            #

# HTTP/1.1.400 Bad Request #
# Server: Microsoft-IIS/5.0 #
# Date: wed, 18 Ago 2005 01:55:06 GTM #
# Content-Type: text/html #
# Content.Legtnh: 87 #
# #
# error#
# #
# Connection to host lost. #
Como vemos en el ejemplo la aplicación el puerto 80 es el web server IIS5.0 de Microsoft. Si tenemos algun exploit para esta version podemos utilizarlo para explotar alguna vulnerabilidad.
Bien esto es todo por este post despues agregare mas informacion si es que la solicitas y ejemplos desde Linux. Hasta la segunda parte..



Bibliografia material de estudio CT CEH , SAbuesos Death MAster.

No hay comentarios: