Sunteți pe pagina 1din 10

Cmo realizar un Penetration Test?

02/06/2011

www.portantier.com

Introduccin
Como todos los trabajos, ser un profesional de la seguridad informtica tiene sus partes divertidas y sus partes aburridas y uno de las temas ms entretenidos es el de realizar pruebas de intrusin, o Penetration Tests que consisten, bsicamente, en hacer lo que hara una persona que quisiera atacar los sistemas de la organizacin para la cual hacemos el trabajo.

Un poco de burocracia
Lo ms importante: este tipo de trabajos debe realizarse slo bajo el consentimiento escrito de los propietarios de los sistemas sobre los cuales vamos a realizar las pruebas. Esto es importante tanto para el atacante como para el atacado. Tenemos que definir exactamente qu sistemas vamos a atacar y con qu propsitos (si buscamos destruir, robar, modificar). Definir las horas en las cuales vamos a realizar los ataques y hasta dnde vamos a llegar. Es decir, si vamos a buscar vulnerabilidades que podran ser explotadas, o si directamente vamos a explotarlas para verificar si realmente eran vulnerabilidades. Todas estas cosas deben ser aclaradas de antemano, con el fin de que nuestro cliente no se lleve una sorpresa desagradable al ver daos inesperados en su infraestructura tecnolgica y que nosotros no nos llevemos la desagradable sorpresa de un cliente molesto y varias demandas en nuestra contra. Ms adentrados en la parte tcnica, veremos que hay dos formas de clasificar a un Penetration Test: - Si es externo o interno. Bsicamente indica dnde vamos a estar parados al realizar las pruebas. Dentro de la red interna, o fuera de la red (generalmente, a travs de internet).

- Si contamos con informacin de los sistemas que vamos a atacar. De ser as, se los denomina White-Box. De no contar con informacin acerca de los sistemas, estamos ante un Black-Box. Entre las White y las Black existen algunos intermedios, pero no son tan comunes. Una vez definido esto, empezaremos a realizar las pruebas sobre los sistemas en cuestin. Para el caso de estos ejemplos, vamos a hablar de un penetration test del tipo Black-Box Externo (atacando desde internet, y slo conociendo el nombre de la empresa que queremos atacar). NOTA: En los siguientes ejemplos vamos a utilizar nombre de compaas ficticias y direcciones IP invlidas para proteger la privacidad de las empresas analizadas.

Paso1: Recolectamos informacin


En este paso vamos a ser una especie de detectives, con la misin de conseguir toda la informacin posible acerca de la organizacin que vamos a atacar. La organizacin que nos ha contratado para este trabajo se llama Sin Nombre S.A., as que lo primero que vamos a hacer ser escribir eso en nuestro buscador favorito (en mi caso, Google). Es muy probable que, dentro de los primeros resultados, veamos el sitio web de la empresa en cuestin. Tomaremos nota de la direccin para visitarla luego. Como el nombre del sitio es www.sinnombre.com.ar, podemos buscar la informacin correspondiente al registro de ese dominio en el sitio web de nic.ar (www.nic.ar), el cual va a mostrarnos informacin como: - Nombre de la entidad registrante (persona fsica o jurdica) - Direccin, telfono, etc. - Mismos datos del contacto tcnico

- Datos de los servidores DNS para ese dominio Adems, utilizando los buscadores de internet, tambin podremos encontrar documentos de la organizacin, informacin de los empleados, datos privados, etc. Pero se es tema para otro artculo, que podramos llamar Google Hacking (Si no quieren esperar a que tenga tiempo de escribir dicho artculo, pueden buscar el trmino en internet, incluso existen libros acerca de ese tema ). Vamos a utilizar los datos obtenidos de las consultas al dominio, para buscar todos los recursos accesibles a travs de internet. Lo primero que podemos hacer es utilizar el comando dig para obtener la informacin acerca de los servidores DNS asociados a dicho dominio. Por ejemplo: fabian@debian:~$ dig sinnombre.com.ar NS ; <<>> DiG 9.7.3 <<>> sinnombre.com.ar NS ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58741 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;sinnombre.com.ar. IN ;; ANSWER SECTION: sinnombre.com.ar. 576 sinnombre.com.ar. 576

