Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install...

34
Pentesting con Android Ing. Javier Villanueva http://www.villacorp.com

Transcript of Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install...

Page 1: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

Pentesting con Android

Ing. Javier Villanueva

http://www.villacorp.com

Page 2: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 3: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

Contenido

Muchas Gracias a ESIME por Invitarme y Patrocinar esta

Conferencia!

Agradecimientos

Page 4: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 5: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 6: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 7: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 8: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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/

Page 9: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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/

Page 10: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 11: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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.

Page 12: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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/

Page 13: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 14: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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.

Page 15: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

Contenido6. Suites de Pentesting

Network Spoofer

Intercerpta comunicaciones para agregar contenido falsificado en el navegador de la víctima.

Page 16: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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”.

Page 17: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 18: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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.

Page 19: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

Contenido7. El Futuro de Android

Cómo puedo contribuir a esta tendencia en Android?

Adaptando una Técnica muy Poderosa!

Page 20: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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”

Page 21: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 22: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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

Page 23: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

ContenidoCómo Implementarlo en Android ???

Carpeta señuelo

/super-secreto

Page 24: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 25: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 26: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 27: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 28: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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???”

Page 29: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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?

Page 30: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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).

Page 31: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

ContenidoRESULTADO

Page 32: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

Contenido8. VIDEO

Page 33: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

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/

Page 34: Pentesting con Android Ing. Javier Villanueva · Comandos útiles para un Hacker: adb install Instala paquetes.apk. adb push Enviar archivos de la PC al teléfono. adb pull Enviar

ContenidoGRACIAS! PREGUNTAS?

ContactoLic. Fabiola Ferreira

[email protected]

[email protected]

twitter @JavierVillacorp

Blog

http://blog.villacorp.com

Presentacion (versión final):

http://www.villacorp.com/doc/Android-Pentesting.pdf