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
beacon-hunter — Détecte les balises C2 phi-structured qui contournent RITA et les détecteurs standard regularity-based. | Kitploit
Outils/GitHubGitHub/mrcord77/beacon-hunter
Sécurité RéseauTests d'IntrusionCommandement et ContrôleRenseignement sur les MenacesDétection d'IntrusionArticles et RechercheApprentissage et ÉducationDétection d'Anomalies
GitHubmrcord77/beacon-hunter

beacon-hunter

Détecte les balises C2 phi-structured qui contournent RITA et les détecteurs standard regularity-based.

Voir le dépôt
9il y a 2 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 →
Partager

Beacon Hunter

Détection de C2 structuré non périodique par récurrence additive

Beacon Hunter détecte les beaconings de commande et contrôle qui utilisent une planification par récurrence additive compatible avec le nombre d'or — un modèle temporel croissant et non périodique où chaque intervalle inter-connexion est approximativement égal à la somme des deux précédents. Cette famille échappe intentionnellement aux détecteurs basés sur la régularité (RITA, AC-Hunter), tout en restant structurellement identifiable via un test de récurrence à deux portes.

"Un beacon n'a pas besoin d'être périodique pour être structuré."


Démarrage rapide

Pipeline

Pipeline à deux portes de Beacon Hunter : la porte 1 filtre par regroupement basé sur le ratio phi, la porte 2 teste la structure de récurrence additive.

root@kitploit:~
pip install -r requirements.txt

# Exécution sur un fichier conn.log de Zeek
python beacon_hunter.py /chemin/vers/conn.log

# Reproduction de tous les résultats de l'article
python run_full_evaluation.py --quick    # ~2 min, ignore la suite complète de preuves
python run_full_evaluation.py           # ~5 min, pipeline complet

# Exécution des tests unitaires
pytest tests/

# Validation de bout en bout (vérifie les affirmations de l'article)
python validate.py

Fonctionnement

Beacon Hunter est un pipeline à deux portes opérant sur les journaux de connexion Zeek.

Porte 1 — Test de ratio
Regroupe les connexions d'une même paire source/destination et calcule les ratios d'intervalles inter-connexion (ICI) consécutifs. Le test est réussi si le ratio moyen est proche de phi (φ = 1,618) à ±0,20 près et si la variabilité du ratio (CV) est inférieure à 0,50. Minimum : 5 intervalles.

Porte 2 — Test de récurrence additive
Teste si ICI[n+2] ≈ ICI[n+1] + ICI[n] est vérifié pour tous les triplets consécutifs, en utilisant l'erreur relative moyenne par rapport à une distribution nulle de permutation sur 500 itérations. Le test est réussi si l'erreur moyenne < 0,20 et p < 0,05. Cette porte rejette la croissance en loi de puissance (résidu 0,40) et le backoff exponentiel (0,56) qui passent la porte 1 par coïncidence.

Étiquettes de classification

Enveloppe d'acceptation : ratios géométriques dans [1,45 ; 1,80], confirmée empiriquement par balayage des limites.


Architecture

root@kitploit:~
beacon_hunter_github/
├── beacon_hunter.py          # Détecteur CLI — point d'entrée
├── detectors.py              # Fonctions de porte pures et sans état (556 lignes)
├── validate.py               # Validation de bout en bout en 32 vérifications
├── run_full_evaluation.py    # Pipeline de reproduction en une commande
├── requirements.txt          # Dépendances épinglées
├── evidence/
│   ├── evidence_suite.py     # Les 6 batteries d'évaluation (Expériences A-J)
│   ├── rita_comparison.py    # Ligne de base de périodicité style RITA + comparaison avec RITA réel
│   ├── roc_and_ci.py         # Courbe ROC (AUC=0,900) + Intervalle de Wilson
│   ├── generate_figures.py   # Figures 1-7 (PNG + PDF)
│   └── *.json                # Résultats pré-calculés
├── data/
│   ├── pcaps/                # PCAPs de vérité terrain (voir Notes sur les jeux de données ci-dessous)
│   └── zeek/                 # Fichiers conn.log de Zeek
├── figures/                  # fig1-fig8 PNG + PDF (séquentiel)
├── paper/                    # Article complet avec annexes A-G
├── reports/                  # Rapports de sortie de Beacon Hunter + sortie réelle de RITA v5.1.2
├── tests/
│   └── test_detectors.py     # 34 tests unitaires (34/34 réussis)
├── tools/
│   ├── fib_beacon_client.py  # Générateur de trafic beacon Fibonacci
│   ├── fib_beacon_server.py
│   └── uwf_to_connlog.py     # Convertisseur parquet UWF-ZeekData22 → conn.log Zeek
└── archive/                  # Scripts obsolètes (legacy_detectors.py, anciens scanners)

Pipeline de preuves


Notes sur les jeux de données

Pour l'évaluation UWF-ZeekData22 : télécharger depuis https://datasets.uwf.edu/data/ et convertir avec tools/uwf_to_connlog.py.


Résultats clés


Validation opérationnelle

Ces résultats proviennent de l'exécution de Beacon Hunter sur du trafic d'entreprise réel :

