lunes, 22 de diciembre de 2014

Escaneando el objetivo

Cuando hablamos de escanear un red, hacemos referencia a un conjunto de procedimientos para identificar hosts, puertos y servicios que se ejecutan en la misma. Un escanér de vulnerabilidades determina la posibilidad de ataques  a una red y evalúa los sistemas de la organización en busca de actualizaciones faltantes, servicios innecesarios, autentificación y cifrado débil. Tenemos 3 tipos de escaneos:
  • Port scanning - Puertos abiertos y servicios 
  • Network scanning - Direcciones IP
  • Vulnerability scanning - Presencia de vulnerabilidades
En primera instancia utilizaremos hping, que es una herramientas muy versátil que permite la manipulación de paquetes TCP/IP desde la linea de comandos, también podemos modificar la información contenida en las cabeceras de los paquetes ya sean TCP,UDP o ICMP, en función de los parámetros que ejecutemos en hping. Algunas características son:
  • Determina si el host esta funcionando aun cuando esta bloqueando los paquetes ICMP.
  • Escaneo de puertos avanzado y rendimiento neto de prueba utilizando diferentes protocolos, tamaños de paquetes, TOS y fragmentacion.
  • Ruta manual de descubrimiento del MTU.
  • Descubrimiento de puertos abiertas detras de firewalls.
  • OS fingerprinting remoto.
En la siguiente imagen se muestra un escaneo ICMP:

También podemos utilizar la herramienta como un scanner de puertos, utilizando el comando -S podemos especificar que la flag del paquete TCP es SYN, con -p especificamos el puerto y con ++ hacemos que vaya incrementando en uno el puerto para analizar y quedaría:

Se envia el paquete TCP con longitud 44, con destino a la direccion ip del objetivo, con TTL  51, con RTT promedio entre 215.2 a 248.7 ms, puerto por puerto iniciando desde el 21. En los puertos 21,22,25,53,80,110,125 y 143 podemos ver las flags que son SA (SYN y ACK) lo que significa que el puerto esta abierto, en cambio en el puerto 26 nos devuelve RA lo que significa que estamos recibiendo un RST entonces el puerto esta cerrado. Algunos otros métodos de exploración son:

Si quieren saber mas de esta grandiosa herramienta pueden entrar a la pagina oficial

Ahora utilizaremos Advanced IP Scanner, que es una herramienta de exploración de redes multiproceso, fácil de usar, rápida y gratuita, la pueden descargar de aquí Ejecutamos la herramienta y se vera así:

Luego colocamos la IP de nuestro objetivo y haremos un escaneo en cierto rango, en este caso pondré desde 1-255(Esta herramienta me a sido de mucha utilidad para encontrar subdomoninios o servicios que antes otras herramientas no las habían detectado) y podemos ver que me a detectado algunos subdominios y donde están corriendo el servicio de Apache en cada una:

