
Berry Sentinel v5.0 — продвинутый поведенческий детектор C2 и reverse shell для систем Linux/Windows/Unix. Возможности: анализ соединений в реальном времени, эвристическая оценка, обнаружение сигнатур C2-фреймворков, анализ интервалов beacon-сигналов и интерактивный TUI на основе curses с механизмом завершения процессов.
Детектор поведения C2-соединений (Command & Control) в реальном времени
Zero-signature · Bulletproof Collection · Deep Scan · Kill Engine
Berry Sentinel отслеживает все активные сетевые подключения в вашей системе и анализирует поведение процессов, которые их создают, для обнаружения вредоносной активности — без использования баз сигнатур антивируса или списков заблокированных IP-адресов.
Обнаруживает reverse shells, webshells, RAT, C2-beacons и фреймворки, такие как Meterpreter, Cobalt Strike, Sliver или Empire, наблюдая за тем, как ведёт себя процесс: если интерпретатор Python имеет stdin, подключённый к удалённому сокету, это подозрительно, даже если IP-адрес неизвестен.
╔══════════════════════════════════════════════════════════════════════════════════╗
║ 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) ║
╚══════════════════════════════════════════════════════════════════════════════════╝
psutil опционально для дополнительного покрытия# Клонировать репозиторий
git clone https://github.com/dereeqw/BerrySentinel.git
cd BerrySentinel
# (Опционально, но рекомендуется) установить psutil
pip install psutil
# Запуск
python3 BerrySentinel.py
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui # curses может быть недоступен в Termux
curl -O https://raw.githubusercontent.com/dereeqw/BerrySentinel/main/BerrySentinel.py
python3 BerrySentinel.py
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 Показать версию и выйти
# 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
| Клавиша | Действие |
|---|---|
↑ / ↓ | Навигация между соединениями |
d / D | Показать панель деталей выбранного соединения |
k / K | Завершить процесс (запрашивает подтверждение PID) |
f / F | Циклическое переключение фильтра серьёзности: ВСЕ → СРЕДНИЙ → ВЫСОКИЙ → КРИТИЧЕСКИЙ |
r | Принудительное немедленное обновление |
ESC | Закрыть панель деталей или отменить операцию |
q | Выход |
Каждое соединение получает оценку от 0 до 100 на основе обнаруженных индикаторов:
| Индикатор | Баллы | Тег |
|---|---|---|
| stdin/stdout → socket | +55 | FD→SOCK |
| Двоичный файл оболочки с удалённым подключением | +40 | SHELL→NET |
| Webshell (оболочка как дочерний процесс Apache/Nginx) | +35 | WEBSHELL |
| Bind shell на высоком порту | +35 | BIND-SHELL |
| Использование netcat/socat | +35 | NETCAT |
Перенаправление /dev/tcp или mkfifo | +40 | PIPE-REDIR |
| Исполняемый файл удалён с диска | +25 | EXE-DEL! |
Исполняемый файл в /tmp или /dev/shm | +15 | EXE-TMP |
| Обнаружен beacon (циклическое подключение) | +25×conf | BCN(60s) |
| Сигнатура Meterpreter | +55 | SIG:Meterpreter |
| Сигнатура Cobalt Strike | +60 | SIG:CobaltStrike |
| Сигнатура Sliver | +58 | SIG:Sliver |
| Области памяти RWX | +20 | RWX(N) |
| LD_PRELOAD или HISTFILE=/dev/null | +10 | ENV:LD_PRELOAD |
| Интерпретатор скриптов, подключённый к сети | +25 | INTERP→NET |
| eval/exec в командной строке | +18 | EVAL |
| Удалённый PowerShell (IEX, DownloadString) | +30 | PS-REM |
Серьёзность в зависимости от оценки:
| Оценка | Серьёзность | Цвет |
|---|---|---|
| ≥ 65 | КРИТИЧЕСКИЙ | 🔴 Ярко-красный |
| ≥ 45 | ВЫСОКИЙ | 🟠 Оранжевый |
| ≥ 25 | СРЕДНИЙ | 🟡 Жёлтый |
| ≥ 8 | НИЗКИЙ | 🔵 Голубой |
| < 8 | ИНФО | ⚪ Серый |
Berry Sentinel включает сигнатуры для следующих фреймворков (оценка по портам, имени процесса, командной строке и паттернам beacon):