bytes.cat

La wiki d'FP d'informàtica

Eines de l'usuari

Eines del lloc


Barra lateral

ASIX Administració de Sistemes Informàtics i Xarxes
Tots els mòduls del cicle
MP01 Implantació de sistemes operatius
Totes les UFs del modul
MP02 Gestió de bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Fonaments de maquinari
Totes les UFs del modul
MP06 Administració de sistemes operatius
Totes les UFs del modul
MP07 Planificació i administració de xarxes
Totes les UFs del modul
MP08 Serveis de xarxa i Internet
Totes les UFs del modul
MP09 Implantació d'aplicacions web
Totes les UFs del modul
MP10 Administració de sistemes gestors de bases de dades
Totes les UFs del modul
MP11 Seguretat i alta disponibilitat
Totes les UFs del modul
MP12 Formació i orientació laboral
Totes les UFs del modul
MP13 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP14 Projecte
Totes les UFs del modul
DAM Desenvolupament d’aplicacions multiplataforma
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació bàsica
Totes les UFs del modul
MP04 Llenguatges de marques i sistemes de gestió d'informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Accés a dades
Totes les UFs del modul
MP07 Desenvolupament d’interfícies
Totes les UFs del modul
MP08 Programació multimèdia i dispositius mòbils
Totes les UFs del modul
MP09 Programació de serveis i processos
Totes les UFs del modul
MP10 Sistemes de gestió empresarial
Totes les UFs del modul
MP11 Formació i orientació laboral
Totes les UFs del modul
MP12 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP13 Projecte de síntesi
Totes les UFs del modul
MPDual Mòdul Dual / Projecte
DAW Desenvolupament d’aplicacions web
Tots els mòduls del cicle
MP01 Sistemes informàtics
Totes les UFs del modul
MP02 Bases de dades
Totes les UFs del modul
MP03 Programació
Totes les UFs del modul
MP04 Llenguatge de marques i sistemes de gestió d’informació
Totes les UFs del modul
MP05 Entorns de desenvolupament
Totes les UFs del modul
MP06 Desenvolupament web en entorn client
Totes les UFs del modul
MP07 Desenvolupament web en entorn servidor
Totes les UFs del modul
MP08 Desplegament d'aplicacions web
Totes les UFs del modul
MP09 Disseny d'interfícies web
Totes les UFs del modul
MP10 Formació i Orientació Laboral
Totes les UFs del modul
MP11 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP12 Projecte de síntesi
Totes les UFs del modul
SMX Sistemes Microinformàtics i Xarxes
Tots els mòduls del cicle
MP01 Muntatge i manteniment d’equips
Totes les UFs del modul
MP02 Sistemes Operatius Monolloc
Totes les UFs del modul
MP03 Aplicacions ofimàtiques
Totes les UFs del modul
MP04 Sistemes operatius en xarxa
Totes les UFs del modul
MP05 Xarxes locals
Totes les UFs del modul
MP06 Seguretat informàtica
Totes les UFs del modul
MP07 Serveis de xarxa
Totes les UFs del modul
MP08 Aplicacions Web
Totes les UFs del modul
MP09 Formació i Orientació Laboral
Totes les UFs del modul
MP10 Empresa i iniciativa emprenedora
Totes les UFs del modul
MP11 Anglès
Totes les UFs del modul
MP12 Síntesi
Totes les UFs del modul
CETI Ciberseguretat en Entorns de les Tecnologies de la Informació
Tots els mòduls del cicle
CiberOT Ciberseguretat en Entorns d'Operació
Tots els mòduls del cicle
frida_telegram

Aquesta és una revisió antiga del document


Intercepta i manipula els missatges de Telegram: FRIDA!

Per josepmariabella / març 26, 2025 (Aquesta és una còpia de l'article aparegut al blog de Josep Ma Bellà training-b.com a petició de l'autor)

Frida és una de les eines que més m’ha sorprès, no només per ser multiplataforma, sinó per la facilitat amb la que podem introduir codi dins les crides de funcions en una aplicació.

En el següent mostrarem un exemple curt de com provar-ho en entorns Android i com som capaços de manipular i interceptar els missatges enviats a través de Telegram.


Preparem Ubuntu 24.04

Instal·lar dependències bàsiques

Per començar preparem la nostra màquina Ubuntu 24.04 per tal que pugui treballar amb Frida i Emular Android 11.

sudo apt update
sudo apt install unzip openjdk-17-jdk wget git
sudo apt install python3-pip

Descarregar Android Command Line Tools

I ara preparem per poder emular Android 11 i executar l’Android Command Line:

