martes, 26 de abril de 2011

Fase de un Ataque (Según CEH)

No existe una regla clara de cómo se debe llevar a cabo un Ataque informático, el presente artículo  utiliza como apoyo los siguientes libros Digitales: “Official Certified Ethical Hacker Review guide” y “The CEH Prep Guide” y “Penetration Tester’s Open Source Tool Kitslos 2 primeros libros son guías  para obtener la certificación de CEH “Certified Ethical Hacker”  que propone seguir etapas para efectuar un ethical hacking.
Reconocimiento 

Esta etapa  que a su vez se divide en 2 formas Reconocimiento Pasivo que es llevado sin que la organización lo note, puede recopilar información por internet usando google, también se utiliza la Ingeniería Social y el Sniffing. La esencia del reconocimiento activo es de generar vital información acerca del rango de direcciones IP que utiliza, Dominios,DNS toda la información que se pueda recabar haciendo uso de Internet y las Herramientas Necesarias para obtener la información 

Escaneo  

La segunda Fase del Ethical Hacking consiste en determinar que puertos y que servicios y que Sistema Operativo está corriendo en el equipo en el cual se realizara la prueba de intrusión, existente distintos tipos de escaneos y técnicas para perpetrar un scan de acuerdo al escenario en el que se encuentre el Pentester, en un tópico anterior se hablo de distintas técnicas de scan utilizando la herramienta Nmap (Mapeador de redes).

Acceso
En esta etapa se utiliza toda la información recolectada y generada para comprometer un equipo aprovechando vulnerabilidades detectadas o encontradas, pueden ser ataques a aplicaciones, al S.O, Configuraciones por defecto.
Existentes numerosas herramientas y Framework para tener éxito en esta etapa aunque también es la más complicada porque se debe saltar Firewall’s evadir IDS y Muchas Aplicaciones que alertan por algún tipo de intrusión



Manteniendo Acceso

Una vez realizada la intrusión al equipo debemos dejar una puerta abierta para ingresar, troyanizar el Sistema Operativo, incluso con las propias herramientas nativas del equipo se puede llevar a cabo esta parte, crear Shell reversas, Tunneling.

Borrado de Huellas

Esta etapa final es en la cual el pentester debe eliminar todo rastro generado por los accesos, los scaneos y todo Log que genere las aplicaciones que corren en un determinado servicio.







martes, 19 de abril de 2011

Una de Firewall ;)

Un Firewall (Corta Fuegos) en un sistema con interfaces múltiples que está sujeto a diferentes redes, que cuenta con un mecanismo de filtrado para permitir o denegar el trafico entre las redes.

Los filtros de paquetes

El filtrado de paquetes analiza los paquetes en la  Capa de Red (3) y la Capa de Transporte (4) del modelo ISO/OSI. Eso significa que un filtro de paquetes utiliza principalmente el siguiente criterio para acometer su decisión de filtrado:
  • Los protocolos (ICMP, OSPF, AH, ESP, etc.),
  • La dirección IP de origen,
  • La dirección IP de destino,
  • El puerto de origen,
  • El puerto de destino,
  • Los indicadores TCP (SYN, ACK, RST, FIN, etc.).
En la figura anterior se observa el escenario, el intruso se encuentra afuera de la red corporativa, supongamos que debemos determinar el equipo remoto en este caso Web Server   al momento de realizar un Ping al WS  seguramente nos devolverá un mensaje ICMP de tipo 3 esto quiere decir que el host remoto “podría” estar Down y hasta ahí llego la historia no?. No!
 
Utilicemos a nuestro Nmap haber que nos dice , hacemos un Escaneo SYN  y utilizando nuestro wireshark se ve la secuencia de comunicación en el protocolo TCP/IP
 
