
HW行動/レッドチーム/ペネトレーションテストチームを対象とした、モバイル端末(Android、iOS、WEB、H5、静的サイト)向けの情報収集スキャンツールです。ペネトレーションテストエンジニア、攻撃チームメンバー、レッドチームメンバーがモバイル端末や静的WEBサイトの重要な資産情報を迅速に収集し、Title、Domain、CDN、フィンガープリント情報、ステータス情報などの基本情報を出力できます。
本プロジェクトは、計画中のプロジェクトの氷山の一角に過ぎません。このプロジェクトに興味がある方、後続の開発や翻訳作業に参加したい方は、[email protected] までメールでご連絡ください。ご自身のスキルとご希望をお知らせください。
HW活動/レッドチーム/ペネトレーションテストチームを対象とした、モバイル(Android、iOS、WEB、H5、静的Webサイト)情報収集スキャンツールです。ペネトレーションテストエンジニア、攻撃チームメンバー、レッドチームメンバーがモバイルアプリや静的Webサイトから重要な資産情報を迅速に収集し、タイトル、ドメイン、CDN、フィンガープリント情報、ステータス情報などの基本情報を出力するのに役立ちます。
本プロジェクトの技術やコードを、マルウェア製作、ソフトウェア著作権/知的財産権の盗用、不適切な利益追求などの違法目的に使用しないでください。上記行為や、自身の著作権でないプログラムに対するデータスニッフィングは、中華人民共和国刑法第217条、第286条、中華人民共和国ネットワークセキュリティ法、中華人民共和国コンピュータソフトウェア保護条例などの法律に違反する恐れがあります。本プロジェクトで言及されている技術は、個人学習やテストなどの合法的な目的にのみ使用されるべきであり、技術の不適切な使用による刑事責任や民事責任は、本プロジェクトの作者とは無関係です。

