Pentesting con Android
Ing. Javier Villanueva
http://www.villacorp.com
ContenidoIng. 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” para Hackers Profesionales, 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 200 artículos y tutoriales originaleshttp://blog.villacorp.com
Quién Soy?
Contenido
Muchas Gracias a ESIME por Invitarme y Patrocinar esta
Conferencia!
Agradecimientos
Contenido
Las Opiniones Expresadas en esta Conferencia son Responsabilidad Única y Exclusiva del
Expositor.
No reflejan necesariamente la opinión de nuestro Patrocinador (ESIME).
Aclaración
Contenido
1. Por qué usar un Smartphone2. Preparando Android3. Metodología de Pentesting4. Scanning5. Obtención de Acceso6. Suites Móviles de Pentesting7. El Futuro de Android8. 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 realizar ataques prolongados.
Corto Alcance.- Tenemos que estar físicamente cerca de la Red (aunque hay alternativas).
1. Por qué usar un Smartphone?
2. Preparando Android: SDK
ADB (Android Debug Bridge)
Permite el control del Smartphone a través de USB.
Muy útil para instalar paquetes apk o en formatobinario, 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
2. Preparando Android: Rooting
Activa el acceso Administrativo al Smartphone, con el máximo privilegio del sistema.
Similar a “root” de Linux o “administrator” de Windows.
Las técnicas más poderosas de Hacking requieren este privilegio.
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?
3. Metodología de Pentesting
Contenido4. Scanning
NetworkMapper
Identifica todos los equipos en la Red (“víctimas potenciales”).
Los detecta aunque tengan Firewall.
Muy útil para realizar “mini auditorías” de Seguridad en Redes WiFi, para detectar equipos maliciosos.
Contenido
1. Ataque Diccionario – dSploit (34 servicios de Red)
2. Man in The Middle – Arpspoof
3. Sniffing – Intercepter NG
4. Ingeniería Social – SET
5. Exploits – Metasploit (no todos funcionan, y es muuuuuy lenta)
5. Obtención de Acceso
http://www.villacorp.com/blog/2012/08/metasploit-en-android/
ContenidoArpspoof
Intercepta comunicaciones entre dos o más “víctimas”.
Herramienta “antigua”, liberada en 1999 (hace 14 años!)
He descubierto que todas las herramientas “avanzadas” para Intercepción en Androidsiguen 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
Contenido6. 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.
Contenido6. Suites de Pentesting
Network Spoofer
Intercerpta comunicaciones para agregar contenido falsificado en el navegador de la víctima.
Contenido6. Suites de Pentesting
Intercepter-NG 1.2
Intercepta comunicaciones en forma pasiva, o con MITM.
Multiplataforma: Windows, Linux, Android, iPhone, iPad.
Incluye el “Sniffer” más poderoso de todo Android (el más parecido a Wireshark).
Reconstruye el contenido de documentos a partir del tráfico capturado en la red (“resurrection”).
Desencripta comunicaciones SSL mediante la técnica “SSLStrip”.
ContenidoEXCLUSIVA!
Intercepter-NG Versión 1.3
ESTRENO MUNDIAL DE LA VERSIÓN PRIVADA, CREADA EN EXCLUSIVA PARA ESTE CONGRESO.
Agradezco al Autor de Intercepter, por su amable Colaboración y Entusiasmo para liberar esta versión en exclusiva para mi Conferencia.
Nuevo! Agregar manualmente IPs de las víctimas.
Nuevo! Filtros PCAP. Facilita el ataque a aplicaciones de Red específicas.
Nuevo! Guarda tráfico en memoria interna o sdcard.
http://sniff.suhttp://intercepter.nerf.ruhttp://intercepter.nerf.ru/intercepter.apk
Contenido7. 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 TOTALMENTE NUEVAS
El Futuro del Hacking Ético Móvil es adaptar técnicas que ya existen en otras plataformas.
Es muy recomendable dominar las técnicas de Hacking Ético existentes en Windows y Linux, para buscar formas nuevas e ingeniosas
de adaptarlas a Android.
Contenido7. El Futuro de Android
Cómo puedo contribuir a esta tendencia en Android?
Adaptando una Técnica muy Poderosa!
ContenidoCarpeta SeñueloUna de mis Técnicas favoritas de Pentesting.
- Captura la contraseña encriptada del usuario, cuando la víctima accesa una carpeta compartida en el equipo del hacker.
- Universal, funciona para Windows y Samba(Linux, OSX).
- Funciona en Redes Locales y WiFi(podemos hackear a usuarios en el Aeropuerto, Hoteles y cualquier otro lugar con wifi pública o semipública (tipo Infinitum
Móvil).
- Es efectiva, sin importar nivel de “parches”o service packs en el equipo de la víctima.
- Indetectable para Antivirus.
Nueva Técnica Android
Share señuelo
/super-secreto
“VICTIMAS” “HACKER”
ContenidoCarpeta 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 a hackers o usuarios maliciosos (identificar su cuenta y hash)
- Usa Ingeniería Social (“Los hackers
novatos atacan máquinas; los expertos a
las personas” – Bruce Schneier)
Share señuelo
/super-secreto
“VICTIMAS” “HACKER”
Nueva Técnica Android
ContenidoEn Windows, esta técnica es fácil de usar:
1. Crear carpeta compartida señuelo en el equipo del Hacker, con un nombre ATRACTIVO.
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 a la carpeta.
5. Capturar y Crackear el Hash.
pero en Android, NO existe Cain…�
Share señuelo
/secreto
Nueva Técnica Android
ContenidoCómo Implementarlo en Android ???
Carpeta señuelo
/super-secreto
ContenidoEn mi Investigación, no encontré una App que realizara 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é componentes necesitamos para el ataque???
1. Servidor SMB para crear la carpeta compartida.
2. Sniffer para capturar la sesión de la víctima que llega al servidor (y guardarla en una muestra de tráfico).
3. Transferir la muestra de tráfico a la PC de Crackeo (un Smartphone no tiene suficiente poder de CPU para realizar esta tarea).
4. Extraer la contraseña encriptada de la muestra.
5. Crackearla.
Cómo Implementarlo en Android?
Contenido1. Servidor SMB (crear la carpeta señuelo)
Probé Siete diferentes, este fué el más completo:
Servers Ultimate Pro ($)https://play.google.com/store/apps/details?id=com.icecoldapps.serversultimate
Soporta 23 diferentes TIPOS de servidor.
Para el ataque, requerimos configurar CUATRO parámetros.
Cómo Implementarlo en Android?
Contenido2. Sniffer (capturar el hash que llega al servidor)
Intercepter-NG.
Crear filtro port 445 para capturar sólo el tráfico que contiene la sesión del usuario (muy importante para evitar tráfico innecesario).
Dejarlo ejecutando todo el tiempo, para capturar la mayor cantidad de víctimas posibles.
Esperar a que “caiga” la víctima (tráfico de sesiones aparece en color amarillo).
Guardar tráfico en archivo .pcap
Transferirlo a la PC para crackear.
Cómo Implementarlo en Android?
Contenido… ya tenemos la contraseña encriptada dentro de la muestra de tráfico, pero ahora, cómo la EXTRAEMOS?
Wireshark?Factible, pero demasiado laborioso, porque tenemos que buscar manualmente toda la información necesaria:
Cuenta
Dominio
Contraseña encriptada
Challenge del Cliente
Challenge del Servidor
Si en el ataque capturamos Hashes de múltiples víctimas, este método 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?
Contenido
…después de varias horas de profunda meditación…
Cuál será la Solución?
“DE TODO LO QUE CONOZCO EN HACKING DE WINDOWS Y LINUX, QUÉME PODRÁ SERVIR???”
Contenido
Por qué no REINYECTAMOS la muestra de tráfico EN EL MISMO equipo usando Cain en modo Sniffer, para que
extraiga automáticamente la información necesaria para Crackear la contraseña?
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 Cainen modo sniffer, en el mismo equipo del hacker.
(En *nix, se puede usar tcpreplay y ettercap para obtener resultados similares).
ContenidoRESULTADO
Contenido8. VIDEO
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 Scanninghttp://www.villacorp.com/blog/2011/10/tecnicas-de-scanning-3/
ContenidoGRACIAS! PREGUNTAS?
ContactoLic. Fabiola Ferreira
twitter @JavierVillacorp
Blog
http://blog.villacorp.com
Presentacion (versión final):
http://www.villacorp.com/doc/Android-Pentesting.pdf