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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
security checks — Linux セキュリティチェック | Kitploit
ツール/GitLabGitLab/abdom.seada/security-checks
防御ツールメモリフォレンジック脆弱性分析ネットワークフォレンジック構成監査フォレンジックマルウェア分析デジタルフォレンジック侵入検知インシデントレスポンスログ分析
GitLab
4ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
abdom.seada/security-checks

security checks

Linux セキュリティチェック

リポジトリを見る

🔍 Miner Hunter

Linuxサーバ向け暗号通貨マイナー検出・削除・堅牢化ツールキット

実際のインシデントレスポンスから構築 — ps、top、htop、btop からルートキット技術を用いて隠れるマイナーを検出します。


📦 インストール

root@kitploit:~
git clone https://gitlab.com/abdom.seada/security-checks.git
cd security-checks
sudo bash setup.sh

🔀 ブランチ: master — このツールキットは master ブランチにあります。他のセキュリティスクリプトは将来別のブランチに追加される可能性があります。


⚙️ セットアップ

⚠️ クローン後すぐに setup.sh を一度実行してください — これをスキップするとエラーの最大の原因になります。

root@kitploit:~
sudo bash setup.sh

setup.sh はすべてを自動的に処理します:

セットアップ成功時の期待される出力:

root@kitploit:~
✅ Setup complete — all checks passed!

  Next steps:
    sudo ./miner-hunter scan        # Safe read-only scan
    sudo ./miner-hunter full        # Scan → Kill → Harden

💡 なぜこれが必要か? Linux は、ファイルに +x フラグがないと実行しません。Git や SCP 転送ではこれが失われます。setup.sh は、メインスクリプトが依存する lib/ モジュールを含むすべてのファイルを一度に修正します。


🚀 クイックスタート

root@kitploit:~
sudo ./miner-hunter scan            # ✅ 安全 — 読み取り専用、変更なし
sudo ./miner-hunter full            # ⚠️  フルパイプライン: スキャン → キル → ハードニング
sudo ./miner-hunter scan --dry-run  # 👁️  プレビューモード — 何が起こるかを表示

📋 コマンドとオプション

コマンド

オプション

オプション説明
-d, --dry-run変更を加えずにすべてのアクションをプレビュー

🎭 シナリオ例

実際の状況と、それぞれで正確に実行すべき内容を示します。


🔴 シナリオ 1 — 「サーバのCPU使用率が100%なのに top には何も表示されない」

これは典型的なルートキットの症状です。マイナーはユーザー空間ツールからは隠れますが、ハードウェアパフォーマンスカウンタからは隠れられません。

root@kitploit:~
# ステップ1: まず安全なスキャンを実行 — 何を触る前に何があるか確認
sudo ./miner-hunter scan

マイナーが存在する場合に表示される内容:

root@kitploit:~
🚨 [CRITICAL]  CPU anomaly: 97% user CPU but top shows max 2% per process
🚨 [CRITICAL]  perf detected 4 hidden threads consuming ~94% total CPU
🚨 [CRITICAL]  Active connection to 185.x.x.x:9200 (known mining port)
🚨 [CRITICAL]  Fake kernel thread PID=3421 NAME=[kworker/0:1] EXE=/tmp/.x/miner
root@kitploit:~
# ステップ2: マイナーを強制終了し、そのプールをブロック
sudo ./miner-hunter kill

# ステップ3: サーバを堅牢化して再発を防止
sudo ./miner-hunter harden

🟡 シナリオ 2 — 「ハッキングされたと思うけど確信がない」

異常な送信トラフィック、自分で作成していないcronジョブ、奇妙な名前のプロセスなど、何か怪しいことに気づいたが確信がない場合。

root@kitploit:~
# 完全スキャンを実行 — 完全に安全、読み取り専用、変更なし
sudo ./miner-hunter scan

# その後、構造化されたレポートを読む
sudo ./miner-hunter report

