offensive-techniques/mobile-technique/SKILL.md
Mobile application security testing methodology for Android and iOS: static analysis (decompilation, manifest review, hardcoded secrets), dynamic analysis (Frida hooking, objection, traffic interception, SSL pinning bypass), storage analysis, root/jailbreak detection bypass, and API testing. Use when testing mobile applications during authorized security assessments.
npx skillsauth add aeondave/malskill mobile-techniqueInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Goal: systematically identify security weaknesses in Android and iOS applications following OWASP MASTG/MASVS.
mobile-ctf (faster, CTF-specific patterns including .ab, Unity/IL2CPP, asset stego).web-exploit-technique: API-level findings from mobile app traffic.reversing-technique for obfuscated native libraries and IL2CPP binaries.offensive-tools/rev/jadx/, offensive-tools/rev/apktool/, offensive-tools/rev/dex2jar/, offensive-tools/rev/androguard/, offensive-tools/rev/frida/.Before decompiling or hooking broadly, classify the app, the platform, and the control family most likely to fail first.
jadx, apktool, androguard, dex2jar) first for structure and secrets, then instrumentation (frida) and proxy skills after you know what runtime behavior must be observed or bypassed.Per mobile application:
1. Static analysis — decompile, inspect manifest, search secrets.
2. Dynamic analysis — instrument with Frida, bypass SSL pinning.
3. Traffic interception — proxy through Burp/mitmproxy.
4. Storage analysis — inspect SharedPreferences, SQLite, KeyStore.
5. Authentication testing — test local auth, biometrics, session handling.
6. API testing — apply web-exploit-technique to backend APIs.
# Quick win: strings on the raw APK first
strings target.apk | grep -iE "api[_-]?key|secret|password|token|HTB\{"
# Decompile
jadx -d output_dir target.apk
apktool d target.apk -o output_dir # smali + decoded manifest + resources
# Manifest analysis: exported components, debuggable, allowBackup, permissions
aapt dump badging target.apk
# Hardcoded crypto (SecretKeySpec, Cipher.getInstance — common leak point)
grep -r "SecretKeySpec\|Cipher\|AES\|DES\|encrypt\|decrypt\|base64" output_dir/ | grep -v "^Binary"
# Look for the hardcoded key argument passed to SecretKeySpec(key, "AES")
# Firebase and remote config leaks
cat output_dir/res/values/google-services.json 2>/dev/null
cat output_dir/assets/google-services.json 2>/dev/null
# Certificate analysis
apksigner verify --print-certs target.apk
# Asset inspection (images, data files bundled with APK)
find output_dir/assets/ -type f | xargs file
# Large images → potential steganography (zsteg, steghide, visual inspection)
# Frida — SSL pinning bypass
frida -U -f com.target.app -l ssl_pinning_bypass.js --no-pause
# Objection — rapid assessment
objection -g com.target.app explore
# android sslpinning disable
# android root disable
# android hooking list activities
# Drozer — exposed components
dz> run app.package.attacksurface com.target.app
dz> run app.provider.query content://com.target.app.provider/
adb shell cat /data/data/com.target.app/shared_prefs/*.xml
adb pull /data/data/com.target.app/databases/
adb shell ls /data/data/com.target.app/files/
Android backup files are unencrypted by default and contain full app data + shared storage.
# Header: "ANDROID BACKUP\n<ver>\n<compressed>\n<encryption>\n"
# Measure header length exactly before extracting
python3 -c "
with open('backup.ab','rb') as f: h=f.read(60)
print(repr(h))
idx = h.find(b'x\xda') or h.find(b'x\x9c') # zlib magic
print('zlib starts at byte', idx)
"
# Extract (adjust skip= to header byte count)
dd if=backup.ab bs=24 skip=1 2>/dev/null \
| python3 -c "import sys,zlib; sys.stdout.buffer.write(zlib.decompress(sys.stdin.buffer.read()))" \
> backup.tar && tar xf backup.tar -C extracted/
# Triage extracted content
grep -r "password\|token\|secret\|key" extracted/ 2>/dev/null
find extracted/ -name "*.db" | xargs -I{} sqlite3 {} ".tables" 2>/dev/null
find extracted/ -name "*.jpg" -o -name "*.png" | sort # inspect visually
Unity games compile C# to native ARM via IL2CPP. jadx shows only stubs — reverse libil2cpp.so with metadata.
# Verify IL2CPP
ls apk_unzip/lib/arm64-v8a/ # → libil2cpp.so, libmain.so, libunity.so
# Il2CppDumper: recovers full class/method/field names from binary + metadata
# https://github.com/Perfare/Il2CppDumper
# Input: libil2cpp.so + assets/global-metadata.dat
# Output: dump.cs (all C# stubs with offsets), script.py (Ghidra import)
grep -i "flag\|key\|secret\|password\|cheat\|unlock" dump.cs
strings libil2cpp.so | grep -i "flag{"
# Load into Ghidra with Il2CppDumper's script.py for guided reversing
frida-ios-dump or bfinject.Info.plist for URL schemes, app transport security, entitlements.frida -U -f com.target.app -l script.js.objection -g com.target.app explore — ios sslpinning disable, ios jailbreak disable.# Objection keychain dump
ios keychain dump
# NSUserDefaults
ios nsuserdefaults get
# SQLite databases
ls /var/mobile/Containers/Data/Application/<UUID>/Library/
| MASVS Category | Key tests | |----------------|-----------| | MASVS-STORAGE | SharedPreferences, SQLite, Keychain, logs, screenshots | | MASVS-CRYPTO | Hardcoded keys, weak algorithms, custom crypto | | MASVS-AUTH | Local auth, biometrics, session handling | | MASVS-NETWORK | SSL pinning, certificate validation, proxy detection | | MASVS-PLATFORM | Exported components, intent handling, WebView | | MASVS-CODE | Code tampering, debugging, root/jailbreak detection |
data-ai
Scoped routing: Linux operator; hosts, sessions, users, services, packages, logs, containers, SSH, network paths, privilege evidence.
development
Offensive methodology for ICS/OT/SCADA environments in authorized industrial penetration testing and red team operations. Use when assessing PLCs, RTUs, HMIs, engineering workstations, historians, or field devices running Modbus, DNP3, EtherNet/IP, S7comm/S7+, Profinet, IEC 60870-5-104, BACnet, or OPC-UA. Covers passive OT network enumeration, protocol-level device interrogation, PLC coil/register read-write attacks, HMI session exploitation, historian and engineering workstation compromise, and safe escalation rules for critical infrastructure scope. Does not cover: general IT network exploitation (network-technique), physical hardware interfaces UART/JTAG/SPI (hardware-technique), wireless sensor network attacks (wireless-technique), RF/SDR signal analysis (hardware-ctf or wireless-technique), or CTF-framed ICS lab tasks (ics-ctf).
tools
Offensive methodology for authorized game security assessments, game client security research, and game-adjacent penetration testing in real-world engagements. Use when assessing game clients for cheating vulnerabilities, testing anti-cheat effectiveness, auditing game server protocols for score manipulation or economic fraud, reverse engineering game DRM or license validation, analyzing game save file protection, or assessing game mod/plugin security. Covers: process memory scanning and manipulation (Cheat Engine methodology), game binary reversing for license and DRM bypass, game network protocol analysis and packet replay, anti-cheat mechanism analysis, save file format reversing and tampering, speed hack and value injection techniques. Does NOT cover: CTF game challenges (game-ctf), game engine source code auditing (web-exploit-technique or vuln-search-technique for the backend), or general binary exploitation (pwn-ctf or reversing-technique).
development
Auth assessment: hardware/embedded methodology; UART/JTAG/SWD/SPI/I2C, firmware extraction, boot/debug paths, embedded OS evidence.