Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Hacking
con Kali Linux
Alonso Eduardo Caballero Quezada
Consultor e Instructor en Hacking Ético y Forense Digital
e-mail: ReYDeS@gmail.com
Noviembre 2018
Sobre MILE-SEC
MILESEC E.I.R.L, es una empresa de capitales Peruanos fundada en el
año 2017, la cual está netamente dedicada a brindar servicios de
capacitación, relacionados con las áreas de seguridad de la información y
tecnologías de la información, tales como; Pruebas de Penetración
(Penetration Testing), Hacking Ético (Ethical Hacking), Evaluación de
Vulnerabilidades (Vulnerability Assessment), Forense de Computadoras
(Computer Forensics) y Forense Digital (Digital Forensics). Brinda servicios
de consultorías especializadas en todas las áreas mencionadas.
http://www.milesec.com/
informes@milesec.com / mileseceirl@gmail.com
https://www.facebook.com/mileseceirl/
https://twitter.com/mileseceirl
https://www.linkedin.com/in/milesec/
Curso Hackin con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Temario
● Configurar un Laboratorio Virtual
● Introducción a Kali Linux
● Bases de Programación
● Scripting con Bash y Python
● Utilizando Metasploit Framework
● Payloads
● Tipos de Shells
● Configurar Manualmente un Payload
● Utilizar Módulos Auxiliares
● Captura de Información
● Captura OSINT
● Escaneo de Puertos
● Encontrar Vulnerabilidades
● Nessus
● Nmap Scripting Engine NSE
● Módulos para el Escaneo en Metasploit
● Escaneo de Aplicaciones Web
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Temario (Cont.)
● Análisis Manual
● Captura de Tráfico
● Utilizando Wireshark
● Envenenamiento del Cache ARP y Cache DNS
● Ataques SSL y SSL Stripping
● Explotación Remota
● Explotación a WebDAV y PhpMyAdmin
● Descargar Archivos Sensibles
● Explotar Aplicaciones Web de Terceros, Servicios Comprometidos,
Recursos Compartidos NFS.
● Ataques en Línea de Contraseñas
● Ataques Fuera de Línea de Contraseñas
● Explotación del Lado del Cliente
● Evadiendo Filtros con Payloads de Metasploit
● Ataques del Lado del Cliente
● Ingeniería Social
● Social Engineer Toolkit SET
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Temario (Cont.)
● Ataques Web
● Evadir Antivirus
● Como Funcionan los Antivirus
● Evadiendo un Programa Antivirus
● Post Explotación
● Meterpreter
● Scripts de Meterpreter
● Módulos de Post Explotación en Metasploit
● Escalado de Privilegios Locales
● Captura de Información Local
● Movimiento Lateral
● Pivoting
● Persistencia
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Presentación
Kali Linux es una distribución basada en GNU/Linux Debian, dirigida a
auditorias de seguridad y pruebas de penetración avanzadas.
Kali Linux contiene cientos de herramientas destinadas a diversas tareas
en seguridad de la información, tales como pruebas de penetración,
investigación de seguridad, forense digital e ingeniería inversa.
Kali Linux. Incluye herramientas para la captura de información, análisis de
vulnerabilidades, análisis de aplicaciones web, evaluación para bases de
datos, ataques a contraseñas, ataques inalámbricos, Ingeniería Inversa,
herramientas para la explotación, sniffing y spoofing, explotación posterior,
forense digital, y herramientas para el reporte.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Objetivos
Este curso proporciona una excelente fuente de conocimiento para iniciarse
en el área del Hacking Ético, además de ser una guía práctica para la
utilización de las herramientas más populares durante la realización de
Pruebas de Penetración.
Así mismo este curso proporciona conocimientos fundamentales sobre
pruebas de penetración utilizando Kali Linux, conceptos sobre
programación, metasploit, captura de información, búsqueda de
vulnerabilidades, técnicas para la captura de tráfico, explotación de
vulnerabilidades, técnicas manuales de explotación, ataques a
contraseñas, ataques del lado del cliente, ingeniería social, técnicas para
evadir antivirus y técnicas de postexplotación.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Configurar un Laboratorio Virtual
Durante el aprendizaje sobre Hacking Ético y Pruebas de Penetración, se
requiere tener un laboratorio de pruebas para utilizar las diversas
herramientas, y aplicar las técnicas en un entorno controlado.
La manera más simple es utilizar software de virtualización, para configurar
sistemas operativos y simular una red usando una única máquina física.
● VirtualBox
● VMWare Player
Máquinas Virtuales
● Kali Linux
● VulnHub (Vulnerable by Design)
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Introducción a Kali Linux
Kali Linux es una distribución basada en Debian GNU/Linux dirigida a
auditorias de seguridad y pruebas de penetración avanzadas. Contiene
cientos de herramientas destinadas a tareas de seguridad de la
información, como pruebas de penetración, forense e ingeniería inversa.
● Incluye más de 600 herramientas para pruebas de penetración.
● Es libre y siempre lo será.
● Árbol Git (Sistema distribuido para control de versión) open source.
● Cumple con FHS (Estándar para la jerarquía del sistema de archivos).
● Amplio soporte para dispositivos inalámbricos.
● Kernel personalizado con parches para inyección.
● Es desarrollado en un entorno seguro.
● Paquetes y repositorios firmados con GPG (GNU Privacy Guard).
● Soporta diversos lenguajes.
● Completamente personalizable.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Características Especiales de Kali Linux
● Completa personalización de las ISOs de Kali Linux
● ISO del Infiero de Kali Linux y otras recetas para Kali
● USB en vivo de Kali Linux con persistencia encriptada LUKS
● USB en vivo de Kali Linux con múltiples almacenamientos persistentes
● Encriptación completa del disco en Kali Linux
● Encriptación LUKS en Kali Linux
● Metapaquetes con Kali Linux
● Imágenes Kali Linux en Amazon EC2 AWS
● Características para accedibilidad de Kali Linux
● Despliegue automático para Kali Linux
● Kali Linux sobre dispositivos Raspberry Pi y otros dispositivos ARM
● Modo forense de Kali Linux
● Kali Linux Nethunter
● Kali Linux ejecutándose en Android
● Encriptación del disco en Raspberry Pi 2
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Bases de Programación
El poder escribir programas, permite la automatización para diversas tareas
útiles durante el desarrollo de diversas evaluaciones.
Bash
Los guiones en Bash (bash scripts) ejecutan varios comandos a la vez. Los
guiones Bash o guiones shell (shell scripts), son archivos los cuales
incluyen diversos comandos a ser ejecutados. Cualquier comando factible
de ser ejecutado en una terminal puede ser ejecutado en un guion.
Python
Los sistemas GNU/Linux típicamente incluyen interpretes para otros
lenguajes de scripting, como Python o Perl. Kali Linux no es la excepción.
Python puede ser utilizado para escribir códigos propios de explotación.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Shell Bash
!/bin/bash
# Script para enviar paquetes ICMP (Ping) hacia un rango de red
#
if [ "$1" == "" ]
then
echo "Uso: ./script_ping.sh [Red]"
echo "Ejemplo: ./script_ping 192.168.0"
else
for x in $(seq 1 254); do
ping c 1 $1.$x | grep "64 bytes"
done
fi
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Python
#!/usr/bin/python
import socket
ip = raw_input("Ingrese la direccion IP: ")
port = input("Ingrese el puerto: ")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
if s.connect_ex((ip, port)):
print "El puerto ", port, "esta cerrado."
else:
print "El puerto ", port, "esta abierto."
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Utilizando Metasploit Framework
Metasploit Framework es una plataforma modular basada en Ruby para
realizar Pruebas de Penetración, la cual permite escribir, evaluar, y ejecutar
códigos de explotación.
Metasploit Framework contiene un conjunto de herramientas las cuales
pueden ser utilizadas para evaluar vulnerabilidades de seguridad, enumerar
redes, ejecutar ataques, y evadir la detección.
En su núcleo, Metasploit Framework es una colección de herramientas
comúnmente utilizadas, el cual proporciona un completo entorno para
realizar pruebas de penetración y desarrollar “exploits”.
Se considera actualmente como la única y más simple de las herramientas
para auditoría, libremente disponible para los profesionales en seguridad.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Payloads
Cuando ya se ha definido la utilización de un módulo “exploit” en Metasploit
Framework, al parecer todo está listo hasta aquí, pero esto no es así.
Se le debe indicar al “exploit” aquello a realizar en el objetivo cuando este
sea explotado.
Una de las maneras en la cual Metasploit Framework facilita las cosas es
configurando un Payload.
Metasploit contiene una gran cantidad de Payloads, desde la simple
ejecución de comandos en Windows, hasta el completísimo mega Payload
de nombre Meterpreter.
Únicamente se debe seleccionar un Payload compatible, y Metasploit
creará la cadena del exploit, incluyendo el código para explotar la
vulnerabilidad y el Payload sea ejecutado exitosamente.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Tipos de Shells
Shell Enlazado (Bind)
Instruye a la maquina objetivo a abrir una shell de comandos, y atender
sobre un puerto local. La máquina atacante entonces se conecta hacia la
máquina objetivo sobre el puerto en atención. Aunque con el advenimiento
de los cortafuegos la efectividad de estos shells ha caido, porque cualquier
cortafuegos correctamente configurado bloqueará el tráfico de algún puerto
aleatorio como el 4444.
Shell Reveso (Reverse)
En este caso, se pone activamente una conexión de retorno hacia la
máquina atacante, en lugar de esperar por una conexión entrante. Aquí, la
máquina atacante abre un puerto local, y atiende por una conexión desde el
objetivo, debido al hecho es una conexión reversa es más probable
atraviesen el cortafuego.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Utilizar Módulos Auxiliares
Metasploit Framework fue la primera herramienta concebida para la
explotación, y continuamente se utiliza a nivel mundial para este propósito.
Con el transcurrir de los años, sus funcionalidades han crecido en muchas
direcciones, consecuentemente las mentes creativas trabajando en él.
Metasploit Framework tiene aparte de los módulos para la explotación,
módulos para casi todas las fases de una prueba de penetración.
Los módulos no utilizados para la explotación se denominan módulos
auxiliares; incluyen cosas como escaners de vulnerabilidades, fuzzers, e
incluso módulos para negación de servicio.
Para recordar el concepto, los módulos de explotación (exploits) utilizan un
Payload, los módulos auxiliares no.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Captura de Información
El objetivo de esta fase en una Prueba de Penetración, es aprender tanto
como sea factible sobre el objetivo de evaluación.
Por ejemplo información revelada en Twitter. Mensajes en listas de correos
sobre algún tema particular. Software ejecutándose en los servidores web.
Los puertos atendiendo en los sistemas de cara hacia Internet. La dirección
IP de un controlador de dominio interno, entre otra información.
En esta fase también se inicia la interacción con los sistemas evaluados,
aprendiendo activamente tanto como se pueda sobre ellos, pero sin
atacarlos. Se utiliza el conocimiento ganado en esta fase para moverse
hacia la fase donde se modelan las amenazas, donde se analiza y
desarrolla un plan de ataque, basado en la información obtenida
previamente.
Con esta información descubierta, se buscan y verifican activamente las
vulnerabilidades utilizando técnicas para su escaneo y detección.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Captura OSINT
Se debe aprender tanto como sea posible sobre la organización e
infraestructura antes de enviar un sólo paquete, pero la captura de
información puede ser un objetivo en movimiento. Pues no es factible
estudiar la vida completa de cada empleado debido a la gran cantidad de
información a recopilar y el tiempo. Pero se puede afinar la captura de
información al CEO, a ciertas redes sociales, etc.
Opuesto a la inteligencia ganada desde fuentes encubiertas como buscar
en la basura, volcar bases de datos del sitio web, e ingeniería social, Open
Source Intelligence (OSINT) implica obtenerla desde fuentes legales como
registros públicos o medios sociales.
El éxito de una prueba de penetración frecuentemente depende de los
resultados de la fase de captura o recopilación de información. Siendo por
lo tanto muy importante.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Escaneo de Puertos
Cuando se inicia una prueba de penetración, el alcance potencial es
prácticamente ilimitado. El cliente podría ejecutar cualquier número de
programas con problemas de seguridad. Podrían tener problemas de malas
configuraciones, contraseñas débiles o por defecto, las cuales podrían
proporcionar las llaves del reino en supuestamente sistemas seguros, etc.
Las pruebas de penetración frecuentemente tienen un alcance de
direcciones IP, razón por la cual se necesita encontrar primero cuales
sistemas están activos y cual software funciona en ellos.
Aquí se pueden realizar escaneos manuales, o se utiliza la herramientas
por excelencia de nombre Nmap.
Nmap entre otras funcionalidades, permite realizar diversos tipos de
escaneos para puertos TCP, UDP, como también escaneos de versiones.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Encontrar Vulnerabilidades
Antes de lanzar “exploits” o códigos de explotación, se necesita realizar
más investigación y análisis. Cuando se identifican vulnerabilidades, se
busca activamente por problemas los cuales podrían conducir a un
compromiso durante la fase de explotación.
Algunas empresas de seguridad, solo ejecutan herramientas de explotación
automáticas, esperando suceda lo mejor. Un cuidadoso estudio de
vulnerabilidades realizado por un profesional experimentado en pruebas de
penetración, puede generar mejores resultados si se compara con
cualquier herramienta automática. Entre estas herramientas se enumeran.
● Nessus (Versión home)
● OpenVAS
● Nmap Scripting Engine
● Módulos de Escaneo en Metasploit Framework
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Nessus
Los escaners de vulnerabilidades modernos pueden medir la presencia de
miles de fallas en el entorno objetivo.
Nessus es un escaner de vulnerabilidades. Utiliza un motor de escaneo
basado en plugins, los cuales son pequeños programas individuales
indicando al motor de escaneo, cuales problemas de seguridad medir sobre
la máquina objetivo. Todos los plugins recientes son requeridos para la
versión comercial (de pago) y la versión Home, la cual puede ser utilizada
con algunas restricciones.
Otros escaner de vulnerabilidades son:
● Nexpose (Comercial)
● Core Impact (Comercial)
● OpenVAS (Open Source)
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Nmap Scripting Engine NSE
Los NSE son una de las características más poderosas y flexibles de
Nmap. Permite a los usuarios escribir scripts sencillos para automatizar una
amplia diversidad de tareas. Estos son ejecutados en paralelo con la
velocidad y eficiencia de Nmap. Algunos de sus objetivos son:
● Permite enviar o recibir mensajes arbitrarios por Nmap hacia varios
objetivos, ejecutando los scripts en paralelo.
● Es ampliable con scripts desarrollados por la comunidad.
● Soporte extendido para descubrimiento de la red. (Whois, DNS, etc).
● Realizar una detección de versión más sofisticada.
● Realizar un escaneo de vulnerabilidades.
● Detectar sistemas infectados o con puertas traseras.
● Explotar vulnerabilidades descubiertas.
Los scripts NSE están agrupados en categorías como; auth, broadcast,
brute, default, discovery, dos, exploit, fuzzer, intrusive, malware, etc
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Escaneo de Aplicaciones Web
Las aplicaciones web creadas a medida para los clientes también tienen
problemas de seguridad, o también es probable se haya desplegado una
aplicación web open source para el sitio web, un webmail, un galería, foro,
etc. Todos los cuales pueden tener los mismos problemas. Si se pueden
encontrar instancias de software vulnerable, se podría estar en la
capacidad de explotarlo para tener un punto de apoyo en el sistema
remoto.
Los problemas en las aplicaciones web son particularmente interesantes en
muchas pruebas de penetración externas, donde la superficie de ataque
está menos limitado comparado con los servidores web.
Se pueden encontrar una vulnerabilidad en el software del servidor web
subyacente. Una herramienta para escanear el servidor o la aplicación web
es Nikto.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Análisis Manual
Algunas veces ninguna solución funciona mejor a realizar un análisis
manual de vulnerabilidades, para ver si un servicio puede conducir a un
compromiso, y no hay mejor manera para mejorar a practicar.
Algunos procedimientos a realizar son:
Explotar un puerto extraño.
Se puede utilizar la herramienta netcat para establecer una conexión hacia
el puerto desconocido y analizar su respuesta.
Encontrar nombres válidos de usuarios.
Se puede incrementar drásticamente las probabilidades de un ataque
exitoso contra las contraseñas, si se conoce nombres de usuario válidos
para los servicios. Como por ejemplo analizando los puertos SMTP, SMB,
etc.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Captura de Tráfico
Antes de dirigirse hacia la fase de explotación, se pueden utilizar
herramientas como Wireshark o similares, para husmear y manipular el
tráfico con el propósito de ganar información útil desde otras máquinas en
la red local.
En una Prueba de Penetración interna, se está simulando una amenaza
interna o un atacante quien ha violado el perímetro, capturando tráfico
desde otros sistemas en la red, proporcionando información adicional
interesante (tal vez incluso nombres de usuarios y contraseñas), lo cual
puede ayudar con la fase de explotación.
El inconveniente es la masiva cantidad de tráfico capturado conteniendo
potenciales datos útiles. Capturar todo el tráfico sobre una red local podría
inundar rápidamente Wireshark, y descubrir tráfico útil para una prueba de
penetración podría resultar muy difícil.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Utilizando Wireshark
Wireshark es un analizador de paquetes de red. Un analizador de paquetes
de red intentará capturar paquetes de red, intentando mostrar los datos del
paquete tan detalladamente como sea posible.
Se podría pensar en un analizador de paquetes de red como un dispositivo
de medición utilizado para examinar lo suscitándose dentro del cable de
red, como un voltímetro es utilizado por un electrónico para examinar lo
suscitándose dentro de un cable eléctrico (pero a un nivel más elevado, de
hecho).
En el pasado, tales herramientas eran muy costosas, propietarias o ambas
cosas. Sin embargo con el advenimiento de Wireshark, todo esto ha
cambiado.
Wireshark es tal vez uno de los mejores analizadores de paquetes de
fuente abierta disponibles en la actualidad.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Envenenamiento del Cache ARP y
Cache DNS
Para capturar tráfico no destinado al propio sistema, se necesita encontrar
alguna manera de los datos relevantes sean enviados al sistema del
atacante. Generalmente se estará en una red utilizando un Switch, razón
por la cual este escenario es aplicable. Al utilizar un ataque de “Hombre en
el Medio” (MiTM), será redireccionado e interceptado el tráfico entre dos
sistemas, antes de reenviar los paquetes hacia el destino correcto. Una
manera en la cual se suplanta a otro dispositivo sobre la red es
denominada Envenenamiento del Cache ARP (También conocido como
ARP Spoofing).
También se puede envenenar las entradas cache del DNS (mapear
nombres de dominio hacia direcciones IP), para encaminar el tráfico
destinado para otro sitio web hacia aquel el cual se controla. Así como ARP
resuelve direcciones IP hacia direcciones MAC para encaminar
adecuadamente el tráfico, DNS mapea nombres de dominio a direcciones
IP. Para estos ataques se pueden utilizar herramientas como arpspoof o
dnsspoof.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ataques SSL y SSL Stripping
Es altamente probable se intercepte tráfico encriptado, pero no se estará en
la capacidad de obtener ninguna información sensible fuera de la conexión
encriptada. El escenario de ataque aquí es confiar en la disposición del
usuario en hacer clic, más allá de una advertencia del certificado SSL, para
realizar un ataque de Hombre en el Medio (MiTM), y obtener el texto plano
de una conexión SSL, el cual encripta el tráfico para protegerse a si mismo
de ser leído por un atacante malicioso.
Un problema con este ataque de MiTM SSL es la interacción del usuario.
Dependiendo del navegador esto puede ser un proceso difícil sino
imposible. Con el ataque de nombre “SSL Stripping”, se hace una ataque
de Hombre en el Medio de la conexión antes de ser redireccionado hacia
SSL, y se le añade funcionalidad SSL antes de enviar el paquetes hacia el
servidor web. Cuando el servidor responda, “SSL Stripping” nuevamente
intercepta el tráfico y remueve las etiquetas HTTPS antes de enviar los
paquetes hacia el cliente.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Explotación
Después de todo el trabajo previamente realizado, finalmente se llega a la
parte más divertida, la explotación. En la fase de explotación en una
Prueba de Penetración, se ejecutan los “exploits” o códigos de explotación
contra las vulnerabilidades descubiertas, para ganar acceso hacia los
sistemas en evaluación.
Algunas vulnerabilidades, como utilizar contraseñas por defecto son muy
fáciles de explotar, y tal vez no se perciba del todo como una explotación,
pues otros escenarios son mucho más complicados.
En esta fase se explotan las vulnerabilidades identificadas durante todas
las fases previas. Para esto se debe tener sólidos conocimientos sobre las
vulnerabilidades descubiertas.
La herramienta más reconocida y utilizada es Metasploit Framework. Esto
aunado al conocimiento y experiencia para realizar una explotación manual.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Explotación a WebDAV y PhpMyAdmin
WebDAV (Web Distributed Authoring and Versioning), es una extensión de
HTTP, el cual permite a los clientes realizar operaciones para autoría
remota de contenido web.
Si es factible encontrar una instalación de WebDAV, se puede intentar
utilizar credenciales por defecto, para subir o descargar archivos desde /
hacia el servidor web. Una herramienta en línea de comando factible de ser
utilizada es “Cadaver”.
PhpMyAdmin es un herramienta de software libre escrita en PHP; con el
propósito de manejar la administración de MySQL sobre la Web.
Soportando una gran cantidad de operaciones.
Si eEs factible encontrar una instalación de phpMyAdmin abierta, es decir no
requiere un usuario y contraseña para acceder a la administración. Al
explotar esto se tiene la posibilidad de ejecutar comandos sobre el servidor
de bases de datos. Además de acceder directamente a las BDs.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Descargar Archivos Sensibles
Si es factible encontrar alguna vulnerabilidad; como por ejemplo un
problema de recorrido de directorios, se puede estar en la capacidad de
descargar archivos desde el sistema remoto sin autenticación.
De esta manera y dependiendo del sistema operativo, se debe de conocer
la ruta y el nombre exacto del archivo a descargar, para luego explotar la
vulnerabilidad de recorrido de directorios y descargar el archivo.
Generalmente el objetivo es descargar archivos los cuales puedan contener
información sensible, como la configuración del sistema, o archivos
conteniendo contraseñas en texto plano o hashes de las contraseñas. Para
el caso de Windows los archivos SAM o SYSTEM. Para el caso de Linux
los archivos Passwd o Shadow.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Explotar Aplicaciones Web de Terceros
La herramienta Nikto es un buen escaner para Pruebas de Penetración y
Hacking Ético, el cual puede ser utilizado para descubrir temas
relacionados a las seguridad, como también vulnerabilidades.
Existen diversas aplicaciones web creadas por terceros, tanto privadas
como open source, las cuales son utilizadas para implementar páginas
web, foros de comunidades, galerías para fotografías o videos, wikis,
estadísticas, sistemas para gestión de contenido, etc.
En caso exista la posibilidad de descubrir una vulnerabilidad en estas
aplicaciones web, es altamente probable pueda ser explotada para obtener
un control remoto sobre el sistema, o realizar una ataque de negación de
servicio.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ataques a Contraseñas
Las contraseñas son frecuentemente la ruta menos resistente durante un
compromiso en una Prueba de Penetración. Un cliente con un programa
fuerte de seguridad, puede arreglar parches ausentes en el S.O. y software
no actualizado, pero los usuarios no pueden ser parchados.
Se podría intentar atacar a los usuarios utilizando técnicas de Ingeniería
Social. Pero si es factible adivinar o calcular correctamente la contraseña
del usuario, se podría ser capaz de evitar involucrar al usuario en el ataque.
Para esto se requiere conocer como utilizar herramientas para automatizar
el envío de nombres de usuarios y contraseñas, contra los servicios
ejecutándose.
Adicionalmente se debe considerar el escenario en el cual se intenta
“romper” los hashes de las contraseñas previamente obtenidas.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ataques en Línea de Contraseñas
Así como se utilizan escaneos automáticos para encontrar vulnerabilidades,
se pueden utilizar scripts para automáticamente intentar loguearse en los
servicios, y encontrar credenciales válidas.
Se deben utiliza herramientas específicamente diseñadas para automatizar
los ataques en línea de contraseñas, o adivinar contraseñas hasta el
servidor responda con un login exitoso.
Estas herramientas utilizan una técnica denominada como “fuerza bruta”.
Herramientas utilizando fuerza bruta intentan cada posible combinación de
nombres de usuario y contraseñas, y dado el suficiente tiempo, podrían
encontrar credenciales válidas.
Entre las herramientas factibles de ser utilizadas se tienen a THCHydra, o
Medussa. Así mismo “cewl” para generar una la lista de palabras desde un
sitio web. También “crunch” para genera listas de palabras con patrones
definidos.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ataques Fuera de Línea de Contraseñas
Otra manera de romper las contraseñas (los hashes de las contraseñas),
es obtener una copia del archivo conteniendo lo hashes de las contraseñas,
para luego intentar “romperlas” o “invertirlas” hacia contraseñas en texto
plano.
En más fácil de hecho decirlo comparado con hacerlo, pues los hashes
están diseñado para ser el producto de una función hash de una sola
dirección. Es decir, dada una entrada, se puede calcular la salida utilizando
una función hash, pero dada la salida, no hay manera de determinar de
manera fiable la entrada.
Entonces si un hash es comprometido, es factible realizar un ataque el cual
encripte palabras utilizando el mismo hash, y comparar los hashes
resultantes hasta encontrar alguna coincidencia, de ser así se encontró la
contraseña correcta.
Entre las herramientas a utilizar están John The Ripper o hashcat.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Explotación del Lado del Cliente
Las vulnerabilidades clásicas podrían ser consideradas como las más
fáciles de obtener, y de hecho todas pueden ser encontradas en
evaluaciones reales. Es común durante las Pruebas de Penetración
encontrar servicios vulnerables atendiendo en puertos, contraseñas por
defecto sin cambiar, servidores web incorrectamente configurados, etc.
Sin embargo, en empresas quienes invierten mucho tiempo y esfuerzo en
su postura de seguridad, podrían estar libres de este tipo de
vulnerabilidades. Pero aún así las empresas siguen siendo comprometidas.
Este tipo de ataques no requieren acceso directo hacia la red, pues el
objetivo de estos ataques es el software del sistema local, software el cual
no está atendiendo en un puerto. Debido a esto es necesario pensar de
otra manera para atacar el dispositivo dentro del perímetro corporativo, y
seleccionar un “Payload” adecuado, considerando el hecho de poder estar
menos limitando para realizar conexiones inversas, es decir originándose
desde el objetivo comprometido hacia el “atacante”.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Evadiendo Filtros con Payloads de
Metasploit
Conociendo el sistema de Payloads de Metasploit Framework, incluyendo
los paylodas “stages” versus “single”, y shells “bind” versus “reverse”, se
pueden utilizar tecnologías para evadir filtros, pues frecuentemente se
encuentran durante las pruebas de penetración.
Todos los puertos
Incluso los shells inversos podrían no ser capaces de atravesar los filtros y
conectarse de retorno hacia la máquina atacante en cualquier puerto. Si no
se conoce cual puerto es permitido de salir hacia Internet, se puede utilizar
un módulo en Metasploit para este propósito
Payloads HTTP y HTTPS
Estos Payloads siguen las especificaciones HTTP y HTTPS, de tal manera
los filtros de inspección de contenidos estarán convencidos del tráfico es
legítimo.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ataques del Lado del Cliente
En lugar de directamente atacar un servicio en atención sobre un puerto, se
creará una variedad de archivos maliciosos, los cuales al ser abiertos con
software vulnerable sobre la máquina objetivo, resultarán en un
compromiso.
Software como navegadores web, visores de documentos, reproductores
de música, etc., estan sujetos a todo tipo de problemas como los servidores
web, servidores de correo, y cualquier otro programa basado en red.
Aunque el software del lado del cliente no está atendiendo en la red, no se
puede atacarlo directamente, pero el principio general es el mismo. Si es
posible enviar una entrada inesperada hacia un programa para activar una
vulnerabilidad, se puede secuestrar su ejecución, así como se explotan
programas en el lado del servidor. Debido al hecho de no poder enviar
entradas directamente hacia el programa del lado del cliente sobre la red,
se debe inducir al usuario a abrir un archivo malicioso.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Ingeniería Social
Es común expresar en seguridad de la información, sobre la imposibilidad
de parchar las vulnerabilidades en los usuarios. Se pueden implementar
todos los controles de seguridad requeridos, pero si se convence o induce
al usuario proporcione información sensible sobre la empresa, todo acabó.
De hecho, muchas de los más famosas intrusiones ilegales, no incluyen del
todo la explotación del sistema.
Los ataques de Ingeniería Social pueden involucrar requerimientos técnicos
complejos o no del todo tecnológicos, pues explotan las vulnerabilidades
humanas.
Un vector común para los ataques de Ingeniería Social es el correo
electrónico. El Phishing se utiliza para atraer la visita de los objetivos hacia
sitios web maliciosos, o para descargar adjuntos maliciosos entre otras
cosas. Los ataques de Ingeniería Social son el elemento ideal para engañar
a los usuarios, y estos sean victimas de los ataques para el lado del cliente.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Social Engineer Toolkit SET
Social Engineer Toolkit, es un framework de fuente abierta para pruebas de
penetración, diseñado para ingeniería social. SET incluye diversos vectores
para ataques personalizados, lo cual permite hacer rápidamente un ataque
creíble.
SET está específicamente diseñado para realizar ataques avanzados
contra el elemento humano. Convirtiéndose rápidamente en la herramienta
estándar en el arsenal de profesionales en pruebas de penetración.
El creador con la ayuda de una comunidad muy activa, incorpora ataques
nunca antes vistos en un conjunto de herramientas para la explotación. Los
ataques incluidos en SET están diseñados para enforcarse contra una
persona u organización durante una prueba de penetración.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Evadir Antivirus
Durante una Prueba de Penetración, es altamente probable se encuentre
instalada alguna solución antivirus en los clientes. Entonces se necesita
evitar el borrado de los ejecutables maliciosos por parte de las aplicaciones
antivirus, pero el evitar a los programas antivirus es un campo en constante
crecimiento y cambio.
Podría ser más probable evitar la detección mediante la utilización de
“exploits” para la corrupción de memoria, cargando el “payload”
directamente hacia la memoria, es decir nunca tocar el disco.
Con este campo cambiante para el ataque, se debe desplazar el interés
hacia ataques para el lado del cliente e Ingeniería Social, aunque podría no
siempre ser posible evitar escribir el “payload” hacia el disco.
Entre las técnicas utilizadas se trata de obscurecer o camuflar un malware,
para intentar evitar la detección cuando el “payload” se escribe hacia el
disco.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Como Funcionan los Antivirus
La mayoría de soluciones antivirus empiezan comparando código
potencialmente peligroso, hacia un conjunto de patrones y reglas, las
cuales constituyen las definiciones antivirus, los cuales coinciden con
código malicioso.
Las definiciones antivirus son actualizadas regularmente, así como nuevo
malware es identificado por cada proveedor. Este tipo de identificación es
denominado análisis estático.
Además del análisis estático contra un conjunto de firmas, las soluciones
antivirus más avanzadas también prueban por actividad maliciosa, llamado
análisis dinámico. Por ejemplo un programa el cual intenta reemplazar cada
archivo en el disco duro, o se conecta hacia una botnet conocida y servidor
de control cada 30 segundos. Esto exhibe un comportamiento
potencialmente malicioso y debe ser detectado.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Evadiendo un Programa Antivirus
Si se requiere intentar evadir soluciones antivirus, es necesario intentarlo
muy férreamente. Algunos de los mecanismos fundamentales son:
Codificación
Herramientas para evitar caracteres en un código de explotación.
Metasploit incluye más de 30 codificadores.
Compilación cruzada personalizada
Muchos antivirus detectan los Payloads generados por Metasploit, razón
por cual se puede intentar utilizar shellcodes propios y compilar un
ejecutable.
Encriptar ejecutables
Otra manera es ofuscar un Payload, utilizando por ejemplo AES.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Explotación Posterior
Habiendo ganado acceso hacia los sistemas objetivos de evaluación, la
Prueba de Penetración no ha finalizado. De hecho se puede comunicar al
cliente la obtención de “shell” en sus sistemas, pero el cliente necesita
conocer cual es el riesgo real de estos ataques.
En la fase de explotación posterior, se buscará recopilar información sobre
los sistemas explotados, escalar privilegios, y moverse desde el sistema
hacia otros. Tal vez se encuentre y se tenga acceso hacia datos sensibles
almacenados en el sistema explotado, o se pueda tener acceso de red
hacia sistemas adicionales, los cuales podrían ser utilizados luego para
acceder hacia datos de la empresa.
La fase de explotación posterior es la manera más importante para obtener
una clara imagen sobre la postura de seguridad de la organización.
La Prueba de Penetración no es necesariamente exitosa, si la organización
no tiene una buena visión sobre sus vulnerabilidades.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Meterpreter
Es un payload avanzado, dinamicamente ampliable el cual utiliza “stagers”
para la inyección DLL en memoria, además es expandible sobre la red en
tiempo de ejecución. Se comunica sobre el socket “stager” y proporciona un
API Ruby del lado del cliente muy completo. Entre sus funcionalidades
están un historial de comandos, completado automático, canales, y más.
El objetivo ejecuta el “stager” inicial. Usualmente “bind”, “reverse”, etc.
El “stager” carga el DLL prefijado reflexivo. Esta parte Reflexiva maneja la
carga / inyección de la DLL.
El núcleo de Meterpreter se inicia, establece un enlace TLS/1.0 sobre el
socket y envía un GET. Metasploit lo recibe y configura el cliente.
Meterpreter carga las extensiones. Siempre carga “stdapi”, y cargará “priv”
si el módulo proporciona derechos administrativos. Todas estas
extensiones son cargadas sobre TLS/1.0 utilizando el protocolo TLV.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Scripts de Meterpreter
Además de los comandos de Meterpreter, se pueden también ejecutar
scripts desde la consola de Meterpreter.
Esto scripts están disponibles en un directorio específico donde se instala
por defecto Metasploit Framework.
Estos scripts están escritos en el lenguaje de programación Ruby, y se
pueden escribir script propios para posteriormente enviarlos y ser incluidos
dentro de Metasloit Framework.
Entre las funcionalidades a realizar utilizando estos scripts se enumeran,
migrar hacia un procedo determinado o elevar privilegios, ya sea un
sistema Windows o Linux.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Módulos de Post Explotación en
Metasploit
Existen diversos módulos factibles de ser utilizando en Metasploit
Framewok. Por ejemplo módulos para la captura de información,
identificación de vulnerabilidades, y explotación de vulnerabilidades.
No sorprende la cantidad de módulos útiles incluidos dentro de Metasploit
Framework. Consecuentemente también se incluyen módulos de post
explotación, o para la explotación posterior.
Estos módulos de postexplotación permiten recopilar información, obtener
control remoto, escalar privilegios, etc., sobre diversas plataformas.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Escalado de Privilegios Locales
La explotación local de privilegios implica ejecutar exploits o códigos de
explotación, para obtener control adicional del sistema después de la
explotación.
Así como el software de red y software del cliente, los procesos locales
privilegiados pueden estar sujetos a problemas de seguridad explotables.
Algunos de los ataque podrían no resultar en la ganancia de los privilegios
requeridos.
El ganar la ejecución de comandos a través de un sitio web, comprometer
una cuenta de usuario sin derechos de administrador, o explotar un servicio
en atención con privilegios limitados, podrían todos conducir hacia un
acceso al sistema, pero podría encontrarse trabajando con un usuario
limitado.
Para obtener los privilegios requeridos, se necesitará explotar otros
problemas.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Captura de Información Local
Una vez se ha ganado acceso hacia el sistema, se debe ver si está
presente alguna información potencialmente sensible, como software
instalado el cual almacene las contraseñas en texto plano, o utilizando un
algoritmo débil para genera los hashes, adicionalmente buscar por datos
propietarios, código fuente, información de tarjetas de crédito, o la cuenta
de correo de los empleados.
Todos este tipo de información es de utilidad, y debe ser presentado en el
reporte final al cliente. Adicionalmente cualquier información la cual ayude a
irrumpir en otros sistemas de la red debe ser mencionada.
Existe diferentes acciones a realizar en este proceso, como buscar por
archivos, utilizar un atrapador para las pulsaciones del teclado, obtener las
credenciales, etc.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Movimiento Lateral
Una vez se tiene acceso hacia un sistema en un entorno de red, se puede
utilizarla para acceder hacia sistemas adicionales y sus datos sensibles. Si
el sistema es miembro de un dominio, se puede ciertamente intentar
comprometer una cuenta de dominio, o idealmente obtener acceso de
administrador del dominio, de tal manera se pueda hacer login y manejar
todos los sistemas en el dominio.
Pero incluso si no se puede controlar un dominio, se podría ser capaz de
acceder hacia los sistemas en el dominio, si fueron instalados desde la
misma imagen de instalación del sistema, con la misma contraseña de
administrador local, la cual nunca fue cambiada. Si se puede romper esta
contraseña para una máquina, se podría se capaz de hacer login hacia
varias máquinas en el entorno sin acceso al dominio. También si un usuario
tiene una cuenta en múltiples sistemas, podría utilizar la misma contraseña
para cada sistema, lo cual nos permitirá loguearnos. Las contraseñas son
frecuentemente el eslabón más débil, incluso en entornos altamente
seguros.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Pivoting
Existe la posibilidad de poder acceder hacia un sistema, para ganar luego
acceso completamente hacia otra red.
Típicamente una organización tiene poco sistemas de cara hacia Internet
ofreciendo algunos servicios, como servidores web, correo electrónico,
VPNs, etc. Estos servicios pueden estar hospedados en un tercero, o tal
vez dentro de la compañía.
Si estos servicios están hospedados dentro de la compañía, el ganar
acceso hacia estos desde Internet podría permitir acceso hacia la red
interna. Idealmente la red interna estará segmentada por unidades de
negocio, nivel de sensibilidad, etc., de tal manera el acceso hacia una
máquina no proporcionará acceso directo a todos las máquinas de le
empresa.
Es factible utilizar Meterpreter para implementar un “punto de salto” o
“pivot”, de tal manera se puedan explorar otras redes.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Persistencia
Una de las grandes cosas sobre las sesiones con Meterpreter es también
algo no muy bueno.
Debido al proceso del host reside enteramente en memoria, si este muere
la sesión de Meterpreter muere también, y si el sistema se reinicia se
perderá la sesión. Si se pierde acceso de red hacia el objetivo, la sesión
morirá también.
En lugar de explotar nuevamente la misma vulnerabilidad o realizar un
ataque de ingeniería social, sería ideal tener una manera de ganar
nuevamente acceso a futuro.
Los métodos para la persistencia pueden ser tan simples como añadir un
usuario hacia el sistema, así como un rootkit avanzado a nivel del kernel,
incluso desde la API de Windows, lo virtualmente lo hace indetectable.
Curso Hacking con Kali Linux -:- MILESEC EIRL -:- Sitio Web: www.mile-sec.com -:- e-mail: capacitacion@mile-sec-com
Curso
Hacking
con Kali Linux
Alonso Eduardo Caballero Quezada
Consultor e Instructor en Hacking Ético y Forense Digital
e-mail: ReYDeS@gmail.com
Noviembre 2018