Hacktricks-skills mobile-phishing-analysis
Analyze mobile phishing campaigns, malicious Android APKs, and iOS mobile configuration profiles. Use this skill whenever investigating suspicious mobile apps, phishing infrastructure, or mobile malware. Trigger when users mention APK analysis, mobileconfig inspection, phishing campaign investigation, Android/iOS malware triage, or mobile threat intelligence. This skill helps security researchers and analysts understand attack patterns, extract indicators, and document findings from mobile threats.
git clone https://github.com/abelrguezr/hacktricks-skills
skills/generic-methodologies-and-resources/phishing-methodology/mobile-phishing-malicious-apps/SKILL.MDMobile Phishing & Malicious App Analysis
A skill for analyzing mobile phishing campaigns, malicious Android APKs, and iOS mobile configuration profiles. This skill helps security professionals investigate threats, extract indicators, and understand attack patterns.
When to Use This Skill
Use this skill when:
- Investigating suspicious Android APKs or iOS mobile configuration profiles
- Analyzing mobile phishing campaigns (dating apps, fake stores, government benefit scams)
- Extracting indicators of compromise (IOCs) from mobile malware
- Understanding attack patterns like WebView droppers, accessibility abuse, or FCM-based C2
- Documenting mobile threat intelligence findings
- Performing triage on potentially malicious mobile apps
Core Analysis Workflow
1. Initial Triage
Start by understanding what you're analyzing:
For Android APKs:
- Check if it's a dropper (contains embedded payloads in
)assets/ - Review permissions in
AndroidManifest.xml - Look for suspicious patterns (WebView with JavaScript interfaces, PackageInstaller usage)
For iOS mobileconfig:
- Inspect
andPayloadTypePayloadContent - Check for excessive entitlements (Contacts, Photos, MDM enrollment)
- Look for Web Clip payloads that pin phishing URLs
2. Static Analysis
Use the bundled scripts to extract key information:
# Extract permissions from APK python scripts/extract_apk_permissions.py <apk-file> # Check for embedded payloads python scripts/check_embedded_payloads.py <apk-file> # Inspect mobileconfig profiles python scripts/inspect_mobileconfig.py <profile.mobileconfig>
3. Dynamic Analysis Preparation
If you need to test behavior:
- Set up a sandbox environment (Android emulator or iOS simulator)
- Configure network monitoring (tcpdump, Wireshark)
- Prepare Frida scripts for hooking (see
)scripts/frida_hooks/ - Set up HTTP canaries to detect C2 communication
4. IOC Extraction
Document all indicators:
- Domain names and URLs
- File hashes (MD5, SHA256)
- C2 endpoints and paths
- Package names and bundle IDs
- Certificate fingerprints
- Behavioral patterns
Common Attack Patterns
Pattern 1: Invitation Code Evasion
Malware waits for a valid "invitation code" before activating malicious behavior:
Detection:
- Look for HTTP POST to endpoints like
or/checkCode.php/req/checkCode.php - Check for conditional permission requests after C2 response
- Use Frida to auto-bypass (see
)scripts/frida_hooks/bypass_invitation.js
Analysis tip: Static analysis may show no malicious behavior. You need to simulate the code submission to trigger the payload.
Pattern 2: WebView Dropper with Native Bridge
A WebView loads attacker HTML that calls into native code via JavaScript interface:
Detection:
- Search for
in decompiled codeaddJavascriptInterface - Look for exported methods like
,installApk()
,download()execute() - Check for embedded APKs in
directoryassets/
Static triage:
unzip -l sample.apk | grep -i "assets/.*\.apk" strings sample.apk | grep -i "javascriptinterface"
Pattern 3: Accessibility Service Abuse
Malware requests Accessibility permissions to automate UI interactions:
Detection:
- Check for
in manifestAccessibilityService - Look for
navigationACTION_ACCESSIBILITY_SETTINGS - Search for node tree traversal and click automation
Red flags:
- Apps requesting Accessibility for non-assistive purposes
- Combined with overlay permissions
- Used for ATS (Automated Transfer System) in banking apps
Pattern 4: FCM-Based C2
Firebase Cloud Messaging used as resilient command channel:
Detection:
- Look for Firebase SDK integration
- Check for custom
field in message handling_type - Search for switch/case on message data
Analysis:
strings sample.apk | grep -i "fcm\|firebase\|cloudmessaging"
Pattern 5: iOS Mobileconfig Abuse
Malicious configuration profiles for device enrollment:
Detection:
orPayloadType=com.apple.sharedlicensescom.apple.managedConfiguration
for phishing URL pinningcom.apple.webClip.managed- Excessive entitlements without App Store review
Inspection:
security cms -D -i profile.mobileconfig
IOC Categories
Network Indicators
- C2 domains and paths (
,/upload.php
,/checkCode.php
)/addsm.php - Shortlink services used for config delivery
- WebSocket/Socket.IO endpoints for payload smuggling
- Plain HTTP on port 80 (no TLS)
File Indicators
- APK hashes and embedded payload hashes
string inLubanCompressclasses.dex- Secondary payloads in
assets/app.apk
Behavioral Indicators
- Permission requests after C2 validation
- SMS interception and exfiltration
- Contact list harvesting
- Screen capture and remote control
- NFC relay orchestration
Documentation Template
When documenting findings, use this structure:
# Analysis Report: [App Name/Hash] ## Summary [Brief description of the threat] ## Indicators - **Package/Bundle ID:** [ID] - **File Hash:** [SHA256] - **C2 Domains:** [List] - **Malicious Endpoints:** [List] ## Attack Pattern [Which pattern(s) observed] ## Permissions Requested [List dangerous permissions] ## Exfiltrated Data [What data is stolen] ## Mitigation [Recommended defenses]
Scripts Reference
scripts/extract_apk_permissions.py
scripts/extract_apk_permissions.pyExtracts all permissions from an APK's manifest.
scripts/check_embedded_payloads.py
scripts/check_embedded_payloads.pyScans for embedded APKs in assets directory.
scripts/inspect_mobileconfig.py
scripts/inspect_mobileconfig.pyParses and displays iOS mobile configuration profile contents.
scripts/frida_hooks/bypass_invitation.js
scripts/frida_hooks/bypass_invitation.jsFrida script to auto-bypass invitation code checks.
scripts/frida_hooks/network_monitor.js
scripts/frida_hooks/network_monitor.jsFrida script to monitor HTTP/HTTPS calls.
Safety Notes
- Always analyze in isolated environments (VMs, sandboxes)
- Never run suspicious apps on production devices
- Use network isolation to prevent C2 communication
- Document all findings for threat intelligence sharing
- Follow responsible disclosure practices
References
Quick Start
-
For APK analysis:
python scripts/extract_apk_permissions.py suspicious.apk python scripts/check_embedded_payloads.py suspicious.apk -
For mobileconfig analysis:
python scripts/inspect_mobileconfig.py profile.mobileconfig -
For dynamic analysis:
- Set up Android emulator with the APK installed
- Run Frida hooks:
frida -U -f <package> -l scripts/frida_hooks/bypass_invitation.js - Monitor network traffic with tcpdump or Wireshark
-
Document findings using the template above and share IOCs with your team.