
Berry Sentinel v5.0 — Rilevatore comportamentale avanzato di C2 e reverse shell per sistemi Linux/Windows/Unix. Include analisi delle connessioni in tempo reale, punteggio euristico, rilevamento delle firme dei framework C2, analisi degli intervalli di beacon e un'interfaccia TUI interattiva basata su curses con motore di terminazione dei processi.
Rilevatore comportamentale di connessioni C2 (Command & Control) in tempo reale
Zero-signature · Bulletproof Collection · Deep Scan · Kill Engine
Berry Sentinel monitora tutte le connessioni di rete attive sul tuo sistema e analizza il comportamento dei processi che le generano per rilevare attività malevola — senza usare database di firme antivirus né liste di IP bloccati.
Rileva reverse shell, webshell, RAT, beacon C2 e framework come Meterpreter, Cobalt Strike, Sliver o Empire osservando come si comporta un processo: se un interprete Python ha il suo stdin connesso a un socket remoto, quello è sospetto anche se l'IP è sconosciuto.
╔══════════════════════════════════════════════════════════════════════════════════╗
║ 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 opzionale per copertura extra# Clonare il repository
git clone https://github.com/dereeqw/BerrySentinel.git
cd BerrySentinel
# (Opzionale ma raccomandato) installare psutil
pip install psutil
# Eseguire
python3 BerrySentinel.py
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui # curses potrebbe non essere disponibile su Termux
curl -O https://raw.githubusercontent.com/dereeqw/BerrySentinel/main/BerrySentinel.py
python3 BerrySentinel.py
python3 BerrySentinel.py [opzioni]
Opzioni:
--all, -a Includi connessioni locali/loopback (oltre a remote)
--interval N, -i N Aggiornamento ogni N secondi (default: 2, min: 0.5)
--log FILE, -l FILE Salva avvisi in un file (formato JSONL)
--json, -j Esporta JSON completo all'uscita
--whitelist LISTA IP o CIDR da ignorare, separati da virgola
--no-color Senza colori ANSI (utile per pipe o log)
--verbose, -v Mostra tutte le connessioni, non solo quelle sospette
--top N, -t N Massimo righe nella tabella (default: 50)
--diag, -d Diagnostica: mostra quali metodi di raccolta funzionano
--no-tui Modalità legacy senza curses (scroll classico, più portabile)
--version, -V Mostra versione ed esci
# TUI interattivo — modalità raccomandata
python3 BerrySentinel.py
# Deep scan con root (accede alla memoria dei processi)
sudo python3 BerrySentinel.py --all
# Salvare avvisi ed esportare JSON al termine
python3 BerrySentinel.py --log /var/log/sentinel.log --json
# Ignorare rete interna e aggiornare ogni 5 secondi
python3 BerrySentinel.py --whitelist 192.168.0.0/16,10.0.0.0/8 --interval 5
# Modalità testo per usare in script o via SSH senza terminale interattivo
python3 BerrySentinel.py --no-tui --no-color | tee monitoring.txt
# Vedere quali metodi di raccolta funzionano sul sistema corrente
python3 BerrySentinel.py --diag --no-tui
# Solo avvisi gravi, aggiornamento ogni 10 secondi, salvare log
sudo python3 BerrySentinel.py --all --interval 10 --log sentinel.log --json
| Tasto | Azione |
|---|---|
↑ / ↓ | Navigare tra le connessioni |
d / D | Mostrare pannello dettagli della connessione selezionata |
k / K | Uccidere processo (chiede conferma del PID) |
f / F | Ciclare filtro di gravità: ALL → MEDIO → ALTO → CRÍTICO |
r | Forzare aggiornamento immediato |
ESC | Chiudere pannello dettagli o cancellare operazione |
q | Uscire |
Ogni connessione riceve un punteggio da 0 a 100 in base agli indicatori rilevati:
| Indicatore | Punti | Tag |
|---|---|---|
| stdin/stdout → socket | +55 | FD→SOCK |
| Shell binaria con connessione remota | +40 | SHELL→NET |
| Webshell (shell come figlio di Apache/Nginx) | +35 | WEBSHELL |
| Bind shell su porta alta | +35 | BIND-SHELL |
| Uso di netcat/socat | +35 | NETCAT |
Redirezione /dev/tcp o mkfifo | +40 | PIPE-REDIR |
| Eseguibile cancellato dal disco | +25 | EXE-DEL! |
Eseguibile in /tmp o /dev/shm | +15 | EXE-TMP |
| Beacon rilevato (connessione ciclica) | +25×conf | BCN(60s) |
| Firma Meterpreter | +55 | SIG:Meterpreter |
| Firma Cobalt Strike | +60 | SIG:CobaltStrike |
| Firma Sliver | +58 | SIG:Sliver |
| Regioni di memoria RWX | +20 | RWX(N) |
| LD_PRELOAD o HISTFILE=/dev/null | +10 | ENV:LD_PRELOAD |
| Interprete di script connesso | +25 | INTERP→NET |
| eval/exec in linea di comando | +18 | EVAL |
| PowerShell remoto (IEX, DownloadString) | +30 | PS-REM |
Gravità in base al punteggio:
| Punteggio | Gravità | Colore |
|---|---|---|
| ≥ 65 | CRITICO | 🔴 Rosso brillante |
| ≥ 45 | ALTO | 🟠 Arancione |
| ≥ 25 | MEDIO | 🟡 Giallo |
| ≥ 8 | BASSO | 🔵 Ciano |
| < 8 | INFO | ⚪ Grigio |
Berry Sentinel include firme per i seguenti framework (valutazione per porte, nome del processo, linea di comando e pattern di beacon):
| Framework | Bonus punteggio | Indicatori chiave |
|---|---|---|
| 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 |
Ogni avviso viene registrato come una linea JSON indipendente: