martes, febrero 27, 2007

Test de Intrusión (I de VI)

****************************************************************************************
Artículo Publicado en PCWorld Abril 2007
- Test de intrusión [I de VI]
- Test de intrusión [II de VI]
- Test de intrusión [III de VI]
- Test de intrusión [IV de VI]
- Test de intrusión [V de VI]
- Test de intrusión [VI de VI]
****************************************************************************************
Es guay, que te paguen por romper cristales es mejor a que te paguen por arreglarlos. Este es un chiste que he hecho mil veces porque realmente lo siento así. Los tests de Intrusión o test de penetración (pentests) son divertidos, muy divertidos diría yo. En este artículo quería hablaros de los pasos para llevar a cabo un test de penetración en una empresa. Aunque a grandes rasgos los tests de penetración son todos similares es cierto que cada uno tiene su arte y su punto fuerte, y eso es lo que otorga el valor añadido a las distintas empresas que nos dedicamos a esto.

Auditoría de caja Negra

Los tests de penetración no llegan a ser una auditoría ya que estas deben ser exhaustivas en extensión y profundidad, es decir, deben evaluar todos los riesgos, todos los “caminos” y evaluar el nivel de criticidad de cada uno de ellos. Un pentest es encontrar un camino para resolver el sudoku. Lo cierto es que cuando se realiza un test de intrusión al final sale casi todo, incluido, lo que es más importante, las malas prácticas de configuración, implantación o desarrollo, pero hay que dejar clara la diferencia entre una auditoría y un test de intrusión.

Cuando se realiza una auditoría de seguridad estas serán distintas si se realizan desde dentro de la red con una cuenta poco privilegiada, desde Internet sin ninguna credencial o desde dentro con los privilegios del propio administrador. Se deben realizar todas, no es que una sea mejor que otra, todas se complementan y dan distinta información. Las que se realizan desde fuera y sin ninguna credencial se llaman auditorias de caja negra, mientras que las que las que se realizan desde dentro se llaman auditorías de caja blanca.

Podríamos decir que un test de intrusión es una auditoría de caja negra y la diferencia será si se buscan todos los caminos o solo se busca justificar la necesidad de una auditoría de seguridad en profundidad. Sí, aunque parezca extraño en muchas compañías a día de hoy aun hay que justificar la necesidad de una auditoría de seguridad. Porque… ¿a quien le importa si mañana en la Web ponen un graffiti o si los datos de la base de datos han sido cambiados parcialmente durante los últimos tres meses y no podemos recuperar ninguna copia de bases de datos porque no tenemos garantía de que ninguna sea fiable?

¡Agazápate! Comienza la fiesta

En primer lugar debes elegir el punto de ejecución del test, como ya hemos visto antes, a lo mejor queremos realizar una auditoría simulando que somos un usuario externo o tal vez, pensemos que el enemigo es un cliente remoto o pueda ser un trabajador interno. ¿Quién sabe? ¿O no? Elegimos el punto de ejecución y empieza la campaña. Para ello empezamos por la fases de “combate”.

Elección de objetivos

Hay que buscar donde puede haber una puerta para entrar dentro y hacer…¡ya se verá! Aun es pronto, no nos ponemos objetivos, se va conquistando poco a poco el enemigo. Para ello vamos a analizar los activos de la empresa expuestos a nuestro punto de ejecución. Es decir, desde donde estamos que servicios y/o servidores están en nuestra linea de tiro. Servidores web, servidores de conexiones VPN, el servidor de correo, de ficheros, el dns, etc…. Inventariamos los activos a testear y empezamos la segunda fase.

Recogida de Información

¿Qué nos interesa? TODO. Toda información que se pueda conseguir es útil, siento decir esto pero hasta la información sobre las personas que operan y o trabajan en la empresa directa o indirectamente con los sistemas es útil. Para ello realizamos dos batidas de recogida de información distintas utilizando dos filosofías diferentes. En primer lugar vamos a recoger toda la información que sea pública de la empresa y de los objetivos. Es pública, así que recojámosla y aprendamos todo lo que podamos de ellos. Las herramientas que utilizamos son herramientas de Footprinting o de seguimiento de rastros de huellas.

Footprinting

Las herramientas que vamos a utilizar son sencillas públicas y “legales” es decir, aún no necesitaríamos un documento de Exoneración de Responsabilidades que nos autorice a realizar el test, con lo que si quieres probar puedes hacerlo con quien desees solo por practicar.

Para conocer la información de la empresa empezamos por consultar al servidor DNS para ver que servidores tiene registrados con que servicios. Normalmente vamos a sacar las Direcciones IP de los servidores DNS, de los servidores Web, de los servidores de correo y … todo lo que se pueda. Para hacer esta parte yo uso el propio Nslookup que viene en el sistema y con sencillos comandos podemos sacar toda esta información.

Nslookup

Cuando entramos en el interfaz de comandos de nslookup estamos realizando consultas directamente contra el servidor de DNS que tenemos configurado en nuestra máquina, así que lo primero es averiguar cual es el servidor de dns de nuestro objetivo y preguntarle a él. Para ello elegimos el tipo de registro que queremos consultar con el comando set type. Para sacar los servidores dns: set type=ns; Para los hosts: set type=a; para los intercambiadores de correo: set type=mx, etc….

