
マルチエンジン脆弱性スキャナーで、Nuclei Lite、Afrog、XRayのエンジンを内蔵。FOFA/Shodanによるアセット検出、OOBインタラクション検出、Pythonプラグインシステム、およびレッドチーム運用向けのリアルタイム結果管理機能を備えています。
OmniScan は、Python ベースの軽量でマルチエンジンの脆弱性スキャナーです。レッドチームの運用とセキュリティ研究のために設計されています。軽量 Nuclei エンジン (Lite) と Afrog エンジンを統合するだけでなく、強力な資産収集と結果管理機能を提供します。
eval の代わりに simpleeval を使用し、サンドボックス環境で DSL 式を実行することで、悪意のあるテンプレートによるコード実行を防止します。{{lang-file}} -> etc/passwd)を自動認識して入力し、スマートファジングをサポートします。hmac, gzip, reverse, rand_base など)をサポート。flow および req-condition ロジック制御をサポート。cookie-reuse セッション維持と redirects リダイレクト制御をサポート。Interactsh クライアントにより、Blind RCE、SSRF などの無応答脆弱性を自動処理します。tqdm プログレスバーにより、各プラグインの各ターゲットに対するスキャン進捗をリアルタイム表示します。BasePlugin クラスを継承し、check(url) メソッドを実装するだけです。git_config.py: .git/config の漏洩を検出spring_boot.py: Spring Boot Actuator を検出ds_store.py: .DS_Store の漏洩を検出phpinfo.py: phpinfo() ページを検出backup_files.py: 一般的なバックアップファイル (.bak, .zip など) を検出swagger_ui.py: Swagger UI ドキュメントを検出country="CN")。asyncio および aiohttp フレームワークを採用。interactsh-client バイナリをダウンロードし管理します。(interactsh-client.zip をアップロード済みです。このディレクトリに直接解凍してください。)xxx.oast.pro)を自動取得。{{interactsh-url}} をリアルタイムで取得したペイロードに置き換えます。リポジトリのクローン:
git clone https://github.com/d3ckx1/OmniScan.git
cd omniscan
依存関係のインストール:
pip3 install -r requirements.txt
ツールの設定 (オプション):
Afrog または XRay を使用する場合、対応する実行可能ファイルがプロジェクトルートまたはシステムパスにあることを確認してください。config.yml を設定して API キーとスキャンパラメータを指定します(オプション)。単一 URL をスキャン:
python3 omniscan.py -u http://example.com --tool lite -T ./templates/cve/
FOFA から資産を検索し、Nuclei Lite エンジンでスキャン:
python3 omniscan.py -f 'app="SpringBoot"' --tool lite -T ./templates/spring-boot/
urls.txt からターゲットを読み込みスキャン:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/cve/
python3 omniscan.py -l urls.txt --tool lite -T ./templates/python3 omniscan.py -l urls.txt --tool afrogpython3 omniscan.py -l urls.txt --tool xray--tool パラメータなしで実行すると、対話メニューでツールを選択:
python3 omniscan.py -l urls.txt
Blind RCE 脆弱性をスキャン(Interactsh を自動有効化):
python3 omniscan.py -l urls.txt --tool lite -T ./templates/blind-rce.yaml
OOB インタラクションが検出された場合、コンソールに [OOB DETECTED] が出力され、脆弱性が記録されます。
Nuclei Lite エンジンを使用し、すべてのプラグインを有効化:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugins
Git Config プラグインと PHPInfo プラグインのみ実行:
python3 omniscan.py -l urls.txt --tool lite -T ./templates/ --plugin-file plugins/git_config.py,plugins/phpinfo.py
実際のスキャンを行わず、テンプレートの互換性のみをチェック:
python3 omniscan.py --classify-only --tool lite -T ./templates/
config.yml)app:
lite_timeout: 10 # リクエストタイムアウト (秒)
lite_threads: 10 # 同時スレッド数
use_async: true # 非同期モードを有効化
user_agents: # カスタム User-Agent プール
- "Mozilla/5.0..."
fofa:
email: "your_email"
key: "your_key"
shodan:
api_key: "your_key"
output:
formats: ["json", "csv", "html"] # レポート形式
omniscan.py: メインプログラムエントリ。パラメータ解析とタスクスケジューリングを担当。nuclei_lite.py: Nuclei Lite コアエンジン。YAML テンプレートの解析とスキャンを実装。result_manager.py: 結果管理モジュール。重複排除とレポート生成を処理。database.py: SQLite データベース管理。config.py: 設定読み込みモジュール。Q: [OOB DETECTED] とはどういう意味ですか?
A: スキャナーが帯域外インタラクション (Out-of-Band Interaction) を正常に検出したことを示します。これは通常、ターゲットが DNS または HTTP リクエストのコールバックをトリガーしたことを意味し、Blind RCE、SSRF、または Blind SQLi などの脆弱性の存在を証明します。
Q: FOFA/Shodan API を設定するにはどうすればよいですか?
A: config.yml ファイルに API キーを記入するか、環境変数 FOFA_EMAIL、FOFA_KEY、SHODAN_API_KEY を設定してください。
Q: サポートされるオペレーティングシステムは? A: OmniScan はクロスプラットフォームで、Linux、macOS、Windows をサポートします。外部ツール(afrog、interactsh-client など)は、現在のシステムで実行可能であることを確認する必要があります。
MIT License
| パラメータ | 説明 | 例 |
|---|
-u URL | 単一 URL をスキャン | -u http://example.com |
-f | FOFA を使用して資産を検索 | -f 'country="CN"' |
-s | Shodan を使用して資産を検索 | -s 'apache' |
-l FILE | ローカルターゲットファイルを指定 | -l targets.txt |
-T TEMPLATE | Nuclei テンプレートのパスを指定 (ファイル/ディレクトリ) | -T ./templates/ |
--tool NAME | スキャンツールを指定 (nuclei/afrog/xray/lite) | --tool lite |
--severity | 脆弱性の重要度を指定 (デフォルト critical,high) | --severity high,medium |
--plugins | Python プラグインスキャンを有効化 (plugins/ ディレクトリをスキャン) | --plugins |
--plugin-file FILE | 実行する特定のプラグインファイルを指定 (カンマ区切り) | --plugin-file plugins/test.py |
--new | 新しくリリースされたテンプレートのみをスキャン (Nuclei が必要) | --new |
--no-resume | レジューム機能を無効化 | --no-resume |
--verbose | 詳細なデバッグログを表示 | --verbose |