AppInfoScanner
|-- libs プログラムのコアコード
|-- core
|-- __init__.py グローバル設定情報
|-- parses.py ファイル内の静的情報を解析
|-- download.py APPまたはH5ページを自動ダウンロード
|-- net.py ネットワークスニッフィングを実行し基本情報を取得
|-- task
|-- __init__.py ディレクトリ初期化ファイル
|-- base_task.py 統一タスクスケジューリングセンター
|-- android_task.py Android関連タスクを処理
|-- download_task.py APPまたはH5の自動ダウンロードタスクを処理
|-- ios_task.py iOS関連タスクを処理
|-- net_task.py ネットワークスニッフィング関連タスクを処理
|-- web_task.py Web関連タスクを処理(例:Webページ右クリックソース、H5関連の静的情報)
|-- tools プログラムが依存するツール
|-- apktool.jar apkファイルの逆コンパイル用(プラットフォームにより切り替えが必要)
|-- baksmali.jar dexファイルの逆コンパイル用(プラットフォームにより切り替えが必要)
|-- strings.exe Windows 32ビットでiPAの文字列情報を取得
|-- strings64.exe Windows 64ビットでiPAの文字列情報を取得
|-- __init__.py ディレクトリ初期化ファイル
|-- app.py メイン実行プログラム
|-- config.py プログラム全体の設定ファイル
|-- README.md プログラム使用説明
|-- requirements.txt インストールが必要な依存ライブラリ
|-- update.md プログラムのバージョン履歴
git clone https://github.com/kelvinBen/AppInfoScanner.git
または以下のリンクをブラウザにコピーして最新の正式版をダウンロード
https://github.com/kelvinBen/AppInfoScanner/releases/latest
国内高速ダウンロードチャンネル:
git clone https://gitee.com/kelvin_ben/AppInfoScanner.git
cd AppInfoScanner
python -m pip install -r requirements.txt
python app.py android -i <Your APK File or DEX File or APK Download Url or Save File Dir>
python app.py ios -i <Your IPA file or Mach-o File or IPA Download Url or Save File Dir>
python app.py web -i <Your Web file or Save Web Dir or Web Cache Url>
python app.py [TYPE] [OPTIONS] <The URL or directory to scan>
<> スキャンするファイル、ディレクトリ、またはURLを表す
| OR関係、いずれかを選択
[] 入力が必要なパラメータを表す
このパラメータは基本コマンド形式の[TYPE]に対応します。現在は[android/ios/web]の3タイプのみ対応しており、いずれかを指定する必要があります。
android: Androidアプリ関連ファイルの内容をスキャン
ios: iOSアプリ関連ファイルの内容をスキャン
web: WebサイトまたはH5関連ファイルの内容をスキャン
拡張子に基づいて自動修正をサポートします。例えばiosを指定しても、-iで入力したファイル名がXXX.apkの場合はandroidスキャンが実行されます。
このパラメータは基本コマンド形式の[OPTIONS]に対応し、複数のパラメータを同時に使用できます。
-i または --inputs: スキャンするファイル、ディレクトリ、または自動ダウンロードするファイルのURLを入力します。パスが長すぎる場合は"で囲んでください。必須パラメータです。
-r または --rules: スキャン対象ファイル内容の一時的なスキャンルールを入力します。
-s または --sniffer: ネットワークスニッフィング機能を有効にします。デフォルトは有効です。
-n または --no-resource: すべてのリソースファイルを無視します(ネットワークスニッフィング機能内のリソースファイルも含む。事前にconfig.pyでsniffer_filter関連ルールを設定する必要があります)。デフォルトはリソースを無視しません。
-a または --all: すべてのスキャンルールに一致する結果セットを出力します。デフォルトは有効です。
-t または --threads: スレッドの並列数を設定します。デフォルトは10スレッドです。
-o または --output: スキャン結果とスキャン中に生成される一時ファイルの出力ディレクトリを指定します。デフォルトはスクリプトが存在するディレクトリです。
-p または --package: AndroidのAPKファイルまたはDEXファイルでスキャンするJavaパッケージ名を指定します。このパラメータはandroidタイプでのみ使用できます。
python app.py android -i <Your apk file>
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk
python app.py android -i <Your DEX file>
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo.dex
python app.py android -i <APK Download Url>
例:
python app.py android -i "https://127.0.0.1/Demo.apk"
URLが長い場合は二重引用符(")で囲む必要があります。
python app.py ios -i <Your ipa file>
例:
python app.py ios -i "C:\Users\Administrator\Desktop\Demo.ipa"
python app.py ios -i <Your Mach-o file>
例:
python app.py ios -i "C:\Users\Administrator\Desktop\Demo\Payload\Demo.app\Demo"
python app.py ios -i <IPA Download Url>
例:
python app.py ios -i "https://127.0.0.1/Demo.ipa"
URLが長い場合は二重引用符(")で囲む必要があります。Apple Store内のIPAファイルのスキャンは現在サポートしていません。
python app.py web -i <Your web file>
例:
python app.py web -i "C:\Users\Administrator\Desktop\Demo.html"
python app.py web -i <Web Download Url>
例:
python app.py web -i "https://127.0.0.1/Demo.html"
以下はandroidタイプを例とします:
python app.py android -i <Your Dir>
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo
python app.py android -i <Your apk> -r <the keyword | the rules>
例:
百度ドメインのスキャンを追加
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -r ".*baidu.com.*"
python app.py android -i <Your apk> -s
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -s
python app.py android -i <Your apk> -n
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -n
python app.py android -i <Your apk> -a
例:
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -a
python app.py android -i <Your apk> -t 20
例:
20並列スレッドを設定
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -t 20
python app.py android -i <Your apk> -o <output path>
例:
デスクトップのTempディレクトリに出力する場合
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -o C:\Users\Administrator\Desktop\Temp
python app.py android -i <Your apk> -p <Java package name>
例:
com.baiduパッケージ名の内容をフィルタリングする場合
python app.py android -i C:\Users\Administrator\Desktop\Demo.apk -p "com.baidu"
本プログラムは基本的なフレームワークを提供し、いくつかの基本ルールが組み込まれていますが、すべての入力に対してスキャンが完了するわけではありません。そのため、必要に応じてルールを設定することで、質の高い結果を得ることができます。
filter_components: 関連コンポーネント(JsonコンポーネントやXMLコンポーネントなど)を設定
filter_strs: スキャン対象のファイル内容を設定。例:ポート番号をスキャンする場合、「r'.*://([\d{1,3}\.]{3}\d{1,3}).*'」と設定
filter_no: スキャン時に無視する不要な内容を設定
shell_list: Android関連のシェル特徴を設定
web_file_suffix: スキャン対象のWEBファイル拡張子を設定
sniffer_filter: ネットワークスニッフィングで無視するファイル拡張子を設定
headers: 自動ダウンロード時に必要なリクエストヘッダー情報を設定
data: 自動ダウンロード時に必要なリクエストボディを設定
method: 自動ダウンロード時に必要なリクエストメソッドを設定
方法1: config.pyのルールを実際の状況に合わせて調整
方法2: リソースファイルを無視する
スキャン対象のアプリにシェル(難読化)がかかっていることを示します。脱シェル処理を行ってからスキャンを実行してください。以下のツールと組み合わせて脱シェルを行えます。
Android:
xposedモジュール: dexdump
fridaモジュール: FRIDA-DEXDump
ルートなし脱シェル:blackdex
iOS:
firdaモジュール:
Windows: frida-ipa-dump
MacOS:frida-ios-dump
ファイルのダウンロードに失敗しました。
1) 入力したURLが正しいか確認
2)ネットワークに問題がないか、またはconfig.pyの設定ファイルでリクエストヘッダー(headers)、リクエストボディ(data)、リクエストメソッド(method)を設定し、保存してから再実行
ファイルの逆コンパイルに失敗しました。
エラーのスクリーンショットと該当のAPKファイルを https://github.com/kelvinBen/AppInfoScanner/issues に提出してください。作者が確認後、対応します。
カスタムルールの提出先:
[カスタムルールを追加するにはこちらをクリック](https://github.com/kelvinBen/AppInfoScanner/issues/7)
提出形式:
1. APPカスタムコンポーネントの追加
例: fastjsonのルール
APPコンポーネント: fastjson com.alibaba.fastjson
2. 検索対象の文字列
例: Alibaba Cloud AKのルール
文字列:
Alibaba Cloud AK .*accessKeyId.*".*"
3. 検索対象のwebファイル拡張子
例: jspファイルのルール
サイト: Java言語 jsp
4. Androidシェルルール
例: 某デジタル会社のシェルルール
シェル:某デジタル会社 com.stub.StubApp
微信(WeChat):bromomo (友達追加時は備考に「GitHub」と記入してください)
微信群(WeChatグループ):

参加できない場合は、微信の友達追加後にグループに招待されます。
要件の提出、バグ修正、技術交流、ビジネス連携などは、作者の友達追加でご連絡ください。

AppInfoScanner は 404Team 星链计划2.0 の一部です。AppInfoScanner に関するご質問や、他の開発者と交流したい場合は、星链计划のグループ参加方法をご参照ください。