12 KiB
Exploiting a debuggeable application
{% 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.
рд░реВрдЯ рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛
This section of the post is a summary from the post https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
Android рдРрдк рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо
рдРрдк рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдирд╛
Content based on https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
- APK рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░реЗрдВ:
- APK рдХреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП APK-GUI рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- android-manifest рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЛрдб рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
android:debuggable=true
рдбрд╛рд▓реЗрдВред - рд╕рдВрд╢реЛрдзрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХрд░реЗрдВ, рд╕рд╛рдЗрди рдХрд░реЗрдВ рдФрд░ рдЬрд╝рд┐рдкрд▓рд╛рдЗрди рдХрд░реЗрдВред
- рд╕рдВрд╢реЛрдзрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
- рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
adb install <application_name>
ред
- рдкреИрдХреЗрдЬ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:
- рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдиреЗ рдФрд░ рдкреИрдХреЗрдЬ рдирд╛рдо рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП
adb shell pm list packages тАУ3
рдЪрд▓рд╛рдПрдБред
- рдРрдк рдХреЛ рдбрд┐рдмрдЧрд░ рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВ:
- рдХрдорд╛рдВрдб:
adb shell am setup-debug-app тАУw <package_name>
ред - рдиреЛрдЯ: рдпрд╣ рдХрдорд╛рдВрдб рд╣рд░ рдмрд╛рд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рд╛рдиреА рдЪрд╛рд╣рд┐рдП рддрд╛рдХрд┐ рдпрд╣ рдбрд┐рдмрдЧрд░ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗред
- рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рд▓рд┐рдП,
adb shell am setup-debug-app тАУw -тАУpersistent <package_name>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рд╕рднреА рдлреНрд▓реИрдЧ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП,
adb shell am clear-debug-app <package_name>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- Android Studio рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░реЗрдВ:
- Android Studio рдореЗрдВ File -> Open Profile or APK рдкрд░ рдЬрд╛рдПрдБред
- рдкреБрдирдГ рд╕рдВрдХрд▓рд┐рдд APK рдЦреЛрд▓реЗрдВред
- рдореБрдЦреНрдп рдЬрд╛рд╡рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░реЗрдВ:
MainActivity.java
(рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗonCreate
рд╡рд┐рдзрд┐ рдореЗрдВ),b.java
, рдФрд░ContextWrapper.java
рдореЗрдВ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд░рдЦреЗрдВред
рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдирд╛
рдРрдкlication, рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдХрд┐ рдпрд╣ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдФрд░ рдпрд╣ рд░реВрдЯреЗрдб рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмрд╛рдЗрдирд░реА рдХреА рднреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдРрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ, рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрд┐рдЯ рдХреЛ рдЕрдирд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдЦреЛрдЬреЗ рдЧрдП рдмрд╛рдЗрдирд░реА рдХреЗ рдирд╛рдореЛрдВ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЗрди рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП:
- рдлреНрд▓реИрдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░реЗрдВ:
- рдбрд┐рдмрдЧрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдХреНрд╢рди рдореЗрдВ рдЬрд╛рдПрдБ:
this mLoadedAPK -> mApplicationInfo -> flags = 814267974
ред - рдиреЛрдЯ:
flags = 814267974
рдХрд╛ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡11000011100111011110
рд╣реИ, рдЬреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ "Flag_debuggable" рд╕рдХреНрд░рд┐рдп рд╣реИред
рдпреЗ рдХрджрдо рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдк рд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдХрд┐ рдХреБрдЫ рд╕реБрд░рдХреНрд╖рд╛ рдЬрд╛рдВрдЪреЛрдВ рдХреЛ рдбрд┐рдмрдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рдпрдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд╛ рдЕрдзрд┐рдХ рдЧрд╣рди рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдпрд╛ рд╕рдВрд╢реЛрдзрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рдЪрд░рдг 2 рдореЗрдВ рдлреНрд▓реИрдЧ рдорд╛рди рдХреЛ 814267972 рдореЗрдВ рдмрджрд▓рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдмрд╛рдЗрдирд░реА рдореЗрдВ 110000101101000000100010100 рдХреЗ рд░реВрдк рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдХ рднреЗрджреНрдпрддрд╛ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рдирд╛
рдПрдХ рдХрдордЬреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмрдЯрди рдФрд░ рдПрдХ рдЯреЗрдХреНрд╕реНрдЯрд╡реНрдпреВ рдерд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди "Crack Me" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓рдХреНрд╖реНрдп рд░рдирдЯрд╛рдЗрдо рдкрд░ "Try Again" рд╕реЗ "Hacked" рд╕рдВрджреЗрд╢ рдХреЛ рдмрджрд▓рдирд╛ рд╣реИ, рдмрд┐рдирд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдПред
рднреЗрджреНрдпрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ
apktool
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рддрд╛рдХрд┐AndroidManifest.xml
рдлрд╝рд╛рдЗрд▓ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХреЗред - AndroidManifest.xml рдореЗрдВ
android_debuggable="true"
рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдпрд╣ рд╕рдВрдХреЗрдд рдХрд░рддреА рд╣реИ рдХрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдФрд░ рд╢реЛрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рд╣реИред - рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐
apktool
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдХреЛрдб рдХреЛ рдмрджрд▓реЗред
рд╕реЗрдЯрдЕрдк рддреИрдпрд╛рд░ рдХрд░рдирд╛
- рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдПрдореБрд▓реЗрдЯрд░ рд╢реБрд░реВ рдХрд░рдирд╛, рдХрдордЬреЛрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛, рдФрд░
adb jdwp
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрдирдиреЗ рд╡рд╛рд▓реЗ рдбреЗрд▓рд╡рд┐рдХ рд╡реАрдПрдо рдкреЛрд░реНрдЯ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рдерд╛ред - JDWP (Java Debug Wire Protocol) рдПрдХ рд╡реАрдПрдо рдореЗрдВ рдЪрд▓ рд░рд╣реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдкреЛрд░реНрдЯ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдХреЗред
- рджреВрд░рд╕реНрде рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯ рдлреЙрд░рд╡рд░реНрдбрд┐рдВрдЧ рдЖрд╡рд╢реНрдпрдХ рдереА, рдЗрд╕рдХреЗ рдмрд╛рдж JDB рдХреЛ рд▓рдХреНрд╖рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ред
рд░рдирдЯрд╛рдЗрдо рдкрд░ рдХреЛрдб рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдирд╛
- рд╢реЛрд╖рдг рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд░рдХреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдХреЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ред
- рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
classes
рдФрд░methods <class_name>
рдЬреИрд╕реЗ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ред onClick
рд╡рд┐рдзрд┐ рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдФрд░ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ред- рд╕реНрдерд╛рдиреАрдп рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдФрд░ рд╕рдВрд╢реЛрдзрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
locals
,next
, рдФрд░set
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ "Try Again" рд╕рдВрджреЗрд╢ рдХреЛ "Hacked" рдореЗрдВ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред - рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрдб рдХреЛ
run
рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛, рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЧрдпрд╛ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдиреЗ рджрд┐рдЦрд╛рдпрд╛ рдХрд┐ рдХреИрд╕реЗ рдПрдХ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╣реЗрд░рдлреЗрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╢реЗрд▓ рдПрдХреНрд╕реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдЬреИрд╕реЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╢реЛрд╖рдг рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ред
References
- https://medium.com/@shubhamsonani/hacking-with-precision-bypass-techniques-via-debugger-in-android-apps-27fd562b2cc0
- https://resources.infosecinstitute.com/android-hacking-security-part-6-exploiting-debuggable-android-applications
{% 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.