Ahora sabemos que el host esta up , pero que si efectivamente están filtrados los paquetes los puertos ;( pero nuestra misión es determinar que S.O esta en el equipo remoto, y si esta filtrando el Fw como vamos a saber que puertos y que servicios están corriendo en el equipo para determinar el S.O.

Seguíamos con el escaneo con nuestro amigo Nmap en este caso utilizamos un parámetro de la sección de Burlar FW y demás!, el parámetro –g que indica el puerto por el cual saldríamos al equipo remoto.

De igual manera podemos utilizar los puertos más comunes y conocidos en los sistemas operativos ;) vamos a probar con los mas 139,445,443,80,25,21,53

 
En este caso esta se asume  que es Windows el que esta corriendo, por el servicio  que dice “Microsoft-ds” y si esta bloqueado , atrás de la shell se puede observar que no recibimos respuesta del equipo remoto , solo de nuestro equipo que esta enviando paquetes TCP con el Flag SYN Levantado 

 Hay que tener mucho cuidado ya que muchas veces puede que las herramientas arrojen  Falsos Positivos !
 

lunes, 18 de abril de 2011

TÉCNICAS DE ESCANEO DE PUERTOS III

UDP Scan

 Esta técnica esta orientada al protocolo UDP y sus puertos aunque parezca que no es importante algunos de estos servicios (TFTP,SNMP,NFS) están funcionando o utilizando este protocolo para el transporte de datos.

Consiste en enviar un paquete UDP vacío (0 byte de datos) al puerto que deseamos escanear, si el puerto responde con un mensaje ICMP 3 (destino inalcanzable) quiere decir que el puerto esta cerrado, En caso de no responder puede asumirse que el puerto esta abierto o silencioso
LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [UDP] -------------------> [O]

Puerto Cerrado

--------------------------------[UDP]------------------->[x]

<----------------------------[ICMP = 3]----------------[x]

Puerto Silencioso

-------------------------------- [ UDP] -------------------> [~]

Utilizando nuestro Nmap podemos realizar el escaneo UDP Scan  mediante el siguiente comando:


Nmap –vv –P0 –sU ip_host_remoto


  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).

LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [ACK] -------------------> [O]

<---------------------------- [RST] ---------------- [O]

Puerto Cerrado

-------------------------------- [ACK] -------------------> [x]

<---------------------------- [RST] ---------------- [x]

Puerto Silencioso

-------------------------------- [SYN] -------------------> [?]

Utilizando nuestro Nmap podemos realizar el escaneo ACK Scan  mediante el siguiente comando:


Nmap –vv –PT  ip_host_remoto

En este caso no se recibe respuesta quiere decir que todos están filtrados


  
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.

LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [        ] -------------------> [O]

<---------------------------- [RST] ---------------- [O]

Puerto Cerrado

-------------------------------- [            ] -------------------> [x]

<---------------------------- [RST] ---------------- [x]

Puerto Silencioso

-------------------------------- [        ] -------------------> [?]

Utilizando nuestro Nmap podemos realizar el escaneo NULL Scan  mediante el siguiente comando:

Nmap –vv –P0 -sN  ip_host_remoto


 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 ciertas implementaciones 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.

LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [XMAS ] -------------------> [O]

Puerto Cerrado

-------------------------------- [ XMAS ] -------------------> [x]

<---------------------------- [RST] ---------------- [x]

Puerto Silencioso

-------------------------------- [XMAS] -------------------> [?]

Utilizando nuestro Nmap podemos realizar el escaneo Xmas Scan  mediante el siguiente comando:
Nmap –vv –P0 -sX  ip_host_remoto


viernes, 15 de abril de 2011

TÉCNICAS DE ESCANEO DE PUERTOS II

TCP SYN

Esta técnica es también conocida como Half-open, (Medio Abierto) es muy parecida a la TCP Connect pero la gran diferencia es que no llega a establecer una conexión con el host remoto

Esta Técnica envía un paquete SYN al equipo remoto, si el equipo remoto responde con un SYN/ACK quiere decir que el puerto esta abierto y se termina devolviendo un paquete RST (Se envía un RST para que se lleve a cabo la conexión completamente) y no como se espera en el clásico saludo de los tres pasos; si llega un RST quiere decir que el puerto se encuentra Cerrado. En el caso de no recibir ningún tipo de paquetes quiere decir que el puerto esta Silencioso.

