solucionario de ice i
TRANSCRIPT
Solucionario de De-Ice I
De-Ice es un entorno virtualizado de un sistema, creado para pruebas de penetración cuyo fin u objetivo
es lograr escanear las vulnerabilidades que pueda tener, explotarlas, escalar privilegios y obtenerinformación existente en ese sistema.
Que se necesita
BackTrack 4 o superior (a la fecha BackTrack 5 R3)
de-ice.net-1.100-1.0.iso
Diccionarios (Usuarios y Contraseñas)
Escenario
Un CEO de una pequeña empresa que ha sido presionado por el Comité Administrativo para ser objetode un Test de Penetración a realizarse desde la empresa. El Director General afirma que su empresa es
segura, cree además de que este Test de Penetración será un enorme desperdicio de dinero, sobre todoporque ya tiene una solución de exploración (escaneo) de vulnerabilidades (Nessus).
Para hacer �felices� a los del Comité Administrativo, él decide contratarlo a usted y le da un plazo de 5
días para realizar el trabajo, pues como se mencionó él no cree que la empresa sea vulnerable acualquier intento de acceso no autorizado.
Su tarea es analizar solo un servidor en el cual se aloja una página Web que ofrece información de
contacto de la misma.
El Director General espera que usted intente con todos los tipos de ataques que estén a su disposición,pues está seguro de que usted no podrá vulnerar el sistema y obtener acceso.
Ficha Técnica
Categoría Fundamentación / Test de Penetración
Nivel de dificultad Bajo
Formato .ISO
Objetivos / Técnicas Mapeo de Red / O.S Fingerprint / Escaneo de Puertos / Identificación deServicios / Escaneo de Vulnerabilidades / Identificación y Análisis de
Vulnerabilidades / Explotación de Vulnerabilidades / Escalada dePrivilegios / Extracción de Información Confidencial.
Herramientas / Recursos OSSTMM / Nmap / Xhydra / Netcat / Medusa / NetDiscover / Nessus
Configuración Este entorno esta configurado para que de manera automática obtenga la
dirección IP 192.168.1.100. El router/tarjeta de red virtual/física debetener DHCP activo, la dirección de inicio debe ser 192.168.1.2 y la
máscara de subred 255.255.255.0
Configuración de De-Ice I en VMware Workstation
Para llevar a cabo el test de penetración, primero se debe realzar la configuración del entorno en elVmware Workstation, para lo cual se agotaran los siguientes pasos:
1. Se deberá crear y configurar una interfaz de red virtual, que permita conectar las maquinas virtuales
a una subnet con los siguientes datos:
a) Nombre Interfaz: vmnet2 b) IP de red: 192.168.1.0
c) Mascara: 255.255.255.0 d) DHCP: Activado
e) NAT: Activado
2. Descargar desde el repositorio creado para el Curso de Avance de Seguridad Informática, la imagen
del disco (.iso) del De-Ice-I, el cual se encuentra disponible en uno de los siguientes links:
ftp://190.128.18.67/repositorio/cursos_avance/seguridad_informatica/entornos_pentesting/Sec-Track/De-Ice-I/iso/de-ice.net-1.100-1.1.iso
http://190.128.18.67/repositorio/cursos_avance/seguridad_informatica/entornos_pentesting/Sec-
Track/De-Ice-I/iso/de-ice.net-1.100-1.1.iso
Ilustración 1: Configuracion de interfaz de red virtual
3. Crear una maquina virtual en VMware WorkStation a partir de la imagen del disco (.iso) descargadaen el punto anterior, con la configuracion que se visualiza en la siguiente imagen:
4. Se inician las maquinas virtuales correspondientes a De-Ice-I que es nuestro objetivo para el test depenetración y el BackTrack que es nuestra herramienta para realizar las pruebas..
Desarrollo de la Prueba de Penetración
Ilustración 2: Configuracion de maquina virtual De-Ice
Una vez configurado todo el entorno virtual, se procede a realiza las actividades propias del la prueba
de penetración desde la maquina virtual de BackTrack, así:
Mapeo de la red
Se inicia con un escaneo de las IP que se encuentran dentro del rango configurado para la subred, es
decir, se realiza un barrido de IP's para saber cuáles están activas, lo que indica que equipos estánencendidos.
Para ello, haremos uso de la herramienta llamada Nmap, la cual nos permitir'a hacer este proceso y
muchos otros que veremos el el desarrollo del pentesting.
Comando:
# nmap -n 192.168.1.1-255
Este comando permite escanear el rango de IP's desde la 192.168.1.1 hasta la 192.168.1.255
Ilustración 3: Escaneo de IP's con Nmap
Este comando arroja como resultado la lista de IP's activas, entre las cuales aparece la de nuestro
objetivo principal, la IP 192.168.1.100.
Ahora que conocemos la IP del objetivo, se debe realizar el siguiente paso, conocer los servicios ypuertos que tiene abiertos la maquina objetivo.
Escaneo de Puertos e Identificación de Servicios y Vulnerabilidades
El fingerprint hace referencia a la obtención de las firmas de los servicios que se encuentran activos,especificando el nombre del servicio, la versión, etc.
En este caso realizaremos el procedimiento utilizando igualmente la herramienta Nmap:
Comando:
# nmap -n -sS -sV -O 192.168.1.100
Parámetros:
-n (No realizar resolución de nombres) Le indica a Nmap que nunca debe realizar resolución DNS inversa de las direcciones IP activas
que encuentre. Ya que DNS es generalmente lento, esto acelera un poco las cosas.
-sS (sondeo TCP SYN)
El sondeo SYN es el utilizado por omisión y el más popular por buenas razones. Puederealizarse rápidamente, sondeando miles de puertos por segundo en una red rápida en la que
no existan cortafuegos. El sondeo SYN es relativamente sigiloso y poco molesto, ya que nollega a completar las conexiones TCP.
-sV (Detección de versiones) Activa la detección de versiones como se ha descrito previamente. Puede utilizar la opción -A
en su lugar para activar tanto la detección de versiones como la detección de sistemaoperativo.
-O (Activa la detección de sistema operativo) Tal y como se indica previamente, activa la detección de sistema operativo. También se puede
utilizar la opción -A para activar la detección de sistema operativo y de versiones.
El resultado de la ejecución de este comando es la que visualiza en la imagen siguiente.
Como del escaneo de puertos anterior, se puede evidenciar que aparte de que tiene servicios abiertoscomo el FTP, SSH, también existen dos que llaman mucho la atención, HTTP y HTTPS, los cuales
indican que tiene un servidor web corriendo en la maquina y por ende existe una pagina web quepodemos visitar para ver si hay información que nos pueda servir allí.
Para lo anterior, abrimos un navegador web, en el caso de Backtrack, debemos abrir el Firefox e
ingresamos la IP de la maquina objetivo (192.168.1.100).
En ocasiones, los administradores de los sitios web no se percatan de la importancia de la informaciónque revelan a través de sus contenidos web, por este motivo vamos a revisar la pagina del sitio objetivo
y trataremos de recaudar la mayor información posible que se encuentre disponible.
Si nos fijamos bien, encontramos información valiosa que de alguna manera nos puede ayudar a
Ilustración 4: Escaneo de puertos y versiones de servicios activos con Nmap
avanzar en el logro del objetivo:
� Direcciones de correo electrónico de personal de la empresa.
� Direcciones de correo electrónico de personal técnico (Tal vez haya alguno que tenga
privilegios en el servidor).
Con los nombres de usuarios que hay aquí, y con un poco de imaginación, podemos hacer una
suposición acercade algunos de los
usuarios que hay enel sistema, mas
aun, si observamosque los correos
electrónicos siguenun patrón definido,
entoncesobtendremos algo
como:
Ilustración 5: Sitio web del objetivo
Obteniendo Acceso
Una vez definidos los posibles usuarios, procedemos a realizar un ataque al servicio SSH, el cual se
encontraba activo, según el resultado obtenido del escaneo de Puertos y Servicios realizado con Nmap.
Para esto haremos uso de la una herramienta que permite realizar ataques sistematizados a un servicioespecifico a través de un diccionario de usuario y contraseñas denominada Hydra.
Comando:
# hydra 192.168.1.100 ssh -L /root/recursos/lista_usuarios.txt -p password -e nsr
Parametros:
-L (Fichero con nombres de usuario)
Se debe especificar la ruta en donde se encuentra el fichero con los nombres de los usuariosque servirán de login.
-p (contraseña)
Es la contraseña que se utilizará para el ataque, en caso de dejarla vacía, se entenderá que elpassword es vacío.
-e (Verificaciones adicionales)
Se configuran aspectos adicionales para el ataque como:
(n) para definir una contraseña nula.
(s) para configurar el mismo nombre de usuario como contraseña.(r) para configurar que defina como contraseña el nombre de usuario inverso.
Como se evidencia en la imagen anterior, hydra ha encontrado un usuario y una contraseña valida
dentro del equipo víctima para el servicio SSH, lo que nos permitirá en principio ingresar con unaconexión remota y hacer una exploración de su contenido.
Usuario: bbanter
Contraseña: bbanter
Para lograr el acceso remoto, haremos uso del servicio al que se le encontró la vulnerabilidad:
Comando
# ssh [email protected]
# ssh -l bbanter 192.168.1.100
Una vez ejecutado el comando, pedirá una contraseña, en ese momento ingresaremos la contraseñarespectiva.
Ilustración 7: Ataque de fuerza bruta con hydra a usuario bbanter
Como vemos en la figura anterior, ya tenemos acceso en la maquina objetivo llamada �slax� con elusuario bbanter.
Ahora, como el objetivo es extraer información privilegiada del equipo objetivo, trataremos de ingresar
a lugares distintos a la carpeta de inicio del bbanter �home�.
Escudriñando, encontramos una carpeta �ftp� a la que el usuario bbanter no tiene privilegios de accesoni tampoco puede listar su contenido, algo que se hace raro, lo que nos hace inferir que allí puede haber
información importante a la que solo usuarios privilegiados tienen acceso.
Después de ejecutar comandos que permiten navegar por carpetas, listar contenido de archivos,llegamos a la conclusión de que el usuario bbanter no tiene los suficientes privilegios para navegar por
el sistema, lo que nos lleva al siguiente nivel del ataque la �Escalada de Privilegios�.
Escalada de Privilegios
Ahora bien, una vez con el acceso, trataremos de escudriñar un poco con el objeto de buscar
Ilustración 8: Acceso por SSH con usuario bbanter
información que nos permita escalar privilegios, para ello, visualizaremos el archivo que contiene la
información de los usuarios del sistema:
Comando:
# cd /etc/# cat passwd
El comando �cat� permite listar el contenido de archivos por consola, en este caso lista el contenido del
archivo �passwd� en el cual se encuentran los usuarios habilitados en el sistema.
Vemos entonces que existen tres usuarios que estan definidos dentro del sistema, entre los cuales esta
con el que obtuvimos el primer acceso (bbnater), lo que nos permite depurar un poco mas nuestroarchivo de usuarios creado en un principio, a tal punto que solo nos quedarían tres usuarios:
� aadams
� bbanter
� ccoffee
Otro aspecto que se debe tener en cuenta, es los grupos a los que perteneces los usuarios; si nos fijamosbien, veremos que hay dos usuarios que tiene grupo �100�, mientras que hay uno que tiene grupo �10�,
Ilustración 9: Visualizacion de los usuarios del sistema
lo que nos lleva a pensar que debemos averiguar cuales son esos grupos, si existe algun usuario en un
grupo que tiene mas privilegios que los otros.
Para ello, debemos listar el contenido de otro archivo que permite ver los grupos que están creados, así:
Comando:
# cat group
Como se evidencia en la imagen anterior, nuestras sospechas son ciertas, vemos que el grupo donde secrean todos los usuarios sin privilegios altos por defecto es el grupo �100� correspondientes a �users�,
mientras que el grupo �10� corresponde a uno donde se el grupo de usuarios �root� es miembro.
Con esta información podemos definir otra estrategia para el ataque. Sabemos que el usuario �aadams�
Ilustración 10: Visualización de grupos existentes en el sistema
tiene privilegios mas altos que los otros usuario, por lo que ese sera nuestro próximo objetivo, obtener
acceso con el usuario �aadams�.
Para ello, haremos uso nuevamente de un ataque por fuerza bruta utilizando la herramienta queutilizamos en un principio, hydra, con la ayuda de unos diccionarios de contraseñas que debemos tener
de antemano para realizar el ataque.
El éxito de un ataque por fuerza bruta es el poder sustentado en los diccionarios, entre mas grande omas depurado sea, mas efectivo es. BackTrack tiene dentro de su haber unos diccionarios que a pesar
de tener solo palabras en ingles, son muy eficientes. Con esto podemos iniciar, así:
Comando:
# hydra 192.168.1.100 ssh -V -l aadams -P /root/recursos/pass_habituales.txt
Parámetros:
-V (Modo verbose)
Muestra las combinaciones contraseña+usuario para cada intento.
-l (usuario)
Define el usuario(login) con el que realizaremos el ataque.
-P (Archivo de contraseñas)
Contiene la ruta al archivo con las contraseñas a utilizar para el ataque combinadas con elnombre del usuario.
Eureka....eureka...., se encontró la contraseña correspondiente al usuario aadams la cual es
Ilustración 11: Ataque de fuerza bruta con hydra a usuario aadams
�nostradamus�.
Con estos datos podemos entonces ingresar por el servicio SSH a la maquina objetivo y extraerinformación a la cual el usuario bbanter no tenia acceso.
Comando
# ssh -l aadams 192.168.1.100
Una vez logueados en la maquina objetivo como aadams, tratamos de obtener acceso a la carpeta
�ftp/incoming�, pero notamos que tampoco tenemos privilegios, pero recordemos que el usuarioaadams esta en el mismo grupo de usuarios que �root� lo que implica que podemos utilizar el comando
�sudo� para ejecutar comando de mayor nivel de privilegios.
Ilustración 12: Acceso por SSH con usuario aadams
Ups..., vemos que los privilegios del usuario �aadams� solo permiten listar el contenido de la carpeta
�ftp/incoming�, en la cual se encuentra un archivo que llama la atención: �salary_dec2003.csv.enc� elcual puede ser nuestra prueba de penetración y vulnerabilidad del sistema que estamos necesitando.
Lo anterior nos lleva al hecho de que debemos conseguir privilegios mas altos para lograr el objetivo,mas si analizamos el ultimo mensaje que se visualiza en la imagen anterior que nos indica que el
usuario que puede realizar lo que buscamos, copiar el archivo, es root.
Entonces procedemos a conseguir los datos de ese usuario, para lo cual usaremos lo poco privilegios
que tienen aadams asi:
Existe un archivo en GNU / Linux que guarda las contrasenas de los usuarios de una manera
encriptada, denominado �shadow� y que solo algunos usuarios con privilegios de altos pueden ver. Eneste caso veremos si aadams cuenta con esos privilegios.
Comando:
# cat /etc/shadow
Ilustración 13: Secuencia de comandos con usuario aadams
Como vemos en la imagen anterior, el usuario aadams puede ver el contenido del archivo shadow peroinvocando los privilegios de root a traves del comando sudo.
Acto seguido, en un editor de texto como el gedit, seleccionamos y copiamos el contenido de estearchivo en nuestra maquina, con el fin de que podamos manipularlo mas facilmente.
Ilustración 14: Visualizacion del archivo shadow de GNU Linux
Como vemos, copiamos efectivamente el contenido del archivo shadow en un nuevo archivo en lamaquina local y lo nombramos igual.
Ahora debemos crackerar la contrasena de del usuario root, con la cual tendremos acceso a todo elsistema, no convertiremos en amos y senores del equipo remoto.
En esta ocasión usaremos otra herramienta especializada para hacer este tipo de �trabajo sucio�,denominada jhon the ripper, que aunque es de las mas antiguas en su genero, su eficiencia no ha sido
superada; veamos entonces su funcionamiento.
Comando:
Ilustración 15: Archivo en maquina local con contenido del archivo shadow
# john --rules --wordlist=/root/recursos/pass_habituales.txt --users=root /root/recursos/shadow
Parámetros:
--rules
Permite activar el administrador de palabras para el manejo de listas.
--wordlist
Define la ruta y el archivo que contiene las palabras que se usara como diccionario.
--users
Define el usuario al cual se le desea crackerar la contraseña.
/root/recursos/shadow
Es la ruta y el nombre del archivo que contiene las contraseñas encriptadas de los usuarios y
donde se encuentra la contraseña de root.
Listo...!!!, como vemos, tenemos la contraseña del usuario root, con esto ya podemos ingresar a la
maquina objetivo y extraer la información necesaria. Manos a la obra.
Ilustración 16: Ejecución de john the ripper para crackear contraseña de root
Vaya, si queremos entrar como root a la maquina objetivo a traves del servicio SSH, notamos que este
usuario no puede accederla.... uummmmmm, pero tenemos acceso desde otros usuarios.
Lo que podemos hacer entonces es ingresar a la maquina objetivo como aadams y después escalar
privilegios como root, asi:
Comado:
# ssh -l aadams 192.168.1.100
Lo que nos da acceso como aadams, luego cambiamos al ususario root con el comando �su�, de la
siguiente manera:
Comando:
# su
El sistema nos pedira entonces la contrasena de root, a lo cual digitaremos la que crakeamosanteriormente: tarot.
Como vemos, el promptuario del usuario cambió al de root. Acto seguido buscamos la manera de
descargar el archivo que nos servirá de prueba. Una de las maneras es a través del comando �scp�, el
Ilustración 17: Escalando a privilegios de root con el comando "su"
cual permite transferir archivos a través del protocolo �SSH�.
Otra manera es ubicando el archivo en la carpeta raíz del �Apache�, el cual es el servidor de paginas
web que funciona por el puerto 80 y que si recordamos en el escaneo de puertos y servicios, este puertoestaba abierto y por eso pudimos ver la pagina web publicada en la maquina objetivo.
Bien, para no dificultar mas el proceso, utilizaremos la opción del protocolo HTTP por el puerto 80,
así:
Comandos:
# ls -l /var/www/htdocs
Este comando nos muestra el contenido de la carpeta raiz de Apache.
# cp /home/ftp/incoming/salary_dec2003.csv.enc /var/www/htdocs/
Este comando copia el archivo salary2003.csv.enc en la carpeta raiz de Apache para poder serdescargado posteriormente.
Ilustración 18: Copiado del archivo salary2003.csv.enc en carpeta raíz de Apache
Como vemos en la imagen, el archivo ha sido copiado, por tanto solo nos resta descargarlo a la
maquina nuestra para que lo podamos manipular. Para ello abrimos un navegador web como el firefoxy digitamos la ruta completa hacia el archivo, asi:
http://192.168.1.100/salary_dec2003.csv.enc
Una vez descagado el archivo, tratamos de abrirlo, pero solo veremos simbolos, esto sumado al hechode que el archivo tiene una extension particular (.enc), la cual infiere que el archivo ha sido encriptado,
por lo que para volverlo editable, debemos desencriptarlo.
Para ello utilizaremos otra herramienta que tiene casi todo sistema que tenga configurado el protocolossh, es el openssl, la cual permite encriptar y desencriptar archivos en sistemas GNU Linux, como el de
la maquina objetivo, por tanto debemos ejecutar lo siguinete:
Ilustración 19: Descarga del archivo salary_dec2003.csv.enc
Comando:
# openssl enc -d -aes-128-cbc -in salary_dec2003.csv.enc -out salary.csv -k tarot
Parametros:
enc
Encodiando (Codificando) con cifrado.
-d -aes-128-cbc
Define el tipo de cifrado que se debe utilizar para el desencriptado.
-in salary_dec2003.csv.enc
Define el archivo de entrada, que se quiere descencriptar.
-out salary.csv
Define el nombre del archivo de salida despues de ser desencriptado.
-k tarot
Define la contrasena del usuario que encripto el archivo y que se requerie para desencriptarlo.
Ahora podemos abrir el archivo desencriptado con cualquier editor de texto y evidenciar la inofrmacionalli contenida.
Ilustración 20: Desencriptando el archivo salary_dec2003.csv.enc
Ilustración 21: Evidencia final
Con esto, hemos concluido el trabajo que se nos encomendo, evidenciar fallas de seguridad en elsistema.
Felicitaciones para todos aquello que lo lograron!!!!