Comparaison avec RITA v5.1.2 réel (reports/rita_output_v5.1.2_24h.txt) :
Les deux outils détectent le beacon périodique avec gigue de 30 secondes. RITA le note 0,617 Faible sévérité parmi 50 autres alertes Critiques/Hautes. Beacon Hunter le classe JITTERED_BEACON. Un planning de récurrence additive pure obtient un score inférieur à 0,35 dans RITA — prouvé analytiquement dans l'Annexe A, confirmé empiriquement.

UWF-ZeekData22 (1 million de connexions d'entreprise réelles) :
0/12 083 flux analysés signalés comme ADDITIVE_RECURRENCE_BEACON sur la semaine bénigne. 0/1 995 sur la semaine d'attaque Recon/Découverte (correct — les scans de ports ne sont pas des beacongings). Les 4 beacons Fibonacci injectés détectés avec 0–25% de gigue.

Contexte Zeek d'entreprise sur 24 heures :
1/243 flux analysés signalé — IPv6 NDP à 34% heuristique de triage analyste, marginal et attribuable au protocole.


Reproduction

Voir EXPECTED_RESULTS.md pour les résultats numériques exacts attendus.

root@kitploit:~
# Vérification rapide de toutes les affirmations de l'article :
python validate.py

# Pipeline complet (génère toutes les sorties à partir de zéro) :
python run_full_evaluation.py

# Attendu : 32/32 vérifications de validation réussies, AUC ROC=0,900, gigue 20%=détection à 100%

Limitations

  • Aucun malware réel confirmé utilisant une planification compatible phi (le modèle de menace est théorique)
  • Taux de faux positifs caractérisé sur deux jeux de données réels ; une évaluation multi-semaines à l'échelle de l'entreprise reste un travail futur
  • La surface de détection est volontairement étroite — le détecteur cible une famille structurelle temporelle

Citation

Si vous utilisez ce travail, veuillez citer l'article associé :

Cordero, A. (2026). Detecting Non-Periodic Structured C2 Beaconing via Additive Recurrence. RepoSignal.io LLC. https://doi.org/10.5281/zenodo.20431555

DOI


Licence

AGPL-3.0. Voir LICENSE.

Licence commerciale disponible via RepoSignal.io LLC.

Télécharger l’outil
ÉtiquetteSignification
ADDITIVE_RECURRENCE_BEACONLes deux portes réussissent — planification d'intervalle croissant compatible phi
JITTERED_BEACONPériodique avec gigue — réussit le test de ratio, échoue la récurrence
REGULAR_BEACONBeacon à intervalle constant
BACKGROUNDAucune structure de beaconing détectée
INSUFFICIENT_DATAMoins de 5 intervalles
ScriptExpériencesSortie
evidence/evidence_suite.pyA (synthétique), B (PCAP labo), C (gigue AC), E (batterie antagoniste), F (balayage gigue), G (sensibilité longueur), H (distribution nulle), I (limite phi), J (carte logistique)evidence_results.json
evidence/roc_and_ci.pyG.5 (ROC, AUC=0,900), G (Intervalle de Wilson [0,992 ; 1,000])roc_results.json
evidence/rita_comparison.pyD (comparaison ligne de base style RITA)rita_comparison_results.json
evidence/generate_figures.pyFigures 1-7figures/fig*.png/pdf
FichierTypeDescription
data/pcaps/fib_beacon_validation.pcapngVérité terrainPCAP beacon Fibonacci généré en laboratoire ; utilisé dans l'Expérience B
data/pcaps/jit_var_d30_j0_1h.pcapVérité terrainBeacon constant 30s, 0% de gigue, 1 heure
data/pcaps/jit_var_d30_j10_1h.pcapVérité terrainBeacon 30s, 10% de gigue, 1 heure
data/pcaps/jit_var_d30_j99_1h.pcapVérité terrainBeacon 30s, 99% de gigue (bruit pur), 1 heure
data/zeek/delay_var_d30_j25_combined.logRéel + injectéJournal conn.log Zeek d'entreprise de 2 heures avec beacon injecté de 30s + 25% de gigue
data/zeek/delay_var_d30_j25_24h_combined.logRéel + injectéVersion 24 heures du ci-dessus
reports/rita_output_v5.1.2_24h.txtSortie réelle de RITASortie binaire réelle de RITA v5.1.2 sur le jeu de données 24h (100 flux notés)
ExpérienceRésultat
Détection synthétique (Exp A)3/3 classes de beacon correctes, 0 FP
PCAP labo (Exp B)ADDITIVE_RECURRENCE_BEACON, rec_err=0,000, p<0,002
Balayage gigue (Exp F)Détection à 100% jusqu'à 20% de gigue ; chute à 30%
Loi de puissance vs backoff exponentiel (Exp E)Résidus 0,40 et 0,56 > seuil 0,20 ; rejetés correctement
AUC ROC (Exp G.5)0,900 ; TPR=1,000 à FPR=0,071
RITA v5.1.2 réel sur beacon avec gigue0,617 Faible sévérité (les deux outils détectent ; classification différente)
UWF-ZeekData22 (1M flux, bénin)0/12 083 flux analysés signalés ARB — 0,00% FPR
Batterie carte logistique (Exp J)Logistique pur : 0% de détection ; biais phi ≤20% de bruit : 100%
Balayage limite phi (Exp I)Fenêtre d'acceptation [1,45 ; 1,80] confirmée