
Berry Sentinel v5.0 — Detector avançado de C2 comportamental e reverse shell para sistemas Linux/Windows/Unix. Inclui análise de conexões em tempo real, pontuação heurística, detecção de assinaturas de frameworks C2, análise de intervalo de beacon e uma TUI interativa baseada em curses com mecanismo de encerramento de processos.
Detector comportamental de conexões C2 (Command & Control) em tempo real
Zero-signature · Bulletproof Collection · Deep Scan · Kill Engine
Berry Sentinel monitora todas as conexões de rede ativas no seu sistema e analisa o comportamento dos processos que as geram para detectar atividade maliciosa — sem usar bancos de dados de assinaturas de antivírus nem listas de IPs bloqueados.
Detecta reverse shells, webshells, RATs, beacons C2 e frameworks como Meterpreter, Cobalt Strike, Sliver ou Empire observando como se comporta um processo: se um interpretador Python tem seu stdin conectado a um socket remoto, isso é suspeito mesmo que o IP seja desconhecido.
╔══════════════════════════════════════════════════════════════════════════════════╗
║ 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) ║
╚══════════════════════════════════════════════════════════════════════════════════╝
psutil opcional para cobertura extra# Clonar el repositorio
git clone https://github.com/dereeqw/BerrySentinel.git
cd BerrySentinel
# (Opcional pero recomendado) instalar psutil
pip install psutil
# Ejecutar
python3 BerrySentinel.py
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui # curses puede no estar disponible en Termux
curl -O https://raw.githubusercontent.com/dereeqw/BerrySentinel/main/BerrySentinel.py
python3 BerrySentinel.py
python3 BerrySentinel.py [opções]
Opções:
--all, -a Incluir conexões locais/loopback (além de remotas)
--interval N, -i N Atualizar a cada N segundos (padrão: 2, mín: 0.5)
--log FILE, -l FILE Salvar alertas em arquivo (formato JSONL)
--json, -j Exportar JSON completo ao sair
--whitelist LISTA IPs ou CIDRs a ignorar, separados por vírgula
--no-color Sem cores ANSI (útil para pipes ou logs)
--verbose, -v Mostrar todas as conexões, não apenas as suspeitas
--top N, -t N Máximo de linhas na tabela (padrão: 50)
--diag, -d Diagnóstico: mostra quais métodos de coleta funcionam
--no-tui Modo legado sem curses (scroll clássico, mais portável)
--version, -V Mostrar versão e sair
# TUI interactivo — modo recomendado
python3 BerrySentinel.py
# Deep scan con root (accede a memoria de procesos)
sudo python3 BerrySentinel.py --all
# Guardar alertas y exportar JSON al terminar
python3 BerrySentinel.py --log /var/log/sentinel.log --json
# Ignorar red interna y refrescar cada 5 segundos
python3 BerrySentinel.py --whitelist 192.168.0.0/16,10.0.0.0/8 --interval 5
# Modo texto para usar en scripts o por SSH sin terminal interactiva
python3 BerrySentinel.py --no-tui --no-color | tee monitoring.txt
# Ver qué métodos de colección funcionan en el sistema actual
python3 BerrySentinel.py --diag --no-tui
# Solo alertas graves, actualización cada 10 segundos, guardar log
sudo python3 BerrySentinel.py --all --interval 10 --log sentinel.log --json
| Tecla | Ação |
|---|---|
↑ / ↓ | Navegar entre conexões |
d / D | Ver painel de detalhes da conexão selecionada |
k / K | Matar processo (solicita confirmação do PID) |
f / F | Alternar filtro de severidade: ALL → MÉDIO → ALTO → CRÍTICO |
r | Forçar atualização imediata |
ESC | Fechar painel de detalhes ou cancelar operação |
q | Sair |
Cada conexão recebe um score de 0 a 100 conforme os indicadores detectados:
| Indicador | Pontos | Tag |
|---|---|---|
| stdin/stdout → socket | +55 | FD→SOCK |
| Shell binário com conexão remota | +40 | SHELL→NET |
| Webshell (shell como filho do Apache/Nginx) | +35 | WEBSHELL |
| Bind shell em porta alta | +35 | BIND-SHELL |
| Uso de netcat/socat | +35 | NETCAT |
Redirecionamento /dev/tcp ou mkfifo | +40 | PIPE-REDIR |
| Executável apagado do disco | +25 | EXE-DEL! |
Executável em /tmp ou /dev/shm | +15 | EXE-TMP |
| Beacon detectado (conexão cíclica) | +25×conf | BCN(60s) |
| Assinatura Meterpreter | +55 | SIG:Meterpreter |
| Assinatura Cobalt Strike | +60 | SIG:CobaltStrike |
| Assinatura Sliver | +58 | SIG:Sliver |
| Regiões de memória RWX | +20 | RWX(N) |
| LD_PRELOAD ou HISTFILE=/dev/null | +10 | ENV:LD_PRELOAD |
| Interpretador de scripts conectado | +25 | INTERP→NET |
| eval/exec na linha de comando | +18 | EVAL |
| PowerShell remoto (IEX, DownloadString) | +30 | PS-REM |
Severidade conforme score:
| Score | Severidade | Color |
|---|---|---|
| ≥ 65 | CRÍTICO | 🔴 Rojo brillante |
| ≥ 45 | ALTO | 🟠 Naranja |
| ≥ 25 | MÉDIO | 🟡 Amarelo |
| ≥ 8 | BAIXO | 🔵 Ciano |
| < 8 | INFO | ⚪ Cinza |
Berry Sentinel inclui assinaturas para os seguintes frameworks (avaliação por portas, nome de processo, linha de comando e padrões de beacon):
| Framework | Bônus de score | Indicadores chave |
|---|---|---|
| Meterpreter | +55 | Porta 4444, processo ruby/msfconsole |
| Cobalt Strike | +60 | Porta 50050, beacon ~60s, processo java |
| Sliver | +58 | Porta 31337/8888, beacon ~60s |
| Empire | +55 | Porta 1234/7777, PowerShell -enc |
| Brute Ratel | +62 | Porta 2083, processo badger |
| Havoc | +58 | Porta 40056, demon.x64/x86 |
| Pupy RAT | +52 | Porta 9999, pupy.py |
| Merlin | +54 | Porta 8443, merlin-agent |
| Covenant | +54 | Porta 7443, GruntHTTP |
| PoshC2 | +52 | FComServer, ImplantCore |
| Mythic | +56 | Porta 7443, poseidon/apfell |
| QuasarRAT | +50 | Porta 4782-4785 |
| NetcatShell | +45 | socat exec bash, pty |
| DNS-C2 | +40 | Porta 53, dnscat/iodine |
Cada alerta é registrada como uma linha JSON independente: