Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
inhale — マルウェア解析および分類ツール。 | Kitploit
ツール/GitHubGitHub/netspooky/inhale
静的分析ハッシュ分析フォレンジック情報収集マルウェア分析バイナリ解析
GitHubnetspooky/inhale

inhale

マルウェア解析および分類ツール。

リポジトリを見る
191335年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Inhale - マルウェア吸入器

Inhaleは、多くの静的解析操作を自動化およびスケーリングできるマルウェア分析および分類ツールです。

これはベータリリース版であり、テスト目的、フィードバック、コミュニティ開発のためのものです。

背景

Inhaleは、私が多様なソースから大量のマルウェアを収集・分析する際に使用した一連の小さなスクリプトから始まりました。 同様の作業を行うフレームワークやツールは多数ありますが、大量のファイルに関する情報を迅速に見つけ、分類し、保存するという私のワークフローに本当に合うものはありませんでした。また、高額なAPIキーや費用のかかるサービスを必要とするものもあります。

これらのスクリプトを、研究サーバー、ラップトップ、Raspberry Piのような低コストのコンピューターのいずれで実行する場合でも、人々がすぐにセットアップして使用できるものにしました。

インストール

このツールは、Python3、ElasticSearch、radare2、yara、binwalkを使用してLinux上で動作するように構築されています。データベースからの出力を整形表示するためにjqも必要です。以下に基本的なインストール手順を示します。

config.ymlファイルには実際にはまだ設定されていない項目がたくさんあります。このドキュメントで特に指示がない限り、そのままにしておいてください。

Python3

必要条件のインストール

root@kitploit:~
python3 -m pip install -r requirements.txt

ElasticSearchのインストール(Debian)

Inhaleを使用するためにデータベースは必須ではありませんが、設定したい場合は、以下の手順に従い、config.ymlのオプション"enable_database"をTrueに設定してください。

ドキュメント

root@kitploit:~
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
sudo service elasticsearch start

手動でインストールするには、このドキュメントに従ってください。

さらに、可視化およびデータ分析のために完全なELKスタックをセットアップすることもできます。このツールを使用するために必須ではありません。

radare2のインストール

radare2はパッケージマネージャーではなく、リポジトリからインストールすることが重要です。パッケージマネージャーのバージョンには、inhaleに必要なすべての機能が含まれていません。

root@kitploit:~
git clone https://github.com/radare/radare2
cd radare2
sys/install.sh

Yaraのインストール

ドキュメント

root@kitploit:~
sudo apt-get install automake libtool make gcc
wget https://github.com/VirusTotal/yara/archive/v3.10.0.tar.gz
tar xvzf v3.10.0.tar.gz
cd yara-3.10.0/
./bootstrap.sh
./configure
make
sudo make install

共有オブジェクトに関するエラーが発生した場合は、次のコマンドを試して修正してください。

root@kitploit:~
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf'
sudo ldconfig

binwalkのインストール

binwalkはリポジトリから単純にインストールするのが最善です。

root@kitploit:~
git clone https://github.com/ReFirmLabs/binwalk
cd binwalk
sudo python3 setup.py install

binwalkの追加機能のインストールに関する詳細はこちらにあります。

telfhash/tshlのインストール

これはマルウェアファミリー分析のためにELFファイルのセクションをハッシュ化するライブラリです。telfhashはtlshに依存しているため、両方のインストール手順は次のとおりです。

tlshのセットアップ

root@kitploit:~
git clone https://github.com/trendmicro/tlsh
cd tlsh
./make.sh
cd py_ext/
python3 ./setup.py build
sudo python3 ./setup.py install

telfhashのセットアップ

root@kitploit:~
git clone https://github.com/trendmicro/telfhash
cd telfhash
sudo python3 setup.py install

ウェブサーバーのセットアップ

inhaleの出力を共有するためにウェブサーバーを使用したい場合は、config.ymlの変数を適切なパスに設定し、ディレクトリが存在することを確認してください!

root@kitploit:~
web:
  gen_html: False
  webdir: "/var/www/html/" # 実際のウェブディレクトリ
  fqdn: "http://threat.land" # あなたのウェブサイト
  in_path: "/var/www/html/inhaled/" # inhaleの出力へのパス
  ex_path: "/var/www/html/exhaled/" # DBクエリキャッシュ出力へのパス

HTML出力を使用するには、次のようにinhaleを実行します:

root@kitploit:~
python3 inhale.py [すべての引数] --html

使用方法

スクレイピングするファイルをタイプで指定します:

root@kitploit:~
-f INFILE      単一ファイルを分析
-d DIRECTORY   ファイルのディレクトリを分析
-u URLFILE     リモートファイル(URL)を分析
-r RDIRECTORY  リモートディレクトリ(URL)を分析
-l URLLIST     テキストファイル内のURLリストを分析

その他のオプション:

root@kitploit:~
-t TAGS        出力に追加タグを追加
-b             binwalkシグネチャをオフにする
-y YARARULES   カスタムYaraルールを指定
-o OUTDIR      スクレイピングしたファイルを特定の出力ディレクトリに保存(デフォルト: ./files/<日付>/)
-i             情報を表示するだけで、データベースにファイルを追加しない
--html         出力をhtmlとしてwebdirに保存

