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
batea — Classement des périphériques réseau basé sur l'IA et piloté par le contexte | Kitploit
Outils/GitHubGitHub/delvelabs/batea
Analyse des VulnérabilitésCollecte d'InformationsSécurité RéseauApprentissage AutomatiqueDétection d'Anomalies
GitHubdelvelabs/batea

batea

Classement des périphériques réseau basé sur l'IA et piloté par le contexte

Voir le dépôt
30347il y a 4 ansVérifié par Kitploit

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
Site web

Python package

logo

Batea

Une batea est une grande poêle peu profonde en bois ou en fer traditionnellement utilisée par les chercheurs d'or pour laver le sable et le gravier afin de récupérer des pépites d'or.

Batea est un framework de classement d'appareils réseau basé sur le contexte, utilisant la famille d'algorithmes d'apprentissage automatique de détection d'anomalies. L'objectif de Batea est de permettre aux équipes de sécurité de filtrer automatiquement les actifs réseau intéressants dans les grands réseaux en utilisant les rapports de scan nmap. Nous appelons ceux-ci des Gold Nuggets.

Pour plus d'informations sur le Gold Nuggeting et la science derrière Batea, consultez notre livre blanc ici

Comment ça fonctionne

Batea fonctionne en construisant une représentation numérique (numpy) de tous les appareils à partir de vos rapports nmap (XML) puis en appliquant des méthodes de détection d'anomalies pour découvrir les gold nuggets. Il est facilement extensible en ajoutant des caractéristiques spécifiques, ou des traits intéressants, à la représentation numérique des éléments du réseau.

