Curso Hacking con Kali Linux Alonso Eduardo Caballero Quezada Consultor e Instructor en Hacking Ético y Forense Digital
Views 94 Downloads 173 File size 334KB
Curso Hacking con Kali Linux Alonso Eduardo Caballero Quezada Consultor e Instructor en Hacking Ético y Forense Digital
e-mail: [email protected]
Sitio Web: www.mile-sec.com | e-mail: [email protected]
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 / [email protected] 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: [email protected]
Sitio Web: www.mile-sec.com | e-mail: [email protected]
Noviembre 2018