Para llevar acabo este tipo de escaneo un S.O *nix se debe tener los privilegios de root  debido a que este tipo de escaneo utiliza los Socket TCP raw.

LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [SYN] -------------------> [O]

<---------------------------- [SYN/ACK] ---------------- [O]

-------------------------------- [RST] -------------------> [O]


Puerto Cerrado

--------------------------------[SYN]------------------->[x]

<----------------------------[RST]----------------[x]

Puerto Silencioso

-------------------------------- [SYN] -------------------> [?]

Utilizando nuestro Nmap podemos realizar el escaneo TCP Connect  mediante el siguiente comando:


Nmap –vv –P0 –sS ip_host_remoto





TCP FIN

Esta técnica es también conocida como Stealth Scan  (Escaneo Silencioso) es uno de los más discretos dentro de las técnicas mas convencionales se apoya en los estándares internacionales de TCP/IP.

Al momento de realizar el escaneo, el equipo local envía un paquete FIN al puerto del host destino que queremos escanear; Los estándares internacionales dicen que al momento de enviar un paquete FIN el equipo remoto responde con un RST si el puerto esta cerrado en el caso de no recibir respuesta se puede decir que el puerto esta Abierto o Filtrado.

La principal desventaja de este Tipo de escaneo es que nos deja una gran lista de falsos positivos.

La gran ventaja que tiene este tipo de escaneo es que la gran mayoría Firewall no detecta este tipo de escaneo, pero si un buen IDS bien configurado lo detectaría.
LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [FIN] -------------------> [O]

Puerto Cerrado

--------------------------------[FIN]------------------->[x]

<----------------------------[RST]----------------[x]

Puerto Silencioso

-------------------------------- [SYN] -------------------> [?]

Utilizando nuestro Nmap podemos realizar el escaneo TCP Connect  mediante el siguiente comando:


Nmap –vv –P0 –sF ip_host_remoto


En este caso esta técnica nos muestra falsos positivos al decir que no se encuentran puertos abiertos y ¿por que? , si con la anterior técnica y al mismo HOST nos muestra una cantidad de puertos abiertos, es por que se realizo sobre un Windows XP y esta empresa (Microsoft) esta cansada de pasarse los estándares internacionales por donde más le parezca.

jueves, 14 de abril de 2011

TÉCNICAS DE ESCANEO DE PUERTOS I

“Cierren los puertos que se entran los barcos….”

TCP Connect

Esta técnica es la mas común, consiste en utilizar la llamada connect () a un nivel raw de TCP  para intentar establecer una conexión con cada uno de los puertos del host a escanear.

Si la Conexión se establece quiere decir que el puerto esta abierto, en el caso de recibir un RST quiere decir que el puerto se encuentra cerrado, si no se recibe ninguna respuesta se deduce que el puerto esta silencioso.

El escaneo de puertos utilizando esta técnica es rápido ya que se puede utilizar varios socket’s de forma paralela para realizar un barrido de puertos. La principal desventaja de este tipo de escaneo es que es ilógico que se realicen muchas conexiones en pocos segundos, además al realizar la conexión completamente  quedaría registrado en el equipo remoto.


LHOST                                                            RHOST
Puerto Abierto

-------------------------------- [SYN] -------------------> [O]

<---------------------------- [SYN/ACK] ---------------- [O]

Puerto Cerrado

--------------------------------[SYN]------------------->[x]

<----------------------------[SYN/ACK]----------------[x]

Puerto Silencioso

-------------------------------- [SYN] -------------------> [?]


Utilizando nuestro Nmap podemos realizar el escaneo TCP Connect  mediante el siguiente comando:
Nmap –vv –P0 –sT ip_host_remoto


Como se observa en la figura anterior, se ve como el LHOST .86 manda la bandera SYN  y el RHOST .11 devuelve un [SYN/ACK] y el LHOST .86 Responde con un [ACK] este asegura que el puerto esta Open |:¬)
Related Posts Plugin for WordPress, Blogger...