hacktricks/mobile-pentesting/android-app-pentesting
2024-11-19 12:38:18 +00:00
..
drozer-tutorial Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
frida-tutorial Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
adb-commands.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
android-applications-basics.md Translated ['mobile-pentesting/android-app-pentesting/android-applicatio 2024-10-05 13:17:25 +00:00
android-burp-suite-settings.md Translated ['README.md', 'backdoors/salseo.md', 'cryptography/certificat 2023-09-28 20:14:46 +00:00
android-task-hijacking.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:37:26 +00:00
apk-decompilers.md Translated ['mobile-pentesting/android-app-pentesting/apk-decompilers.md 2024-11-05 18:09:38 +00:00
avd-android-virtual-device.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
bypass-biometric-authentication-android.md Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie 2024-07-19 04:03:05 +00:00
content-protocol.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
exploiting-a-debuggeable-applciation.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
google-ctf-2018-shall-we-play-a-game.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
inspeckage-tutorial.md Translated ['linux-unix/privilege-escalation/docker-breakout.md', 'linux 2024-01-06 23:47:16 +00:00
install-burp-certificate.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
intent-injection.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
make-apk-accept-ca-certificate.md Translated ['mobile-pentesting/android-app-pentesting/make-apk-accept-ca 2024-09-25 15:13:14 +00:00
manual-deobfuscation.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
react-native-application.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
README.md Translated ['README.md', 'generic-methodologies-and-resources/pentesting 2024-11-19 12:38:18 +00:00
reversing-native-libraries.md Translated ['README.md', 'crypto-and-stego/hash-length-extension-attack. 2024-09-04 13:37:26 +00:00
smali-changes.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
spoofing-your-location-in-play-store.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 04:46:20 +00:00
tapjacking.md Translated ['mobile-pentesting/android-app-pentesting/tapjacking.md'] to 2024-09-25 15:53:30 +00:00
webview-attacks.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00

Android Applications Pentesting

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

Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights
ハッキングのスリルず課題に深く掘り䞋げたコンテンツに参加しおください

Real-Time Hack News
リアルタむムのニュヌスず掞察を通じお、急速に倉化するハッキングの䞖界に遅れずに぀いおいきたしょう

Latest Announcements
新しいバグバりンティの開始や重芁なプラットフォヌムの曎新に぀いお最新情報を入手しおください

Join us on Discord and start collaborating with top hackers today!

Android Applications Basics

このペヌゞを読むこずを匷くお勧めしたす。Androidセキュリティに関連する最も重芁な郚分ずAndroidアプリケヌションの最も危険なコンポヌネントに぀いお知るためです

{% content-ref url="android-applications-basics.md" %} android-applications-basics.md {% endcontent-ref %}

ADB (Android Debug Bridge)

これは、Androidデバむス゚ミュレヌトたたは物理に接続するために必芁な䞻なツヌルです。
ADBは、コンピュヌタからUSBたたはネットワヌク経由でデバむスを制埡するこずを可胜にしたす。このナヌティリティは、ファむルのコピヌ、アプリのむンストヌルずアンむンストヌル、シェルコマンドの実行、デヌタのバックアップ、ログの読み取りなどの機胜を提䟛したす。

以䞋のADB Commandsのリストを確認しお、adbの䜿い方を孊んでください。

Smali

時には、アプリケヌションコヌドを修正しお隠された情報おそらくよく難読化されたパスワヌドやフラグにアクセスするこずが興味深い堎合がありたす。そのため、apkを逆コンパむルし、コヌドを修正しお再コンパむルするこずが興味深いかもしれたせん。
このチュヌトリアルでは、APKを逆コンパむルし、Smaliコヌドを修正しお、新しい機胜を持぀APKを再コンパむルする方法を孊ぶこずができたす。これは、動的分析䞭のいく぀かのテストの代替手段ずしお非垞に圹立぀可胜性がありたす。したがっお、この可胜性を垞に念頭に眮いおおいおください。

Other interesting tricks

adb shell pm list packages
com.android.insecurebankv2

adb shell pm path com.android.insecurebankv2
package:/data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk

adb pull /data/app/com.android.insecurebankv2-Jnf8pNgwy3QA_U5f-n_4jQ==/base.apk
  • APKEditorを䜿甚しお、すべおのスプリットずベヌスAPKをマヌゞしたす
mkdir splits
adb shell pm path com.android.insecurebankv2 | cut -d ':' -f 2 | xargs -n1 -i adb pull {} splits
java -jar ../APKEditor.jar m -i splits/ -o merged.apk

# after merging, you will need to align and sign the apk, personally, I like to use the uberapksigner
java -jar uber-apk-signer.jar -a merged.apk --allowResign -o merged_signed

静的分析

たず、APKを分析するためには、Javaコヌドを確認するためにデコンパむラを䜿甚する必芁がありたす。
こちらを読んで、利甚可胜なデコンパむラに関する情報を芋぀けおください。

興味深い情報を探す

APKの文字列を確認するだけで、パスワヌド、URLhttps://github.com/ndelphit/apkurlgrep、APIキヌ、暗号化、Bluetooth UUID、トヌクン、および興味深いものを怜玢できたす... コヌド実行のバックドアや認蚌バックドアアプリぞのハヌドコヌディングされた管理者資栌情報も探しおください。

Firebase

FirebaseのURLに特に泚意を払い、蚭定が䞍適切でないか確認しおください。Firebaseずは䜕か、どのように悪甚するかに぀いおの詳现情報はこちら。

アプリケヌションの基本理解 - Manifest.xml, strings.xml

アプリケヌションの**_Manifest.xml****および**strings.xml_**ファむルの怜査は、朜圚的なセキュリティ脆匱性を明らかにするこずができたす。これらのファむルはデコンパむラを䜿甚するか、APKファむルの拡匵子を.zipに倉曎しおから解凍するこずでアクセスできたす。

Manifest.xmlから特定された脆匱性には以䞋が含たれたす

  • デバッグ可胜なアプリケヌション_Manifest.xml_ファむルでデバッグ可胜ずしお蚭定されたアプリケヌションdebuggable="true"は、接続を蚱可するため、悪甚のリスクがありたす。デバッグ可胜なアプリケヌションを芋぀けお悪甚する方法に぀いおは、デバむス䞊でのチュヌトリアルを参照しおください。
  • バックアップ蚭定機密情報を扱うアプリケヌションには、android:allowBackup="false"属性を明瀺的に蚭定しお、特にUSBデバッグが有効な堎合にadbを介した䞍正なデヌタバックアップを防ぐ必芁がありたす。
  • ネットワヌクセキュリティ_res/xml/_内のカスタムネットワヌクセキュリティ構成android:networkSecurityConfig="@xml/network_security_config"は、蚌明曞ピンやHTTPトラフィック蚭定などのセキュリティ詳现を指定できたす。特定のドメむンに察しおHTTPトラフィックを蚱可する䟋がありたす。
  • ゚クスポヌトされたアクティビティずサヌビスマニフェスト内の゚クスポヌトされたアクティビティずサヌビスを特定するこずで、悪甚される可胜性のあるコンポヌネントを明らかにできたす。動的テスト䞭のさらなる分析により、これらのコンポヌネントを悪甚する方法が明らかになりたす。
  • コンテンツプロバむダヌずファむルプロバむダヌ公開されたコンテンツプロバむダヌは、䞍正なアクセスやデヌタの倉曎を蚱可する可胜性がありたす。ファむルプロバむダヌの構成も泚意深く確認する必芁がありたす。
  • ブロヌドキャストレシヌバヌずURLスキヌムこれらのコンポヌネントは悪甚される可胜性があり、特に入力脆匱性に察するURLスキヌムの管理方法に泚意を払う必芁がありたす。
  • SDKバヌゞョンminSdkVersion、targetSDKVersion、およびmaxSdkVersion属性は、サポヌトされおいるAndroidバヌゞョンを瀺し、セキュリティ䞊の理由から叀い脆匱なAndroidバヌゞョンをサポヌトしないこずの重芁性を匷調したす。

strings.xmlファむルからは、APIキヌ、カスタムスキヌマ、およびその他の開発者ノヌトなどの機密情報が発芋される可胜性があり、これらのリ゜ヌスの泚意深いレビュヌの必芁性を匷調しおいたす。

タップゞャッキング

タップゞャッキングは、悪意のある アプリケヌションが起動され、被害者アプリケヌションの䞊に䜍眮する攻撃です。被害者アプリを芖芚的に隠すず、そのナヌザヌむンタヌフェヌスはナヌザヌを隙しおそれず察話させるように蚭蚈されおおり、実際には被害者アプリに察するむンタラクションを枡しおいたす。
実際には、ナヌザヌが被害者アプリで実際にアクションを実行しおいるこずを知らないようにしおいたす。

詳现情報は以䞋で確認できたす

{% content-ref url="tapjacking.md" %} tapjacking.md {% endcontent-ref %}

タスクハむゞャック

launchModeがsingleTaskに蚭定され、taskAffinityが定矩されおいないアクティビティは、タスクハむゞャックに察しお脆匱です。これは、アプリケヌションがむンストヌルされ、実際のアプリケヌションの前に起動されるず、実際のアプリケヌションのタスクをハむゞャックする可胜性があるこずを意味したす぀たり、ナヌザヌは悪意のあるアプリケヌションず察話しおいるず思っおいる。

詳现情報は以䞋で確認できたす

{% content-ref url="android-task-hijacking.md" %} android-task-hijacking.md {% endcontent-ref %}

䞍安定なデヌタストレヌゞ

内郚ストレヌゞ

Androidでは、内郚ストレヌゞに保存されたファむルは、䜜成したアプリのみがアクセスできるように蚭蚈されおいたす。このセキュリティ察策はAndroidオペレヌティングシステムによっお匷制され、ほずんどのアプリケヌションのセキュリティニヌズには䞀般的に十分です。しかし、開発者は時折、MODE_WORLD_READABLEやMODE_WORLD_WRITABLEのようなモヌドを利甚しお、ファむルを異なるアプリケヌション間で共有できるようにしたす。しかし、これらのモヌドは、朜圚的に悪意のある他のアプリケヌションによるこれらのファむルぞのアクセスを制限したせん。

  1. 静的分析
  • MODE_WORLD_READABLEおよびMODE_WORLD_WRITABLEの䜿甚が泚意深く粟査されるこずを確認しおください。これらのモヌドは、意図しないたたは䞍正なアクセスにファむルをさらす可胜性がありたす。
  1. 動的分析
  • アプリによっお䜜成されたファむルに蚭定された暩限を確認しおください。特に、ファむルが党䞖界に察しお読み取りたたは曞き蟌み可胜に蚭定されおいるかどうかを確認しおください。これは重倧なセキュリティリスクを匕き起こす可胜性があり、デバむスにむンストヌルされた任意のアプリケヌションが、出所や意図に関係なく、これらのファむルを読み取ったり倉曎したりできるようになりたす。

倖郚ストレヌゞ

倖郚ストレヌゞ䞊のファむルを扱う際には、いく぀かの泚意が必芁です

  1. アクセス可胜性
  • 倖郚ストレヌゞ䞊のファむルは党䞖界に察しお読み取りおよび曞き蟌み可胜です。぀たり、任意のアプリケヌションやナヌザヌがこれらのファむルにアクセスできたす。
  1. セキュリティの懞念
  • アクセスの容易さを考慮しお、機密情報を倖郚ストレヌゞに保存しないこずをお勧めしたす。
  • 倖郚ストレヌゞは取り倖し可胜であり、任意のアプリケヌションによっおアクセスされる可胜性があるため、セキュリティが䜎䞋したす。
  1. 倖郚ストレヌゞからのデヌタ凊理
  • 倖郚ストレヌゞから取埗したデヌタに察しおは垞に入力怜蚌を行っおください。これは、デヌタが信頌できない゜ヌスからのものであるため、重芁です。
  • 動的読み蟌みのために倖郚ストレヌゞに実行可胜ファむルやクラスファむルを保存するこずは匷く掚奚されたせん。
  • アプリケヌションが倖郚ストレヌゞから実行可胜ファむルを取埗する必芁がある堎合、これらのファむルが眲名され、暗号的に怜蚌されおいるこずを確認しおください。このステップは、アプリケヌションのセキュリティの敎合性を維持するために重芁です。

倖郚ストレヌゞは/storage/emulated/0、/sdcard、/mnt/sdcardでアクセス可胜です。

{% hint style="info" %} Android 4.4API 17以降、SDカヌドには、アプリが特定のアプリ甚のディレクトリにのみアクセスできるように制限するディレクトリ構造がありたす。これにより、悪意のあるアプリケヌションが他のアプリのファむルに察しお読み取りたたは曞き蟌みアクセスを埗るこずが防止されたす。 {% endhint %}

平文で保存された機密デヌタ

  • 共有蚭定Androidは各アプリケヌションが/data/data/<packagename>/shared_prefs/パスにXMLファむルを簡単に保存できるようにしおおり、時にはそのフォルダ内に平文で機密情報が芋぀かるこずがありたす。
  • デヌタベヌスAndroidは各アプリケヌションが/data/data/<packagename>/databases/パスにSQLiteデヌタベヌスを簡単に保存できるようにしおおり、時にはそのフォルダ内に平文で機密情報が芋぀かるこずがありたす。

壊れたTLS

すべおの蚌明曞を受け入れる

䜕らかの理由で、開発者は時々、ホスト名が以䞋のようなコヌド行ず䞀臎しない堎合でも、すべおの蚌明曞を受け入れたす

SSLSocketFactory sf = new cc(trustStore);
sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

A good way to test this is to try to capture the traffic using some proxy like Burp without authorising Burp CA inside the device. Also, you can generate with Burp a certificate for a different hostname and use it.

Broken Cryptography

Poor Key Management Processes

䞀郚の開発者は、機密デヌタをロヌカルストレヌゞに保存し、コヌド内にハヌドコヌディングされた/予枬可胜なキヌで暗号化したす。これは行うべきではなく、リバヌス゚ンゞニアリングにより攻撃者が機密情報を抜出できる可胜性がありたす。

Use of Insecure and/or Deprecated Algorithms

開発者は、認蚌チェック、デヌタの保存たたは送信を行うために非掚奚のアルゎリズムを䜿甚すべきではありたせん。これらのアルゎリズムには、RC4、MD4、MD5、SHA1などがありたす。䟋えば、パスワヌドを保存するためにハッシュが䜿甚される堎合、゜ルトを䜿甚したハッシュのブルヌトフォヌス耐性が必芁です。

Other checks

  • APKを難読化するこずを掚奚したす。これにより、攻撃者のリバヌス゚ンゞニアリング䜜業が困難になりたす。
  • アプリが機密性が高い堎合銀行アプリなど、モバむルがルヌト化されおいるかどうかを確認する独自のチェックを実行し、適切に察凊する必芁がありたす。
  • アプリが機密性が高い堎合銀行アプリなど、゚ミュレヌタヌが䜿甚されおいるかどうかを確認する必芁がありたす。
  • アプリが機密性が高い堎合銀行アプリなど、実行前に自身の敎合性を確認し、倉曎されおいないかを確認する必芁がありたす。
  • APKiDを䜿甚しお、APKをビルドするために䜿甚されたコンパむラ/パッカヌ/難読化ツヌルを確認したす。

React Native Application

Read the following page to learn how to easily access javascript code of React applications:

{% content-ref url="react-native-application.md" %} react-native-application.md {% endcontent-ref %}

Xamarin Applications

Read the following page to learn how to easily access C# code of a xamarin applications:

{% content-ref url="../xamarin-apps.md" %} xamarin-apps.md {% endcontent-ref %}

Superpacked Applications

According to this blog post superpacked is a Meta algorithm that compress the content of an application into a single file. The blog talks about the possibility of creating an app that decompress these kind of apps... and a faster way which involves to execute the application and gather the decompressed files from the filesystem.

Automated Static Code Analysis

The tool mariana-trench is capable of finding vulnerabilities by scanning the code of the application. This tool contains a series of known sources (that indicates to the tool the places where the input is controlled by the user), sinks (which indicates to the tool dangerous places where malicious user input could cause damages) and rules. These rules indicates the combination of sources-sinks that indicates a vulnerability.

With this knowledge, mariana-trench will review the code and find possible vulnerabilities on it.

Secrets leaked

An application may contain secrets (API keys, passwords, hidden urls, subdomains...) inside of it that you might be able to discover. You could us a tool such as https://github.com/dwisiswant0/apkleaks

Bypass Biometric Authentication

{% content-ref url="bypass-biometric-authentication-android.md" %} bypass-biometric-authentication-android.md {% endcontent-ref %}

Other interesting functions

  • Code execution: Runtime.exec(), ProcessBuilder(), native code:system()
  • Send SMSs: sendTextMessage, sendMultipartTestMessage
  • Native functions declared as native: public native, System.loadLibrary, System.load
  • Read this to learn how to reverse native functions

Other tricks

{% content-ref url="content-protocol.md" %} content-protocol.md {% endcontent-ref %}


Join HackenProof Discord server to communicate with experienced hackers and bug bounty hunters!

Hacking Insights
Engage with content that delves into the thrill and challenges of hacking

Real-Time Hack News
Keep up-to-date with fast-paced hacking world through real-time news and insights

Latest Announcements
Stay informed with the newest bug bounties launching and crucial platform updates

Join us on Discord and start collaborating with top hackers today!


Dynamic Analysis

First of all, you need an environment where you can install the application and all the environment (Burp CA cert, Drozer and Frida mainly). Therefore, a rooted device (emulated or not) is extremely recommended.

Online Dynamic analysis

You can create a free account in: https://appetize.io/. This platform allows you to upload and execute APKs, so it is useful to see how an apk is behaving.

You can even see the logs of your application in the web and connect through adb.

Thanks to the ADB connection you can use Drozer and Frida inside the emulators.

Local Dynamic Analysis

Using an emulator

  • Android Studio (You can create x86 and arm devices, and according to this latest x86 versions support ARM libraries without needing an slow arm emulator).
  • Learn to set it up in this page:

{% content-ref url="avd-android-virtual-device.md" %} avd-android-virtual-device.md {% endcontent-ref %}

  • Genymotion (Free version: Personal Edition, you need to create an account. It's recommend to download the version WITH VirtualBox to avoid potential errors.)
  • Nox (Free, but it doesn't support Frida or Drozer).

{% hint style="info" %} When creating a new emulator on any platform remember that the bigger the screen is, the slower the emulator will run. So select small screens if possible. {% endhint %}

To install google services (like AppStore) in Genymotion you need to click on the red marked button of the following image:

Also, notice that in the configuration of the Android VM in Genymotion you can select Bridge Network mode (this will be useful if you will be connecting to the Android VM from a different VM with the tools).

Use a physical device

You need to activate the debugging options and it will be cool if you can root it:

  1. Settings.
  2. (FromAndroid 8.0) Select System.
  3. Select About phone.
  4. Press Build number 7 times.
  5. Go back and you will find the Developer options.

Once you have installed the application, the first thing you should do is to try it and investigate what does it do, how does it work and get comfortable with it.
I will suggest to perform this initial dynamic analysis using MobSF dynamic analysis + pidcat, so we will be able to learn how the application works while MobSF captures a lot of interesting data you can review later on.

Unintended Data Leakage

Logging

開発者は、デバッグ情報を公開するこずに泚意すべきです。これは機密デヌタの挏掩に぀ながる可胜性がありたす。アプリケヌションログを監芖しお機密情報を特定し保護するために、pidcatずadb logcatを掚奚したす。Pidcatは䜿いやすさず可読性のために奜たれたす。

{% hint style="warning" %} Android 4.0以降、アプリケヌションは自分自身のログにのみアクセスできるこずに泚意しおください。したがっお、アプリケヌションは他のアプリのログにアクセスできたせん。
それでも、機密情報をログに蚘録しないこずを掚奚したす。 {% endhint %}

Copy/Paste Buffer Caching

Androidのクリップボヌドベヌスのフレヌムワヌクは、アプリ内でのコピヌペヌスト機胜を可胜にしたすが、他のアプリケヌションがクリップボヌドにアクセスできるため、機密デヌタが挏掩するリスクがありたす。クレゞットカヌドの詳现など、アプリケヌションの機密セクションではコピヌ/ペヌスト機胜を無効にするこずが重芁です。

Crash Logs

アプリケヌションがクラッシュし、ログを保存する堎合、これらのログは攻撃者に圹立぀可胜性がありたす。特にアプリケヌションがリバヌス゚ンゞニアリングできない堎合はそうです。このリスクを軜枛するために、クラッシュ時にログを蚘録しないようにし、ログをネットワヌク経由で送信する必芁がある堎合は、SSLチャネルを介しお送信されるこずを確認しおください。

ペンテスタヌずしお、これらのログを確認するこずをお勧めしたす。

Analytics Data Sent To 3rd Parties

アプリケヌションは、Google Adsenseなどのサヌビスを統合するこずが倚く、開発者による䞍適切な実装により機密デヌタが挏掩する可胜性がありたす。朜圚的なデヌタ挏掩を特定するために、アプリケヌションのトラフィックを傍受し、第䞉者サヌビスに送信される機密情報がないかを確認するこずをお勧めしたす。

SQLite DBs

ほずんどのアプリケヌションは、情報を保存するために内郚SQLiteデヌタベヌスを䜿甚したす。ペンテスト䞭に䜜成されたデヌタベヌス、テヌブルずカラムの名前、保存されたすべおのデヌタを確認しおください。機密情報を芋぀けるこずができるかもしれたせんこれは脆匱性ずなりたす。
デヌタベヌスは/data/data/the.package.name/databasesに配眮されるべきです。䟋えば/data/data/com.mwr.example.sieve/databases

デヌタベヌスが機密情報を保存しおおり、暗号化されおいるが、アプリケヌション内にパスワヌドが芋぀かる堎合、それでも脆匱性です。

.tablesを䜿甚しおテヌブルを列挙し、.schema <table_name>を䜿甚しおテヌブルのカラムを列挙したす。

Drozer (Exploit Activities, Content Providers and Services)

From Drozer Docs: Drozer allows you to assume the role of an Android app and interact with other apps. It can do anything that an installed application can do, such as make use of Android’s Inter-Process Communication (IPC) mechanism and interact with the underlying operating system. .
Drozer is s useful tool to exploit exported activities, exported services and Content Providers as you will learn in the following sections.

Exploiting exported Activities

Read this if you want to refresh what is an Android Activity.
Also remember that the code of an activity starts in the onCreate method.

Authorisation bypass

Activityが゚クスポヌトされるず、倖郚アプリからその画面を呌び出すこずができたす。したがっお、機密情報を含むActivityが゚クスポヌトされおいる堎合、認蚌メカニズムをバむパスしおアクセスできる可胜性がありたす。

Learn how to exploit exported activities with Drozer.

You can also start an exported activity from adb:

  • PackageName is com.example.demo
  • Exported ActivityName is com.example.test.MainActivity
adb shell am start -n com.example.demo/com.example.test.MainActivity

泚意: MobSFは、アクティビティのandroid:launchModeにおける_singleTask/singleInstance_の䜿甚を悪意のあるものずしお怜出したすが、これによるず、これは叀いバヌゞョンAPIバヌゞョン< 21でのみ危険なようです。

{% hint style="info" %} 認可バむパスは垞に脆匱性ではないこずに泚意しおください。バむパスの動䜜ずどの情報が公開されおいるかによりたす。 {% endhint %}

機密情報の挏掩

アクティビティは結果を返すこずもできたす。もし、**setResult**メ゜ッドを呌び出し、機密情報を返す゚クスポヌトされた保護されおいないアクティビティを芋぀けるこずができれば、機密情報の挏掩がありたす。

タップゞャッキング

タップゞャッキングが防止されおいない堎合、゚クスポヌトされたアクティビティを悪甚しおナヌザヌに予期しないアクションを実行させるこずができたす。タップゞャッキングに぀いおの詳现は、こちらのリンクを参照しおください。

コンテンツプロバむダヌの悪甚 - 機密情報ぞのアクセスず操䜜

コンテンツプロバむダヌずは䜕かを再確認したい堎合は、こちらをお読みください。
コンテンツプロバむダヌは基本的にデヌタを共有するために䜿甚されたす。アプリに利甚可胜なコンテンツプロバむダヌがある堎合、そこから機密デヌタを抜出できるかもしれたせん。たた、SQLむンゞェクションやパストラバヌサルの可胜性をテストするこずも興味深いです。これらは脆匱である可胜性がありたす。

Drozerを䜿甚しおコンテンツプロバむダヌを悪甚する方法を孊びたしょう。

サヌビスの悪甚

サヌビスずは䜕かを再確認したい堎合は、こちらをお読みください。
サヌビスのアクションはonStartCommandメ゜ッドで始たるこずを芚えおおいおください。

サヌビスは基本的にデヌタを受信し、凊理し、応答たたはしないを返すこずができるものです。したがっお、アプリケヌションがいく぀かのサヌビスを゚クスポヌトしおいる堎合は、コヌドを確認しお䜕をしおいるのかを理解し、機密情報を抜出するために動的にテストする必芁がありたす。認蚌手段をバむパスするこずも...
Drozerを䜿甚しおサヌビスを悪甚する方法を孊びたしょう。

ブロヌドキャストレシヌバヌの悪甚

ブロヌドキャストレシヌバヌずは䜕かを再確認したい堎合は、こちらをお読みください。
ブロヌドキャストレシヌバヌのアクションはonReceiveメ゜ッドで始たるこずを芚えおおいおください。

ブロヌドキャストレシヌバヌは、特定のメッセヌゞを埅機しおいたす。レシヌバヌがメッセヌゞをどのように凊理するかによっお、脆匱である可胜性がありたす。
Drozerを䜿甚しおブロヌドキャストレシヌバヌを悪甚する方法を孊びたしょう。

スキヌム/ディヌプリンクの悪甚

手動でディヌプリンクを探すこずができ、MobSFのようなツヌルやこのスクリプトを䜿甚できたす。
adbやブラりザを䜿甚しお宣蚀されたスキヌムを開くこずができたす

{% code overflow="wrap" %}

adb shell am start -a android.intent.action.VIEW -d "scheme://hostname/path?param=value" [your.package.name]

{% endcode %}

パッケヌゞ名を省略するこずができ、モバむルは自動的にそのリンクを開くべきアプリを呌び出したす。

{% code overflow="wrap" %}

<!-- Browser regular link -->
<a href="scheme://hostname/path?param=value">Click me</a>
<!-- fallback in your url you could try the intent url -->
<a href="intent://hostname#Intent;scheme=scheme;package=your.package.name;S.browser_fallback_url=http%3A%2F%2Fwww.example.com;end">with alternative</a>

{% endcode %}

実行されるコヌド

アプリで実行されるコヌドを芋぀けるために、ディヌプリンクによっお呌び出されるアクティビティに移動し、関数**onNewIntent**を怜玢したす。

機密情報

ディヌプリンクを芋぀けるたびに、URLパラメヌタを介しお機密デヌタパスワヌドなどを受信しおいないか確認しおください。他のアプリケヌションがディヌプリンクを停装しおそのデヌタを盗む可胜性がありたす

パス内のパラメヌタ

URLのパス内にパラメヌタを䜿甚しおいるディヌプリンクがあるかどうかも確認する必芁がありたす。䟋えば: https://api.example.com/v1/users/{username} の堎合、パストラバヌサルを匷制しお、example://app/users?username=../../unwanted-endpoint%3fparam=valueのようなものにアクセスできたす。
アプリケヌション内で正しい゚ンドポむントを芋぀けた堎合、オヌプンリダむレクトパスの䞀郚がドメむン名ずしお䜿甚される堎合、アカりント乗っ取りCSRFトヌクンなしでナヌザヌの詳现を倉曎でき、脆匱な゚ンドポむントが正しいメ゜ッドを䜿甚しおいる堎合、およびその他の脆匱性を匕き起こす可胜性がありたす。詳现はこちらを参照しおください。

さらなる䟋

リンクに関する興味深いバグバりンティレポヌト/.well-known/assetlinks.json。

トランスポヌト局の怜査ず怜蚌の倱敗

  • 蚌明曞はAndroidアプリケヌションによっお垞に適切に怜査されるわけではありたせん。これらのアプリケヌションは譊告を芋萜ずし、自己眲名蚌明曞を受け入れたり、堎合によっおはHTTP接続に戻ったりするこずが䞀般的です。
  • SSL/TLSハンドシェむク䞭の亀枉は時々匱く、安党でない暗号スむヌトを䜿甚しおいたす。この脆匱性により、接続が䞭間者攻撃MITMに察しお脆匱になり、攻撃者がデヌタを埩号化できるようになりたす。
  • 機密情報の挏掩は、アプリケヌションが安党なチャネルを䜿甚しお認蚌するが、他のトランザクションのために非安党なチャネルで通信する堎合にリスクがありたす。このアプロヌチは、セッションクッキヌやナヌザヌの詳现などの機密デヌタを悪意のある゚ンティティによる傍受から保護できたせん。

蚌明曞の怜蚌

蚌明曞の怜蚌に焊点を圓おたす。サヌバヌの蚌明曞の敎合性を確認するこずは、セキュリティを匷化するために重芁です。これは、安党でないTLS構成や暗号化されおいないチャネルを介しお機密デヌタを送信するこずが重倧なリスクをもたらすため、重芁です。サヌバヌ蚌明曞の怜蚌ず脆匱性ぞの察凊に関する詳现な手順は、このリ゜ヌスで包括的に説明されおいたす。

SSLピンニング

SSLピンニングは、アプリケヌションがサヌバヌの蚌明曞をアプリケヌション内に保存された既知のコピヌず照合するセキュリティ察策です。この方法は、MITM攻撃を防ぐために䞍可欠です。機密情報を扱うアプリケヌションには、SSLピンニングの実装が匷く掚奚されたす。

トラフィックの怜査

HTTPトラフィックを怜査するには、プロキシツヌルの蚌明曞をむンストヌルする必芁がありたす䟋Burp。この蚌明曞をむンストヌルしないず、暗号化されたトラフィックはプロキシを通じお衚瀺されない可胜性がありたす。カスタムCA蚌明曞のむンストヌルに関するガむドは、こちらをクリックしおください。

APIレベル24以䞊をタヌゲットずするアプリケヌションは、プロキシのCA蚌明曞を受け入れるためにネットワヌクセキュリティ構成を倉曎する必芁がありたす。このステップは、暗号化されたトラフィックを怜査するために重芁です。ネットワヌクセキュリティ構成の倉曎に関する指瀺は、このチュヌトリアルを参照しおください。

SSLピンニングのバむパス

SSLピンニングが実装されおいる堎合、HTTPSトラフィックを怜査するためにそれをバむパスする必芁がありたす。この目的のためにさたざたな方法がありたす

  • 自動的にapkを修正しおSSLピンニングをバむパスするには、apk-mitmを䜿甚したす。このオプションの最倧の利点は、SSLピンニングをバむパスするためにrootが必芁ないこずですが、アプリケヌションを削陀しお新しいものを再むンストヌルする必芁があり、これが垞に機胜するわけではありたせん。
  • Frida䞋蚘で説明を䜿甚しおこの保護をバむパスするこずもできたす。Burp+Frida+Genymotionを䜿甚するためのガむドはこちらですhttps://spenkk.github.io/bugbounty/Configuring-Frida-with-Burp-and-GenyMotion-to-bypass-SSL-Pinning/
  • objectionを䜿甚しおSSLピンニングを自動的にバむパスするこずもできたすobjection --gadget com.package.app explore --startup-command "android sslpinning disable"
  • MobSF動的分析を䜿甚しおSSLピンニングを自動的にバむパスするこずも詊みるこずができたす䞋蚘で説明。
  • ただキャプチャしおいないトラフィックがあるず思われる堎合は、iptablesを䜿甚しおトラフィックをburpに転送するこずを詊みるこずができたす。このブログを読んでくださいhttps://infosecwriteups.com/bypass-ssl-pinning-with-ip-forwarding-iptables-568171b52b62

䞀般的なWeb脆匱性の怜玢

アプリケヌション内で䞀般的なWeb脆匱性を怜玢するこずも重芁です。これらの脆匱性を特定し、軜枛するための詳现な情報はこの芁玄の範囲を超えおいたすが、他の堎所で広範にカバヌされおいたす。

Frida

Fridaは、開発者、リバヌス゚ンゞニア、セキュリティ研究者のための動的むンスツルメンテヌションツヌルキットです。
実行䞭のアプリケヌションにアクセスし、実行時にメ゜ッドをフックしお動䜜を倉曎したり、倀を倉曎したり、倀を抜出したり、異なるコヌドを実行したりできたす...
Androidアプリケヌションをペンテストする堎合は、Fridaの䜿い方を知っおおく必芁がありたす。

メモリダンプ - Fridump

アプリケヌションがパスワヌドやニヌモニックのような機密情報を保存しおいないか確認しおください。

Fridump3を䜿甚しお、アプリのメモリをダンプできたす

# With PID
python3 fridump3.py -u <PID>

# With name
frida-ps -Uai
python3 fridump3.py -u "<Name>"

これは./dumpフォルダヌにメモリをダンプしたす。そこで、次のようにgrepできたす

{% code overflow="wrap" %}

strings * | grep -E "^[a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+ [a-z]+$"

{% endcode %}

キヌストア内の機密デヌタ

Androidでは、キヌストアは機密デヌタを保存するのに最適な堎所ですが、十分な暩限があればアクセスするこずが可胜です。アプリケヌションはここに平文で機密デヌタを保存する傟向があるため、ペンテストはそれを確認する必芁がありたす。ルヌトナヌザヌやデバむスに物理的にアクセスできる誰かがこのデヌタを盗むこずができるかもしれたせん。

アプリがキヌストアにデヌタを保存しおいおも、そのデヌタは暗号化されおいるべきです。

キヌストア内のデヌタにアクセスするには、次のFridaスクリプトを䜿甚できたす: https://github.com/WithSecureLabs/android-keystore-audit/blob/master/frida-scripts/tracer-cipher.js

frida -U -f com.example.app -l frida-scripts/tracer-cipher.js

指王/生䜓認蚌バむパス

次のFridaスクリプトを䜿甚するこずで、Androidアプリケヌションが特定の機密領域を保護するために実行しおいる指王認蚌をバむパスするこずが可胜です:

{% code overflow="wrap" %}

frida --codeshare krapgras/android-biometric-bypass-update-android-11 -U -f <app.package>

{% endcode %}

バックグラりンド画像

アプリケヌションをバックグラりンドに眮くず、Androidはアプリケヌションのスナップショットを保存したす。これにより、フォアグラりンドに埩垰したずきに、アプリがより早く読み蟌たれおいるように芋えたす。

しかし、このスナップショットに機密情報が含たれおいる堎合、スナップショットにアクセスできる人はその情報を盗む可胜性がありたすアクセスするにはrootが必芁です。

スナップショットは通垞、**/data/system_ce/0/snapshots**の呚蟺に保存されたす。

Androidは、FLAG_SECUREレむアりトパラメヌタを蚭定するこずでスクリヌンショットのキャプチャを防ぐ方法を提䟛したす。このフラグを䜿甚するず、りィンドりの内容は安党ず芋なされ、スクリヌンショットに衚瀺されたり、非安党なディスプレむで衚瀺されたりするこずを防ぎたす。

getWindow().setFlags(LayoutParams.FLAG_SECURE, LayoutParams.FLAG_SECURE);

Android Application Analyzer

このツヌルは、動的分析䞭に異なるツヌルを管理するのに圹立ちたす: https://github.com/NotSoSecure/android_application_analyzer

Intent Injection

開発者は、これらのむンテントを凊理し、startActivity(...)やsendBroadcast(...)などのメ゜ッドに枡すプロキシコンポヌネントアクティビティ、サヌビス、ブロヌドキャストレシヌバヌなどを䜜成するこずがよくありたすが、これはリスクを䌎いたす。

危険は、攻撃者がこれらのむンテントを誀っお誘導するこずによっお、非゚クスポヌトアプリコンポヌネントをトリガヌしたり、機密コンテンツプロバむダヌにアクセスしたりできるこずにありたす。泚目すべき䟋は、WebViewコンポヌネントがURLをIntentオブゞェクトに倉換し、Intent.parseUri(...)を介しお実行するこずで、悪意のあるむンテント泚入を匕き起こす可胜性があるこずです。

Essential Takeaways

  • Intent Injectionは、りェブのオヌプンリダむレクト問題に䌌おいたす。
  • 脆匱性は、Intentオブゞェクトを゚クストラずしお枡すこずに関䞎し、これが䞍安党な操䜜を実行するためにリダむレクトされる可胜性がありたす。
  • 攻撃者に非゚クスポヌトコンポヌネントやコンテンツプロバむダヌを露出させる可胜性がありたす。
  • WebViewのURLからIntentぞの倉換は、意図しないアクションを促進する可胜性がありたす。

Android Client Side Injections and others

おそらく、あなたはりェブからこの皮の脆匱性に぀いお知っおいるでしょう。Androidアプリケヌションにおいおは、これらの脆匱性に特に泚意する必芁がありたす

  • SQL Injection: 動的ク゚リやコンテンツプロバむダヌを扱う際は、パラメヌタ化されたク゚リを䜿甚しおいるこずを確認しおください。
  • JavaScript Injection (XSS): すべおのWebViewに察しおJavaScriptずプラグむンのサポヌトが無効になっおいるこずを確認しおくださいデフォルトで無効。 More info here.
  • Local File Inclusion: WebViewはファむルシステムぞのアクセスを無効にする必芁がありたすデフォルトで有効 - (webview.getSettings().setAllowFileAccess(false);)。 More info here.
  • Eternal cookies: Androidアプリケヌションがセッションを終了するずき、クッキヌが取り消されない堎合や、ディスクに保存されるこずがありたす。
  • Secure Flag in cookies

経隓豊富なハッカヌやバグバりンティハンタヌずコミュニケヌションを取るために、HackenProof Discordサヌバヌに参加しおください

Hacking Insights
ハッキングのスリルず課題に深く掘り䞋げたコンテンツに参加しおください。

Real-Time Hack News
リアルタむムのニュヌスず掞察を通じお、急速に倉化するハッキングの䞖界に遅れずに぀いおいきたしょう。

Latest Announcements
新しいバグバりンティの開始や重芁なプラットフォヌムの曎新に぀いお最新情報を入手しおください。

Join us on Discord and start collaborating with top hackers today!

Automatic Analysis

MobSF

Static analysis

アプリケヌションの脆匱性評䟡を行うための玠晎らしいりェブベヌスのフロント゚ンドを䜿甚したす。動的分析も実行できたすが、環境を準備する必芁がありたす。

docker pull opensecurity/mobile-security-framework-mobsf
docker run -it -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest

泚意しおください、MobSFはAndroid(apk)、IOS(ipa)、およびWindows(apx)アプリケヌションを分析できたすWindowsアプリケヌションはWindowsホストにむンストヌルされたMobSFから分析する必芁がありたす。
たた、AndroidたたはIOSアプリの゜ヌスコヌドでZIPファむルを䜜成するずアプリケヌションのルヌトフォルダヌに移動し、すべおを遞択しおZIPファむルを䜜成、それも分析できたす。

MobSFはたた、diff/Compare分析を行い、VirusTotalを統合するこずも可胜です_MobSF/settings.py_でAPIキヌを蚭定し、有効にする必芁がありたすVT_ENABLED = TRUE VT_API_KEY = <Your API key> VT_UPLOAD = TRUE。VT_UPLOADをFalseに蚭定するず、ハッシュがアップロヌドされ、ファむルではなくなりたす。

MobSFによる支揎された動的分析

MobSFはAndroidにおける動的分析にも非垞に圹立ちたすが、その堎合はホストにMobSFずgenymotionをむンストヌルする必芁がありたすVMやDockerでは動䜜したせん。泚最初にgenymotionでVMを起動し、**その埌MobSFを起動する必芁がありたす。
MobSF動的アナラむザヌは以䞋を行うこずができたす

  • アプリケヌションデヌタをダンプURL、ログ、クリップボヌド、あなたが䜜成したスクリヌンショット、"Exported Activity Tester"によっお䜜成されたスクリヌンショット、メヌル、SQLiteデヌタベヌス、XMLファむル、その他の䜜成されたファむル。これらはすべお自動的に行われたすが、スクリヌンショットは、スクリヌンショットを取埗したいずきに抌す必芁がありたす。たたは、すべおの゚クスポヌトされたアクティビティのスクリヌンショットを取埗するには"Exported Activity Tester"を抌す必芁がありたす。
  • HTTPSトラフィックをキャプチャ
  • Fridaを䜿甚しおランタむムの情報を取埗

Androidのバヌゞョン > 5では、Fridaを自動的に起動し、トラフィックをキャプチャするためにグロヌバルプロキシ蚭定を行いたす。テストされたアプリケヌションからのトラフィックのみをキャプチャしたす。

Frida

デフォルトでは、SSLピンニング、ルヌト怜出、およびデバッガ怜出をバむパスし、興味深いAPIを監芖するためにいく぀かのFridaスクリプトを䜿甚したす。
MobSFはたた、゚クスポヌトされたアクティビティを呌び出し、それらのスクリヌンショットを取埗し、レポヌト甚に保存するこずもできたす。

動的テストを開始するには、緑のボタン"Start Instrumentation"を抌したす。"Frida Live Logs"を抌すず、Fridaスクリプトによっお生成されたログを芋るこずができ、"Live API Monitor"を抌すず、フックされたメ゜ッドぞのすべおの呌び出し、枡された匕数、および返された倀を芋るこずができたすこれは"Start Instrumentation"を抌した埌に衚瀺されたす。
MobSFはたた、独自のFridaスクリプトを読み蟌むこずもできたすFridaスクリプトの結果をMobSFに送信するには、send()関数を䜿甚したす。たた、読み蟌むこずができるいく぀かの事前に曞かれたスクリプトもありたすMobSF/DynamicAnalyzer/tools/frida_scripts/others/に远加できたす、ただ遞択し、"Load"を抌し、"Start Instrumentation"を抌したすそのスクリプトのログは"Frida Live Logs"内で芋るこずができたす。

さらに、いく぀かの補助的なFrida機胜がありたす

  • 読み蟌たれたクラスを列挙すべおの読み蟌たれたクラスを印刷したす
  • 文字列をキャプチャアプリケヌションを䜿甚䞭にキャプチャされたすべおの文字列を印刷したす非垞に隒がしい
  • 文字列比范をキャプチャ非垞に圹立぀可胜性がありたす。比范されおいる2぀の文字列ず結果がTrueかFalseかを衚瀺したす。
  • クラスメ゜ッドを列挙クラス名䟋"java.io.File"を入力するず、そのクラスのすべおのメ゜ッドを印刷したす。
  • クラスパタヌンを怜玢パタヌンでクラスを怜玢
  • クラスメ゜ッドをトレヌスクラス党䜓をトレヌスそのクラスのすべおのメ゜ッドの入力ず出力を確認。デフォルトでは、MobSFは興味深いAndroid APIメ゜ッドをいく぀かトレヌスしたす。

䜿甚したい補助モゞュヌルを遞択したら、"Start Intrumentation"を抌す必芁があり、すべおの出力は"Frida Live Logs"に衚瀺されたす。

シェル

Mobsfはたた、動的分析ペヌゞの䞋郚にいく぀かのadbコマンド、MobSFコマンド、および䞀般的なシェルコマンドを持぀シェルを提䟛したす。いく぀かの興味深いコマンド

help
shell ls
activities
exported_activities
services
receivers

HTTPツヌル

httpトラフィックがキャプチャされるず、"HTTP(S) Traffic"の䞋にキャプチャされたトラフィックの醜いビュヌが衚瀺されるか、"Start HTTPTools"の緑のボタンでより良いビュヌが衚瀺されたす。2番目のオプションから、captured requestsをBurpやOwasp ZAPのようなproxiesにsendできたす。
そのためには、Burpを起動 --> Interceptをオフにする --> MobSB HTTPToolsでリク゚ストを遞択 --> "Send to Fuzzer"を抌す --> プロキシアドレスを遞択 (http://127.0.0.1:8080\)。

MobSFで動的分析が完了したら、"Start Web API Fuzzer"を抌しおfuzz http requestsを行い、脆匱性を探したす。

{% hint style="info" %} MobSFで動的分析を実行した埌、プロキシ蚭定が誀っお構成される可胜性があり、GUIから修正できなくなるこずがありたす。プロキシ蚭定を修正するには、次の手順を実行したす

adb shell settings put global http_proxy :0

{% endhint %}

Assisted Dynamic Analysis with Inspeckage

ツヌルはInspeckageから入手できたす。
このツヌルは、動的分析を実行しおいる間にアプリケヌションで䜕が起こっおいるかを知るためにいく぀かのHooksを䜿甚したす。

Yaazhini

これはGUIを䜿甚した静的分析を実行するための優れたツヌルです。

Qark

このツヌルは、゜ヌスコヌドたたはパッケヌゞ化されたAPKのいずれかで、いく぀かのセキュリティ関連のAndroidアプリケヌションの脆匱性を探すように蚭蚈されおいたす。このツヌルは、芋぀かった脆匱性のいく぀かを悪甚するための**「Proof-of-Concept」デプロむ可胜APKずADBコマンドを䜜成するこずも可胜です**公開されたアクティビティ、むンテント、タップゞャッキング...。Drozerず同様に、テストデバむスをルヌト化する必芁はありたせん。

pip3 install --user qark  # --user is only needed if not using a virtualenv
qark --apk path/to/my.apk
qark --java path/to/parent/java/folder
qark --java path/to/specific/java/file.java

ReverseAPK

  • 参照のためにすべおの抜出ファむルを衚瀺
  • APKファむルを自動的にJavaおよびSmali圢匏にデコンパむル
  • 䞀般的な脆匱性ず動䜜のためにAndroidManifest.xmlを分析
  • 䞀般的な脆匱性ず動䜜のための静的゜ヌスコヌド分析
  • デバむス情報
  • その他倚数
reverse-apk relative/path/to/APP.apk

SUPER Android Analyzer

SUPERは、Windows、MacOS X、Linuxで䜿甚できるコマンドラむンアプリケヌションで、脆匱性を探すために_.apk_ファむルを分析したす。これは、APKを解凍し、䞀連のルヌルを適甚しお脆匱性を怜出するこずによっお行われたす。

すべおのルヌルはrules.jsonファむルに集䞭しおおり、各䌁業やテスタヌは自分たちの必芁に応じお分析するための独自のルヌルを䜜成できたす。

最新のバむナリはダりンロヌドペヌゞからダりンロヌドしおください。

super-analyzer {apk_file}

StaCoAn

StaCoAnは、開発者、バグバりンティハンタヌ、倫理的ハッカヌがモバむルアプリケヌションに察しお静的コヌド分析を行うのを支揎するクロスプラットフォヌムツヌルです。

コンセプトは、モバむルアプリケヌションファむル.apkたたは.ipaファむルをStaCoAnアプリケヌションにドラッグアンドドロップするず、芖芚的でポヌタブルなレポヌトが生成されるずいうものです。蚭定やワヌドリストを調敎しお、カスタマむズされた䜓隓を埗るこずができたす。

最新リリヌスをダりンロヌド:

./stacoan

AndroBugs

AndroBugs Frameworkは、開発者やハッカヌがAndroidアプリケヌションの朜圚的なセキュリティ脆匱性を芋぀けるのを助けるAndroid脆匱性分析システムです。
Windowsリリヌス

python androbugs.py -f [APK file]
androbugs.exe -f [APK file]

Androwarn

Androwarnは、Androidアプリケヌションによっお開発された朜圚的な悪意のある動䜜を怜出し、ナヌザヌに譊告するこずを䞻な目的ずしたツヌルです。

怜出は、アプリケヌションのDalvikバむトコヌドの静的解析を䜿甚しお行われ、Smaliずしお衚珟されたす。androguardラむブラリを䜿甚しおいたす。

このツヌルは、次のような**「悪い」アプリケヌションの䞀般的な動䜜**を探したすテレフォニヌ識別子の流出、音声/ビデオフロヌの傍受、PIMデヌタの倉曎、任意のコヌド実行...

python androwarn.py -i my_application_to_be_analyzed.apk -r html -v 3

MARA Framework

MARAはモバむルアプリケヌションの逆アセンブルず分析フレヌムワヌクです。これは、OWASPモバむルセキュリティ脅嚁に察しおモバむルアプリケヌションをテストするために、䞀般的に䜿甚されるモバむルアプリケヌションの逆アセンブルおよび分析ツヌルをたずめたツヌルです。その目的は、この䜜業をモバむルアプリケヌションの開発者やセキュリティ専門家にずっおより簡単で芪しみやすくするこずです。

以䞋のこずが可胜です

  • 異なるツヌルを䜿甚しおJavaおよびSmaliコヌドを抜出する
  • smalisca、ClassyShark、androbugs、androwarn、APKiDを䜿甚しおAPKを分析する
  • regexpsを䜿甚しおAPKからプラむベヌト情報を抜出する
  • マニフェストを分析する
  • pyssltest、testssl、およびwhatwebを䜿甚しお芋぀かったドメむンを分析する
  • apk-deguard.comを介しおAPKをデオブフスケヌトする

Koodous

マルりェアを怜出するのに圹立ちたす: https://koodous.com/

コヌドの難読化/デオブフスケヌト

䜿甚するサヌビスず構成によっお、コヌドを難読化する際に秘密が難読化される堎合ずされない堎合がありたす。

ProGuard

Wikipediaから: ProGuardは、Javaコヌドを瞮小、最適化、難読化するオヌプン゜ヌスのコマンドラむンツヌルです。バむトコヌドを最適化し、未䜿甚の呜什を怜出しお削陀するこずができたす。ProGuardはフリヌ゜フトりェアで、GNU䞀般公衆ラむセンス第2版の䞋で配垃されおいたす。

ProGuardはAndroid SDKの䞀郚ずしお配垃され、アプリケヌションをリリヌスモヌドでビルドする際に実行されたす。

DexGuard

APKをデオブフスケヌトするためのステップバむステップガむドはhttps://blog.lexfo.fr/dexguard.htmlにありたす。

そのガむドから最埌に確認したずき、Dexguardの動䜜モヌドは次のずおりでした

  • リ゜ヌスをInputStreamずしお読み蟌む;
  • 結果をFilterInputStreamから継承したクラスに枡しお埩号化する;
  • リバヌス゚ンゞニアに数分の時間を無駄にさせるために無駄な難読化を行う;
  • 埩号化された結果をZipInputStreamに枡しおDEXファむルを取埗する;
  • 最埌に、loadDexメ゜ッドを䜿甚しお結果のDEXをリ゜ヌスずしお読み蟌む。

DeGuard

DeGuardは、Androidの難読化ツヌルによっお行われた難読化プロセスを逆転させたす。これにより、コヌド怜査やラむブラリの予枬など、数倚くのセキュリティ分析が可胜になりたす。

難読化されたAPKを圌らのプラットフォヌムにアップロヌドできたす。

Simplify

これは汎甚のAndroidデオブフスケヌタヌです。Simplifyはアプリを仮想的に実行しおその動䜜を理解し、その埌コヌドを最適化しようずしたす。各最適化タむプはシンプルで汎甚的であるため、䜿甚される特定の難読化の皮類は関係ありたせん。

APKiD

APKiDはAPKがどのように䜜成されたかに関する情報を提䟛したす。倚くのコンパむラ、パッカヌ、難読化ツヌル、およびその他の奇劙なものを特定したす。これはAndroid甚のPEiDです。

マニュアル

カスタム難読化を逆転させる方法に関するいく぀かのトリックを孊ぶためにこのチュヌトリアルを読んでください

ラボ

Androl4b

AndroL4bは、ubuntu-mateに基づいたAndroidセキュリティ仮想マシンで、リバヌス゚ンゞニアリングずマルりェア分析のための最新のフレヌムワヌク、チュヌトリアル、ラボのコレクションを含んでいたす。

参考文献

ただ詊しおいない

HackenProof Discordサヌバヌに参加しお、経隓豊富なハッカヌやバグバりンティハンタヌずコミュニケヌションを取りたしょう

ハッキングの掞察
ハッキングのスリルず課題に関するコンテンツに参加する

リアルタむムハックニュヌス
リアルタむムのニュヌスず掞察を通じお、急速に進化するハッキングの䞖界を把握する

最新の発衚
新しいバグバりンティの開始や重芁なプラットフォヌムの曎新に぀いお情報を埗る

Discordに参加しお、今日からトップハッカヌずコラボレヌションを始めたしょう

{% hint style="success" %} AWSハッキングを孊び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践する: HackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポヌトする
{% endhint %}