/root/miner_evidence_*/report.txt のレポートはすべての検出結果を重要度別に分類します:

  • [CRITICAL] エントリ → すぐに kill を実行
  • [WARNING] エントリ → 手動で確認してから対処
  • 空のレポート → サーバは正常と思われる

🟠 シナリオ 3 — 「手動でマイナーを強制終了したが、何度も復活する」

マイナーには永続化メカニズムがあります — そのメカニズム(cronジョブ、systemdサービス、PM2エントリ、シェルプロファイルのバックドア)が、強制終了後に再生成します。

root@kitploit:~
sudo ./miner-hunter scan

出力内で以下を探します:

root@kitploit:~
⚠️  [WARN]     Suspicious cron entry: * * * * * /tmp/.x/update
🚨 [CRITICAL]  Malicious systemd service: /etc/systemd/system/update-check.service
🚨 [CRITICAL]  PM2 process 'app-worker' has 8432 restarts — likely miner respawn loop
🚨 [CRITICAL]  Shell profile backdoor detected in /root/.bashrc
root@kitploit:~
# kill は実行中のプロセスだけでなく、すべての永続化アーティファクトを削除します
sudo ./miner-hunter kill

# 次に、何かが再生成された場合に警告を受け取れるようにウォッチドッグをインストールするため、ハードニングを実行
sudo ./miner-hunter harden

💡 kill 後、ウォッチドッグcronは5分ごとに実行され、/var/log/miner_hunter/watchdog_alerts.log にログを記録します — 何かが再発した場合に即座に把握できます。


🔵 シナリオ 4 — 「何かが起こる前に新しいサーバを堅牢化したい」

デプロイ前の予防的な堅牢化 — マイナーなし、インシデントなし、単にロックダウン。

root@kitploit:~
# ハードニングを単独で実行 — スキャンやキルは不要
sudo ./miner-hunter harden

これにより:

  • SSH設定を監査し、推奨設定を表示
  • fail2banが sshd ジャイルでアクティブであることを確認
  • /usr/bin の整合性ベースラインを作成(MD5チェックサム — 後で改ざんされたバイナリを検出可能)
  • 5分ごとにマイナー指標をチェックするcronウォッチドッグをインストール
  • 既存のiptablesルールを systemd サービスを介して再起動後も保持

⚫ シナリオ 5 — 「マイナーがキルに耐えた — CPU使用率が依然として高い」

kill 後、検証ステップでマイナーがまだ実行中である可能性が報告されます:

root@kitploit:~
⚠️  MINER MAY HAVE RESPAWNED
CPU: 89% | Mining conns: 1
Firewall blocks are in place — miner can't reach pool
Consider a REBOOT or OS REINSTALL
root@kitploit:~
# 1. ファイアウォールブロックはすでに有効 — マイナーはプールに到達できません
#    ブロックがアクティブであることを確認:
iptables -L OUTPUT -n | grep DROP

# 2. 2回目のスキャンを実行して何が生き残ったか確認
sudo ./miner-hunter scan

# 3. プロセスを隠しているカーネルモジュールルートキットを確認
lsmod | grep -iE 'diamorphine|reptile|kovid|rootkit'

# 4. 非ゼロの taint = カーネル外のモジュールがロードされている(ルートキットの指標)
cat /proc/sys/kernel/tainted

カーネル taint 値が非ゼロであるか、既知のルートキットモジュールが表示される場合 — マイナーはカーネルレベルで制御しています。この時点で最も安全な方法は、既知のクリーンなスナップショットからの完全なOS再インストールです。


🟣 シナリオ 6 — 「手動でスキャンを実行せずに継続的な監視をしたい」

harden 後、ウォッチドッグcronがすでにインストールされています。その操作方法は以下の通りです:

root@kitploit:~
# アラートログをリアルタイムで監視
tail -f /var/log/miner_hunter/watchdog_alerts.log

