hacktricks/mobile-pentesting/cordova-apps.md

6.3 KiB

Cordova 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://infosecwriteups.com/recreating-cordova-mobile-apps-to-bypass-security-implementations-8845ff7bdc58를 확인하세요. 요약은 다음과 같습니다:

Apache Cordova는 JavaScript, HTML, CSS를 사용하여 하이브리드 애플리케이션 개발을 가능하게 하는 것으로 알려져 있습니다. Android 및 iOS 애플리케이션을 생성할 수 있지만, 애플리케이션의 소스 코드를 보호하기 위한 기본 메커니즘이 부족합니다. React Native와 달리 Cordova는 기본적으로 소스 코드를 컴파일하지 않기 때문에 코드 변조 취약점이 발생할 수 있습니다. Cordova는 WebView를 사용하여 애플리케이션을 렌더링하며, APK 또는 IPA 파일로 컴파일된 후에도 HTML 및 JavaScript 코드를 노출합니다. 반면 React Native는 JavaScript 코드를 실행하기 위해 JavaScript VM을 사용하여 더 나은 소스 코드 보호를 제공합니다.

Cordova 애플리케이션 복제하기

Cordova 애플리케이션을 복제하기 전에 NodeJS와 Android SDK, Java JDK, Gradle과 같은 기타 필수 구성 요소가 설치되어 있는지 확인하세요. 공식 Cordova 문서는 이러한 설치에 대한 포괄적인 가이드를 제공합니다.

com.android.bank 패키지 이름을 가진 Bank.apk라는 예제 애플리케이션을 고려해 보세요. 소스 코드에 접근하려면 bank.apk를 압축 해제하고 bank/assets/www 폴더로 이동합니다. 이 폴더에는 HTML 및 JS 파일을 포함한 애플리케이션의 전체 소스 코드가 포함되어 있습니다. 애플리케이션의 구성은 bank/res/xml/config.xml에서 찾을 수 있습니다.

애플리케이션을 복제하려면 다음 단계를 따르세요:

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 API에 대한 자세한 내용은 Cordova documentation을 참조하십시오.

적절한 Cordova Android 플랫폼 버전을 확인하려면 원래 애플리케이션의 cordova.js 파일에서 PLATFORM_VERSION_BUILD_LABEL을 확인하십시오.

플랫폼 설정 후, 필요한 플러그인을 설치합니다. 원래 애플리케이션의 bank/assets/www/cordova_plugins.js 파일에는 모든 플러그인과 해당 버전이 나열되어 있습니다. 아래와 같이 각 플러그인을 개별적으로 설치합니다:

cd bank-new
cordova plugin add cordova-plugin-dialogs@2.0.1

npm에서 사용할 수 없는 플러그인은 GitHub에서 가져올 수 있습니다:

cd bank-new
cordova plugin add https://github.com/moderna/cordova-plugin-cache.git

모든 필수 조건이 충족되었는지 확인한 후 컴파일하십시오:

cd bank-new
cordova requirements

APK를 빌드하려면 다음 명령어를 사용하세요:

cd bank-new
cordova build android — packageType=apk

이 명령은 디버그 옵션이 활성화된 APK를 생성하여 Google Chrome을 통한 디버깅을 용이하게 합니다. 애플리케이션에 코드 변조 감지 메커니즘이 포함된 경우, 설치 전에 APK에 서명하는 것이 중요합니다.

자동화 도구

클로닝 프로세스를 자동화하려는 경우, **MobSecco**가 추천 도구입니다. 이는 Android 애플리케이션의 클로닝을 간소화하여 위에 설명된 단계를 단순화합니다.

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