.. | ||
drozer-tutorial | ||
frida-tutorial | ||
adb-commands.md | ||
android-applications-basics.md | ||
android-task-hijacking.md | ||
apk-decompilers.md | ||
avd-android-virtual-device.md | ||
bypass-biometric-authentication-android.md | ||
content-protocol.md | ||
exploiting-a-debuggeable-applciation.md | ||
google-ctf-2018-shall-we-play-a-game.md | ||
inspeckage-tutorial.md | ||
install-burp-certificate.md | ||
intent-injection.md | ||
make-apk-accept-ca-certificate.md | ||
manual-deobfuscation.md | ||
react-native-application.md | ||
README.md | ||
reversing-native-libraries.md | ||
smali-changes.md | ||
spoofing-your-location-in-play-store.md | ||
tapjacking.md | ||
webview-attacks.md |
Android Applications Pentesting
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
Android Applications Basics
рдпрд╣ рдкреГрд╖реНрда рдкрдврд╝рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рддрд╛рдХрд┐ рдЖрдк Android рд╕реБрд░рдХреНрд╖рд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рднрд╛рдЧреЛрдВ рдФрд░ рдПрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдмрд╕реЗ рдЦрддрд░рдирд╛рдХ рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рди рд╕рдХреЗрдВ:
{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}
ADB (Android Debug Bridge)
рдпрд╣ рдореБрдЦреНрдп рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдкрдХреЛ рдПрдХ Android рдбрд┐рд╡рд╛рдЗрд╕ (рдЕрдиреБрдХрд░рдгреАрдп рдпрд╛ рднреМрддрд┐рдХ) рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
ADB рдЖрдкрдХреЛ USB рдпрд╛ Network рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдВрдкреНрдпреВрдЯрд░ рд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдлрд╛рдЗрд▓реЛрдВ рдХреА рджреЛрдиреЛрдВ рджрд┐рд╢рд╛рдУрдВ рдореЗрдВ рдХреЙрдкреА рдХрд░рдиреЗ, рдРрдкреНрд╕ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдФрд░ рдЕрдирдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди, рд╢реЗрд▓ рдХрдорд╛рдВрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди, рдбреЗрдЯрд╛ рдХрд╛ рдмреИрдХрдЕрдк, рд▓реЙрдЧреНрд╕ рдХреЛ рдкрдврд╝рдиреЗ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддреА рд╣реИред
ADB рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП ADB Commands рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реВрдЪреА рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
Smali
рдХрднреА-рдХрднреА рдЫрд┐рдкреА рд╣реБрдИ рдЬрд╛рдирдХрд╛рд░реА (рд╢рд╛рдпрдж рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЫрд┐рдкреЗ рд╣реБрдП рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдзреНрд╡рдЬ) рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░, APK рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛, рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдореЗрдВ рдЖрдк APK рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛, Smali рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рдФрд░ рдирдП рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде APK рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рд╕реАрдЦ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рдХрдИ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╣реИрдВред рдлрд┐рд░, рдЗрд╕ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рд╣рдореЗрд╢рд╛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦреЗрдВред
Other interesting tricks
- Spoofing your location in Play Store
- Download APKs: https://apps.evozi.com/apk-downloader/, https://apkpure.com/es/, https://www.apkmirror.com/, https://apkcombo.com/es-es/apk-downloader/, https://github.com/kiber-io/apkd
- Extract APK from device:
adb shell pm list packages
com.android.insecurebankv2
adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
- рд╕рднреА рд╕реНрдкреНрд▓рд┐рдЯ рдФрд░ рдмреЗрд╕ рдПрдкреАрдХреЗ рдХреЛ APKEditor рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдПрдВ:
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 1 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk
# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed
Static Analysis
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрдХ APK рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ decompiler рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Java рдХреЛрдб рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рдиреА рдЪрд╛рд╣рд┐рдПред
рдХреГрдкрдпрд╛, рд╡рд┐рднрд┐рдиреНрди рдЙрдкрд▓рдмреНрдз decompilers рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВ.
Looking for interesting Info
APK рдХреЗ strings рдкрд░ рдирдЬрд╝рд░ рдбрд╛рд▓рдХрд░ рдЖрдк passwords, URLs (https://github.com/ndelphit/apkurlgrep), api keys, encryption, bluetooth uuids, tokens рдФрд░ рдХреБрдЫ рднреА рджрд┐рд▓рдЪрд╕реНрдк рдЦреЛрдЬ рд╕рдХрддреЗ рд╣реИрдВ... рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди backdoors рдпрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдг backdoors (рдРрдк рдХреЗ рд▓рд┐рдП рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рдХреНрд░реЗрдбреЗрдВрд╢рд┐рдпрд▓) рдХреЗ рд▓рд┐рдП рднреА рджреЗрдЦреЗрдВред
Firebase
firebase URLs рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрдВ рдФрд░ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣рд╛рдБ FIrebase рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рд╢реЛрд╖рдг рдХрд░реЗрдВред
Basic understanding of the application - Manifest.xml, strings.xml
рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ _Manifest.xml** рдФрд░ **strings.xml_** рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЬрд╛рдВрдЪ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреА рд╣реИред рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ decompilers рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ APK рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ .zip рдореЗрдВ рдмрджрд▓рдХрд░ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рдЕрдирдЬрд╝рд┐рдк рдХрд░рдХреЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Manifest.xml рд╕реЗ рдкрд╣рдЪрд╛рдиреА рдЧрдИ Vulnerabilities рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
- Debuggable Applications: Manifest.xml рдлрд╝рд╛рдЗрд▓ рдореЗрдВ
debuggable="true"
рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХреА рдЧрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░рддреА рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдРрд╕реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ рдЬреЛ рд╢реЛрд╖рдг рдХреА рдУрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЦреЛрдЬрдиреЗ рдФрд░ рд╢реЛрд╖рдг рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░реЗрдВред - Backup Settings: рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╕реЗ рдирд┐рдкрдЯрдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП
android:allowBackup="false"
рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ adb рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдирдзрд┐рдХреГрдд рдбреЗрдЯрд╛ рдмреИрдХрдЕрдк рдХреЛ рд░реЛрдХрд╛ рдЬрд╛ рд╕рдХреЗ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм usb debugging рд╕рдХреНрд╖рдо рд╣реЛред - Network Security: res/xml/ рдореЗрдВ рдХрд╕реНрдЯрдо рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди (
android:networkSecurityConfig="@xml/network_security_config"
) рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╡рд░рдг рдЬреИрд╕реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрд┐рди рдФрд░ HTTP рдЯреНрд░реИрдлрд╝рд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╡рд┐рд╢реЗрд╖ рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП HTTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдирд╛ рд╣реИред - Exported Activities and Services: рдореИрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рдирд┐рд░реНрдпрд╛рддрд┐рдд рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рдЙрди рдШрдЯрдХреЛрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рджреБрд░реБрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЧрддрд┐рд╢реАрд▓ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдЖрдЧреЗ рдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕реЗ рдпрд╣ рдкрддрд╛ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрди рдШрдЯрдХреЛрдВ рдХрд╛ рд╢реЛрд╖рдг рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПред
- Content Providers and FileProviders: рдЙрдЬрд╛рдЧрд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдЕрдирдзрд┐рдХреГрдд рдкрд╣реБрдВрдЪ рдпрд╛ рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред FileProviders рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреА рднреА рдЬрд╛рдВрдЪ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред
- Broadcast Receivers and URL Schemes: рдпреЗ рдШрдЯрдХ рд╢реЛрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрдирдкреБрдЯ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП URL рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдкреНрд░рдмрдВрдзрди рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд╕рд╛рдеред
- SDK Versions:
minSdkVersion
,targetSDKVersion
, рдФрд░maxSdkVersion
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕рдорд░реНрдерд┐рдд Android рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреА рд╣реИрдВ, рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдкреБрд░рд╛рдиреЗ, рдХрдордЬреЛрд░ Android рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рди рдХрд░рдиреЗ рдХреЗ рдорд╣рддреНрд╡ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреА рд╣реИрдВред
strings.xml рдлрд╝рд╛рдЗрд▓ рд╕реЗ, рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдЬреИрд╕реЗ API keys, рдХрд╕реНрдЯрдо рд╕реНрдХреАрдорд╛, рдФрд░ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░ рдиреЛрдЯреНрд╕ рдЦреЛрдЬреЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЗрди рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВред
Tapjacking
Tapjacking рдПрдХ рд╣рдорд▓рд╛ рд╣реИ рдЬрд╣рд╛рдБ рдПрдХ malicious application рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреАрдбрд╝рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдКрдкрд░ рдЦреБрдж рдХреЛ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рдЬрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреАрдбрд╝рд┐рдд рдРрдк рдХреЛ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзреЛрдЦрд╛ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрдмрдХрд┐ рдпрд╣ рдмрд╛рддрдЪреАрдд рдХреЛ рдкреАрдбрд╝рд┐рдд рдРрдк рдХреЛ рдкрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдкреНрд░рднрд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рд╕реЗ рдЕрдВрдзрд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреАрдбрд╝рд┐рдд рдРрдк рдкрд░ рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:
{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}
Task Hijacking
рдПрдХ activity рдЬрд┐рд╕рдореЗрдВ launchMode
singleTask
рдкрд░ рд╕реЗрдЯ рд╣реИ рдФрд░ рдХреЛрдИ taskAffinity
рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ, рд╡рд╣ task Hijacking рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдПрдХ application рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдпрджрд┐ рдЗрд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рд╣рд╛рдИрдЬреИрдХ рдХрд░ рд╕рдХрддреА рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ malicious application рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рд╕реЛрдЪрддреЗ рд╣реБрдП рдХрд┐ рд╡рд╣ рдЕрд╕рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ).
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ:
{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}
Insecure data storage
Internal Storage
Android рдореЗрдВ, рдлрд╝рд╛рдЗрд▓реЗрдВ internal storage рдореЗрдВ stored рд╣реЛрддреА рд╣реИрдВ рддрд╛рдХрд┐ рд╡реЗ рдХреЗрд╡рд▓ рдЙрд╕реА app рджреНрд╡рд╛рд░рд╛ accessible рд╣реЛрдВ рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ created рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп Android рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ enforced рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЕрдзрд┐рдХрд╛рдВрд╢ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХрднреА-рдХрднреА MODE_WORLD_READABLE
рдФрд░ MODE_WORLD_WRITABLE
рдЬреИрд╕реЗ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рдмреАрдЪ shared рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдлрд┐рд░ рднреА, рдпреЗ рдореЛрдб рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ restrict рдирд╣реАрдВ рдХрд░рддреЗ, рдЬрд┐рд╕рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ malicious рдПрдкреНрд▓рд┐рдХреЗрд╢рди рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
- Static Analysis:
- Ensure рдХрд░реЗрдВ рдХрд┐
MODE_WORLD_READABLE
рдФрд░MODE_WORLD_WRITABLE
рдХрд╛ рдЙрдкрдпреЛрдЧ carefully scrutinized рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпреЗ рдореЛрдб рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ unintended or unauthorized access рдХреЗ рд▓рд┐рдП potentially expose рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- Dynamic Analysis:
- рдРрдк рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рд╕реЗрдЯ рдХреА рдЧрдИ permissions рдХреА verify рдХрд░реЗрдВред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, check рдХрд░реЗрдВ рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдлрд╝рд╛рдЗрд▓реЗрдВ рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХреА рдЧрдИ рд╣реИрдВред рдпрд╣ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЬреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ, рдЙрд╕рдХреА рдЙрддреНрдкрддреНрддрд┐ рдпрд╛ рдЗрд░рд╛рджреЗ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛, рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдпрд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред
External Storage
External storage рдкрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдХреБрдЫ рд╕рд╛рд╡рдзрд╛рдирд┐рдпрд╛рдБ рдмрд░рддрдиреА рдЪрд╛рд╣рд┐рдП:
- Accessibility:
- рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рдкрд░ рдлрд╝рд╛рдЗрд▓реЗрдВ globally readable and writable рд╣реЛрддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрди рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддрд╛ рд╣реИред
- Security Concerns:
- рдкрд╣реБрдБрдЪ рдХреА рдЖрд╕рд╛рдиреА рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рд╕рд▓рд╛рд╣ рджреА рдЬрд╛рддреА рд╣реИ рдХрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рдкрд░ рди рд░рдЦреЗрдВред
- рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рдХреЛ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╣рдЯрд╛рдпрд╛ рдпрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
- Handling Data from External Storage:
- рд╣рдореЗрд╢рд╛ рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдкрд░ input validation рдХрд░реЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдбреЗрдЯрд╛ рдПрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╕реНрд░реЛрдд рд╕реЗ рд╣реИред
- рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рдкрд░ executables рдпрд╛ class рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЧрддрд┐рд╢реАрд▓ рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рд░рдЦрдирд╛ рджреГрдврд╝рддрд╛ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдпрджрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рд╕реЗ executable рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреА рд╣реИрдВ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдпреЗ рдлрд╝рд╛рдЗрд▓реЗрдВ signed and cryptographically verified рд╣реИрдВ рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпрд╣ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдЕрдЦрдВрдбрддрд╛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред
рдмрд╛рд╣рд░реА рд╕рдВрдЧреНрд░рд╣рдг рдХреЛ /storage/emulated/0
, /sdcard
, /mnt/sdcard
рдореЗрдВ accessed рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
{% hint style="info" %} Android 4.4 (API 17) рд╕реЗ рд╢реБрд░реВ рд╣реЛрдХрд░, SD рдХрд╛рд░реНрдб рдореЗрдВ рдПрдХ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕рдВрд░рдЪрдирд╛ рд╣реИ рдЬреЛ рдПрдХ рдРрдк рд╕реЗ рдЙрд╕ рдРрдк рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рддреА рд╣реИред рдпрд╣ malicious рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдРрдк рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рддрдХ рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред {% endhint %}
Sensitive data stored in clear-text
- Shared preferences: Android рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
/data/data/<packagename>/shared_prefs/
рдкрде рдореЗрдВ xml рдлрд╝рд╛рдЗрд▓реЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред - Databases: Android рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
/data/data/<packagename>/databases/
рдкрде рдореЗрдВ sqlite рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕рд╣реЗрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ рдХрднреА-рдХрднреА рдЙрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
Broken TLS
Accept All Certificates
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдХрднреА-рдХрднреА рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рднреА рдкреНрд░рдорд╛рдгрдкрддреНрд░реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рднрд▓реЗ рд╣реА рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯрдирд╛рдо рдХреЛрдб рдХреА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрд▓ рди рдЦрд╛рддрд╛ рд╣реЛ:
SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
A good way to test this is to try to capture the traffic using some proxy like Burp without authorising Burp CA inside the device. Also, you can generate with Burp a certificate for a different hostname and use it.
Broken Cryptography
Poor Key Management Processes
рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд╕реНрдЯреЛрд░реЗрдЬ рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдХреЛрдб рдореЗрдВ рд╣рд╛рд░реНрдбрдХреЛрдбреЗрдб/рдкреВрд░реНрд╡рд╛рдиреБрдорд╛рдирд┐рдд рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХреБрдЫ рд░рд┐рд╡рд░реНрд╕рд┐рдВрдЧ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреА рд╣реИред
Use of Insecure and/or Deprecated Algorithms
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ deprecated algorithms рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ checks, store рдпрд╛ send рдбреЗрдЯрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ: RC4, MD4, MD5, SHA1... рдпрджрд┐ hashes рдХрд╛ рдЙрдкрдпреЛрдЧ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, salt рдХреЗ рд╕рд╛рде brute-force resistant hashes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
Other checks
- рдпрд╣ рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИ рдХрд┐ APK рдХреЛ obfuscate рдХрд┐рдпрд╛ рдЬрд╛рдП рддрд╛рдХрд┐ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдХрд╛ рдХрд╛рдо рдХрдард┐рди рд╣реЛ рд╕рдХреЗред
- рдпрджрд┐ рдРрдк рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ (рдЬреИрд╕реЗ рдмреИрдВрдХ рдРрдк), рддреЛ рдЗрд╕реЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ checks рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдореЛрдмрд╛рдЗрд▓ рд░реВрдЯреЗрдб рд╣реИ рдпрд╛ рдирд╣реАрдВ рдФрд░ рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рдпрджрд┐ рдРрдк рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ (рдЬреИрд╕реЗ рдмреИрдВрдХ рдРрдк), рддреЛ рдЗрд╕реЗ рдпрд╣ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ emulator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
- рдпрджрд┐ рдРрдк рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИ (рдЬреИрд╕реЗ рдмреИрдВрдХ рдРрдк), рддреЛ рдЗрд╕реЗ execute рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреА рд╕реНрд╡рдпрдВ рдХреА integrity рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
- APKiD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ APK рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕рд╛ compiler/packer/obfuscator рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
React Native Application
Read the following page to learn how to easily access javascript code of React applications:
{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}
Xamarin Applications
Read the following page to learn how to easily access C# code of a xamarin applications:
{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}
Superpacked Applications
According to this blog post superpacked is a Meta algorithm that compress the content of an application into a single file. The blog talks about the possibility of creating an app that decompress these kind of apps... and a faster way which involves to execute the application and gather the decompressed files from the filesystem.
Automated Static Code Analysis
The tool mariana-trench is capable of finding vulnerabilities by scanning the code of the application. This tool contains a series of known sources (that indicates to the tool the places where the input is controlled by the user), sinks (which indicates to the tool dangerous places where malicious user input could cause damages) and rules. These rules indicates the combination of sources-sinks that indicates a vulnerability.
With this knowledge, mariana-trench will review the code and find possible vulnerabilities on it.
Secrets leaked
An application may contain secrets (API keys, passwords, hidden urls, subdomains...) inside of it that you might be able to discover. You could us a tool such as https://github.com/dwisiswant0/apkleaks
Bypass Biometric Authentication
{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}
Other interesting functions
- Code execution:
Runtime.exec(), ProcessBuilder(), native code:system()
- Send SMSs:
sendTextMessage, sendMultipartTestMessage
- Native functions declared as
native
:public native, System.loadLibrary, System.load
- Read this to learn how to reverse native functions
Other tricks
{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
Dynamic Analysis
First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.
Online Dynamic analysis
You can create a free account in: https://appetize.io/. This platform allows you to upload and execute APKs, so it is useful to see how an apk is behaving.
You can even see the logs of your application in the web and connect through adb.
Thanks to the ADB connection you can use Drozer and Frida inside the emulators.
Local Dynamic Analysis
Using an emulator
- Android Studio (You can create x86 and arm devices, and according to this latest x86 versions support ARM libraries without needing an slow arm emulator).
- Learn to set it up in this page:
{% content-ref url="avd-android-virtual-device.md" %} avd-android-virtual-device.md {% endcontent-ref %}
- Genymotion (Free version: Personal Edition, you need to create an account. It's recommend to download the version WITH VirtualBox to avoid potential errors.)
- Nox (Free, but it doesn't support Frida or Drozer).
{% hint style="info" %} When creating a new emulator on any platform remember that the bigger the screen is, the slower the emulator will run. So select small screens if possible. {% endhint %}
To install google services (like AppStore) in Genymotion you need to click on the red marked button of the following image:
Also, notice that in the configuration of the Android VM in Genymotion you can select Bridge Network mode (this will be useful if you will be connecting to the Android VM from a different VM with the tools).
Use a physical device
You need to activate the debugging options and it will be cool if you can root it:
- Settings.
- (FromAndroid 8.0) Select System.
- Select About phone.
- Press Build number 7 times.
- Go back and you will find the Developer options.
Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it.
I will suggest to perform this initial dynamic analysis using MobSF dynamic analysis + pidcat, so we will be able to learn how the application works while MobSF captures a lot of interesting data you can review later on.
Unintended Data Leakage
Logging
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ debugging information рдХреЛ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдкреНрд░рддрд┐ рд╕рддрд░реНрдХ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд▓реАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЧ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХреЗ рд▓рд┐рдП pidcat рдФрд░ adb logcat
рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ рддрд╛рдХрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдХреА рдЬрд╛ рд╕рдХреЗред Pidcat рдХреЛ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рдиреА рдФрд░ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдкрд╕рдВрдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
{% hint style="warning" %}
Note that from later newer than Android 4.0, applications are only able to access their own logs. So applications cannot access other apps logs.
Anyway, it's still recommended to not log sensitive information.
{% endhint %}
Copy/Paste Buffer Caching
Android рдХрд╛ clipboard-based рдврд╛рдВрдЪрд╛ рдРрдкреНрд╕ рдореЗрдВ рдХреЙрдкреА-рдкреЗрд╕реНрдЯ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ рднреА рдпрд╣ рдПрдХ рдЬреЛрдЦрд┐рдо рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреНрд▓рд┐рдкрдмреЛрд░реНрдб рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдЙрдЬрд╛рдЧрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА/рдкреЗрд╕реНрдЯ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдХреНрд░реЗрдбрд┐рдЯ рдХрд╛рд░реНрдб рд╡рд┐рд╡рд░рдг, рдбреЗрдЯрд╛ рд▓реАрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред
Crash Logs
рдпрджрд┐ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди crash рд╣реЛрддрд╛ рд╣реИ рдФрд░ logs рд╕рд╣реЗрдЬрддрд╛ рд╣реИ, рддреЛ рдпреЗ рд▓реЙрдЧ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рд┐рд╡рд░реНрд╕-рдЗрдВрдЬреАрдирд┐рдпрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдЬреЛрдЦрд┐рдо рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрд░реИрд╢ рдкрд░ рд▓реЙрдЧрд┐рдВрдЧ рд╕реЗ рдмрдЪреЗрдВ, рдФрд░ рдпрджрд┐ рд▓реЙрдЧ рдХреЛ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП SSL рдЪреИрдирд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛рдПред
As pentester, try to take a look to these logs.
Analytics Data Sent To 3rd Parties
Applications often integrate services like Google Adsense, which can inadvertently leak sensitive data due to improper implementation by developers. To identify potential data leaks, it's advisable to intercept the application's traffic and check for any sensitive information being sent to third-party services.
SQLite DBs
Most of the applications will use internal SQLite databases to save information. During the pentest take a look to the databases created, the names of tables and columns and all the data saved because you could find sensitive information (which would be a vulnerability).
Databases should be located in /data/data/the.package.name/databases
like /data/data/com.mwr.example.sieve/databases
If the database is saving confidential information and is encrypted but you can find the password inside the application it's still a vulnerability.
Enumerate the tables using .tables
and enumerate the columns of the tables doing .schema <table_name>
Drozer (Exploit Activities, Content Providers and Services)
From Drozer Docs: Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as make use of AndroidтАЩs Inter-Process Communication (IPC) mechanism and interact with the underlying operating system. .
Drozer is s useful tool to exploit exported activities, exported services and Content Providers as you will learn in the following sections.
Exploiting exported Activities
Read this if you want to refresh what is an Android Activity.
Also remember that the code of an activity starts in the onCreate
method.
Authorisation bypass
When an Activity is exported you can invoke its screen from an external app. Therefore, if an activity with sensitive information is exported you could bypass the authentication mechanisms to access it.
Learn how to exploit exported activities with Drozer.
You can also start an exported activity from adb:
- PackageName is com.example.demo
- Exported ActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity
NOTE: MobSF singleTask/singleInstance рдХреЗ рд░реВрдк рдореЗрдВ android:launchMode
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╣рдЪрд╛рдирддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЗ рдХрд╛рд░рдг, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ (API рд╕рдВрд╕реНрдХрд░рдг < 21) рдкрд░ рдЦрддрд░рдирд╛рдХ рд╣реИред
{% hint style="info" %} рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдмрд╛рдИрдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рдХрдордЬреЛрд░ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реЛрддрд╛, рдпрд╣ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░реЗрдЧрд╛ рдХрд┐ рдмрд╛рдИрдкрд╛рд╕ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреМрди рд╕реА рдЬрд╛рдирдХрд╛рд░реА рдЙрдЬрд╛рдЧрд░ рд╣реЛрддреА рд╣реИред {% endhint %}
рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд░рд┐рд╕рд╛рд╡
рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рднреА рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛ рд╕рдХрддреА рд╣реИрдВред рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд░реНрдпрд╛рддрд┐рдд рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ setResult
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддреА рд╣реИ рдФрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рд▓реМрдЯрд╛рддреА рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд░рд┐рд╕рд╛рд╡ рд╣реИред
Tapjacking
рдпрджрд┐ tapjacking рдХреЛ рд░реЛрдХрд╛ рдирд╣реАрдВ рдЧрдпрд╛, рддреЛ рдЖрдк рдирд┐рд░реНрдпрд╛рддрд┐рдд рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХреНрд░рд┐рдпрд╛рдПрдБ рдХрд░реЗрдВред Tapjacking рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг - рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рддрдХ рдкрд╣реБрдБрдЪ рдФрд░ рд╣реЗрд░рдлреЗрд░ рдХрд░рдирд╛
рдпрджрд┐ рдЖрдк рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкрдврд╝реЗрдВред
рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдбреЗрдЯрд╛ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдХрд┐рд╕реА рдРрдк рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрдирд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдирд┐рдХрд╛рд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рднреА рд╕рдВрднрд╛рд╡рд┐рдд SQL рдЗрдВрдЬреЗрдХреНрд╢рди рдФрд░ рдкрде Traversals рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдХрдордЬреЛрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг
рдпрджрд┐ рдЖрдк рд╕реЗрд╡рд╛ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкрдврд╝реЗрдВред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рд╕реЗрд╡рд╛ рдХреА рдХреНрд░рд┐рдпрд╛рдПрдБ onStartCommand
рд╡рд┐рдзрд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред
рд╕реЗрд╡рд╛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд▓реМрдЯрд╛рддрд╛ рд╣реИ (рдпрд╛ рдирд╣реАрдВ)ред рдлрд┐рд░, рдпрджрд┐ рдХреЛрдИ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреБрдЫ рд╕реЗрд╡рд╛рдПрдБ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреЛрдб рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рд╕рдордЭ рд╕рдХреЗрдВ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЧреЛрдкрдиреАрдп рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдиреЗ, рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЙрдкрд╛рдпреЛрдВ рдХреЛ рдмрд╛рдИрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ...
Drozer рдХреЗ рд╕рд╛рде рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рд╢реЛрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рдЬрд╛рдиреЗрдВред
рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд░рд┐рд╕реАрд╡рд░реНрд╕ рдХрд╛ рд╢реЛрд╖рдг
рдпрджрд┐ рдЖрдк рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд░рд┐рд╕реАрд╡рд░ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕реЗ рддрд╛рдЬрд╝рд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдкрдврд╝реЗрдВред
рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд░рд┐рд╕реАрд╡рд░ рдХреА рдХреНрд░рд┐рдпрд╛рдПрдБ onReceive
рд╡рд┐рдзрд┐ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИрдВред
рдПрдХ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд░рд┐рд╕реАрд╡рд░ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрджреЗрд╢ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдЧрд╛ред рд░рд┐рд╕реАрд╡рд░ рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рд╕рдВрджреЗрд╢ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдпрд╣ рдХрдордЬреЛрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
Drozer рдХреЗ рд╕рд╛рде рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯ рд░рд┐рд╕реАрд╡рд░реНрд╕ рдХрд╛ рд╢реЛрд╖рдг рдХреИрд╕реЗ рдХрд░реЗрдВ, рдпрд╣ рдЬрд╛рдиреЗрдВред
рд╕реНрдХреАрдореЛрдВ / рдбреАрдк рд▓рд┐рдВрдХ рдХрд╛ рд╢реЛрд╖рдг
рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЧрд╣рд░реЗ рд▓рд┐рдВрдХ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, MobSF рдЬреИрд╕реЗ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╛ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред
рдЖрдк adb рдпрд╛ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдШреЛрд╖рд┐рдд рд╕реНрдХреАрдо рдХреЛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ:
{% code overflow="wrap" %}
adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]
{% endcode %}
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдк рдкреИрдХреЗрдЬ рдирд╛рдо рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдореЛрдмрд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕ рдРрдк рдХреЛ рдХреЙрд▓ рдХрд░реЗрдЧрд╛ рдЬреЛ рдЙрд╕ рд▓рд┐рдВрдХ рдХреЛ рдЦреЛрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред
{% code overflow="wrap" %}
<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>
{% endcode %}
рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛
рдРрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░ рдЬрд╛рдПрдВ рдЬрд┐рд╕реЗ рдбреАрдк рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдлрд╝рдВрдХреНрд╢рди onNewIntent
рдХреЛ рдЦреЛрдЬреЗрдВред
рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА
рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдПрдХ рдбреАрдк рд▓рд┐рдВрдХ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдпрд╣ URL рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ (рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб) рдкреНрд░рд╛рдкреНрдд рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреАрдк рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрдХрд░рдг рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЪреБрд░рд╛ рд╕рдХрддрд╛ рд╣реИ!
рдкреИрд░рд╛рдореАрдЯрд░ рдкрде рдореЗрдВ
рдЖрдкрдХреЛ рдпрд╣ рднреА рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдХреЛрдИ рдбреАрдк рд▓рд┐рдВрдХ URL рдХреЗ рдкрде рдХреЗ рдЕрдВрджрд░ рдХрд┐рд╕реА рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬреИрд╕реЗ: https://api.example.com/v1/users/{username}
, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдк рдкрде рдпрд╛рддреНрд░рд╛ рдХреЛ рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ: example://app/users?username=../../unwanted-endpoint%3fparam=value
.
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЕрдВрджрд░ рд╕рд╣реА рдПрдВрдбрдкреЙрдЗрдВрдЯреНрд╕ рдкрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдУрдкрди рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ (рдпрджрд┐ рдкрде рдХрд╛ рдПрдХ рднрд╛рдЧ рдбреЛрдореЗрди рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ), рдЦрд╛рддрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг (рдпрджрд┐ рдЖрдк CSRF рдЯреЛрдХрди рдХреЗ рдмрд┐рдирд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╡рд░рдг рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдордЬреЛрд░ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдиреЗ рд╕рд╣реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛) рдФрд░ рдХрд┐рд╕реА рдЕрдиреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдБ рд╣реИред
рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг
рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдмрдЧ рдмрд╛рдЙрдВрдЯреА рд░рд┐рдкреЛрд░реНрдЯ рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ (/.well-known/assetlinks.json).
рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рд▓реЗрдпрд░ рдирд┐рд░реАрдХреНрд╖рдг рдФрд░ рд╕рддреНрдпрд╛рдкрди рд╡рд┐рдлрд▓рддрд╛рдПрдБ
- рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рдареАрдХ рд╕реЗ рдирд┐рд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рджреНрд╡рд╛рд░рд╛ред рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХрд░рдирд╛ рдФрд░ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдпрд╛ рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ HTTP рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рд╣реИред
- SSL/TLS рд╣реИрдВрдбрд╢реЗрдХ рдХреЗ рджреМрд░рд╛рди рдмрд╛рддрдЪреАрдд рдХрднреА-рдХрднреА рдХрдордЬреЛрд░ рд╣реЛрддреА рд╣реИ, рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рд┐рдлрд░ рд╕реВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдпрд╣ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдХрд╛рд░рдг рдХрдиреЗрдХреНрд╢рди рдХреЛ рдореИрди-рдЗрди-рдж-рдорд┐рдбрд▓ (MITM) рд╣рдорд▓реЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╣рдорд▓рд╛рд╡рд░ рдбреЗрдЯрд╛ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
- рдирд┐рдЬреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рд░рд┐рд╕рд╛рд╡ рдПрдХ рдЬреЛрдЦрд┐рдо рд╣реИ рдЬрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реБрд░рдХреНрд╖рд┐рдд рдЪреИрдирд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХрд░рддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЕрдиреНрдп рд▓реЗрдирджреЗрди рдХреЗ рд▓рд┐рдП рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛, рдЬреИрд╕реЗ рд╕рддреНрд░ рдХреБрдХреАрдЬрд╝ рдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡рд┐рд╡рд░рдг, рдХреЛ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╕рдВрд╕реНрдерд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЯрд░рд╕реЗрдкреНрд╢рди рд╕реЗ рдмрдЪрд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕рддреНрдпрд╛рдкрди
рд╣рдо рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕рддреНрдпрд╛рдкрди рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВрдЧреЗред рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рдЕрдЦрдВрдбрддрд╛ рдХреА рдкреБрд╖реНрдЯрд┐ рдХреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд TLS рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЪреИрдирд▓реЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХрд╛ рд╕рдВрдЪрд░рдг рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЬреЛрдЦрд┐рдо рдкреИрджрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдХрджрдореЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕рдВрд╕рд╛рдзрди рд╡реНрдпрд╛рдкрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
SSL рдкрд┐рдирд┐рдВрдЧ
SSL рдкрд┐рдирд┐рдВрдЧ рдПрдХ рд╕реБрд░рдХреНрд╖рд╛ рдЙрдкрд╛рдп рд╣реИ рдЬрд╣рд╛рдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреА рдкреБрд╖реНрдЯрд┐ рдПрдХ рдЬреНрдЮрд╛рдд рдкреНрд░рддрд┐ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХрд░рддреА рд╣реИ рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреА рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐ MITM рд╣рдорд▓реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рд▓рд┐рдП SSL рдкрд┐рдирд┐рдВрдЧ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред
рдЯреНрд░реИрдлрд╝рд┐рдХ рдирд┐рд░реАрдХреНрд╖рдг
HTTP рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдХреНрд╕реА рдЯреВрд▓ рдХрд╛ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЬреИрд╕реЗ, Burp)ред рдЗрд╕ рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдП рдмрд┐рдирд╛, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЯреНрд░реИрдлрд╝рд┐рдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд╕рдХрддрд╛ред рдХрд╕реНрдЯрдо CA рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб рдХреЗ рд▓рд┐рдП, рдпрд╣рд╛рдБ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
API рд╕реНрддрд░ 24 рдФрд░ рдЙрд╕рд╕реЗ рдКрдкрд░ рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЛ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ CA рд╕рд░реНрдЯрд┐рдлрд┐рдХреЗрдЯ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдпрд╣ рдХрджрдо рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдиреЗрдЯрд╡рд░реНрдХ рд╕реБрд░рдХреНрд╖рд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдХрд╛ рд╕рдВрджрд░реНрдн рд▓реЗрдВуАВ
SSL рдкрд┐рдирд┐рдВрдЧ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛
рдЬрдм SSL рдкрд┐рдирд┐рдВрдЧ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИ, рддреЛ HTTPS рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдзрд┐рдпрд╛рдБ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ:
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ apk рдХреЛ SSL рдкрд┐рдирд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП apk-mitm рдХреЗ рд╕рд╛рдеред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ SSL рдкрд┐рдирд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╣рдЯрд╛рдирд╛ рдФрд░ рдирдП рдХреЛ рдкреБрдирдГ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рд╣рдореЗрд╢рд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
- рдЖрдк Frida рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ) рдЗрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣рд╛рдБ Burp+Frida+Genymotion рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрд╛рдЗрдб рд╣реИ: https://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
- рдЖрдк objection рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ SSL рдкрд┐рдирд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:**
objection --gadget com.package.app explore --startup-command "android sslpinning disable"
- рдЖрдк MobSF рдбрд╛рдпрдирд╛рдорд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ SSL рдкрд┐рдирд┐рдВрдЧ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдиреАрдЪреЗ рд╕рдордЭрд╛рдпрд╛ рдЧрдпрд╛)
- рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреБрдЫ рдЯреНрд░реИрдлрд╝рд┐рдХ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк рдХреИрдкреНрдЪрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк iptables рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреЛ burp рдкрд░ рдЕрдЧреНрд░реЗрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдмреНрд▓реЙрдЧ рдХреЛ рдкрдврд╝реЗрдВ: https://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62
рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдм рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ
рдпрд╣ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рднреАрддрд░ рд╕рд╛рдорд╛рдиреНрдп рд╡реЗрдм рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛рдПред рдЗрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдФрд░ рд╢рдорди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдЗрд╕ рд╕рд╛рд░рд╛рдВрд╢ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдЕрдиреНрдпрддреНрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
Frida
Frida рдбреЗрд╡рд▓рдкрд░реНрд╕, рд░рд┐рд╡рд░реНрд╕-рдЗрдВрдЬреАрдирд┐рдпрд░реНрд╕ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдбрд╛рдпрдирд╛рдорд┐рдХ рдЗрдВрд╕реНрдЯреНрд░реБрдореЗрдВрдЯреЗрд╢рди рдЯреВрд▓рдХрд┐рдЯ рд╣реИред
рдЖрдк рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддрдХ рдкрд╣реБрдБрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд░рди рдЯрд╛рдЗрдо рдкрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╣реБрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рд╕рдХреЗрдВ, рдорд╛рди рдмрджрд▓ рд╕рдХреЗрдВ, рдорд╛рди рдирд┐рдХрд╛рд▓ рд╕рдХреЗрдВ, рд╡рд┐рднрд┐рдиреНрди рдХреЛрдб рдЪрд▓рд╛ рд╕рдХреЗрдВ...
рдпрджрд┐ рдЖрдк Android рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ Frida рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реАрдЦрдирд╛ рд╣реЛрдЧрд╛ред
- Frida рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ: Frida рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
- Frida рдХреЗ рд╕рд╛рде рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреБрдЫ "GUI": https://github.com/m0bilesecurity/RMS-Runtime-Mobile-Security
- Ojection Frida рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢рд╛рдирджрд╛рд░ рд╣реИ: https://github.com/sensepost/objection , https://github.com/dpnishant/appmon
- рдЖрдк рдпрд╣рд╛рдБ рдХреБрдЫ рд╢рд╛рдирджрд╛рд░ Frida рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://codeshare.frida.re/
- Frida рдХреЛ рд▓реЛрдб рдХрд░рдХреЗ рдПрдВрдЯреА-рдбрд┐рдмрдЧрд┐рдВрдЧ / рдПрдВрдЯреА-Frida рддрдВрддреНрд░ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ https://erfur.github.io/blog/dev/code-injection-without-ptrace рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд рд╣реИ (рдЙрдкрдХрд░рдг linjector)
рдбрдВрдк рдореЗрдореЛрд░реА - Fridump
рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЗрд╕реЗ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреИрд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдпрд╛ рдореНрдиреЗрдореЛрдирд┐рдХреНрд╕ред
Fridump3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдореЗрдореЛрд░реА рдХреЛ рдбрдВрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
# With PID
python3 fridump3.py -u <PID>
# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"
рдпрд╣ ./dump рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдореЗрдореЛрд░реА рдХреЛ рдбрдВрдк рдХрд░реЗрдЧрд╛, рдФрд░ рд╡рд╣рд╛рдБ рдЖрдк рдХреБрдЫ рдЗрд╕ рддрд░рд╣ grep рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
{% code overflow="wrap" %}
strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"
{% endcode %}
рдХреАрд╕реНрдЯреЛрд░ рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛
Android рдореЗрдВ рдХреАрд╕реНрдЯреЛрд░ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╕реНрдерд╛рди рд╣реИ, рд╣рд╛рд▓рд╛рдБрдХрд┐, рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдЪреВрдВрдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣рд╛рдБ рд╕реНрдкрд╖реНрдЯ рдкрд╛рда рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рд╡реГрддреНрддрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП pentests рдХреЛ рдЗрд╕реЗ рд░реВрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрд╛рдВрдЪрдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рддрдХ рднреМрддрд┐рдХ рдкрд╣реБрдВрдЪ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬреЛ рдЗрд╕ рдбреЗрдЯрд╛ рдХреЛ рдЪреБрд░рд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рддрдХ рдХрд┐ рдЕрдЧрд░ рдПрдХ рдРрдк рдиреЗ рдХреАрд╕реНрдЯреЛрд░ рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдХреЛ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреАрд╕реНрдЯреЛрд░ рдХреЗ рдЕрдВрджрд░ рдбреЗрдЯрд╛ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдЗрд╕ Frida рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js
frida -U -f com.example.app -l frida-scripts/tracer-cipher.js
рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ/рдмрд╛рдпреЛрдореЗрдЯреНрд░рд┐рдХреНрд╕ рдмрд╛рдпрдкрд╛рд╕
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд Frida рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдлрд┐рдВрдЧрд░рдкреНрд░рд┐рдВрдЯ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреБрдЫ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ:
{% code overflow="wrap" %}
frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>
{% endcode %}
рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╡рд┐рдпрд╛рдБ
рдЬрдм рдЖрдк рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЬрдм рдЗрд╕реЗ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ рдЫрд╡рд┐ рд▓реЛрдб рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗ, рдЬрд┐рд╕рд╕реЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рддреЗрдЬреА рд╕реЗ рд▓реЛрдб рд╣реБрдЖред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЗрд╕ рд╕реНрдиреИрдкрд╢реЙрдЯ рдореЗрдВ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ, рддреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ рддрдХ рдкрд╣реБрдБрдЪ рд░рдЦрдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдЙрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдЪреБрд░рд╛ рд╕рдХрддрд╛ рд╣реИ (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рд░реВрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
рд╕реНрдиреИрдкрд╢реЙрдЯ рдЖрдорддреМрд░ рдкрд░ рдпрд╣рд╛рдБ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВ: /data/system_ce/0/snapshots
Android рдПрдХ рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ FLAG_SECURE рд▓реЗрдЖрдЙрдЯ рдкреИрд░рд╛рдореАрдЯрд░ рд╕реЗрдЯ рдХрд░рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреИрдкреНрдЪрд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдПред рдЗрд╕ рдзреНрд╡рдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╡рд┐рдВрдбреЛ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдпрд╣ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореЗрдВ рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗрддреА рдпрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдирд╣реАрдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреАред
getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);
Android Application Analyzer
рдпрд╣ рдЙрдкрдХрд░рдг рдЖрдкрдХреЛ рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИ: https://github.com/NotSoSecure/android_application_analyzer
Intent Injection
рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрдХреНрд╕рд░ рдкреНрд░реЙрдХреНрд╕реА рдШрдЯрдХ рдЬреИрд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ, рд╕реЗрд╡рд╛рдПрдБ, рдФрд░ рдкреНрд░рд╕рд╛рд░рдг рд░рд┐рд╕реАрд╡рд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдЗрди Intents рдХреЛ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ startActivity(...)
рдпрд╛ sendBroadcast(...)
рдЬреИрд╕реЗ рддрд░реАрдХреЛрдВ рдореЗрдВ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЬреЛрдЦрд┐рдо рднрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЦрддрд░рд╛ рдЗрд╕ рдмрд╛рдд рдореЗрдВ рд╣реИ рдХрд┐ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЛ рдЧреИрд░-рдирд┐рд░реНрдпрд╛рддрд┐рдд рдРрдк рдШрдЯрдХреЛрдВ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдпрд╛ рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛рдУрдВ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдП, рдЗрди Intents рдХреЛ рдЧрд▓рдд рджрд┐рд╢рд╛ рдореЗрдВ рднреЗрдЬрдХрд░ред рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЙрджрд╛рд╣рд░рдг WebView
рдШрдЯрдХ рд╣реИ рдЬреЛ URLs рдХреЛ Intent
рд╡рд╕реНрддреБрдУрдВ рдореЗрдВ Intent.parseUri(...)
рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдЙрдиреНрд╣реЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг Intent рдЗрдВрдЬреЗрдХреНрд╢рди рдХреА рдУрд░ рд▓реЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
Essential Takeaways
- Intent Injection рд╡реЗрдм рдХреЗ Open Redirect рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рди рд╣реИред
- рд╢реЛрд╖рдг рдореЗрдВ
Intent
рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдВрдЪрд╛рд▓рди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред - рдпрд╣ рдЧреИрд░-рдирд┐рд░реНрдпрд╛рддрд┐рдд рдШрдЯрдХреЛрдВ рдФрд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЛ рд╣рдорд▓рд╛рд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
WebView
рдХрд╛ URL рд╕реЗIntent
рдореЗрдВ рд░реВрдкрд╛рдВрддрд░рдг рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
Android Client Side Injections and others
рд╕рдВрднрд╡рддрдГ рдЖрдк рд╡реЗрдм рд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдЖрдкрдХреЛ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЗрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЗ рдкреНрд░рддрд┐ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕рддрд░реНрдХ рд░рд╣рдирд╛ рдЪрд╛рд╣рд┐рдП:
- SQL Injection: рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдпрд╛ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдкреИрд░рд╛рдореАрдЯрд░рдпреБрдХреНрдд рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
- JavaScript Injection (XSS): рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХрд┐рд╕реА рднреА WebViews рдХреЗ рд▓рд┐рдП JavaScript рдФрд░ рдкреНрд▓рдЧрдЗрди рд╕рдорд░реНрдерди рдмрдВрдж рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж)ред рдпрд╣рд╛рдБ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред
- Local File Inclusion: WebViews рдХреЛ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рддрдХ рдкрд╣реБрдБрдЪ рдмрдВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕рдХреНрд╖рдо) -
(webview.getSettings().setAllowFileAccess(false);)
ред рдпрд╣рд╛рдБ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реАред - Eternal cookies: рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЬрдм Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рддреНрд░ рд╕рдорд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рдХреБрдХреА рдХреЛ рд░рджреНрдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдпрд╛ рдЗрд╕реЗ рдбрд┐рд╕реНрдХ рдкрд░ рднреА рд╕рд╣реЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
- Secure Flag in cookies
рдЕрдиреБрднрд╡реА рд╣реИрдХрд░реЛрдВ рдФрд░ рдмрдЧ рдмрд╛рдЙрдВрдЯреА рд╢рд┐рдХрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП HackenProof Discord рд╕рд░реНрд╡рд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ!
Hacking Insights
рд╣реИрдХрд┐рдВрдЧ рдХреЗ рд░реЛрдорд╛рдВрдЪ рдФрд░ рдЪреБрдиреМрддрд┐рдпреЛрдВ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рд╕рдВрд▓рдЧреНрди рд╣реЛрдВ
Real-Time Hack News
рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рд╕рдорд╛рдЪрд╛рд░ рдФрд░ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддреЗрдЬрд╝-рддрд░реНрд░рд╛рд░ рд╣реИрдХрд┐рдВрдЧ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЕрджреНрдпрддрд┐рдд рд░рд╣реЗрдВ
Latest Announcements
рдирд╡реАрдирддрдо рдмрдЧ рдмрд╛рдЙрдВрдЯреА рд▓реЙрдиреНрдЪ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЕрдкрдбреЗрдЯ рдХреЗ рд╕рд╛рде рд╕реВрдЪрд┐рдд рд░рд╣реЗрдВ
Join us on Discord рдФрд░ рдЖрдЬ рд╣реА рд╢реАрд░реНрд╖ рд╣реИрдХрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣рдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ!
Automatic Analysis
MobSF
Static analysis
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдЖрдХрд▓рди рдПрдХ рдЕрдЪреНрдЫреЗ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдлреНрд░рдВрдЯреЗрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред рдЖрдк рдЧрддрд┐рд╢реАрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest
Notice that MobSF can analyse Android(apk), IOS(ipa) and Windows(apx) applications (Windows applications must be analyzed from a MobSF installed in a Windows host).
Also, if you create a ZIP file with the source code if an Android or an IOS app (go to the root folder of the application, select everything and create a ZIPfile), it will be able to analyse it also.
MobSF also allows you to diff/Compare analysis and to integrate VirusTotal (you will need to set your API key in MobSF/settings.py and enable it: VT_ENABLED = TRUE
VT_API_KEY = <Your API key>
VT_UPLOAD = TRUE
). You can also set VT_UPLOAD
to False
, then the hash will be upload instead of the file.
Assisted Dynamic analysis with MobSF
MobSF can also be very helpful for dynamic analysis in Android, but in that case you will need to install MobSF and genymotion in your host (a VM or Docker won't work). Note: You need to start first a VM in genymotion and then MobSF.
The MobSF dynamic analyser can:
- Dump application data (URLs, logs, clipboard, screenshots made by you, screenshots made by "Exported Activity Tester", emails, SQLite databases, XML files, and other created files). All of this is done automatically except for the screenshots, you need to press when you want a screenshot or you need to press "Exported Activity Tester" to obtain screenshots of all the exported activities.
- Capture HTTPS traffic
- Use Frida to obtain runtime information
From android versions > 5, it will automatically start Frida and will set global proxy settings to capture traffic. It will only capture traffic from the tested application.
Frida
By default, it will also use some Frida Scripts to bypass SSL pinning, root detection and debugger detection and to monitor interesting APIs.
MobSF can also invoke exported activities, grab screenshots of them and save them for the report.
To start the dynamic testing press the green bottom: "Start Instrumentation". Press the "Frida Live Logs" to see the logs generated by the Frida scripts and "Live API Monitor" to see all the invocation to hooked methods, arguments passed and returned values (this will appear after pressing "Start Instrumentation").
MobSF also allows you to load your own Frida scripts (to send the results of your Friday scripts to MobSF use the function send()
). It also has several pre-written scripts you can load (you can add more in MobSF/DynamicAnalyzer/tools/frida_scripts/others/
), just select them, press "Load" and press "Start Instrumentation" (you will be able to see the logs of that scripts inside "Frida Live Logs").
Moreover, you have some Auxiliary Frida functionalities:
- Enumerate Loaded Classes: рдпрд╣ рд╕рднреА рд▓реЛрдб рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛
- Capture Strings: рдпрд╣ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕рднреА рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ (рдмрд╣реБрдд рд╢реЛрд░)
- Capture String Comparisons: рдпрд╣ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рджреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рджрд┐рдЦрд╛рдПрдЧрд╛ рдЬреЛ рддреБрд▓рдирд╛ рдХреА рдЬрд╛ рд░рд╣реА рд╣реИрдВ рдФрд░ рдпрджрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рддреНрдп рдпрд╛ рдЕрд╕рддреНрдп рдерд╛ред
- Enumerate Class Methods: рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо рдбрд╛рд▓реЗрдВ (рдЬреИрд╕реЗ "java.io.File") рдФрд░ рдпрд╣ рдХрдХреНрд╖рд╛ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдЧрд╛ред
- Search Class Pattern: рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреА рдЦреЛрдЬ рдХрд░реЗрдВ
- Trace Class Methods: Trace рдПрдХ рдкреВрд░реА рдХрдХреНрд╖рд╛ (рдХрдХреНрд╖рд╛ рдХреЗ рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЗ рдЗрдирдкреБрдЯ рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рджреЗрдЦреЗрдВ)ред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ MobSF рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк Android Api рддрд░реАрдХреЛрдВ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рддрд╛ рд╣реИред
Once you have selected the auxiliary module you want to use you need to press "Start Intrumentation" and you will see all the outputs in "Frida Live Logs".
Shell
Mobsf also brings you a shell with some adb commands, MobSF commands, and common shell commands at the bottom of the dynamic analysis page. Some interesting commands:
help
shell ls
activities
exported_activities
services
receivers
HTTP tools
рдЬрдм http рдЯреНрд░реИрдлрд╝рд┐рдХ рдХреИрдкреНрдЪрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЖрдк "HTTP(S) Traffic" рдиреАрдЪреЗ рдХреИрдкреНрдЪрд░ рдХрд┐рдП рдЧрдП рдЯреНрд░реИрдлрд╝рд┐рдХ рдХрд╛ рдПрдХ рдЦрд░рд╛рдм рджреГрд╢реНрдп рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ "Start HTTPTools" рд╣рд░реЗ рдмрдЯрди рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рджреГрд╢реНрдп рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ рд╡рд┐рдХрд▓реНрдк рд╕реЗ, рдЖрдк captured requests рдХреЛ proxies рдЬреИрд╕реЗ Burp рдпрд╛ Owasp ZAP рдкрд░ send рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЗрд╕рдХреЗ рд▓рд┐рдП, Burp рдХреЛ рдЪрд╛рд▓реВ рдХрд░реЗрдВ --> Intercept рдмрдВрдж рдХрд░реЗрдВ --> MobSB HTTPTools рдореЗрдВ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ --> "Send to Fuzzer" рдкрд░ рджрдмрд╛рдПрдВ --> proxy рдкрддрд╛ рдЪреБрдиреЗрдВ (http://127.0.0.1:8080\)ред
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк MobSF рдХреЗ рд╕рд╛рде рдбрд╛рдпрдирд╛рдорд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╕рдорд╛рдкреНрдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк "Start Web API Fuzzer" рдкрд░ рджрдмрд╛ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ fuzz http requests рдХрд░реЗрдВ рдФрд░ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВред
{% hint style="info" %} MobSF рдХреЗ рд╕рд╛рде рдбрд╛рдпрдирд╛рдорд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ GUI рд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░ рдкрд╛рдПрдВрдЧреЗред рдЖрдк рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
adb shell settings put global http_proxy :0
{% endhint %}
Assisted Dynamic Analysis with Inspeckage
рдЖрдк рдЗрд╕ рдЙрдкрдХрд░рдг рдХреЛ Inspeckage рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ рдЙрдкрдХрд░рдг рдХреБрдЫ Hooks рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдЬрдм рдЖрдк dynamic analysis рдХрд░рддреЗ рд╣реИрдВред
Yaazhini
рдпрд╣ GUI рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдирджрд╛рд░ рдЙрдкрдХрд░рдг рд╣реИ
Qark
рдпрд╣ рдЙрдкрдХрд░рдг рдХрдИ рд╕реБрд░рдХреНрд╖рд╛ рд╕рдВрдмрдВрдзрд┐рдд Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЪрд╛рд╣реЗ рд╡рд╣ source code рдореЗрдВ рд╣реЛ рдпрд╛ рдкреИрдХреЗрдЬреНрдб APKs рдореЗрдВред рдпрд╣ рдЙрдкрдХрд░рдг "Proof-of-Concept" рддреИрдирд╛рдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп APK рдФрд░ ADB рдХрдорд╛рдВрдб рдмрдирд╛рдиреЗ рдореЗрдВ рднреА рд╕рдХреНрд╖рдо рд╣реИ, рддрд╛рдХрд┐ рдХреБрдЫ рдЦреЛрдЬреА рдЧрдИ рдХрдордЬреЛрд░рд┐рдпреЛрдВ (Exposed activities, intents, tapjacking...) рдХрд╛ рд╢реЛрд╖рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред Drozer рдХреА рддрд░рд╣, рдкрд░реАрдХреНрд╖рдг рдЙрдкрдХрд░рдг рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
pip3 install --user qark # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java
ReverseAPK
- рд╕рднреА рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЖрд╕рд╛рди рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
- APK рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ Java рдФрд░ Smali рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░рддрд╛ рд╣реИ
- рд╕рд╛рдорд╛рдиреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП AndroidManifest.xml рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░реЗрдВ
- рд╕рд╛рдорд╛рдиреНрдп рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдФрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд▓рд┐рдП рд╕реНрдереИрддрд┐рдХ рд╕реНрд░реЛрдд рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг
- рдбрд┐рд╡рд╛рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА
- рдФрд░ рдЕрдзрд┐рдХ
reverse-apk relative/path/to/APP.apk
SUPER Android Analyzer
SUPER рдПрдХ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬрд┐рд╕реЗ Windows, MacOS X рдФрд░ Linux рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ .apk рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреА рдЦреЛрдЬ рдХреА рдЬрд╛ рд╕рдХреЗред рдпрд╣ APKs рдХреЛ рдбрд┐рдХрдВрдкреНрд░реЗрд╕ рдХрд░рдХреЗ рдФрд░ рдЙрди рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред
рд╕рднреА рдирд┐рдпрдо rules.json
рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИрдВ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХрдВрдкрдиреА рдпрд╛ рдкрд░реАрдХреНрд╖рдХ рдЕрдкрдиреЗ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдирд┐рдпрдо рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред
рдирд╡реАрдирддрдо рдмрд╛рдЗрдирд░реА рдбрд╛рдЙрдирд▓реЛрдб рдкреГрд╖реНрда рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред
super-analyzer {apk_file}
StaCoAn
StaCoAn рдПрдХ рдХреНрд░реЙрд╕рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕, рдмрдЧ рдмрд╛рдЙрдВрдЯреА рд╢рд┐рдХрд╛рд░рд┐рдпреЛрдВ рдФрд░ рдиреИрддрд┐рдХ рд╣реИрдХрд░реЛрдВ рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдкрд░ рд╕реНрдЯреИрдЯрд┐рдХ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рд╡рд┐рдЪрд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдлрд╝рд╛рдЗрд▓ (рдПрдХ .apk рдпрд╛ .ipa рдлрд╝рд╛рдЗрд▓) рдХреЛ StaCoAn рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░ рдЦреАрдВрдЪрддреЗ рдФрд░ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╢реНрдп рдФрд░ рдкреЛрд░реНрдЯреЗрдмрд▓ рд░рд┐рдкреЛрд░реНрдЯ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ред рдЖрдк рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдФрд░ рд╡рд░реНрдбрд▓рд┐рд╕реНрдЯ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдПрдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдЕрдиреБрднрд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХреЗрдВред
рдбрд╛рдЙрдирд▓реЛрдб рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝:
./stacoan
AndroBugs
AndroBugs Framework рдПрдХ Android рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдкреНрд░рдгрд╛рд▓реА рд╣реИ рдЬреЛ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдпрд╛ рд╣реИрдХрд░реНрд╕ рдХреЛ Android рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реБрд░рдХреНрд╖рд╛ рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреА рд╣реИред
Windows releases
python androbugs.py -f [APK file]
androbugs.exe -f [APK file]
Androwarn
Androwarn рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдПрдХ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рд╕рдВрднрд╛рд╡рд┐рдд рджреБрд░реНрднрд╛рд╡рдирд╛рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдирд╛ рд╣реИред
рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ Dalvik рдмрд╛рдЗрдЯрдХреЛрдб рдХрд╛ рд╕реНрдереИрддрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдХреЗ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕реЗ Smali рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, androguard
рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рдеред
рдпрд╣ рдЙрдкрдХрд░рдг "рдЦрд░рд╛рдм" рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддрд▓рд╛рд╢ рдХрд░рддрд╛ рд╣реИ рдЬреИрд╕реЗ: рдЯреЗрд▓реАрдлреЛрдиреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдмрд╣рд┐рд░реНрд╡рд╛рд╣, рдСрдбрд┐рдпреЛ/рд╡реАрдбрд┐рдпреЛ рдкреНрд░рд╡рд╛рд╣ рдХрд╛ рдЕрд╡рд░реЛрдзрди, PIM рдбреЗрдЯрд╛ рдореЗрдВ рд╕рдВрд╢реЛрдзрди, рдордирдорд╛рдиреЗ рдХреЛрдб рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди...
python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3
MARA Framework
MARA рдПрдХ MреЛрдмрд╛рдЗрд▓ AрдкреНрд▓рд┐рдХреЗрд╢рди Rрд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ Aрдирд╛рд▓рд┐рд╕рд┐рд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рд╣реИред рдпрд╣ рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ OWASP рдореЛрдмрд╛рдЗрд▓ рд╕реБрд░рдХреНрд╖рд╛ рдЦрддрд░реЛрдВ рдХреЗ рдЦрд┐рд▓рд╛рдл рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдорд┐рд▓ рд╕рдХреЗред рдЗрд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдФрд░ рд╕реБрд░рдХреНрд╖рд╛ рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рди рдФрд░ рдорд┐рддреНрд░рд╡рдд рдмрдирд╛рдирд╛ рд╣реИред
рдпрд╣ рд╕рдХреНрд╖рдо рд╣реИ:
- рд╡рд┐рднрд┐рдиреНрди рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Java рдФрд░ Smali рдХреЛрдб рдирд┐рдХрд╛рд▓рдирд╛
- smalisca, ClassyShark, androbugs, androwarn, APKiD рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ APK рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛
- regexps рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ APK рд╕реЗ рдирд┐рдЬреА рдЬрд╛рдирдХрд╛рд░реА рдирд┐рдХрд╛рд▓рдирд╛ред
- рдореИрдирд┐рдлреЗрд╕реНрдЯ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛ред
- pyssltest, testssl рдФрд░ whatweb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд╛рдП рдЧрдП рдбреЛрдореЗрди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдирд╛
- apk-deguard.com рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ APK рдХреЛ рдбрд┐рдУрдмрдлрд╕реНрдХреЗрдЯ рдХрд░рдирд╛
Koodous
рдореИрд▓рд╡реЗрдпрд░ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА: https://koodous.com/
рдХреЛрдб рдХреЛ рдУрдмрдлрд╕реНрдХреЗрдЯрд┐рдВрдЧ/рдбрд┐рдУрдмрдлрд╕реНрдХреЗрдЯрд┐рдВрдЧ рдХрд░рдирд╛
рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЬрд┐рд╕ рд╕реЗрд╡рд╛ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЖрдк рдХреЛрдб рдХреЛ рдУрдмрдлрд╕реНрдХреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред рд░рд╣рд╕реНрдп рдУрдмрдлрд╕реНрдХреЗрдЯреЗрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
ProGuard
рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рд╕реЗ: ProGuard рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдЙрдкрдХрд░рдг рд╣реИ рдЬреЛ Java рдХреЛрдб рдХреЛ рд╕рдВрдХреБрдЪрд┐рдд, рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдУрдмрдлрд╕реНрдХреЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдмрд╛рдЗрдЯрдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЕрдкреНрд░рдпреБрдХреНрдд рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред ProGuard рдореБрдлреНрдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╣реИ рдФрд░ рдЗрд╕реЗ GNU рдЬрдирд░рд▓ рдкрдмреНрд▓рд┐рдХ рд▓рд╛рдЗрд╕реЗрдВрд╕, рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рддрд╣рдд рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
ProGuard Android SDK рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд░рд┐рд▓реАрдЬрд╝ рдореЛрдб рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рддреЗ рд╕рдордп рдЪрд▓рддрд╛ рд╣реИред
DexGuard
APK рдХреЛ рдбрд┐рдУрдмрдлрд╕реНрдХреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд░рдг-рджрд░-рдЪрд░рдг рдЧрд╛рдЗрдб https://blog.lexfo.fr/dexguard.html рдкрд░ рдЦреЛрдЬреЗрдВ
(рдЙрд╕ рдЧрд╛рдЗрдб рд╕реЗ) рдЖрдЦрд┐рд░реА рдмрд╛рд░ рдЬрдм рд╣рдордиреЗ рдЬрд╛рдВрдЪрд╛, Dexguard рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдореЛрдб рдерд╛:
- рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЛ InputStream рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВ;
- рдЗрд╕реЗ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП FilterInputStream рд╕реЗ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рдПрдХ рдХрдХреНрд╖рд╛ рдХреЛ рдкрд░рд┐рдгрд╛рдо рджреЗрдВ;
- рдПрдХ рд░рд┐рд╡рд░реНрд╕рд░ рдХреЗ рд╕рдордп рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдмреЗрдХрд╛рд░ рдУрдмрдлрд╕реНрдХреЗрд╢рди рдХрд░реЗрдВ;
- DEX рдлрд╝рд╛рдЗрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдХреНрд░рд┐рдкреНрдЯреЗрдб рдкрд░рд┐рдгрд╛рдо рдХреЛ ZipInputStream рдореЗрдВ рджреЗрдВ;
- рдЕрдВрддрддрдГ
loadDex
рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк DEX рдХреЛ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЛрдб рдХрд░реЗрдВред
DeGuard
DeGuard Android рдУрдмрдлрд╕реНрдХреЗрд╢рди рдЙрдкрдХрд░рдгреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЧрдП рдУрдмрдлрд╕реНрдХреЗрд╢рди рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЙрд▓рдЯрддрд╛ рд╣реИред рдпрд╣ рдХреЛрдб рдирд┐рд░реАрдХреНрд╖рдг рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рд╕рд╣рд┐рдд рдХрдИ рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдгреЛрдВ рдХреЛ рд╕рдХреНрд╖рдо рдмрдирд╛рддрд╛ рд╣реИред
рдЖрдк рдЙрдирдХреЗ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдПрдХ рдУрдмрдлрд╕реНрдХреЗрдЯреЗрдб APK рдЕрдкрд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
Simplify
рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдбрд┐рдУрдмрдлрд╕реНрдХреЗрдЯрд░ рд╣реИред Simplify рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдРрдк рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдлрд┐рд░ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗ рд▓реЗрдХрд┐рди рдорд╛рдирд╡ рдХреЗ рд▓рд┐рдП рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реЛред рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрдХреВрд▓рди рдкреНрд░рдХрд╛рд░ рд╕рд░рд▓ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╛рдпрдиреЗ рдирд╣реАрдВ рд░рдЦрддрд╛ рдХрд┐ рдУрдмрдлрд╕реНрдХреЗрд╢рди рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреНрдпрд╛ рд╣реИред
APKiD
APKiD рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдПрдХ APK рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдХрдИ рдХрдВрдкрд╛рдЗрд▓рд░реНрд╕, рдкреИрдХрд░, рдУрдмрдлрд╕реНрдХреЗрдЯрд░реНрд╕, рдФрд░ рдЕрдиреНрдп рдЕрдЬреАрдм рдЪреАрдЬреЛрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ PEiD Android рдХреЗ рд▓рд┐рдП рд╣реИред
рдореИрдиреБрдЕрд▓
рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдПрдБ
Androl4b
AndroL4b рдПрдХ Android рд╕реБрд░рдХреНрд╖рд╛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╣реИ рдЬреЛ ubuntu-mate рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рдФрд░ рдореИрд▓рд╡реЗрдпрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮреЛрдВ рдФрд░ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рд╕реЗ рдирд╡реАрдирддрдо рдлреНрд░реЗрдорд╡рд░реНрдХ, рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рдФрд░ рдкреНрд░рдпреЛрдЧрд╢рд╛рд▓рд╛рдУрдВ рдХрд╛ рд╕рдВрдЧреНрд░рд╣ рд╢рд╛рдорд┐рд▓ рд╣реИред
рд╕рдВрджрд░реНрдн
- https://owasp.org/www-project-mobile-app-security/
- https://appsecwiki.com/#/ рдпрд╣ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╕реВрдЪреА рд╣реИ
- https://maddiestone.github.io/AndroidAppRE/ Android рддреНрд╡рд░рд┐рдд рдкрд╛рдареНрдпрдХреНрд░рдо
- https://manifestsecurity.com/android-application-security/
- https://github.com/Ralireza/Android-Security-Teryaagh
- https://www.youtube.com/watch?v=PMKnPaGWxtg&feature=youtu.be&ab_channel=B3nacSec
рдЕрднреА рдЖрдЬрдорд╛рдирд╛ рдмрд╛рдХреА рд╣реИ
Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!
Hacking Insights
Engage with content that delves into the thrill and challenges of hacking
Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights
Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates
Join us on Discord and start collaborating with top hackers today!
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the ЁЯТм Discord group or the telegram group or follow us on Twitter ЁЯРж @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.