Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
AudioServer-Voip-Recorder — 🔬 Una herramienta avanzada de investigación para Android que captura audio VoIP en tiempo real (Uplink/Downlink) mediante el hooking dinámico de libaudioflinger.so. Probada y construida sobre WhatsApp, Signal y Telegram en Android 14. | Kitploit
Herramientas/GitHubGitHub/nighthawkk/audioserver-voip-recorder
Seguridad AndroidIngeniería InversaSeguridad Móvil
GitHubnighthawkk/audioserver-voip-recorder

AudioServer-Voip-Recorder

🔬 Una herramienta avanzada de investigación para Android que captura audio VoIP en tiempo real (Uplink/Downlink) mediante el hooking dinámico de libaudioflinger.so. Probada y construida sobre WhatsApp, Signal y Telegram en Android 14.

Ver Repositorio

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
3199hace 1 mesAún no revisado

Objetivo: Demostrar la captura de flujos VoIP enganchando el audioserver de Android (específicamente libaudioflinger.so) y grabando los buffers PCM de subida (micrófono) y bajada (altavoz) cuando el sistema está en modo communication.

Diseño del Proyecto y Metodología

Arquitectura:

  • App de Control (Android)
    Interfaz con 9 botones para gestionar la configuración de políticas SELINUX, la inyección del payload, el movimiento de datos y la reproducción.

  • Payload (libaudiohook.so)
    Librería compartida en C++ (compilada como parte del proyecto de la app) que engancha métodos internos de AudioFlinger usando Dobby y escribe buffers PCM crudos en un directorio de sesión.

  • Post-Procesamiento
    Herramienta adicional, tools/audioparser.py, convierte archivos crudos .ac(Downlink)/.bc(Uplink) a WAV. El administrador de archivos de la app también puede convertir y reproducir dentro de la aplicación.

  • Utilidades de Investigación
    Scripts de Frida para el trazado inicial de funciones y el descubrimiento de offsets; archivos de análisis para símbolos/offsets y otros fragmentos.

App de Control

Esta aplicación Android proporciona una interfaz gráfica para gestionar la grabación VoIP a través del audioserver. Se integra con un payload nativo que se engancha en la pila de audio de Android para capturar el audio del micrófono y del altavoz de las aplicaciones VoIP.

La app actúa como un centro de control, permitiéndote inyectar las políticas SELinux requeridas, iniciar/detener la monitorización, gestionar los datos grabados y reproducir los archivos de audio VoIP capturados.

Características

La actividad principal contiene 9 botones de control:

  1. Inyectar Políticas
    Inyecta las políticas SELinux necesarias para que audioserver y esta app funcionen juntos.

  2. Iniciar Monitorización
    Inyecta el payload de la librería compartida en audioserver, habilitando la captura de audio VoIP mediante el enganche de RecordTrack y PlaybackTrack. Utiliza AndKittyInjector para la inyección de procesos.

  3. Detener Monitorización
    Reinicia el proceso audioserver, deteniendo la monitorización y eliminando los hooks inyectados.

  4. Copiar Datos
    Copia el audio PCM crudo capturado del directorio temporal /data/local/tmp/voip a /sdcard/voip.

    • Limpia el directorio temporal después.
  5. Ver Logs
    Muestra los registros relacionados con la inyección, el enganche y el estado de la grabación.

  6. Activar SELinux
    Restaura el modo enforcing de SELinux.

  7. Desactivar SELinux
    Establece SELinux en modo permisivo. Úsalo si las políticas inyectadas fallan.

  8. Reproducir Audios
    Abre el Administrador de Archivos VoIP personalizado (/sdcard/voip/):

    • Convierte los archivos PCM crudos a formato WAV en memoria.
    • Reproduce el audio convertido directamente en la app.
  9. Eliminar Datos
    Elimina todos los datos de audio de /data/local/tmp/voip y /sdcard/voip. NOTA: Después de eliminar los datos, es necesario reinyectar en audioserver para que se cree el directorio y poder guardar los datos.

+----------------------+    
|                      |    
|   App MainActivity   |    
|                      |    
|                      |    
|(9 Control Buttons UI)|    
|                      |    
|                      |    
+----------+-----------+    
           |                
           |                
           |                
+----------v-----------+    
|                      |    
|       JNI Layer      |    
|                      |    
| Selinux, Process Inje|    
| ction,               |    
|                      |    
|                      |    
+----------------------+    

Payload de Enganche

Esta librería compartida se inyecta en audioserver para detectar AUDIO_MODE_IN_COMMUNICATION y capturar los flujos de audio VoIP directamente de la pila de audio de Android para un conjunto predefinido de nombres de paquete.

Utiliza el framework de enganche inline Dobby para interceptar métodos críticos dentro de libaudioflinger.so.
Tanto los flujos de audio uplink (micrófono) como downlink (altavoz) se capturan y escriben en archivos de sesión para su posterior procesamiento.

Puntos de Enganche

La librería instala hooks en las siguientes funciones dentro de AudioFlinger y clases relacionadas:

FunciónPropósito
AudioFlinger::setModeRastrea las transiciones hacia/desde el modo IN_COMMUNICATION (VoIP activo).
RecordTrack::getNextBufferCaptura los frames de audio del micrófono (uplink).
PlaybackThread::Track::getNextBufferCaptura los frames de audio del altavoz (downlink).
Track::stopCierra y finaliza el archivo de downlink.
RecordTrack::stopCierra y finaliza el archivo de uplink.

Aplicaciones Objetivo

La librería filtra los flujos basándose en el mapeo UID → Paquete.

Aplicaciones actualmente monitorizadas:

  • com.whatsapp
  • com.whatsapp.w4b (WhatsApp Business)
  • org.thoughtcrime.securesms (Signal)
  • org.telegram.messenger
  • org.telegram.messenger.web

También puedes añadir otras aplicaciones dentro de audioserver_hook.cpp:

static const char* kTargetPackages[] = {  
    "com.whatsapp",  
    "com.whatsapp.w4b",  
    "org.thoughtcrime.securesms",  
    "org.telegram.messenger",  
    "org.telegram.messenger.web"  
};

Salida de Archivos

  • Se crea un directorio de sesión al inyectar en audioserver bajo: /data/local/tmp/voip/audioserver_session_<timestamp>/

  • Los archivos se crean primero con la extensión .tmp y luego se renombran al detener el track:

    • Uplink (micrófono) → <packageName>_<sampleRate>_<timestamp>.bc
    • Downlink (altavoz) → <packageName>_<sampleRate>_<timestamp>.ac
  • Ejemplo de sesión:

	/data/local/tmp/voip/audioserver_session_1725389200/
	├── com.whatsapp_48000_1725389201_123456.ac
	├── com.whatsapp_48000_1725389201_123789.bc
	

Offsets

Dado que la librería objetivo está stripped y los métodos no están exportados en libaudioflinger.so, necesitamos los offsets exactos de los métodos y otros componentes relacionados para un enganche exitoso.

Podemos extraer esos offsets mediante análisis estático con IDA-PRO o mediante análisis dinámico con frida. Una vez que se conocen los offsets, podemos reemplazarlos dentro del archivo de cabecera offsets.h.

Offsets Requeridos:
Métodos:
Descargar herramienta