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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Raccine — A Simple Ransomware Vaccine | Kitploit
ツール/GitHubGitHub/neo23x0/raccine
Defensive ToolsThreat IntelligenceIntrusion DetectionIncident ResponseAnomaly DetectionLog Analysis
GitHubneo23x0/raccine

Raccine

A Simple Ransomware Vaccine

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Inactively Maintained

Raccine

Raccine

シンプルなランサムウェア対策

なぜ

ランサムウェアが vssadmin を使ってすべてのシャドウコピーを削除するのをよく見かけます。その要求をインターセプトして、呼び出したプロセスを強制終了できたらどうでしょうか?シンプルなワクチンを作ってみましょう。

ランサムウェアのプロセスツリー

仕組み

私たちは、コンパイル済みの raccine.exe を vssadmin.exe(および wmic.exe)用のデバッガとして登録します。Raccine は、まず親プロセスの PID をすべて収集し、その後すべての親プロセスを強制終了しようとするバイナリです。

長所:

  • この方法はかなり汎用的です
  • システムファイル(vssadmin.exe や wmic.exe)を置き換える必要がありません。置き換えると整合性の問題が生じたり、パッチ適用のたびに Raccine 化(raccination)が壊れたりする可能性があります
  • コマンドラインパラメータを YARA ルールで柔軟にスキャンして悪意のある活動を検出
  • 変更の取り消しが簡単
  • Windows 7 / Windows 2008 R2 以降で動作
  • 常駐実行ファイルや追加サービスが不要(エージェントレス)

短所 / 盲点:

  • vssadmin.exe delete shadows(または他のブラックリスト対象の組み合わせ)の正当な使用ができなくなります
  • バックアッププロセスなど、vssadmin.exe delete shadows を呼び出そうとしたプロセスも強制終了してしまいます
  • 悪意のあるプロセスが vssadmin.exe を呼び出したプロセスツリー内に存在しない方法(例: schtasks 経由)は検知できません

処理の流れ

  1. vssadmin.exe(および wmic.exe)の呼び出しがインターセプトされ、デバッガとして raccine.exe に渡されます(vssadmin.exe delete shadows は raccine.exe vssadmin.exe delete shadows になります)
  2. 次にコマンドライン引数を処理し、Yara ルールを使って悪意のある組み合わせを探します。
  3. 悪意のある組み合わせが見つからなければ、元のコマンドラインパラメータで新しいプロセスを作成します。
  4. 悪意のある組み合わせが見つかった場合、親プロセスの PID をすべて収集し、それらを強制終了し始めます(これは上記のスクリーンショットに示されているマルウェアプロセスです)。Raccine は強制終了した PID をコマンドラインウィンドウに 5 秒間表示し、Windows イベントログに記録してから自身を終了します。

悪意のある組み合わせ:

  • delete と shadows(vssadmin、diskshadow)
  • resize と shadowstorage(vssadmin)
  • delete と shadowstorage(vssadmin)
  • delete と shadowcopy(wmic)
  • delete と catalog と -quiet(wbadmin)
  • win32_shadowcopy またはエンコードされたコマンドのリストの要素(powershell)
  • recoveryenabled(bcedit)
  • ignoreallfailures(bcedit)

^ 古いリスト: 対応する YARA ルール を確認してください

Powershell のエンコードされたコマンドのリスト: JAB、SQBFAF、SQBuAH、SUVYI、cwBhA、aWV4I、aQBlAHgA など多数

例

Raccine なしの Emotet - リンク

Raccine なしの Emotet

Raccine ありの Emotet - リンク(Raccine のインストールに関連するプロセス活動は無視してください)

Raccine ありの Emotet

感染は初期段階で阻止されます。

警告 !!!

使用は自己責任で!

Raccine 化されたマシンでは、アンインストールパッチ raccine-reg-patch-uninstall.reg を適用するまで、ブラックリストに登録されたコマンドを使用するコマンドを実行できなくなります。これにより、動作中にその特定のコマンドを実行するさまざまなバックアップソリューションが壊れる可能性があります。その要求をブロックするだけでなく、バックアップソリューションとそれを呼び出したプロセスを含むツリー内のすべてのプロセスを強制終了します。

すべてのプロセス実行を記録する堅牢なセキュリティ監視を導入している場合は、ログを確認して、vssadmin.exe delete shadows、vssadmin.exe resize shadowstorage ...、またはその他のブロック対象のコマンドラインが正当な目的で頻繁にあるいは散発的に使用されているかどうかを確認してください。その場合は Raccine の使用を控えるべきです。