NS

IN IN

NS NS

ns1.sinnombre.com.ar. ns2.sinnombre.com.ar.

;; Query time: 13 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Wed Jun 1 22:23:59 2011

;; MSG SIZE rcvd: 68 De aqu podemos ver que los servidores ns1.sinnombre.com.ar y ns2.sinnombre.com.ar son los encargados de los DNS de este dominio. Ya con esto podemos utilizar el comando fpdns para obtener ms informacin acerca de cada uno de ellos: fabian@debian:~$ fpdns ns1.sinnombre.com.ar fingerprint (ns1.sinnombre.com.ar, 123.123.123.123): Microsoft Windows DNS 2003 Con esto ya sabemos que el servidor DNS es un Windows 2003 Server. Lo cual es un dato no menor. Vamos a guardar los datos del equipo en nuestra lista de activos a analizar. Nuestro siguiente paso ser volver a utilizar el comando dig, esta vez para averiguar los servidores de correo, as: fabian@debian: ~$ dig sinnombre.com.ar MX De aqu vamos a hacer un anlisis similar al de la consulta anterior, y guardaremos los registros MX que asocian a cada servidor de correo. En este caso SIN NOMBRE S.A. utiliza un nico servidor: mx.sinnombre.com.ar Ahora podemos analizar el servidor de correo (SMTP), con el siguiente comando: fabian@debian:~$ telnet mx.sinnombre.com.ar 25 Trying 111.222.111.222 Connected to mx.sinnombre.com.ar. Escape character is ^]. 220 mx.sinnombre.com.ar ESMTP MDaemon 10.0.0; Wed, 01 Jun 2011

22:32:29 -0300 Rpidamente podemos observar el tipo de servidor de correo y su versin (MDaemon 10.0.0). Tambin tenemos que guardar estos datos en nuestra lista de activos analizados. Lo que debemos hacer ahora es buscar en el sitio web del fabricante del software SMTP (www.altn.com) cul es la ltima versin de este software. Al da 01/06/2011, la ltima versin es la 12. As que en el caso de SIN NOMBRE S.A. el software est muy desactualizado. Esto, de por s, ya puede considerarse una falla de seguridad. Pero, para ir ms all de esto, podemos buscar en internet cules son las vulnerabilidades existentes en MDaemon 10.0.0 Por ejemplo, en el sitio web de Tenable podemos encontrar el siguiente reporte: http://www.nessus.org/plugins/index.php?view=single&id=34849 Este reporte indica una vulnerabilidad explotable en las versiones anteriores a la 10.0.2, as podemos ir armando el listado de posibles vulnerabilidades a los sistemas de la empresa analizada. En estos casos debemos recordar siempre que si vamos a utilizar exploits que han sido desarrollados por desconocidos, debemos verificar exactamente qu hace el cdigo o, por lo menos, hacer pruebas en servidores que no sean productivos. Tambin podemos probar rpidamente si los servidores de correo tienen abiertos los puertos 110 (POP3) e IMAP (143), directamente haciendo telnet a estos puertos. Como el SMTP es un MDaemon, que tiene todo el paquete integrado de webmail, POP3, IMAP y SMTP, podemos estar casi seguros de que vamos a encontrar estos servicios tambin en la versin 10.0.0, y slo ser cuestin de investigar a travs de internet cules son las vulnerabilidades

