Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AudioServer-Voip-Recorder — 🔬 Uno strumento di ricerca Android avanzato per la cattura audio VoIP in tempo reale (Uplink/Downlink) mediante hook dinamici su libaudioflinger.so. Testato e realizzato su WhatsApp, Signal e Telegram su Android 14. | Kitploit
Strumenti/GitHubGitHub/nighthawkk/audioserver-voip-recorder
Sicurezza AndroidReverse EngineeringSicurezza Mobile
GitHubnighthawkk/audioserver-voip-recorder

AudioServer-Voip-Recorder

🔬 Uno strumento di ricerca Android avanzato per la cattura audio VoIP in tempo reale (Uplink/Downlink) mediante hook dinamici su libaudioflinger.so. Testato e realizzato su WhatsApp, Signal e Telegram su Android 14.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
31991 mese faNon ancora revisionato

Obiettivo: Dimostrare la cattura di flussi VoIP effettuando l'hook dell'audioserver di Android (in particolare libaudioflinger.so) e registrando i buffer PCM in uplink (microfono) e downlink (altoparlante) quando il sistema è in modalità comunicazione.

Progettazione e Metodologia

Architettura:

  • App di Controllo (Android)
    Interfaccia con 9 pulsanti per gestire la configurazione delle policy SELinux, l'iniezione del payload, lo spostamento dei dati e la riproduzione.

  • Payload (libaudiohook.so)
    Libreria condivisa C++ (compilata come parte del progetto dell'app) che aggancia i metodi interni di AudioFlinger usando Dobby e scrive i buffer PCM grezzi in una directory di sessione.

  • Post-Elaborazione
    Strumento aggiuntivo, tools/audioparser.py, converte i file grezzi .ac(Downlink)/.bc(Uplink) in WAV. Il file manager dell'app può anche convertire e riprodurre in-app.

  • Utility di Ricerca
    Script Frida per il tracciamento iniziale delle funzioni e la scoperta degli offset; file di analisi per simboli/offset e altri frammenti.

App di Controllo

Questa applicazione Android fornisce un'interfaccia grafica per gestire la registrazione VoIP tramite l'audioserver. Si integra con un payload nativo che si aggancia allo stack audio di Android per catturare l'audio del microfono e dell'altoparlante dalle applicazioni VoIP.

L'app funge da centro di controllo, consentendo di iniettare le policy SELinux richieste, avviare/fermare il monitoraggio, gestire i dati registrati e riprodurre i file audio VoIP catturati.

Funzionalità

L'attività principale contiene 9 pulsanti di controllo:

  1. Inietta Policy
    Inietta le policy SELinux necessarie affinché audioserver e questa app funzionino insieme.

  2. Avvia Monitoraggio
    Inietta il payload della libreria condivisa in audioserver, abilitando la cattura dell'audio VoIP tramite hook di RecordTrack e PlaybackTrack. Usa AndKittyInjector per l'iniezione di processo.

  3. Ferma Monitoraggio
    Riavvia il processo audioserver, fermando il monitoraggio e rimuovendo gli hook iniettati.

  4. Copia Dati
    Copia l'audio PCM grezzo catturato dalla directory temporanea /data/local/tmp/voip a /sdcard/voip.

    • Pulisce la directory temporanea dopo l'operazione.
  5. Visualizza Log
    Mostra i log relativi all'iniezione, all'hook e allo stato della registrazione.

  6. Abilita SELinux
    Ripristina la modalità enforcing di SELinux.

  7. Disabilita SELinux
    Imposta SELinux in modalità permissive. Usalo quando le policy iniettate falliscono.

  8. Riproduci Audio
    Apre il File Manager VoIP personalizzato (/sdcard/voip/):

    • Converte i file PCM grezzi in formato WAV in memoria.
    • Riproduce l'audio convertito direttamente nell'app.
  9. Elimina Dati
    Elimina tutti i dati audio sia da /data/local/tmp/voip che da /sdcard/voip. NOTA: Dopo l'eliminazione dei dati, è necessario re-iniettare il payload in audioserver per la creazione della directory e il salvataggio dei dati.

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

Payload di Hook

Questa libreria condivisa viene iniettata in audioserver per rilevare AUDIO_MODE_IN_COMMUNICATION e catturare i flussi audio VoIP direttamente dallo stack audio di Android per un set predefinito di nomi pacchetto.

Usa il framework di hooking inline Dobby per intercettare metodi critici all'interno di libaudioflinger.so.
Entrambi i flussi audio uplink (microfono) e downlink (altoparlante) vengono catturati e scritti in file di sessione per l'elaborazione successiva.

Punti di Hook

La libreria installa hook sulle seguenti funzioni all'interno di AudioFlinger e classi correlate:

FunzioneScopo
AudioFlinger::setModeTiene traccia delle transizioni dentro/fuori dalla modalità IN_COMMUNICATION (VoIP attivo).
RecordTrack::getNextBufferCattura i frame audio del microfono (uplink).
PlaybackThread::Track::getNextBufferCattura i frame audio dell'altoparlante (downlink).
Track::stopChiude e finalizza il file downlink.
RecordTrack::stopChiude e finalizza il file uplink.

Applicazioni Target

La libreria filtra i flussi in base al mapping UID → Pacchetto.

App attualmente monitorate:

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

Puoi aggiungere altre applicazioni anche all'interno di audioserver_hook.cpp:

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

Output dei File

  • Una directory di sessione viene creata all'iniezione in audioserver in: /data/local/tmp/voip/audioserver_session_<timestamp>/

  • I file vengono prima creati con estensione .tmp, poi rinominati all'arresto della traccia:

    • Uplink (mic) → <packageName>_<sampleRate>_<timestamp>.bc
    • Downlink (speaker) → <packageName>_<sampleRate>_<timestamp>.ac
  • Esempio di sessione:

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

Offset

Poiché la libreria target è strippata e i metodi non sono esportati in libaudioflinger.so, abbiamo bisogno di offset esatti dei metodi e di altri componenti correlati per un hooking efficace.

Possiamo estrarre questi offset tramite analisi statica con IDA-PRO o analisi dinamica con Frida.
Una volta noti gli offset, possiamo sostituirli all'interno del file header offsets.h.

Offset Richiesti:
Metodi:
Scarica lo strumento