http://www.villacorp.
com
Pentesting con
Android
Ing. Javier Villanueva
Agradecimientos
Contenido
Muchas Gracias a ESIME por
Invitarme y Patrocinar esta
Conferencia!
Quién Soy?
Contenido
Ing. Javier Villanueva
Consultor, Investigador e Instructor Independiente en
Seguridad Ofensiva (“Hacking Ético”)
Director de Villacorp & Asociados. Empresa dedicada a
proteger el Negocio Digital de nuestros Clientes
http://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 originales
http://blog.villacorp.com
Contenido
Contenido
1. Por qué usar un Smartphone
2. Cuál es el mejor Android para Pentesting
3. Preparando Android
4. Metodología de Pentesting
5. Scanning
6. Obtención de Acceso
7. Suites Móviles de Pentesting
8. El Futuro de Android
9. DEMO
1. Por qué usar un Smartphone?
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).
2. Cual es el Mejor para Hackers?
Contenido
Criterios de Selección Recomendados:
Sea un modelo popular
Para encontrar soporte técnico más fácil
Fácil de “rootear”.
Casi todas las herramientas de Hacking lo
solicitan
Brinde una plataforma segura
Para que no nos “contraataquen” fácilmente
Proveedor brinde actualizaciones
oportunas
Para que no tenga tantas vulnerabilidades
Cual es el Mejor para Hackers?
Contenido
Mi 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.
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 PC
adb 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/
4. Metodología de Pentesting
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?
Scanning
Contenido
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.
Obtención de Acceso
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)
http://www.villacorp.com/blog/2012/08/metasploit-en-android/
MITM
Contenido
Arpspoof
Efectúa intercepción de comunicaciones por
“ARP Cache Poisoning”.
Herramienta “antigua”, liberada en 1999 (hace
14 años!)
User User
He descubierto que todas las herramientas
“avanzadas” para Intercepción en Android
siguen usando esta técnica (dSploit,
NetworkSpoofer, Intercepter-NG, WhatsApp
Sniffer). Spy/Hacker
Para mayor efectividad, es mejor usar siempre
arpspoof, aunque otras herramientas brinden
funcionalidad similar.
Esto permite tener un mayor control sobre el
ataque.
7. Suites de Pentesting
Contenido
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.
7. Suites de Pentesting
Contenido
Network Spoofer
Intercerpta comunicaciones
para agregar contenido
falsificado en el navegador de
la víctima.
7. Suites de Pentesting
Contenido
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”.
8. El Futuro de Android
Contenido
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.
Ejemplo
Contenido
Share Señuelo
Una 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.
Share señuelo
- Universal, funciona para Windows y
/super-secreto
Samba (Linux, OSX).
- Funciona en Redes Locales y WiFi
(podemos hackear en el Aeropuerto,
Hoteles y cualquier otro lugar con wifi
“VICTIMAS” “HACKER”
pública o semipública (tipo Infinitum
Movil).
- Es efectiva, sin importar nivel de
“parches” o service packs.
- Indetectable para Antivirus.
Ejemplo
Contenido
Share 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 IDS
Share señuelo
o IPS (es una conexión “normal” a share)
/super-secreto
- Pasiva, no genera tráfico malicioso
hacia la red (casi imposible que nos
detecten)
- Puede servir para contraatacar. “VICTIMAS” “HACKER”
(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
Contenido
En Windows, esta técnica es fácil de usar:
1. Crear Share señuelo en el equipo del
Hacker. Share señuelo
2. Abrir el puerto TCP 445 en nuestro /super-secreto
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…
Cómo Implementarlo en Android ???
Contenido
Share señuelo
/super-secreto
Cómo Implementarlo en Android?
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?
Contenido
Servidor SMB (crear el share señuelo)
Probé siete diferentes, este fue el más completo:
Servers Ultimate Pro
https://play.google.com/store/apps/details?id=com.ic
ecoldapps.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?
Contenido
Sniffer (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?
Contenido
Preplay.- 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).
RESULTADO
Contenido
DEMO
Contenido
Referencias
Contenido
Spoofing con Android
http://www.villacorp.com/blog/2013/01/spoofing-con-android/
Pentesting con Android
http://www.villacorp.com/blog/2013/01/pentesting-con-android/
Android: Riesgos del Rooting
http://www.villacorp.com/blog/2012/11/android-riesgos-del-rooting/
Rooting Universal para Android
http://www.villacorp.com/blog/2012/11/rooting-universal-para-android/
Android: Modo Monitor WiFi
http://www.villacorp.com/blog/2012/10/android-modo-monitor-wifi/
Hackeando Redes con Android
http://www.villacorp.com/blog/2012/10/hackeando-redes-con-android/
Metasploit en Android
http://www.villacorp.com/blog/2012/08/metasploit-en-android/
Kismet: Wardriving con Android
http://www.villacorp.com/blog/2012/02/kismet-wardriving/
Tecnicas de Scanning (3)
http://www.villacorp.com/blog/2011/10/tecnicas-de-scanning-3/
GRACIAS!
Contenido
Contacto
Lic. Fabiola Ferreira
Tel. 044 (55) 2893 4953
fabiola.ferreira@villacorp.com
javier@villacorp.com
twitter @JavierVillacorp
Blog
http://blog.villacorp.com
Presentacion (versión final):
http://www.villacorp.com/doc/Android-Pentesting-IPN.pdf