hacktricks/mobile-pentesting/cordova-apps.md

80 lines
9.2 KiB
Markdown
Raw Normal View History

# Cordova Apps
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рджреЗрдЦреЗрдВ [https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58](https://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58)**ред рдпрд╣ рдПрдХ рд╕рдВрдХреНрд╖реЗрдк рд╣реИ:
Apache Cordova рдХреЛ **JavaScript, HTML, рдФрд░ CSS** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ **рд╣рд╛рдЗрдмреНрд░рд┐рдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди** рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ Android рдФрд░ iOS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ; рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЗрд╕рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИред React Native рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, Cordova рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреЛрдб рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХреА рдХрдордЬреЛрд░рд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред Cordova рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП WebView рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ HTML рдФрд░ JavaScript рдХреЛрдб рдХреЛ APK рдпрд╛ IPA рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рд╕рдВрдХрд▓рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд, React Native JavaScript рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ JavaScript VM рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдмреЗрд╣рддрд░ рд╕реНрд░реЛрдд рдХреЛрдб рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
### Cordova рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд▓реЛрди рдХрд░рдирд╛
Cordova рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ NodeJS рдЕрдиреНрдп рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдУрдВ рдЬреИрд╕реЗ Android SDK, Java JDK, рдФрд░ Gradle рдХреЗ рд╕рд╛рде рд╕реНрдерд╛рдкрд┐рдд рд╣реИред рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Cordova [рджрд╕реНрддрд╛рд╡реЗрдЬрд╝](https://cordova.apache.org/docs/en/11.x/guide/cli/#install-pre-requisites-for-building) рдЗрди рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрд╛рдкрдХ рдЧрд╛рдЗрдб рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдирд╛рдо `Bank.apk` рд╣реИ рдЬрд┐рд╕рдХрд╛ рдкреИрдХреЗрдЬ рдирд╛рдо `com.android.bank` рд╣реИред рд╕реНрд░реЛрдд рдХреЛрдб рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, `bank.apk` рдХреЛ рдЕрдирдЬрд╝рд┐рдк рдХрд░реЗрдВ рдФрд░ `bank/assets/www` рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЬрд╛рдПрдБред рдЗрд╕ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкреВрд░рд╛ рд╕реНрд░реЛрдд рдХреЛрдб рд╣реИ, рдЬрд┐рд╕рдореЗрдВ HTML рдФрд░ JS рдлрд╝рд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди `bank/res/xml/config.xml` рдореЗрдВ рдорд┐рд▓ рд╕рдХрддреА рд╣реИред
рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
```bash
npm install -g cordova@latest
cordova create bank-new com.android.bank Bank
cd bank-new
```
`bank/assets/www` рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ `bank-new/www` рдореЗрдВ рдХреЙрдкреА рдХрд░реЗрдВ, `cordova_plugins.js`, `cordova.js`, `cordova-js-src/`, рдФрд░ `plugins/` рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ред
рдирдП Cordova рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо (Android рдпрд╛ iOS) рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВред Android рдРрдк рдХреЛ рдХреНрд▓реЛрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Android рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдЬреЛрдбрд╝реЗрдВред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ Cordova рдХреЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ Android API рд╕реНрддрд░ рдЕрд▓рдЧ рд╣реИрдВред рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдФрд░ рд╕рдорд░реНрдерд┐рдд Android APIs рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рд▓рд┐рдП Cordova [documentation](https://cordova.apache.org/docs/en/11.x/guide/platforms/android/) рджреЗрдЦреЗрдВред
рдЙрдЪрд┐рдд Cordova Android рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕рдВрд╕реНрдХрд░рдг рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ `cordova.js` рдлрд╝рд╛рдЗрд▓ рдореЗрдВ `PLATFORM_VERSION_BUILD_LABEL` рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрд╡рд╢реНрдпрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдореВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ `bank/assets/www/cordova_plugins.js` рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдФрд░ рдЙрдирдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рд╣реИред рдиреАрдЪреЗ рджрд┐рдЦрд╛рдП рдЕрдиреБрд╕рд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд▓рдЧрдЗрди рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:
```bash
cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1
```
рдпрджрд┐ рдХреЛрдИ рдкреНрд▓рдЧрдЗрди npm рдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдЗрд╕реЗ GitHub рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
```bash
cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git
```
рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рдВрдХрд▓рди рд╕реЗ рдкрд╣рд▓реЗ рд╕рднреА рдкреВрд░реНрд╡рд╛рдкреЗрдХреНрд╖рд╛рдПрдБ рдкреВрд░реА рд╣реЛрдВ:
```bash
cd bank-new
cordova requirements
```
APK рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
```bash
cd bank-new
cordova build android тАФ packageType=apk
```
рдпрд╣ рдХрдорд╛рдВрдб рдПрдХ APK рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбрд┐рдмрдЧ рд╡рд┐рдХрд▓реНрдк рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ Google Chrome рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рд╕реЗ рдкрд╣рд▓реЗ APK рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдХреЛрдб рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдкрд╣рдЪрд╛рди рддрдВрддреНрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
### Automation Tool
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреНрд▓реЛрдирд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, **[MobSecco](https://github.com/Anof-cyber/MobSecco)** рдПрдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдЙрдкрдХрд░рдг рд╣реИред рдпрд╣ Android рдПрдкреНрд▓рд┐рдХреЗрд╢рдиреЛрдВ рдХреЗ рдХреНрд▓реЛрдирд┐рдВрдЧ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рддрд╛ рд╣реИ, рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** ЁЯТм [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** ЁЯРж [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}