# ウォッチドッグcronジョブが登録されていることを確認
cat /etc/cron.d/miner-watchdog

# ベースライン作成以降の /usr/bin バイナリの変更を確認
md5sum --check /var/lib/miner_hunter/usrbin_baseline.md5 --quiet

最後のコマンドで出力があった場合、ベースライン作成後にシステムバイナリが変更されたことを意味します — 直ちに調査してください。


🔬 検出内容

隠しプロセス検出

CPUプロファイリング

手法検出するもの
perf ハードウェアPMCプロファイリング隠されたCPU消費 — ルートキットはハードウェアカウンタを偽造できません
/proc デルタサンプリングPIDごとの直接のカーネルレベルCPUアカウンティング
CPU異常検出それを説明する可視プロセスがない高い CPU

ネットワーク分析

手法検出するもの
直接読み取り

永続化メカニズム


⚔️ キルプロセス — ステップバイステップ

sudo ./miner-hunter kill を実行すると、以下の順序で処理が行われます:

  1. 🔥 ファイアウォールでマイニングプールIPをブロック — 強制終了前に iptables DROP ルールを適用。これにより、再生成してもマイナーは再接続できません
  2. 💀 スレッドグループリーダーを強制終了 — 最初に SIGKILL でTGID(スレッドグループリーダーPID)を対象
  3. 🧹 すべてのワーカースレッドを掃討 — 同じスレッドグループ内の全PIDをPID範囲全体で強制終了
  4. 🗑️ アーティファクトを削除 — マイナーの設定ファイル、バイナリ、webshell、永続化ファイル
  5. 🔄 PM2をクリーン — Node.jsプロセスマネージャからマイナーエントリを削除し、リストを保存
  6. ✅ 検証 — perf を再実行し、/proc/net/tcp をチェックしてCPUが低下し接続がなくなったことを確認

🛡️ インシデント後の堅牢化 — 適用される内容


📁 プロジェクト構成

root@kitploit:~
security-checks/               ← リポジトリルート (master ブランチ)
├── miner-hunter               # エントリポイント — 実行するスクリプト
├── setup.sh                   # ⚙️ 初回セットアップ — クローン後に一度実行
├── lib/
│   ├── common.sh              # 共有ユーティリティ: ログ、色、ヘルパー
│   ├── detect_hidden.sh       # 隠しプロセスとルートキットの検出
│   ├── detect_cpu.sh          # perf と /proc によるCPUプロファイリング
│   ├── detect_network.sh      # マイニングプール接続の検出
│   ├── detect_persistence.sh  # 永続化メカニズムの検出
│   ├── kill_miner.sh          # プロセス強制終了とアーティファクト削除
│   └── harden.sh              # インシデント後の堅牢化
├── README.md
└── LICENSE

📋 要件


📤 出力ファイル

実行ごとに以下が作成されます:


🌍 実世界での起源

このツールは、以下の特徴を持つ暗号通貨マイナーに対する実際のインシデント対応中に構築されました:

  • 自身を next にリネームし、Node.jsサーバ上のNext.jsプロセスに紛れ込んだ
  • 実際のカーネルスレッド名である kthreadd にリネームされたスレッドグループリーダーを使用
  • 実行中にディスクからバイナリを削除し、メモリ上で実行を継続 (/proc/PID/exe → (deleted))
  • ps、top、htop、btop では完全に見えず
  • perf ハードウェアCPUカウンタプロファイリングによってのみ検出可能だった

📄 ライセンス

MIT

