
シンプルなBash IOCスキャナー
FenrirはシンプルなIOCスキャナーのBashスクリプトです。Linux/Unix/OSXシステムで以下の侵害指標(IOC)をスキャンできます:
ハッシュ
MD5、SHA1、SHA256(md5sum、sha1sum、sha -a 256を使用)
ファイル名
文字列 - フルパスの部分文字列をチェック(例:"/var/temp/p.exe" 内の "temp/p.exe")
文字列
ファイル内をgrep
C2サーバー
lsof -i および lsof -i -n の出力でC2サーバーの文字列をチェック
ホットタイムフレーム
異なるモードのstatを使用 - 最小と最大のエポックタイムスタンプを定義し、その間に作成されたすべてのファイルを取得
基本的な特性:
FENRIRはTHORとLOKIに続く第3のツールです。THORは、企業向けの本格的なAPTスキャナーで、多くのモジュールとエクスポートタイプを備えています。LOKIは、YARAをシグネチャ形式として使用する無料のオープンIOCスキャナーです。
両方の先行ツールの問題は、Linuxプラットフォームに特定の要件があることです。THORはYARAモジュールに必要なlibcに合わせて特定のLinuxバージョン向けにビルドしています。LOKIを実行するにはLinuxにPythonとYARAのインストールが必要です。
私たちは、エージェントやソフトウェアパッケージをインストールせずに、100以上の異なるLinuxシステムで特定の侵害指標(IOC)をチェックするという問題に直面しました。
私たちはすでに、特定のLinuxリモートシステムセットにTHORを配布するためのAnsibleプレイブックを持っていました。このプレイブックはリモートシステム上にRAMドライブを作成し、ローカルのプログラムバイナリをリモートシステムにコピーし、実行し、その後ログを取得します。これにより、リモートシステム上でのプログラムのフットプリントが最小限になります。私はそのAnsibleプレイブックをFenrir用に適応させました。(まだテストされていません)
Fenrirはまだ「テスト中」です。エラー(と解決策)は、こちらのgithubの「Issues」セクションから報告してください。
スクリプト内の評価に対して、より良い、より堅牢な、またはエラーの少ない解決策を見つけた場合は、報告してください。私はフルタイムのBashプログラマーではないので、改善の余地があると思います。
Usage: ./fenrir.sh DIRECTORY
DIRECTORY - Start point of the recursive scan
すべての設定はスクリプトのヘッダーで構成できます。

Fenrirが行うことは以下の通りです:
デモディレクトリでのさまざまなマッチタイプを示すスキャン実行

C2接続の検出

GZIP圧縮ログファイル内の文字列を検出

設定

Ansibleプレイブック

Statの問題(LinuxファイルシステムでのCREATEDファイルスタンプについて)

Twitter @Cyb3rOps まで