Ahora pasaremos a usar una herramienta muy conocida para muchos llamada nmap, que es usada para la exploración de redes y auditar su seguridad, es muy poderosa y muy fácil de aprender a usar, ademas es de código abierto. Veremos algunos comandos básicos, mas adelante estaré subiendo otros artículos realizando escaneos mas avanzados, algunos de sus comandos mas comunes son:

  • -sS (SYN nm): Suele ser el mas popular y se le conoce como sondeo medio abierto, porque no se llega a abrir una conexión TCP completa. Una coneccion TCP empieza con un three way handshake Se envía un paquete SYN (Bit de control dentro del segmento TCP), como si se fuera abrir una conexión real y después espera su respuesta, si recibe un paquete SYN/ACK el puerto esta en escucha(abierto), si recibe un RST(reset) significa que no hay nada escuchando en el puerto y si no recibe nada significa que el puerto esta filtrado. Ej:                    

  • -sT (Connect): Sondeo TCP (Protocolo de Control de Transmisión) Connect() es el sondeo TCP  por exclusión cuando no se puede utilizar el sondeo SYN (Esto sucede cuando no tenemos privilegios para enviar paquetes en crudo o cuando se sondean redes IPV6).  Nmap le pide al sistema operativo subyacente que establezcan una conexión con el sistema objetivo en el puerto indicado utilizando la llamada del sistema connect(), a diferencia de otros tipo de sondeo, que escriben paquetes a bajo nivel. Ej:

  • -sU (UDP Scan): Aunque la mayoría de servicios en Internet utilizan el protocolo TCP, los servicios UDP también son muy comunes. Como el sondeo UDP es mas lento y mas difícil que el TCP, los auditores de seguridad suelen ignorarlos, pero es un gran error, porque es muy frecuente encontrarse servicios UDP vulnerables. El sondeo UDP funciona mediante el envió (sin datos) de una cabecera UDP para cada puerto. Ej: 

  • -sX (Xmas Scan): Fija los bits de FIN, PSH, y URG flags, iluminando el paquete como si fuera un árbol de Navidad (cosa que podemos evidenciar, por ejemplo, con un sniffer de red
  • ). Atendiendo a la respuesta (o ausencia de ella), el atacante puede determinar el estado del puerto que está investigando de una forma realmente silenciosa, puesto que no inicia ninguna conexión (como los sondeos SYN, que inician un 3-way-handshake), y sorteando a veces filtros que no esperan este tipo de combinaciones en los flags.


Luego podemos empezar a ejecutar varios comandos como -sS -sV(Detecta las versiones de los servicios), -O (Detecta el sistema operativo) o si los puertos están filtrados podemos también utilizar comandos como -f, -D, --data-length, --spoof-mac pero esto los veremos mas a fondo en próximos artículos. También podemos ejecutar scripts que vienen con nmap para realizar ataques de fuerza bruta a diferentes servicios como por ejemplo: nmap --script ftp-brute -p21 <objetivo> o nmap --script smtp-brute -p25 <objetivo> (El comando -p lo usamos para escanear uno o varios puertos en especifico) entre otros, podemos también hacer escaneos de forma anonima pero como somos hackers éticos y tenemos permiso del gerente de la empresa que estamos atacando, no será necesario ;).

Ahora pasaremos a utilizar Nessus que es un herramienta muy poderosa de Cliente - Servidor, que nos ayudara a encontrar vulnerabilidades potencialmente buenas en aplicaciones web o en redes, la podemos descargar de su pagina oficial e instalar y configurar en el siguiente link
Después de haberlo instalada correctamente, tendremos esto en nuestro navegador:

Luego entramos a la sección de la parte superior izquierda que dice: Policies y luego en New Policy, en este caso seleccionaremos la opción Web Application Tests ponemos el nombre que le queramos dar y la visibilidad que queramos y le damos next,









viernes, 26 de septiembre de 2014

Que es un Firewall y un WAF

Un firewall es software o hardware que comprueba la información procedente de una red o de Internet que esta diseñada para bloquear acceso no autorizado ya sea de un equipo o de una determinada red, este permite cifrar, descifrar, limitar el trafico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios. Un ejemplo basico de como funciona un firewall:



Un firewall forma un tipo de barrera delante de nuestro equipo que examina todos los paquetes de información que tratan de pasar y luego decide cuales paquetes deben pasar y cuales deben ser bloqueados. Los tipos de firewall son:

  • Nivel de aplicación de pasarela   
  • Circuito a nivel de pasarela
  • Firewall de capa de red o de filtrado de paquetes
  • Firewall de capa de aplicación 
  • Firewall personal
Un firewall no es lo mismo que un antivirus, ya que el antivirus es una aplicación que esta dedicada a la búsqueda, detección y borrado de programas maliciosos en sistemas informáticos. 

Un WAF (Web Application Firewall) es un dispositivo, plugin de servidor o el filtro que se aplica a un conjunto de reglas a una conversación HTTP. En general, estas reglas cubren ataques comunes tales como cross-site-scripting (XSS) e inyección SQL (SQL injection).



 Mediante la personalización de las reglas para su aplicación, muchos ataques pueden ser identificados y bloqueados. El esfuerzo para llevar a cabo esta personalización puede ser significativo y debe ser mantenido como se modifica la aplicación.   