ツールをダウンロード
ステップ処理内容
✅ パーミッションminer-hunter とすべての lib/*.sh スクリプトに chmod +x を実行
✅ ディレクトリ/var/log/miner_hunter/ および /var/lib/miner_hunter/ を作成 (rootのみ、700)
✅ 依存関係perf、mpstat、iptables、fail2ban、bc、strings を確認 — 不足分は自動インストール
✅ セルフテスト./miner-hunter --version を実行してすべてが正しく接続されていることを確認
コマンド説明システムを変更するか?
scan完全検出スキャン — 隠しプロセス、CPU、ネットワーク、永続化✅ いいえ
kill特定されたマイナーを強制終了、プールIPをブロック、アーティファクトを削除⚠️ はい
hardenインシデント後の堅牢化 — SSH、ファイアウォール、ウォッチドッグ、整合性ベースライン⚠️ はい
fullスキャン → キル → ハードニングを各フェーズ間で確認プロンプト付きで実行⚠️ はい
report最新のスキャンレポートを表示✅ いいえ
-e, --evidence DIR
/root/miner_evidence_* の代わりにカスタムディレクトリに証拠を保存
-h, --helpヘルプを表示
-v, --versionバージョンを表示
手法検出するもの
/proc と ps の比較ユーザー空間ツールから見えないプロセス
LD_PRELOAD ハイジャックlibc をフックしてプロセスを隠す悪意のある共有ライブラリ
カーネルモジュールルートキットDiamorphine、Reptile、Kovid などの既知のルートキット
偽のカーネルスレッド[kworker]、[kthreadd]、[kswapd] に偽装したマイナー
改ざんされたシステムバイナリ置き換えられた ps、top、ls、ss、netstat
%user
/proc/net/tcp
アクティブな接続 — フックされた ss/netstat をバイパス
マイニングポート検出ポート 3333、4444、5555、7777、9200、14433、14444、45560
マイニングドメイン解決既知のプールドメインを解決し、アクティブな接続と相互参照
ソケットからPIDへのマッピング各マイニング接続がどのプロセスに属するかを特定
場所チェック内容
Cron/etc/cron*、/var/spool/cron/、全ユーザーのcrontab
Systemdすべてのユニットファイルとタイマーの疑わしいエントリ
Udevルールデバイスイベントによるハードウェアトリガー実行
PM2Node.jsプロセスマネージャエントリの異常に多い再起動回数
シェルプロファイル.bashrc、.bash_profile、/etc/profile、/etc/profile.d/*
SSH全ユーザーの authorized_keys ファイルすべて
WebshellNode.jsプロジェクトディレクトリ内のPHPファイル
XMRig設定一般的なマイナー配置場所の config.json
アクション詳細
ファイアウォールの永続化再起動のたびにiptablesのマイニングブロックを復元するsystemdサービス
SSH監査PermitRootLogin、PasswordAuthentication、MaxAuthTries をチェック — 推奨値を表示
Fail2banチェックsshd ジャイルがアクティブであることを確認し、現在禁止されているIPを報告
マイナーウォッチドッグ5分ごとにCPU異常、LD_PRELOAD、マイニングポート、PHP webshellをチェックするcronジョブ
/usr/bin ベースライン/usr/bin 内の全バイナリのMD5チェックサム — 将来の改ざん検出用
要件詳細
OSLinux — Ubuntu 24.04 LTS、Debian 13 でテスト済み
権限root (sudo) で実行する必要あり
setup.sh が自動インストールperf、mpstat (sysstat)、bc、strings (binutils)
推奨fail2ban — 不足時は警告表示、自動インストールはしない
必須(自動インストールしない)iptables — kill/harden フェーズでは必須
出力場所内容
証拠ディレクトリ/root/miner_evidence_YYYYMMDD_HHMMSS/キャプチャしたバイナリ、perfレポート、マイナー設定
ログファイル/var/log/miner_hunter/run_YYYYMMDD_HHMMSS.log完全なタイムスタンプ付き実行ログ
レポートevidence_dir/report.txt重要度付きの構造化された検出結果サマリー
ウォッチドッグアラート/var/log/miner_hunter/watchdog_alerts.logharden 後の継続的なアラート
整合性ベースライン/var/lib/miner_hunter/usrbin_baseline.md5harden 後の /usr/bin チェックサム