mkdir -p ~/Android/cmdline-tools
cd ~/Android
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -O cmdline-tools.zip
unzip cmdline-tools.zip
mkdir -p ~/Android/cmdline-tools/latest
mv cmdline-tools/* ~/Android/cmdline-tools/latest/

Tot i que no és una molt bona praxis de seguretat, editarem el PATH d’Ubuntu per a poder-hi treballar directament amb les tools de l’Android Command Line.

export ANDROID_HOME=$HOME/Android
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$PATH

I apliquem els canvis:

source ~/.bashrc

Una vegada instal·lades i preparades les command tools d’Android descarreguem l’Android 11 i iniciem una instància d’avdmanager:

#Android 11
sdkmanager "platform-tools" "platforms;android-30" "system-images;android-30;google_apis;x86_64"
avdmanager create avd -n android11_emulator -k "system-images;android-30;google_apis;x86_64"
emulator -avd android11_emulator

Una vegada creada, apaguem l’Android 11 i configurem per poder interaccionar amb l’emulador a través del nostre teclat, per això, configurem l’arxiu config.ini:

nano ~/.android/avd/android11_emulator.avd/config.ini
------------------------------------------------------------------
#Cerca i canvia el següent paràmetre
hw.keyboard=yes
------------------------------------------------------------------

I tornem a carregar l’emulador:

#Llista les avd disponibles:
advmanager list avd
#Emular android11
emulator -avd android11_emulator

Una vegada tingueu l’Android emulat i funcionant, us podeu descarregar el Telegram a través de l’APK https://telegram.org/dl/android/apk . A més, el podeu arrencar a través de les vostres dades d’usuari.


Instal·lació FRIDA!

Comencem preparant la nostra màquina Ubuntu per poder treballar amb Frida, per fer-ho, crearem un entorn virtual amb python3 i instal·larem les frida-tools amb pip3:

sudo apt update
python3 -m venv frida
source frida/bin/activate
(frida) pip3 install -U frida-tools
(frida) frida --version

Ara, el que ens toca es descarregar-nos la versió de Frida server que necessitem, en el nostre cas, la versió per android-x86_64:

wget https://github.com/frida/frida/releases/download/16.1.7/frida-server-16.1.7-android-x86_64.xz
xz -d frida-server-16.1.7-android-x86_64.xz
chmod +x frida-server-16.1.7-android-x86_64
mv frida-server-16.1.7-android-x86_64 frida-server

Fins aquí, tota la part de preparació i configuració inicial. Fixeu-vos que hem acabat amb un arxiu executable frida-server que serà el que enviem a Android i serà a través del qual enviarem les nostres peticions.

Execució Frida

El primer que farem és enviar l’arxiu executable a l’Android, per fer-ho:

adb root         # posa l'emulador en mode root
adb remount      # permet escriure en el sistema
adb push frida-server /data/local/tmp/
adb shell chmod +x /data/local/tmp/frida-server

I ara accedim a l’Android emulat i executem el servidor:

adb shell
cd /data/local/tmp
./frida-server &

Una vegada fet això, hauríeu de veure una pantalla informant que frida es posa en mode escolta activa.

Una vegada Frida està escoltant dins el nostre Android ja podem fer algunes consultes interessants, per exemple, llistar el conjunt de processos que pot interceptar Frida:

(frida) frida-ps -Uai

Captura i edició dels missatges a Telegram

Frida és una aplicació, que s’instal·la en el sistema, i que a través de JavaScript és capaç de modificar les funcions de l’aplicació original.

Per tant, un dels nostres objectius serà aconseguir quines són les funcions que executa una aplicació, d’entrada, Frida no t’informa de les funcions, per això, hauríem d’utilitzar altre programari com radare2.

En el nostre cas, crearem un javascript que afegeixi «hacked» al missatge original, i a més a més, ens imprimeixi per el log el missatge original i la seva modificació:

Java.perform(function () {
    var SendMessagesHelper = Java.use("org.telegram.messenger.SendMessagesHelper");
    var SendMessageParams = Java.use("org.telegram.messenger.SendMessagesHelper$SendMessageParams");
 
    SendMessagesHelper.sendMessage
        .overload('org.telegram.messenger.SendMessagesHelper$SendMessageParams')
        .implementation = function (params) {
 
            try {
                // Missatge original
                var originalText = params.message.value;
                console.log("Missatge original:", originalText);
 
                // Afegim el prefix "hacked "
                var modifiedText = "hacked " + originalText;
                params.message.value = modifiedText;
 
                console.log("Missatge modificat:", params.message.value);
 
            } catch (e) {
                console.log("Error modificant el missatge:", e);
            }
 
            return this.sendMessage(params);
        };
});

Aquest script el que ens fa és agafar l’objecte params.message, que conté el missatge original, i modifica el camp .value.

Ara, per poder executar aquest script dins de Frida executem:

#hook.js és el nom de l'script, i Telegram és el nom que haurem trobat dins frida -Uai
frida -U -n Telegram -l hook.js

I ja podeu testejar i comprovar com s’altera el missatge.

frida_telegram.1794138266.txt.gz · Darrera modificació: 2026/11/08 11:44 per enric_mieza_sanchez