Bevor ich mit Android Bug Bounty oder CTF-Challenges richtig anfangen kann, brauche ich eine ordentliche Testumgebung. In diesem Artikel dokumentiere ich, wie ich mein Google Pixel 6 als vollwertiges Android Security Research Device eingerichtet habe – von Root bis Screen Mirroring.
Was am Ende läuft: Root via Magisk 30.7 · Burp Suite mit Systemzertifikat · Frida Server mit Autostart · scrcpy für Screen Mirroring vom PC
Warum ein echtes Gerät statt Emulator?
Emulatoren wie Genymotion oder der Android Studio AVD sind praktisch für schnelle Tests, haben aber Schwächen: Viele produktive Apps erkennen Emulatoren und verhalten sich anders. Root Detection, Emulator Detection und Certificate Pinning greifen auf einem echten Gerät realistischer. Außerdem will ich den ganzen Stack so nah wie möglich an echten Bug-Bounty-Bedingungen haben.
Das Pixel 6 eignet sich dafür besonders gut: Der Bootloader lässt sich offiziell entsperren, Google stellt Factory Images bereit und die Community-Unterstützung für Magisk ist exzellent.
Schritt 1 – Bootloader entsperren
Zuerst muss der Bootloader entsperrt werden. Das löscht alle Daten auf dem Gerät – also vorher alles sichern.
# Entwickleroptionen aktivieren:
# Einstellungen → Über das Telefon → Build-Nummer 7x tippen
# USB-Debugging aktivieren:
# Einstellungen → Entwickleroptionen → USB-Debugging: AN
# OEM-Entsperrung aktivieren:
# Einstellungen → Entwickleroptionen → OEM-Entsperrung: AN
# In den Bootloader booten:
adb reboot bootloader
# Bootloader entsperren:
fastboot flashing unlock
Das Gerät startet neu und zeigt eine Warnung. Mit den Lautstärketasten bestätigen. Nach dem Neustart ist der Bootloader entsperrt – erkennbar am orangefarbenen Schloss beim Boot.
Schritt 2 – Root mit Magisk 30.7
Für Root nutze ich Magisk – den Standard für systemloses Rooting. Der Vorteil: Magisk patcht den Boot-Ramdisk, nicht die System-Partition. Apps können weiterhin SafetyNet/Play Integrity bestehen (mit den richtigen Modulen).
# 1. Factory Image für Pixel 6 herunterladen (passende Android-Version!)
# → developers.google.com/android/images
# 2. boot.img aus dem Factory Image entpacken
# 3. boot.img auf das Gerät übertragen:
adb push boot.img /sdcard/Download/
# 4. Magisk APK installieren und öffnen
# 5. In Magisk: "Installieren" → "Patch einer Datei wählen" → boot.img auswählen
# 6. Gepatchte boot.img zurück auf den PC holen:
adb pull /sdcard/Download/magisk_patched_*.img ./
# 7. Gepatchten Boot flashen:
adb reboot bootloader
fastboot flash boot magisk_patched_*.img
fastboot reboot
Nach dem Neustart Magisk öffnen – wenn dort "Installiert" steht, war es erfolgreich.
Schritt 3 – Burp Suite Systemzertifikat installieren
Für Traffic-Interception brauche ich Burp Suite als Proxy. Das User-Zertifikat reicht nicht – viele Apps vertrauen nur Systemzertifikaten. Mit Root lässt sich das Burp-Zertifikat direkt in den System Trust Store installieren.
# 1. Burp Suite starten → Proxy → Options → Import / Export CA Certificate
# → Certificate in DER format exportieren als burp.der
# 2. Format konvertieren (auf dem PC):
openssl x509 -inform DER -in burp.der -out burp.pem
# Hash-Dateiname berechnen:
openssl x509 -inform PEM -subject_hash_old -in burp.pem | head -1
# Ausgabe z.B.: 9a5ba580
mv burp.pem 9a5ba580.0
# 3. Auf das Gerät übertragen und als Systemzertifikat installieren:
adb push 9a5ba580.0 /sdcard/
adb shell
# Im Shell (als root via Magisk):
su
mount -o rw,remount /system
cp /sdcard/9a5ba580.0 /system/etc/security/cacerts/
chmod 644 /system/etc/security/cacerts/9a5ba580.0
mount -o ro,remount /system
reboot
Nach dem Neustart unter Einstellungen → Sicherheit → Zertifikate → System prüfen – das Burp-Zertifikat sollte dort auftauchen.
Proxy auf dem Gerät einstellen: WLAN → Proxy → Manuell → IP des PCs + Port 8080.
Schritt 4 – Frida Server mit Autostart
Frida ist das wichtigste Tool für dynamische Android-Analyse. Der Frida Server muss auf dem Gerät laufen – ich richte ihn so ein, dass er automatisch beim Boot startet.
# 1. Passende Frida Server Version herunterladen:
# github.com/frida/frida/releases
# → frida-server-16.x.x-android-arm64.xz
# 2. Entpacken und auf Gerät übertragen:
xz -d frida-server-16.x.x-android-arm64.xz
adb push frida-server-16.x.x-android-arm64 /data/local/tmp/frida-server
adb shell chmod 755 /data/local/tmp/frida-server
# 3. Testen ob er läuft:
adb shell su -c "/data/local/tmp/frida-server &"
frida-ps -U # sollte Prozessliste anzeigen
Für den Autostart nutze ich ein Magisk-Init-Script:
# Magisk post-fs-data Script erstellen:
adb shell su -c "mkdir -p /data/adb/service.d"
adb shell su -c "cat > /data/adb/service.d/frida-server.sh << 'EOF'
#!/system/bin/sh
/data/local/tmp/frida-server &
EOF"
adb shell su -c "chmod 755 /data/adb/service.d/frida-server.sh"
Nach einem Reboot läuft Frida Server automatisch im Hintergrund.
Einfach mit frida-ps -U auf dem PC prüfen.
Schritt 5 – scrcpy für Screen Mirroring
scrcpy spiegelt das Android-Display auf den PC – ohne Root, ohne App auf dem Gerät. Ich kann das Pixel 6 komplett vom PC aus bedienen, was das Arbeiten mit Frida, Burp und ADB deutlich angenehmer macht.
# Installation auf Manjaro/Arch Linux:
sudo pacman -S scrcpy
# Starten (Gerät per USB verbunden, USB-Debugging aktiv):
scrcpy
# Nützliche Optionen:
scrcpy --max-fps 60 # flüssigeres Bild
scrcpy --window-title "Pixel 6"
scrcpy -S # Screen beim Start ausschalten (nur spiegeln)
Das Fenster öffnet sich sofort – das Pixel 6 ist jetzt vom PC aus steuerbar. Ich kann tippen, wischen, Apps öffnen – alles direkt mit Maus und Tastatur.
Das fertige Setup im Überblick
Root: Magisk 30.7 – systemlos, SafetyNet-kompatibel
Traffic: Burp Suite + Systemzertifikat – vollständige HTTPS-Interception
Instrumentation: Frida Server – Autostart beim Boot
Steuerung: scrcpy – Screen Mirroring & Remote Control vom PC
Mit diesem Setup bin ich bereit für echte Android Security Tests. Die nächsten Schritte: Eine erste App mit Frida hooken, Root Detection bypassen und den vollständigen Bug-Bounty-Workflow durchspielen.
Was ich dabei gelernt habe
Der Setup-Prozess klingt auf dem Papier einfacher als er ist. Ein paar Stolpersteine die mir begegnet sind:
- Das Factory Image muss exakt zur installierten Android-Version passen – sonst schlägt der Magisk-Patch fehl
- Das Burp-Zertifikat muss mit dem richtigen Hash-Dateinamen benannt sein – sonst ignoriert Android es
- Frida Server Version muss zur installierten Frida-Version auf dem PC passen
- scrcpy braucht USB-Debugging – klingt selbstverständlich, hab es trotzdem kurz vergessen
Ein funktionierendes Research-Setup ist die Grundlage für alles andere. Zeit hier zu investieren zahlt sich bei jeder einzelnen Challenge danach aus.
Im nächsten Artikel wende ich dieses Setup zum ersten Mal richtig an: HTB Anchored – Root Detection mit Frida bypassen.
— KenSySec