conocidas para estos servicios. Ahora que ya tenemos la informacin acerca de los servidores DNS y SMTP, podemos pasar a analizar los servidores web. Como el servidor web es www.sinnombre.com.ar, vamos a hacer un telnet al puerto 80 para obtener alguna que otra informacin bsica: fabian@debian:~$ telnet www.sinnombre.com.ar 80 Trying 112.112.112.112 Connected to www.sinnombre.com.ar Escape character is ^]. HEAD / HTTP/1.0 HTTP/1.1 200 OK Server: Apache/2.0.59 Content-Type: text/html; charset=UTF-8 Date: Thu, 02 Jun 2011 01:54:34 GMT Keep-Alive: timeout=5, max=100 Accept-Ranges: bytes Connection: close Set-Cookie: X-Mapping-fiodmlao=0BF0CD86ED36BA7FDA6B0F9FBB6640F2; path=/ Last-Modified: Tue, 24 Nov 2009 22:52:54 GMT Content-Length: 201 Connection closed by foreign host. Aqu podemos ver la informacin bsica del servidor web (Apache 2.0.59). Para obtener informacin ms detallada acerca del mismo, es una excelente idea utilizar herramientas especializadas, como nikto, as: fabian@debian:~$ nikto -host www.sinnombre.com.ar

Se nos ha devuelto la siguiente informacin: + robots.txt contains 6 entries which should be manually viewed. + Allowed HTTP Methods: GET, HEAD, POST, OPTIONS, TRACE + OSVDB-877: HTTP TRACE method is active, suggesting the host is vulnerable to XST + Retrieved X-Powered-By header: PHP/5.1.6 + ETag header found on server, inode: 606154, size: 121, mtime: 0x26d3b100 + Apache/2.0.59 appears to be outdated (current is at least Apache/2.2.14). Apache 1.3.41 and 2.0.63 are also current. Con lo cual, podemos determinar que nuestro siguientes pasos sern: - Analizar el archivo robots.txt y buscar anormalidades - Verificar si se podra explotar el mtodo TRACE para atacar el servidor - Buscar vulnerabilidades en la versin de PHP instalada (5.1.6) - Buscar vulnerabilidades en la versin de Apache instalada (2.0.59) Tambin podemos utilizar la herramienta nmap para obtener ms informacin del servidor, as: (utilizando sudo, porque las pruebas -O y -sV necesitan permisos de root) fabian@debian:~$ sudo nmap -O -sV www.sinnombre.com.ar Starting Nmap 5.00 ( http://nmap.org ) at 2011-06-01 23:01 ART Interesting ports on www.sinnombre.com.ar: Not shown: 992 filtered ports PORT STATE SERVICE VERSION 20/tcp closed ftp-data 21/tcp open ftp ProFTPD 1.3.1 25/tcp closed smtp 53/tcp closed domain 80/tcp open http Apache httpd 2.0.59 ((CentOS)) 110/tcp closed pop3

443/tcp open ssl/http Apache httpd 2.0.59 ((CentOS)) 8080/tcp closed http-proxy De este reporte podemos ver que, adems de estar corriendo un servidor Apache 2.0.59, el sistema operativo es un CentOS Linux. Con lo cual, podemos ver que la empresa utiliza tanto servidores Windows como Linux. Otro dato interesante que podamos ver en el reporte es que, adems, est disponible el servicio FTP (ProFTPD 1.3.1), as que podemos iniciar pruebas contra ese servicio y buscar en internet cules la ltima versin del software ProFTPD y si existen vulnerabilidades que afecten a la versin 1.3.1 . Las pruebas con nmap tambin podemos hacerlas contra los servidores DNS y SMTP, para recabar ms datos an. Y tener ms informacin para encontrar vulnerabilidades asociadas al software de cada equipo. Con todos estos datos ya podemos armar un buen mapa de los servicios bsicos que est brindando SIN NOMBRE S.A. En base a esto vamos a poder obtener algunos otros datos adicionales, con algunas herramientas como Nessus, OpenVAS, Metasploit.

Sobre Portantier Information Security


Portantier Information Security es una consultora que nace en el ao 2010, de la mano de Fabian Portantier y tiene como objetivo principal brindar servicios exclusivos de seguridad, como auditora, consultora y capacitaciones. Normalmente publicamos documentos de inters, noticias, recomendaciones y herramientas. Para ms informacin, visite: www.portantier.com No dude en comunicarse con nosotros por cualquier duda, consulta o solicitud de servicios. Estamos para ayudarle.

Fabian Portantier

www.portantier.com

S-ar putea să vă placă și