hacktricks/mobile-pentesting/xamarin-apps.md

9.4 KiB

Xamarin Apps

{% 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
{% endhint %}

рдпрд╣ https://www.appknox.com/security/xamarin-reverse-engineering-a-guide-for-penetration-testers рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдХрд╛ рд╕рд╛рд░рд╛рдВрд╢ рд╣реИред

рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рдирдХрд╛рд░реА

Xamarin рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╣реИ рдЬрд┐рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП iOS, Android, рдФрд░ Windows рдХреЗ рд▓рд┐рдП рдРрдк рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ .NET рдФрд░ C# рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЖрдзреБрдирд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдХреБрд╢рд▓рддрд╛ рд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдФрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

Xamarin рдХреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

  • Android рдХреЗ рд▓рд┐рдП, Xamarin Android рдФрд░ Java рдирд╛рдорд╕реНрдерд╛рди рдХреЗ рд╕рд╛рде .NET рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ Mono рдирд┐рд╖реНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ Android Runtime (ART) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред Managed Callable Wrappers (MCW) рдФрд░ Android Callable Wrappers (ACW) Mono рдФрд░ ART рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЬреЛ рджреЛрдиреЛрдВ Linux рдХрд░реНрдиреЗрд▓ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВред
  • iOS рдХреЗ рд▓рд┐рдП, рдЕрдиреБрдкреНрд░рдпреЛрдЧ Mono рд░рдирдЯрд╛рдЗрдо рдХреЗ рддрд╣рдд рдЪрд▓рддреЗ рд╣реИрдВ, рдЬреЛ C# .NET рдХреЛрдб рдХреЛ ARM рдЕрд╕реЗрдВрдмрд▓реА рднрд╛рд╖рд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг Ahead of Time (AOT) рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░рдХреНрд░рд┐рдпрд╛ UNIX-рдЬреИрд╕реЗ рдХрд░реНрдиреЗрд▓ рдкрд░ Objective-C Runtime рдХреЗ рд╕рд╛рде рдЪрд▓рддреА рд╣реИред

.NET рд░рдирдЯрд╛рдЗрдо рдФрд░ Mono рдлреНрд░реЗрдорд╡рд░реНрдХ

.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЕрд╕реЗрдВрдмрд▓реА, рд╡рд░реНрдЧ рдФрд░ рдирд╛рдорд╕реНрдерд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ .NET рд░рдирдЯрд╛рдЗрдо рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдФрд░ рдкрд┐рдЫрд▓реА рд╕рдВрдЧрддрддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред Mono рдлреНрд░реЗрдорд╡рд░реНрдХ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ, рдЬрд┐рд╕реЗ 2005 рдореЗрдВ Linux рдХреЗ рд▓рд┐рдП .NET рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдм Microsoft рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдФрд░ Xamarin рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реИред

Xamarin рдРрдкреНрд╕ рдХрд╛ рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ

Xamarin рдЕрд╕реЗрдВрдмрд▓реА рдХрд╛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХрд░рдирд╛

рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд┐рдВрдЧ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИред Windows рдореЗрдВ, Visual Studio рдореЗрдВ Modules рд╡рд┐рдВрдбреЛ рдбрд┐рдХрдВрдкрд╛рдЗрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓ рдХреА рдкрд╣рдЪрд╛рди рдХрд░ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕рд╕реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдХреЛрдб рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓рддреА рд╣реИред

JIT рдмрдирд╛рдо AOT рд╕рдВрдХрд▓рди

  • Android Just-In-Time (JIT) рдФрд░ Ahead-Of-Time (AOT) рд╕рдВрдХрд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрдХреВрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдЧрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣рд╛рдЗрдмреНрд░рд┐рдб AOT рдореЛрдб рд╣реИред рдкреВрд░реНрдг AOT рдХреЗрд╡рд▓ рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд╣реИред
  • iOS рдХреЗрд╡рд▓ AOT рд╕рдВрдХрд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ Apple рдХреЗ рдЧрддрд┐рд╢реАрд▓ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВред

APK/IPA рд╕реЗ dll рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд┐рдХрд╛рд▓рдирд╛

APK/IPA рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ рдЕрд╕реЗрдВрдмрд▓реА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВред Android рдХреЗ рд▓рд┐рдП, XamAsmUnZ рдФрд░ xamarin-decompress рдЬреИрд╕реЗ рдЙрдкрдХрд░рдг dll рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЕрдирдХрдВрдкреНрд░реЗрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

python3 xamarin-decompress.py -o /path/to/decompressed/apk

Android рдореЗрдВ assembly blobs рдХреЗ рд▓рд┐рдП, pyxamstore рдЙрдиреНрд╣реЗрдВ рдЕрдирдкреИрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

pyxamstore unpack -d /path/to/decompressed/apk/assemblies/

iOS dll рдлрд╝рд╛рдЗрд▓реЗрдВ рдбрд┐рдХрдВрдкрд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░рддреА рд╣реИрдВ, рдЬреЛ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рдкреНрд▓реЗрдЯрдлрд╛рд░реНрдореЛрдВ рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЖрдзрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рддреА рд╣реИрдВред

рдбрд╛рдпрдирд╛рдорд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕

рдбрд╛рдпрдирд╛рдорд┐рдХ рдПрдирд╛рд▓рд┐рд╕рд┐рд╕ рдореЗрдВ SSL рдкрд┐рдирд┐рдВрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рдФрд░ Xamarin рдРрдкреНрд╕ рдореЗрдВ .NET рдмрд╛рдЗрдирд░реА рдХреЗ рд░рдирдЯрд╛рдЗрдо рд╕рдВрд╢реЛрдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП Fridax рдЬреИрд╕реЗ рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред рд░реВрдЯ рдбрд┐рдЯреЗрдХреНрд╢рди рдпрд╛ SSL рдкрд┐рдирд┐рдВрдЧ рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Frida рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдЬреЛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдмрдврд╝рд╛рддреА рд╣реИрдВред

рдЕрдиреНрдп рджрд┐рд▓рдЪрд╕реНрдк Frida рд╕реНрдХреНрд░рд┐рдкреНрдЯ:

рдЖрдЧреЗ рдХреА рдЬрд╛рдирдХрд╛рд░реА

{% 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
{% endhint %}