2. HELLO!
Soy Matías Moreno Cárdenas
Amante de la ciberseguridad y
programador en ratos libres.
Profesor y pentester en la
empresa The Security Sentinel
Puedes seguirme en
@mmorenodev
6. Los archivos dex son los que contienen el código Java compilado y preparado para su ejecución en
dispositivos Android. Podemos referirnos a ellos como los Ejecutables Dalvik ya que pueden ser
interpretados por la máquina virtual Dalvik
7.
8. Herramientas utilizadas
MSFVENOM
Herramienta que combina las herramientas de
Metasploit msfpayload y msfencode en una única
instancia del Framework. Con ella crearemos la
apk maliciosa que vamos a inyectar a la app
legítima.
Mas información: https://www.offensive-
security.com/metasploit-
unleashed/msfvenom/
BACKDOOR-APK / THE FAT RAT
Ambas herramientas las podemos descargar
desde sus repositorios de GitHub.
Con ellas, inyectaremos código malicioso en las
app legítimas que hayamos descargado.
https://github.com/Screetsec/TheFatRat
https://github.com/dana-at-cp/backdoor-apk
Utlizaremos la distribucion Kali y un dispositivo físico o emulado para realizar las PoC
10. Podríamos utilizar esta Apk directamente para
infectar un Smartphone Android, pero resulta muy
poco “invisible” de cara a la víctima.
Vamos a probarlo y ver como sería esta
instalación.
Con backdoor-apk o TheFatRat y conseguiremos
inyectar el código malicioso de esta apk en otra
legítima que hayamos descargado previamente.
12. Vamos a descargar la que será la app en la que
inyectaremos el código malicioso.
En este caso vamos a descargarla utilizando la
web https://apkpure.com/
Podemos descargarnos cualquier aplicación,
para este ejemplo he optado por descargar una
app de una calculadora y un PDF Reader.
14. Vamos a ver que el uso de backdoor-apk es realmente sencillo, únicamente debemos tener
localizada la APK legítima y , por supuesto, descargada la herramienta de su repositorio.
15. Esta herramienta tiene, actualmente, algunos problemas con las rutas relativas, por lo que
deberemos pegar el apk dentro del directorio de la herramienta.
Es un proyecto abierto, por lo que os podéis animar a subir un parche ;)
Una vez copiado el APK estamos listos para ejecutar la herramienta, de una manera muy
sencilla.
16. Tendremos que decidir que tipo de payload queremos para el APK, recordad que esto genera
una conexión reversa que podremos escuchar desde nuestra consola de Metasploit.
En mi caso voy a elegir la conexión reversa a través de tcp.
17. Siendo una conexión reversa, debemos definir las opciones con la IP y el puerto que escuchará
la conexión
Este mensaje es muy importante, porque influye mucho a la hora de que nuestra víctima
sospeche o no de nuestra aplicación.
18. Esta última opción a elegir nos da la oportunidad de mantener los permisos que solicita la
aplicación legítima, es decir, nuestra aplicación infectada solicitará los mismos permisos al
instalarse que la app original. Esto puede hacer que nuestra víctima sospeche menos de la app.
Por el contrario, si la app original no posee permisos, por ejemplo, para acceder a la cámara no
podremos acceder a la cámara desde meterpreter.
Si los combinamos, la app infectada podrá realizar todas las acciones posibles, pero en la
instalación aparecerá, por ejemplo, que la calculadora puede realizar llamas o enviar sms, algo
bastante sospechoso.
19. Una vez terminado el proceso, se nos creará una nueva APK en la ruta /original/dist/
Esta herramienta ha decompilado ambas apps utilizando apktool y ha inyectado las actividades
que contiene la apk generada por msfvenom. Con las actividades introducidas inyecta la
inicialización de la app maliciosa en el OnCreate de la aplicación legítima.
Entre medias, ha ofuscado algunos strings para disminuir su detectabilidad frente a motores de
AVs, además ha utilizado dex2jar, proguard y dx para ofuscar, optimizar y encoger el código
malicioso.
Por último, vuelve a compilar el código con apktool y acaba firmando la aplicación.
20. Además de lo anterior, también nos ha creado un archivo Resource Scripts para automatizar en
Metasploit el proceso de escucha de la conexión que generará la app maliciosa.
22. Vamos a ver que el uso de TheFatRat no es exclusivo de Android, sino que también es una
fantástica herramienta para generar backdoors para Windows con poca detectabilidad (esto lo
dejamos para el siguiente taller jeje).
Debemos descargar la herramienta desde el repositorio y ejecutar su instalación, que puede
tardar un rato.
23. Cuando lo ejecutemos, debemos de fijarnos en la siguiente opción dentro de las que nos ofrece
Vamos a seleccionar esa opción y ver que nos ofrece esta herramienta.
24. Directamente nos pide que introduzcamos los mismos datos que con backdoor-apk , normal ya
que estamos ante una conexión inversa como hemos mencionado antes. Esta vez vamos a
elegir un puerto distinto al anterior.
Introducimos la ruta completa donde tenemos nuestro APK legítimo, en este caso el Adobe
Reader.
25. Como en la ocasión anterior, vamos a elegir la conexión reversa de meterpreter a través de tcp.
En la siguiente pantalla podemos ver que tenemos dos métodos, uno de ellos debe sonarnos ya
que thefatrat tiene incluida una versión de backdoor-apk.
Para realizarlo de manera distinta, elegiremos la opción propia de fatrat method y comenzará el
proceso de creación de la app maliciosa, con el mismo resultado que la anterior.
26. Una vez terminado correctamente nos debe aparecer este mensaje, le decimos que sí para que
nos genere el .rc que hemos visto con backdoor-apk que nos servirá para iniciar mas
rápidamente un listener en la consola de Metasploit.
27. Ya tenemos listo nuestro apk infectado y nuestro fichero de Resource Scripts para iniciar el
listener rápidamente en los siguientes directorios.
29. Con la APK maliciosa en
nuestro poder, ya podemos
pasar a la acción, en mi caso
voy a infectar un Android
virtual para comprobar la
eficacia de nuestra
Calculadora personalizada.
Para ello, utilizaremos una
máquina virtual de Android y
pondremos un handler a la
escucha en nuestra consola
de Metasploit a través del
puerto que configuramos al
comienzo en msfvenom.
Podemos usar el fichero .rc
también
30. Gracias a que nuestro backdoor esta camuflado dentro de unas aplicaciones que a primera vista
no son ilegítimas, podemos realizar ingeniería social contra nuestro objetivo de una manera mas
fácil.
Vamos a poner a escuchar nuestra consola de metasploit conexiones entrantes por el puerto
que definimos al infectar la Calculadora con backdoor-apk
31. Ya tenemos nuestro metasploit esperando conexiones entrantes, el siguiente paso será infectar
a nuestra víctima (en nuestro caso un terminal en nuestro poder) con la APK infectada para ver
si nos da buenos resultados.
La manera en la que infectamos a una víctima pueden ser muchas, aquí la ingeniería social es la
que nosotros consideremos aplicar.
32.
33. En cuanto nuestra víctima ejecuta la aplicación, se nos abre una nueva sesión de meterpreter,
nuestra calculadora ha funcionado correctamente!
Tened en cuenta que el funcionamiento de la calculadora no se ve afectado, la aplicación
funciona con total normalidad.
Ahora revisemos los permisos de la aplicación…recordad que hemos establecido todos los
permisos posibles para que meterpreter pueda realizar cualquier acción.
34. ¿Algo sospechoso verdad? Que una aplicación de cálculos
matemáticos necesite permisos sobre la cámara,
contactos, localización…
Por ello debemos jugar con la ingeniería social e infectar
una aplicación legítima que solicite ciertos permisos por
defecto que nuestro backdoor malicioso también utilice.
Vemos que dice el antivirus local del dispositivo a cerca de
esta aplicación, empecemos por Avast
35. En nuestro Smartphone de pruebas, tenemos Avast instalado, uno de los motores de antivirus
para Android mas extendido y utilizado.
Vamos a comprobar si detecta, primero, nuestra app de la calculadora
36. Vaya, pues ha detectado dos riesgos entre los cuales no
se encuentra nuestra aplicación de la calculadora.
Por lo tanto, todas las personas con Avast instalado
podrían ser víctimas de este bicho que nos hemos
fabricado.
Nuestra sesión en metasploit sigue intacta también
después del escaneo, todo perfecto.
Probemos también con otro antivirus para Android muy
utilizado, el AVG.
37. Exactamente igual que
Avast (incluso comparten
interfaz gráfica en los
resultados, curioso)
Nuestra sesión de
meterpreter sigue intacta.
38. Llegados a este punto, probemos con nuestra otra app infectada, el Adobe Reader, que hemos
creado con una técnica de Fat Rat.
El proceso el exactamente el mismo que con la Calculadora, por lo que podemos resumirlo en
una conexión meterpreter satisfactoria y un funcionamiento normal dentro del Smartphone.
Por el contrario el método que hemos utilizado con TheFatRat no realiza una ofuscación tan
buena como la realiza backdoor-apk.
Además, el proceso “old” falla en muchas ocasiones y corrompe el APK la mayoría de veces, por
lo que nos podemos decantar por backdoor-apk para la inyección de código malicioso, o por
inyectarlo nosotros mismos manualmente
40. La sesión de Meterpreter nos brinda el acceso a utilidades muy interesantes, desde mandar sms, hacer
capturas de la cámara, escuchar el micrófono, subirle archivos, descargárnoslos…
41. PWNED! 😉¿Que cosas se os ocurren con una sesión de
meterpreter sobre un terminal Android?
43. SERVIDOR FTP
Como posible alternativa, podemos
tener en cuenta aplicaciones que
podemos encontrar en Google Play,
como la aplicación ser servidor FTP
para poder acceder desde el
exterior a los ficheros del teléfono.
Teniendo en cuenta que tengamos
acceso físico al teléfono, podemos
ocultar estas aplicaciones dentro
del menú de apps.
45. SERVIDOR SSH
Como en el caso anterior
podemos contar también con
habilitar un acceso SSH al
teléfono y conectarnos de manera
remota.
Al igual que con el FTP,
tendremos que ocultar todo lo
que podamos la app dentro del
menú de aplicaciones
46.
47. TODO EN UNO - AIRDROID
Por otra parte también
disponemos de aplicaciones
todo en uno como puede ser
Airdroid.
Esta app nos brinda acceso
completo al teléfono desde un
fantástico interfaz web desde el
que podemos acceder a
contactos, llamadas,
multimedia, captura de
pantalla…
50. ANDRO-RAT
Tenemos disponible también en troyano bastante conocido llamado AndroRAT, y podemos
descargar su código fuente desde aquí: https://github.com/wszf/androrat
Tanto el servidor y el cliente están desarrollados en Java y tenemos la oportunidad de
personalizarlo, su interfaz nos puede recordar a las típicas interfaces de troyano para
Windows como Bifrost o CyberGate.
51.
52.
53. WACRYPT
Herramienta de extracción de conversaciones de WhatsApp para su
almacenado y análisis. Funcionamiento totalmente automatizado y
simple para el usuario inexperto.
54. Síguenos en nuestras
redes sociales si te ha
gustado el taller!
Muchas gracias por
asistir
@TSSentinel
@mmorenodev
thesecuritysentinel.es
Momento de hablar y
de exponer vuestras
dudas e ideas!