Una vez elegido el tipo se realiza la petición de resolución con el dominio que se quiere consultar y nos devuelve las Direcciones IP de los servidores DNS primario y secundario. Así que cuando sepamos cuales son, configuramos a esos servidores como los receptores de nuestras consultas con el comando: Server IP y una vez que estemos allí sacamos toda la información pública que tengamos. Si el DNS está mal configurado nos permitirá dos cosas que nunca se deben permitir, la transferencia de zonas y el listado de todos los registros. Para ello basta conectarse al servidor de dns y desde nslookup realizar una sencilla prueba con el comando ls nombre_de_dominio. Si cuela, nos volcará toda la información de la zona por pantalla. Y preguntando al registro SOA de la Zona DNS podremos saber cual es el correo del responsable del dns y lo más probable webmaster.

De la información que extraigamos de aquí podremos saber cosas como si los servidores están en hosting, housing o los tiene la compañía, si tienen servicios de respaldo externos, si el administrador es cuidadoso y detallista o no. Pensad que el proceso de ataque puede depender de estos pequeños detalles. Imaginemos un servicio web de una empresa que está en hosting, si compramos un domino en el mismo proveedor tendremos acceso al mismo servidor de nuestro objetivo por poco más de 100 pavos al año y atacar a un compañero de hosting ofrece la posibilidad de un nuevo camino digno de explorar.

En este ejemplo con la empresa, elegida al azar, t2v.com nos encontramos con que los servidores los tienen ellos en propiedad, se puede hacer “ls” del dominio y permite ver la lista de todos los servidores que tiene y la IP interna de un servidor muy, muy significativo, que se llama bd (Base de Datos?) con un direccionamiento 192.168.1.1. Curisoso.


Imagen 1: Nslookup


Tracea y Posiciona

Una vez que se tienen los objetivos iniciales marcados con direcciones IPs lo siguiente es situarlos en la red y geográficamente, puede darnos alguna información curiosa. Herramientas como tracert o Visualroute nos va a permitir averiguar cual es la ubicación física y quienes son sus proveedores de acceso a Internet.


Imagen 2: Tracert visual de http://visualroute.visualware.com


En el apreciamos las redes que le conectan, en este caso con usa, pero podemos ver quien es su proveedor de servicios de Internet. Supercable (que daba servicio a Andalucía), luego AUNA, y ahora ONO. Telcos, je.

Whois

Cuando una empresa registra un dominio en Internet debe rellenar una serie de datos en el registrador que deben estar en una base de datos de información que se llama Whois. La información que se registra en esta base de datos puede protegerse parcialmente hablando con el registrador, pero por defecto toda ella es pública. Cada registrador ofrece unas herramientas de acceso a la base de datos whois para que cualquiera pueda consultarla.


Imagen 3: Información que nos ofrece sobre el dominio www.t2v.com a través del acceso a la base de datos whois de http://www.chatox.com


Arañas de Internet

Usa la información que ya han recogido las arañas y aprende a sacarle partido a las bases de datos sobre las sitios que tienen nuestros amigos los buscadores. Existe una base de datos que se llama Google Hacking Database (GHD) que tiene catalogadas en distintas categorías cadenas de búsqueda para usar en google para sacar información para hacking de empresas a través de las bases de datos del buscador google. Hay una sección que me encanta se llama “Passwords” y la explicación que dan en la propia base de datos sobre esa categoría es: “FOR THE LOVE OF GOD, GOOGLE FINDS PASSWORDS”. Aprende a rebuscar en google/msn search para seguir los pasos de la empresa y de los administradores, te sorprendería lo que puede hacer un administrador de una empresa con sus correos corporativos.


Imagen 4: Google Hacking Database (GHDB) http://johnny.ihackstuff.com

****************************************************************************************
Artículo Publicado en PCWorld Abril 2007
- Test de intrusión [I de VI]
- Test de intrusión [II de VI]
- Test de intrusión [III de VI]
- Test de intrusión [IV de VI]
- Test de intrusión [V de VI]
- Test de intrusión [VI de VI]
****************************************************************************************

10 comentarios:

  1. Queremos el II, queremos el II. ^^
    Buena recopilación, creo que hasta para al más ingenuo le quedará claro; muy currado tío. Espero que todo el que lo lea no lo use con mal fin y sea ético :p

    ResponderEliminar
  2. muy bien detallado, esperamos el II

    salu2

    ResponderEliminar
  3. Genial!!! Muy bien explicado y muy buenos los ejemplos, esperando el II. Por cierto que paso con la serie secretos en red? tenia muy buena pinta y creo que solo has publicado 2 entregas.

    ResponderEliminar
  4. Yeah!
    Esto si es un post de verdad! Con ejemplos, capturillas y detalles, si señor.

    Dale más caña :)

    ResponderEliminar
  5. ¿Quién firma este blog? Este artículo es el mismo que publica PC-World en su número de febrero 2007

    ResponderEliminar
  6. Pues sí, es el mismo autor... pensé que era un "clonner" ;-)

    ResponderEliminar
  7. Uso gnu/linux y cuando utilizo ls en la consola me dice que no esta implementado dicho comando,sabes como puedo solucionarlo??En el manual, aparece,pero sin descripsion alguna.

    ResponderEliminar
  8. @anónimo, si no te funciona el "ls" puede ser por muchas opciones, algunas de ellas "poco divertidas". Comprueba todas las variables de entorno que tienes con env.

    ResponderEliminar
  9. Muy buen post..! muchas gracias!

    ResponderEliminar