例

inhale.pyを実行すると、指定されたファイル/ディレクトリ/URLに対してすべての分析が実行され、ターミナルに出力されます。

/bin/lsの情報を表示するが、データベースには追加しない

root@kitploit:~
python3 inhale.py -f /bin/ls -i 

ディレクトリ'malwarez'をデータベースに追加

root@kitploit:~
python3 inhale.py -d malwarez/

このファイルをダウンロードしてデータベースに追加

root@kitploit:~
python3 inhale.py -u https://thugcrowd.com/chal/skull

このリモートディレクトリ内のすべてをダウンロードし、すべてに"phishing"タグを付ける:

root@kitploit:~
python3 inhale.py -r http://someurl.com/opendir/ -t phishing

プロのヒント:興味深いオープンディレクトリ(マルウェアを含む可能性あり)を見つけるには、このTwitterハッシュタグ検索を使用してください。自己責任で使用してください。

Yara

-yを使用して独自のyaraルールを渡すことができます。これは大規模な進行中の作業であり、"YaraRules"のほとんどは https://github.com/kevthehermit/PasteHunter/tree/master/YaraRules からのものです。@KevTheHermitに感謝します。

データベースのクエリ

db.shを使用してクエリを実行します(近いうちに素敵なスクリプトになります)

root@kitploit:~
db.sh *something* | jq .

データモデル

以下はelasticsearchデータベースで使用される現在のデータモデルです。これらのすべてがすべてのファイルに使用されるわけではありません。r2_*タグは通常、何らかのバイナリ用に予約されています。

問題の解決策

このプロジェクトには既知の問題がいくつかあります(主にパッケージマネージャーからのバージョンに関するもの)。ここでは、解決策があるものについて追跡します。

ElasticSearchインデックスのフィールド制限

次のようなエラーが発生した場合:

root@kitploit:~
elasticsearch.exceptions.RequestError: RequestError(400, 'illegal_argument_exception', 'Limit of total fields [1000] in index [inhaled] has been exceeded')

elasticSearchの古いバージョンを使用している可能性があります。アップグレードするか、次のワンライナーでフィールド制限を増やすことができます。

root@kitploit:~
curl -XPUT 'localhost:9200/inhaled/_settings' -H 'Content-Type: application/json' -d'{ "index" : { "mapping" : { "total_fields" : { "limit" : "100000" }}}}'

将来の機能

  • Discord/Matrix用のボットプラグインの再作成
  • 追加のバイナリ分析機能 - インポート/エクスポートテーブルの取得、ヘッダー内の特定の構造のハッシュ化、すべての文字列のログ記録など。一部はtelfhashで実装済み!
  • 追加前にファイルがデータベースかどうかをチェックする。以前、ESの古いバージョンでの特定の問題により削除されました。
  • リクエストの設定オプション:ユーザーエージェント、タイムアウト、プロキシなど
  • このプロジェクト全体のDocker化

コントリビューション

PRは歓迎します!特定のフィードバックがある場合は、Twitterで@netspookyにDMを送ることもできます。

謝辞

このツールのテストを手伝ってくれた皆さんに感謝します。また、コードの初期整理を行い、少しきれいにしてくれたPlazmazにも感謝します。

グリーティング:hermit, plazmaz, nux, x0, dustyfresh, aneilan, sshell, readme, dnz, notdan, rqu, specters, nullcookies、ThugCrowd、およびThreatLandとTC Safari Zoneに関わるすべての人に。

ツールをダウンロード
NameDescription
filenameバイナリの完全なパス
file_extファイル拡張子
filesizeファイルサイズ
filetypeマジック値に基づくファイルタイプ。binwalkシグネチャほど信頼性は高くありません。
md5ファイルのMD5ハッシュ
sha1ファイルのSHA1ハッシュ
sha256ファイルのSHA256ハッシュ
addedファイルが追加された日付
r2_archバイナリファイルのアーキテクチャ
r2_baddrバイナリのベースアドレス
r2_binszプログラムコードのサイズ
r2_bitsアーキテクチャのビット数 - 8/16/32/64など
r2_canaryスタックカナリアが有効かどうか
r2_classバイナリクラス
r2_compiledバイナリがコンパイルされた日付
r2_dbg_fileバイナリのデバッグファイル
r2_intrp動的リンクの場合にバイナリが呼び出すインタプリタ
r2_langソースコードの言語
r2_lsymsデバッグシンボルがあるかどうか
r2_machineマシンタイプ。通常はバイナリが対象とするCPU
r2_osマシンが動作するOS
r2_pic位置独立コードがあるかどうか
r2_relocs再配置があるかどうか
r2_rpathランタイム検索パス(該当する場合)
r2_strippedバイナリがストリップされているかどうか
r2_subsysバイナリのサブシステム
r2_formatバイナリフォーマット
r2_iorwioctl呼び出しが存在するかどうか
r2_typeバイナリタイプ。実行可能ファイル、共有オブジェクトなど
yarayaraマッチのリストを含む
binwalkbinwalkシグネチャとそのバイナリ内の位置のリストを含む
tags-tフラグで渡されたユーザー定義のタグ
urlファイルがリモートダウンロードされた場合のオリジンURL
urlsバイナリから抽出されたすべてのURL