バージョン履歴

  • 0.1.0 - すべての vssadmin.exe の実行をインターセプトしてブロックした初期バージョン
  • 0.2.0 - コマンドラインに delete と shadows を含む vssadmin.exe の実行のみをブロックし、それ以外の場合はすべてのパラメータを元のパラメータで vssadmin を呼び出す新しいプロセスに渡すバージョン
  • 0.2.1 - ホワイトリストから explorer.exe を削除
  • 0.3.0 - delete shadowcopy を呼び出す wmic メソッドをサポート、ホワイトリストに登録されたプロセス起動時の出力なし(wmic の出力処理に関する問題を回避)
  • 0.4.0 - ブロックされた試行ごとに Windows イベントログへの記録をサポート、より多くの悪意のあるパラメータの組み合わせを検索
  • 0.4.1 - 静的リンクされたバイナリ
  • 0.4.2 - John Lambert によるバグ修正
  • 0.5.0 - イベントログ記録を削除(基本情報は不要でした。複雑さが増すため。プロセス作成ログでも実現可能)、wbadmin フィルタリングのサポート
  • 0.5.1 - @JohnLaTwC による改善
  • 0.5.2 - @JohnLaTwC による delete shadowstorage の追加チェック、@_hillu によるコードレビュー、アプリアイコン
  • 0.5.3 - バッチインストーラ
  • 0.6.0 - bcdedit.exe /set {default} bootstatuspolicy ignoreallfailures と bcdedit.exe /set {default} recoveryenabled no の追加チェック
  • 0.7.0 - powershell.exe と win32_shadowcopy、またはエンコードされたコマンドのリストの追加チェック
  • 0.7.1 - @JohnLaTwC による改善

インストール

