Académique Documents
Professionnel Documents
Culture Documents
y sus partes aburridas y uno de las temas ms entretenidos es el de realizar pruebas de intrusin, o Penetration Tests que consisten, bsicamente, e n hacer lo que hara una persona que quisiera atacar los sistemas de la organizacin para la cual hacemos el trabajo. En los prximos artculos voy a dar varios consejos acerca de cmo debe realizarse un Penetration Test de manera profesional. Primero que nada, veremos algunos temas burocrticos que deberemos respetar antes de empezar a trabajar en un Penetration Test. Un poco de burocracia hacker 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 l as 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 b uscamos destruir, robar, modificar). Definir las horas en las cuales vamos a rea lizar los ataques y hasta dnde vamos a llegar. Es decir, si vamos a buscar vulner abilidades 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 cli ente no se lleve una sorpresa desagradable al ver daos inesperados en su infraest ructura 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 Pe netration 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 d e 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 de l 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 di recciones 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 (e n mi caso, Google). Es muy probable que, dentro de los primeros resultados, veamos el sitio web de l a 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 co
rrespondiente 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 t ema para otro artculo, que podramos llamar Google Hacking (Si no quieren esperar a q ue tenga tiempo de escribir dicho artculo, pueden buscar el trmino en internet, in cluso existen libros acerca de ese tema). Con estos datos vamos a poder empezar a trabajar en niveles ms tcnicos (y ms entret enidos), que vamos a analizar en los prximos artculos. Nos vemos en la prxima entrega! Penetration Test - Parte II Como vimos en el artculo anterior, antes de empezar a trabajar debemos considerar los temas burocrticos. Una vez hecho esto, podemos empezar a obtener informacin a cerca de la empresa analizada. Vamos a utilizar los datos obtenidos de las consultas al dominio, para buscar to dos 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. ;; ANSWER SECTION: sinnombre.com.ar. sinnombre.com.ar. 576 576 IN IN IN NS 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 c ada 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 r 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 analizad os. 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 lt ima versin es la 12. As que en el caso de SIN NOMBRE S.A. el software est muy desac tualizado. 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 si stemas 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 cdi go o, por lo menos, hacer pruebas en servidores que no sean productivos. dig , esta vez para averigua
Tambin podemos probar rpidamente si los servidores de correo tienen abiertos los p uertos 110 (POP3) e IMAP (143), directamente haciendo telnet a estos puertos. Co mo 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. Ms adelante haremos escaneos ms avanzados con otras herramientas. Ahora que ya tenemos la informacin acerca de los servidores DNS y SMTP, podemos p asar a analizar los servidores web. Pero eso ser material para un prximo artculo.
Nos vemos en la prxima entrega! Ahora es el turno de cerrar esta clase magistral sobre Penetration Test y por es o analizaremos 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 herramien tas 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 X ST + 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). Apac he 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 emp resa utiliza tanto servidores Windows como Linux. Otro dato interesante que podamos ver en el reporte es que, adems, est disponible e l servicio FTP (ProFTPD 1.3.1), as que podemos iniciar pruebas contra ese servici o y buscar en internet cules la ltima versin del software ProFTPD y si existen vuln erabilidades que afecten a la versin 1.3.1 . Las pruebas con nmap tambin podemos hacerlas contra los servidores DNS y SMTP, pa ra recabar ms datos an. Y tener ms informacin para encontrar vulnerabilidades asocia das al software de cada equipo. Con todos estos datos ya podemos armar un buen mapa de los servicios bsicos que e st brindando SIN NOMBRE S.A. En base a esto vamos a poder obtener algunos otros d atos adicionales, con algunas herramientas como Nessus, OpenVAS, Metasploit y ot ras que veremos en otros artculos. En la prxima entrega vamos a analizar cuestiones de arquitectura de red de la emp resa, e intentaremos obtener datos acerca de los routers y las direcciones ip qu e utiliza. Nos vemos en la prxima entrega!