domingo, 6 de julio de 2014

Footprinting y reconocimiento del objetivo

El termino footprinting hace referencia a la tecnica de descubrir y recoger la mayor cantidad de información posible con respecto a una red de destino, bien porque haya sido publicada a propósito o por desconocimiento. El objetivo es extraer información relativa de la organización que incluye, pero  no se limita a:
  • Rangos de direcciones IP 
  • Información del registrador del dominio
  • Servidores internos 
  • Cuentas de correo de los usuarios
  • Nombres de las maquinas 
  • Tipo de firewall implementado
  • Tipos de acceso remoto utilizados (SSH o VPN)
  • Archivos (doc, xls, ppt, pdf, txt, etc)
  • Metadatos, etc
Empezaremos enviando un ping a nuestro objetivo con el fin de saber la dirección, estado, velocidad y calidad de la red. El comando ping envía paquetes ICMP (Internet Control Message Protocol) echo request (Peticion eco) a un host para recibir de él un echo replay (Respuesta eco). Durante este proceso de solicitud-respuesta se mide el tiempo en que se tardan en comunicarse y registra cualquier perdida de paquetes.

Abrimos nuestra terminal y escribimos el comando ping seguido del nombre del dominio y se vera algo como esto:

 Recibimos la dirección IP de malijet.com que es 188.121.60.146. Si quieren saber mas sobre el comando ping pueden entrar a  este link

También podemos hacerle un reverse IP al dominio para saber cuantos otros  dominios se encuentran alojados en el mismo servidor, esto nos puede ayudar mucho en el caso de que no seamos capaces de encontrar ninguna vulnerabilidad, entonces empezaríamos a atacar los otros dominios e intentar rootear el servidor o realizar otras técnicas de ataque que nos permitan acceso a todos los dominios del servidor y así lograr nuestro objetivo, la herramienta la pueden descargar o la pueden encontrar online en este link.


Ahora usaremos nslookup que es una herramienta de linea de comando para la administración de red disponible para muchos sistemas operativos para consultar el Domain Name System (DNS) con el fin de obtener el nombre del dominio, la asignación de direcciones IP o cualquier otro registro DNS especifico. Abrimos nuestra terminal escribimos nslookup y damos enter, luego escribimos set type=a (Nos permite obtener información de un host de la red) damos enter y ponemos el nombre de nuestro dominio, en este caso será malijet.com, damos enter y veremos algo como:

Ahora ponemos set type=mx (Permite obtener información relacionada con los servidores de correo de un dominio) y el nombre de nuestro dominio y obtendremos algo como:
Nos muestra que nuestro dominio tiene los servidores de correo con google que seria gmail. También pueden encontrar la herramienta online y ver todos los comandos que se pueden ejecutar para recolectar mas información, dejaremos hasta aquí para no extendernos tanto.

Podemos hacer un whois al dominio y estos nos servirá para encontrar nombres de host o dominio, incluyendo país, estado o provincia, nombre del proveedor de la red, el administrador y la información de contacto de soporte técnico, podemos encontrarla online en este link.

También podemos utilizar netcraft que nos permitirá analizar los subdominios de un determinado dominio, proporcionándonos datos como sus direcciones IP, servidores web, sistemas operativos, etc. Podemos encontrar el servicio online aquí.  



Otra técnica muy sutil es la de Hacking con buscadores esta se basa en filtrar información por medio de diferentes cadenas de caracteres en los diferentes buscadores de la World Wide Web. Ademas podemos encontrar otras aplicaciones con agujeros de seguridad en la configuración y código informático que utilizan. (Ningún buscador es mejor que otro, simplemente son buscadores con diferentes características las cuales aprovechamos para investigar y buscar vulnerabilidades) En este caso usaremos el mas popular que es google.

Muchas webs tienen un archivo llamado robots.txt este archivo ayuda a la webs a evitar que los buscadores indexen directorios o otro contenido que no tendríamos que ver. Por ejemplo la url http://www.google.com/robots.txt. Encontramos un archivo en texto plano  donde nos muestra el User-agent* que indica que este archivo sea reconocido para todos los buscadores, después tenemos el Disallow: / que evita la indexacion de una carpeta o archivo, en este caso no indexara los contenidos del directorio search, sdch, groups, etc.