La représentation numérique du réseau est construite à l'aide de caractéristiques (features), qui sont inspirées par l'expertise de la communauté de la sécurité. Les caractéristiques agissent comme des éléments d'intuition, et les méthodes de détection d'anomalies non supervisées permettent d'utiliser le contexte de l'actif réseau, ou la description complète du réseau, comme élément central de l'algorithme de classement. L'algorithme exact utilisé est Isolation Forest (https://en.wikipedia.org/wiki/Isolation_forest)

Les modèles d'apprentissage automatique sont le cœur de Batea. Les modèles sont des algorithmes entraînés sur l'ensemble des données et utilisés pour prédire un score sur les mêmes (et d'autres) points de données (appareils réseau). Batea permet également la persistance des modèles. C'est-à-dire que vous pouvez réutiliser des modèles pré-entraînés et exporter des modèles entraînés sur de grands ensembles de données pour une utilisation ultérieure.

Usage

root@kitploit:~
# Complete info
$ sudo nmap -A 192.168.0.0/16 -oX output.xml

# Partial info
$ sudo nmap -O -sV 192.168.0.0/16 -oX output.xml


$ batea -v output.xml

Installation

root@kitploit:~
$ git clone [email protected]:delvelabs/batea.git
$ cd batea
$ python3 setup.py sdist
$ pip3 install -r requirements.txt
$ pip3 install -e .

Installation pour les développeurs

root@kitploit:~
$ git clone [email protected]:delvelabs/batea.git
$ cd batea
$ python3 -m venv batea/
$ source batea/bin/activate
$ python3 setup.py sdist
$ pip3 install -r requirements-dev.txt
$ pip3 install -e .
$ pytest

Exemple d'utilisation

root@kitploit:~
# simple use (output top 5 gold nuggets with default format)
$ batea nmap_report.xml

# Output top 3
$ batea -n 3 nmap_report.xml

# Output all assets
$ batea -A nmap_report.xml

# Using multiple input files
$ batea -A nmap_report1.xml nmap_report2.xml

# Using wildcards (default xsl)
$ batea ./nmap*.xml
$ batea -f csv ./assets*.csv

# You can use batea on pretrained models and export trained models.

# Training, output and dumping model for persistence
$ batea -D mymodel.batea nmap_report.xml

# Using pretrained model
$ batea -L mymodel.batea nmap_report.xml

# Using preformatted csv along with xml files
$ batea -x nmap_report.xml -c portscan_data.csv

# Adjust verbosity
$ batea -vv nmap_report.xml

Comment ajouter une caractéristique

Batea fonctionne en attribuant des caractéristiques numériques à chaque hôte dans le rapport (ou série de rapports). Les hôtes sont des objets Python dérivés du rapport nmap. Ils consistent en la liste d'attributs suivante : [ipv4, hostname, os_info, ports] où ports est une liste d'objets port. Chaque port a la liste d'attributs suivante : [port, protocol, state, service, software, version, cpe, scripts], tous par défaut à None.

Les caractéristiques sont des objets hérités de la classe FeatureBase qui instancient une méthode spécifique _transform. Cette méthode prend toujours la liste de tous les hôtes en entrée et retourne une fonction lambda qui mappe chaque hôte à une colonne numpy de valeurs numériques (l'ordre des hôtes est conservé). La colonne est ensuite ajoutée à la représentation matricielle du rapport. Les caractéristiques doivent produire des valeurs numériques correctes (floats ou entiers) et rien d'autre.

La plupart des transformations de caractéristiques sont implémentées à l'aide d'une simple fonction lambda. Assurez-vous simplement de définir une valeur numérique par défaut pour chaque hôte pour la compatibilité du modèle.

Exemple :

root@kitploit:~

class CustomInterestingPorts(FeatureBase):
    def __init__(self):
        super().__init__(name="some_custom_interesting_ports")

    def _transform(self, hosts):
      """This method takes a list of hosts and returns a function that counts the number
      of host ports member from a predefined list of "interesting" ports, defaulting to 0.

      Parameters
      ----------
      hosts : list
          The list of all hosts

      Returns
      -------
      f : lambda function
          Counts the number of ports in the defined list.
      """
        member_ports = [21, 22, 25, 8080, 8081, 1234]
        f = lambda host: len([port for port in host.ports if port.port in member_ports])
        return f

Vous pouvez ensuite ajouter la caractéristique au rapport en utilisant la méthode NmapReport.add_feature dans batea/__init__.py

root@kitploit:~
from .features.basic_features import CustomInterestingPorts

def build_report():
    report = NmapReport()
    #[...]
    report.add_feature(CustomInterestingPorts())

    return report

Utilisation de données tabulaires précalculées (CSV)

Il est possible d'utiliser des données prétraitées pour entraîner le modèle ou pour la prédiction. Les données doivent être indexées par (ipv4, port) avec une combinaison unique par ligne. Le type de données doit être proche de ce que vous attendez de la version XML d'un rapport nmap. Une colonne doit utiliser l'un des noms suivants, mais vous n'êtes pas obligé de tous les utiliser. L'analyseur syntaxique utilise par défaut des valeurs nulles si une colonne est absente.

root@kitploit:~
  'ipv4',
  'hostname',
  'os_name',
  'port',
  'state',
  'protocol',
  'service',
  'software_banner',
  'version',
  'cpe',
  'other_info'

Exemple :

root@kitploit:~
ipv4,hostname,os_name,port,state,protocol,service,software_banner
10.251.53.100,internal.delvesecurity.com,Linux,110,open,tcp,rpcbind,"program version   port/proto  service100000  2,3,4        111/tcp  rpcbind100000  2,3,4    "
10.251.53.100,internal.delvesecurity.com,Linux,111,open,tcp,rpcbind,
10.251.53.188,serious.delvesecurity.com,Linux,6000,open,tcp,X11,"X11Probe: CentOS"

Sortie de la représentation numérique

Pour le data scientist qui sommeille en vous, ou simplement pour le plaisir et le profit, vous pouvez afficher la matrice numérique avec la colonne de score au lieu de la sortie habituelle. Cela peut être utile pour une analyse de données plus approfondie et à des fins de débogage.

root@kitploit:~
$ batea -oM network_matrix nmap_report.xml
Télécharger l’outil