必要条件

  • YARA スキャン用の VC++ ランタイム(インストーラには https://aka.ms/vs/16/release/VC_redist.x64.exe のセットアップパッケージが含まれています)
  • .NET Framework 4.5
  • YARA ルール更新のためのインターネットアクセス
  • Windows 7 / Windows 2008 R2 以降

Visual C++ 再頒布可能パッケージと .NET Framework はどちらも、install-raccine.bat を実行すると自動的にインストールされます。

自動インストール

  1. リリース セクションから Raccine.zip をダウンロード
  2. 解凍する
  3. 管理者として raccine-installer.bat を実行

Windows バッチインストーラ

バッチインストーラには「アンインストール」オプションが含まれています。

手動アンインストール

管理者として次の操作を行います:

  1. raccine-reg-patch-uninstall.reg を実行
  2. %ProgramFiles%\Raccine フォルダと %ProgramData%\Raccine フォルダを削除
  3. reg delete HKCU\Software\Raccine /F を実行
  4. taskkill /F /IM RaccineSettings.exe を実行
  5. reg delete "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /V "Raccine Tray" /F を実行
  6. schtasks /DELETE /TN "Raccine Rules Updater" /F を実行

アップデート

プログラムのアップグレード

アップグレードにはアンインストールと再インストールをお勧めします。アンインストールすると、構成を含むすべてのレジストリキーが削除されます。

シグネチャの更新

Raccine はバージョン 1.2 以降、統合されたシグネチャアップデータを備えています。このプログラム RaccineRulesSync.exe は、予約タスクによって 1 日 1 回実行されるように構成されています。トレイアイコンメニューのオプションを使用して、シグネチャ更新を手動で実行することもできます。

YARA マッチング

バージョン 1.0 以降、Raccine はプロセスのコマンドラインや親プロセスが悪意があるかどうかを判断するために YARA ルールも使用します。Raccine は 2 つの異なる目的のために 2 セットのルールを使用します。

  1. ./yara - すべてのパラメータを含むコマンドラインに適用されるルール。例: WMIC.exe delete justatest
  2. ./yara/in-memory - インターセプトされたプロセスの親プロセスのプロセスメモリに適用されるルール。例: インターセプトされたプロセス vssadmin.exe を実行している ransomware.exe

YARA 外部変数

バージョン 1.1 以降、プロセスとその親の属性を考慮した、より複雑で賢い YARA ルールを可能にするために、外部変数のリストを YARA マッチングプロセスに渡しています。

マッチングプロセスはコマンドラインでは次のようになります:

root@kitploit:~
"C:\Program Files\Raccine\yara64.exe" -d FromRaccine="true" -d Name="WMIC.exe" -d ExecutablePath="C:\Windows\System32\wbem\WMIC.exe" -d CommandLine="WMIC.exe delete justatest" -d  Priority=32 -d FromRaccine="true" -d ParentName="cmd.exe" -d ParentExecutablePath="C:\Windows\System32\cmd.exe" -d ParentCommandLine="'C:\WINDOWS\system32\cmd.exe' " -d ParentPriority=32 C:\ProgramData\Raccine\yarayara\mal_emotet.yar C:\ProgramData\Raccine\yara\Rac1C6A.tmp

次のリストは、条件内で外部変数を使用する YARA ルールの例を示しています。

root@kitploit:~
rule env_vars_test {
    condition:
        Name contains "WMIC.exe"
        and CommandLine contains "delete justatest"
        and ParentPriority >= 8
        and (
            ParentCommandLine contains "cmd"
            or ParentCommandLine contains "powershell"
        )
}

GPO による構成の展開

GPO フォルダには Raccine.ADMX と Raccine.ADML が含まれています。展開時には Raccine.ADMX ファイルを C:\Windows\PolicyDefinitions に配置します。付属の Raccine.ADML ファイルは C:\Windows\PolicyDefinitions\en-US に配置します。

使用するには: GPEDIT.MSC を開き、[コンピューターの構成] > [管理用テンプレート] > [システム] > [Raccine] の順に選択します。

変更を構成した後、gpupdate.exe を実行して GPO を反映させる必要がある場合があります。

ログファイル

すべてのインターセプトと実行されたアクションを含むログファイルが C:\ProgramData\Raccine\Raccine_log.txt に書き込まれます。

ログファイル

Windows イベントログ

ブロックイベントのたびに Application イベントログにエントリが生成されます。

イベントログ

Raccine が生成する ID

  • EventId 1 - セットアップアクティビティ
  • EventId 2 - 悪意のあるアクティビティを検出
  • EventId 3 - 良性のアクティビティを検出

シミュレーションモード

バージョン 0.10.0 以降、Raccine は「シミュレーションモード」でインストールできます。このモードでは、すべてのトリガーが有効になり、すべてのアクションが記録されますが、何も強制終了しません。このモードは、Raccine が他のソフトウェアと干渉するかどうかを確認するために、バックアップソリューションやその他の正当なソフトウェアが適切な期間動作する環境で使用する必要があります。考え方としては、Raccine をシミュレーションモードでインストールし、1 週間または 1 か月間ログを記録してから、ログを確認して組織内で使用されている正当なソフトウェアをブロックしていたかどうかを確認します。

強制終了の実行

スクリーンショット

raccine.exe を実行して、親プロセスツリーが終了する様子を確認してください(v0.1 のスクリーンショット)

強制終了の実行

GUI

バージョン 1 以降で利用可能かつ必須です。

GUI

GUI

GUI

ピボット

現在対応中のランサムウェアが特定のプロセス名(例: taskdl.exe)を使用している場合、.reg パッチを変更してその名前への呼び出しをインターセプトし、Raccine に呼び出し元のプロセスツリーのすべての親プロセスを強制終了させることができます。

ヘルプ募集中

Raccine を拡張したいのですが、特に Windows プラットフォームでの C++ のコーディングスキルが不足しています。

ヘルプ - システムが壊れてしまった場合

インストールに何か問題が発生した場合(例: 突然のエラーメッセージ、サービスの破損、プログラムが起動しなくなるなど)、reg-patches サブフォルダ内の raccine-reg-patch-uninstall.reg ファイルを実行してください。これですべてが通常の状態に戻るはずです。

その後、install-raccine.bat を使用して完全なアンインストールを実行することもできるはずです。

その他の情報

正しい発音は「Rax-Een」です。

クレジット

  • Florian Roth @cyb3rops
  • John Lambert @JohnLaTwC
  • Eran Yom-Tov @eran_yom_tov
  • Ollie Whitehouse @ollieatnccgroup
  • Branislav Đalić @LordOfThePies4
  • Hilko Bengen @hillu
ツールをダウンロード
  • 0.7.2 - レジストリパッチでの絶対パスの使用
  • 0.8.0 - インターセプトされたすべての要求と実行されたアクションを記録したログファイル C:\ProgramData\Raccine_log.txt を作成
  • 0.9.0 - @JohnLaTwC による Windows イベントログへの記録
  • 0.10.0 - シミュレーションモードのみ
  • 0.10.1 - シミュレーションモードの修正
  • 0.10.2 - diskshadow.exe delete shadows コマンドを含む
  • 0.10.3-5 - 軽微な修正と追加
  • 1.0 BETA - GUI 要素とコマンドラインパラメータの YARA ルールスキャン
  • 1.1 BETA - 外部変数を使用した YARA ルールマッチング、トラブルシューティング機能
  • 1.2 BETA - シグネチャアップデータ
  • 1.3 BETA - 呼び出し元の親プロセスのインメモリ YARA スキャン
  • 1.4 BETA - 完全な x86 サポート、AV 検出を避けるために静的文字列を YARA ルールに移動、受理された実行のログ、インストーラでの .NET Framework セットアップ
  • 1.4.2 BETA - 終了コードの修正(インターセプトされたプログラムが返す終了コードの透過)、taskkill.exe のインターセプト
  • VariableDescriptionExample Value
    FromRaccinetrue
    Nameイメージファイル名WMIC.exe
    ExecutablePathバイナリへの完全なパスC:\Windows\System32\wbem\WMIC.exe
    CommandLineパラメータを含む完全なコマンドラインWMIC.exe delete justatest
    Priorityプロセス優先度32
    ParentName親イメージファイル名cmd.exe
    ParentExecutablePath親実行ファイルへの完全なパスC:\Windows\System32\cmd.exe
    ParentCommandLineパラメータを含む親の完全なコマンドラインC:\WINDOWS\system32\cmd.exe
    ParentPriority親プロセスの優先度32