hacktricks/mobile-pentesting/cordova-apps.md
2024-02-10 21:30:13 +00:00

6.4 KiB

Cordova 앱

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법:

자세한 내용은 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 VM을 사용하여 JavaScript 코드를 실행하므로 소스 코드 보호가 더 잘 이루어집니다.

Cordova 애플리케이션 복제

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

Bank.apk라는 예제 애플리케이션을 고려해 보겠습니다. 이 애플리케이션의 패키지 이름은 com.android.bank입니다. 소스 코드에 액세스하려면 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 문서를 참조하십시오.

적절한 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 애플리케이션의 클론을 간소화하여 위에서 설명한 단계를 단순화합니다.

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요!

HackTricks를 지원하는 다른 방법: