pentesting con android ing. javier villanuevaindex-of.co.uk/sslstrip/androidpentesting.pdf · ssl...
TRANSCRIPT
Pentesting con Android
Ing. Javier Villanueva
http://www.villacorp.com
Contenido
Muchas Gracias a ESIME por Invitarme y Patrocinar esta
Conferencia!
Agradecimientos
Contenido
Ing. Javier VillanuevaConsultor, Investigador e Instructor Independiente en Seguridad Ofensiva (“Hacking Ético”)
Director de Villacorp & Asociados. Empresa dedicada a proteger el Negocio Digital de nuestros Clienteshttp://www.villacorp.com
15 años Hackeando a todo Mundo(en forma ética, por supuesto ☺)
Co-Autor e Instructor de Cursos “Master Hacking”, impartidos desde hace 10 años a Empresas del Sector Público y Privado, Autoridades Policíacas Federales y Estatales
2 años investigando Android como plataforma de Pentesting
Autor de casi 200 artículos originaleshttp://blog.villacorp.com
Quién Soy?
Contenido
1. Por qué usar un Smartphone2. Cuál es el mejor Android para Pentesting3. Preparando Android4. Metodología de Pentesting5. Scanning6. Obtención de Acceso7. Suites Móviles de Pentesting8. El Futuro de Android9. DEMO
Contenido
Contenido
Ventajas Estratégicas muy valiosas para el Hacker Ético:
Stealth (furtivo).- fácil de esconder y evitar sospechas.
Discreción.- todo mundo pensará que está “chateando” o revisando su “facebook”, cuando en realidad está atacando.
Ultra Portátil.- fácil de llevar a todos lados.
Desventajas:
Micro-teclado.- poco práctico para ataques prolongados.
Alcance.- Tenemos que estar físicamente cerca de la Red (aunque hay alternativas).
1. Por qué usar un Smartphone?
Contenido
Criterios de Selección Recomendados:
Sea un modelo popularPara encontrar soporte técnico más fácil
Fácil de “rootear”.Casi todas las herramientas de Hacking lo solicitan
Brinde una plataforma seguraPara que no nos “contraataquen” fácilmente
Proveedor brinde actualizaciones oportunasPara que no tenga tantas vulnerabilidades
2. Cual es el Mejor para Hackers?
ContenidoMi Recomendación:
Google Nexus – a partir de 4, las actualizaciones las brindará directo Google, no el proveedor de telefonía
Samsung Galaxy S (1,2,3) – todas las herramientas de Hacking que he probado en los últimos dos años han funcionado en el S1 (aunque a veces requieren adaptaciones).
Desventaja: Telcel tarda mucho en actualizar Android (+6 meses).
Mi Anti-recomendación:Motorola (encripta el “bootloader”, complicando “rooting”)
HTC (Horrible historial de vulnerabilidades, aunque parece que mejora)
Mi Esperanza:Ubuntu Phone (“100% Linux”)Debe facilitar el uso de todas las herramientas que tradicionalmente usamos los Hackers en Linux.
Cual es el Mejor para Hackers?
3. Preparando Android: SDK
ADB (Android Debug Bridge)
Permite el control del Smartphone a través de USB, empleando el “USB Debugging” en el teléfono.
Muy útil para instalar paquetes apk o en formato binario, cuando no están disponibles en Google Play(por ser demasiado “malvados”).
Comandos útiles para un Hacker:
adb install Instala paquetes .apk.adb push Enviar archivos de la PC al teléfono.adb pull Enviar archivos del teléfono a la PCadb shell Consola de comandos interactiva.
http://developer.android.com/sdk/index.html
3. Preparando Android: Rooting
Habilita el acceso Administrativo al Smartphone, con los máximos privilegios del sistema.
Similar a “root” de Linux o a “administrator” de Windows.
Las técnicas más poderosas de Hacking requieren estos privilegios.
El método específico para lograr el rooting depende de la marca y modelo del Smartphone, así como de la versión de Android.
Referencia para hacer rooting:http://ready2root.com/
Peligros del Rooting
1. Aplicaciones maliciosas tendrán un efecto más devastador.
2. Algunas aplicaciones legítimas ya no funcionarán.
3. Es posible "brickear" el Smartphone.
4. El proveedor puede invalidar la garantía.
http://www.villacorp.com/blog/2012/11/android-riesgos-del-rooting/
Contenido
1. Fingerprinting – Exploración Inicial.
2. Scanning – Mapear la Red.
3. Enumeración – Extraer info de servicios y apps default.
4. Obtención de Acceso – Comprometer el sistema.
5. Escalamiento de Privilegios – Llegar a Root o admin.
6. Conservación de Control - Troyanos
7. Encubrimiento de Rastros – Evitar detección
… Cómo podemos realizar estas tareas en Android?
4. Metodología de Pentesting
ContenidoScanning
NetworkMapper
Identifica todos los equipos en la Red (“víctimas potenciales”).
Los detecta aunque tengan firewall instalado.
Muy útil para realizar “mini auditorías” de Seguridad en Redes WiFi, para detectar equipos maliciosos.
Contenido
1. Ataque Diccionario – dSploit
2. Ataque Fuerza Bruta – dSploit
3. Man in The Middle – arpspoof
4. Sniffing – Shark for Root
5. Ingeniería Social – FakeMail, SET
6. Exploits – Metasploit (no todos funcionan, y es muuuuuy lenta)
Obtención de Acceso
http://www.villacorp.com/blog/2012/08/metasploit-en-android/
ContenidoArpspoof
Efectúa intercepción de comunicaciones por “ARP Cache Poisoning”.
Herramienta “antigua”, liberada en 1999 (hace 14 años!)
He descubierto que todas las herramientas “avanzadas” para Intercepción en Android siguen usando esta técnica (dSploit,
NetworkSpoofer, Intercepter-NG, WhatsApp
Sniffer).
Para mayor efectividad, es mejor usar siempre arpspoof, aunque otras herramientas brinden funcionalidad similar.
Esto permite tener un mayor control sobre el ataque.
MITM
User
Spy/Hacker
User
Contenido7. Suites de Pentesting
dSploit
Intercepta comunicaciones en forma pasiva, o con MITM.
Captura cuentas y contraseñas de aplicaciones de Red de texto simple.
Ataca aplicaciones de Red por “diccionario”, para encontrar cuentas y contraseñas.
“Mata” conexiones para evitar que la víctima pueda accesar servicios locales o en Internet.
Inserta imágenes o videos falsificados en paginas web.
Contenido7. Suites de Pentesting
Network Spoofer
Intercerpta comunicaciones para agregar contenido falsificado en el navegador de la víctima.
Contenido7. Suites de Pentesting
Intercepter-NG 1.2
Intercepta comunicaciones en forma pasiva, o con MITM.
Multiplataforma: windows, linux, android, iphone, ipad.
Reconstruye el contenido de archivos a partir de tráfico.
Desencripta comunicaciones SSL mediante la técnica “SSLStrip”.
Contenido8. El Futuro de Android
En mi Investigación, he descubierto que todas las herramientas de Hacking Ético para Android implementan ataques previamente conocidos en
plataformas tradicionales Windows y Linux.
NO HE IDENTIFICADO UNA SOLA HERRAMIENTA QUE IMPLEMENTE TÉCNICAS PREVIAMENTE DESCONOCIDAS
El Futuro del Hacking Ético Móvil es adaptar técnicas que ya existen en otras plataformas.
Es muy recomendable dominar las técnicas que exiten en Windows y Linux, para buscar formas nuevas e ingeniosas
de implementarlas en Android.
ContenidoShare SeñueloUna de mis Técnicas favoritas de Pentesting
- Captura el HASH del usuario (contraseña encriptada), cuando la víctima accesa un recurso compartido en el equipo del hacker.
- Universal, funciona para Windows y Samba (Linux, OSX).
- Funciona en Redes Locales y WiFi(podemos hackear en el Aeropuerto, Hoteles y cualquier otro lugar con wifi pública o semipública (tipo Infinitum
Movil).
- Es efectiva, sin importar nivel de “parches” o service packs.
- Indetectable para Antivirus.
Ejemplo
Share señuelo
/super-secreto
“VICTIMAS” “HACKER”
ContenidoShare Señuelo
- Basado en el protocolo SMB (puerto TCP 445), uno de los más usados en Redes, por lo que es más fácil “esconder” el ataque en tráfico normal
- Por default, indetectable a todos los IDSo IPS (es una conexión “normal” a share)
- Pasiva, no genera tráfico malicioso hacia la red (casi imposible que nos detecten)
- Puede servir para contraatacar. (identificar la cuenta y hash del Hacker)
- Usa Ingeniería Social (“Los hackers
novatos atacan máquinas; los expertos a
las personas” – Bruce Schneier)
Ejemplo
Share señuelo
/super-secreto
“VICTIMAS” “HACKER”
ContenidoEn Windows, esta técnica es fácil de usar:
1. Crear Share señuelo en el equipo del Hacker.
2. Abrir el puerto TCP 445 en nuestro Firewall.
3. Ejecutar Cain & Abel (modo sniffer).
4. Esperar a la víctima o disuadirla para que se conecte al share.
5. Crackear el Hash.
pero en Android, NO existe Cain…�
Ejemplo
Share señuelo
/super-secreto
ContenidoCómo Implementarlo en Android ???
Share señuelo
/super-secreto
Contenido
No encontré una App que realizara todo el ataque.
Metasploit? Quizá podría funcionar, pero HD Moore menciona que es espantosamente lenta en Android (+500,000 líneas de código).
Qué necesitamos para el ataque???
1. Servidor SMB para crear el recurso compartido.
2. Sniffer para capturar el hash que le llega al servidor.
3. Transferir la muestra de tráfico a la PC de Crackeo (un smartphone no tiene el poder para esta tarea).
4. Extraer los hashes de la muestra.
5. Crackearlos.
Cómo Implementarlo en Android?
ContenidoServidor SMB (crear el share señuelo)
Probé siete diferentes, este fue el más completo:
Servers Ultimate Prohttps://play.google.com/store/apps/details?id=com.icecoldapps.serversultimate
Limitante de todos los servidores SMB en Android: sólo permiten acceso con la cuenta Guest.
Windows 7 por default NO se conecta a un share con Guest.
La “víctima” no va a poder accesar el recurso. Pero esto es bueno! Porque va a intentarlo varias veces, asegurando que capturemos el hash!
Verificando que el Share este listo:nmap -p445 IPHacker
Cómo Implementarlo en Android?
ContenidoSniffer (capturar el hash que llega al servidor)
Intercepter-NG.
Siempre me ha funcionado!
Crear filtro port 445 para capturar sólo el tráfico que contiene el hash encriptado.
Dejarlo ejecutando todo el tiempo, para capturar la mayor cantidad de víctimas posibles.
Guardar la muestra en archivo .pcap
Transferirlo a la PC de crackeo
Cómo Implementarlo en Android?
Contenido… ya tenemos los Hashes dentro de la muestra de tráfico, pero ahora, cómo los EXTRAEMOS?
Wireshark? NetworkMiner?Factible, pero demasiado laborioso, porque tenemos que buscar la información necesaria:
Cuenta
Dominio
Hash
Challenge del Cliente
Challenge del Cervidor
Si en el ataque capturamos Hashes de múltiples víctimas, se complica todavía más…
Además, AFAIK, Cain NO SOPORTA leer este tipo de hashes cuando se obtienen de otras herramientas!
Cómo Implementarlo en Android?
ContenidoPreplay.- Es el único software que encontré para Windows (existe una versión de tcpreplay, pero requiere demasiadas librerías adicionales).
Se ejecuta después de activar Cain en modo sniffer, en el mismo equipo del hacker.
(En *nix, se puede usar tcpreplay y ettercap para obtener resultados similares).
Cómo Implementarlo en Android?
ContenidoRESULTADO
ContenidoDEMO
ContenidoReferencias
Spoofing con Androidhttp://www.villacorp.com/blog/2013/01/spoofing-con-android/
Pentesting con Androidhttp://www.villacorp.com/blog/2013/01/pentesting-con-android/
Android: Riesgos del Rootinghttp://www.villacorp.com/blog/2012/11/android-riesgos-del-rooting/
Rooting Universal para Androidhttp://www.villacorp.com/blog/2012/11/rooting-universal-para-android/
Android: Modo Monitor WiFihttp://www.villacorp.com/blog/2012/10/android-modo-monitor-wifi/
Hackeando Redes con Androidhttp://www.villacorp.com/blog/2012/10/hackeando-redes-con-android/
Metasploit en Androidhttp://www.villacorp.com/blog/2012/08/metasploit-en-android/
Kismet: Wardriving con Androidhttp://www.villacorp.com/blog/2012/02/kismet-wardriving/
Tecnicas de Scanning (3)http://www.villacorp.com/blog/2011/10/tecnicas-de-scanning-3/
ContenidoGRACIAS!
ContactoLic. Fabiola Ferreira
Tel. 044 (55) 2893 4953
twitter @JavierVillacorp
Blog
http://blog.villacorp.com
Presentacion (versión final):
http://www.villacorp.com/doc/Android-Pentesting-IPN.pdf