Google también nos da la posibilidad de  utilizar ciertos operadores que son los que realmente necesitaremos, algunos de ellos son: 


Entonces si queremos ver archivos log de un sitio con extensión .gov.co quedaría site:gov.co filetype:log y el resultado seria algo como:  

También podemos hacer búsquedas para buscar si hay vulnerabilidades de tipo SQL realizando consultas como: site:dominio.com inurl:index.php?id= y después empezaríamos a testear ya con otras herramientas. Podemos buscar hojas de vida escribiendo: site:dominio.com filetype:pdf "Hoja de vida" utilizando estos y muchos mas operadores se pueden encontrar grandes cosas. Si quieren aprender mucho mas sobre Hacking con buscadores pueden ver este pdf de hackxcrack. También les recomiendo que busquen con muchisimos mas dorks que les será de mucha utilidad, pueden entrar a http://www.exploit-db.com/google-dorks/ y ver todos los dorks que allí se encuentran.

Una herramienta muy buena a la hora de hacer footprinting es la famosa FOCA desarrollada por informatica64 que lo que hace es hacking con buscadores para encontrar archivos ofimaticos y luego extraerle sus metadatos y encontrar información importante de los sistemas de nuestra web que queremos atacar. Ejecutamos la FOCA damos click en la pestaña de la parte superior izquiera de la ventada que dice project luego le damos en New project, escribimos el nombre del proyecto luego el nombre del dominio, escogemos la carpeta en donde queremos que se guarden nuestros archivos y le damos en create.


Luego seleccionamos en todas las extensiones que aparecen en el cuadro de la parte superior derecha y le damos en Search All esperamos a que se extraigan todos los archivos y luego damos click derecho en cualquier archivo, seleccionamos la opción Download all esperamos a que descargien los archivos y por ultimo volvemos dar click derecho y seleccionamos la opcion Extract all meatada y ya podemos empezar a analizar todos los metadatos de todos los archivos. Si quieren aprender mas sobre la FOCA les recomiendo el articulo de Chema Alonso en http://www.elladodelmal.com/2010/09/hacking-foca-3-de-3.html.

Para consultar el banner de la web que estamos atacando, abriremos un terminal y haremos un conexión telnet seguida del nombre del dominio y por el puerto 80 y luego pondremos GET / HTTP/1.0 y tendremos un resultado similar a este:  


Nos podemos dar cuenta que esta corriendo un Oracle Application Server con su versión respectiva que en primera instancia debemos pasar a buscar por Internet si hay exploits disponibles para esa versión y luego continuar con la explotación. (Esto es muy importante a la hora de realizar esta fase del pentest, encontrar servicios que están desactualizados pueden ser un muy bien vector de ataque para poder lograr  nuestra intrusión)

Y por ultimo vamos a intentar realizar una transferencia de zona que se refiere al proceso por el que se copia el contenido de un archivo de zona DNS de un servidor DNS principal a un servidor DNS secundario, este se produce por las siguientes razones:
  • Al iniciar el servicio DNS con el servidor DNS secundario 
  • Cuando expira el tiempo de actualización 
  • Cuando los cambios se guardan en el archivo de zona primaria y hay una lista de notificacion
  • Cuando el atacante lo provoca
Para empezar abrimos nuestra terminal y escribimos el comando dig NS dominio.com y el resultado sera algo así:

Ahí nos muestra los nombres de los DNS y luego para comprobar si se puede realizar la transferencia de zona ejecutamos el comando dig AXFR dominio.edu.co @vulcano.dominio.edu.co 

Y voilá, pudimos hacer la transferencia de zona, aunque esto no es algo tan común que suele suceder en las webs hoy en día.

Hasta aquí este articulo, pueden seguir consultando en Internet que otros ataques y herramientas pueden ser útiles al momento de realizar footprinting, espero que les haya gustado y #happyhacking ;)