Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
batea — KI-basiertes, kontextgesteuertes Ranking von Netzwerkgeräten | Kitploit
Tools/GitHubGitHub/delvelabs/batea
SchwachstellenanalyseInformationsbeschaffungNetzwerksicherheitMaschinelles LernenAnomalieerkennung
GitHubdelvelabs/batea

batea

KI-basiertes, kontextgesteuertes Ranking von Netzwerkgeräten

Repository anzeigen
30347vor 4 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

Python package

logo

Batea

Eine Batea ist eine große, flache Pfanne aus Holz oder Eisen, die traditionell von Goldsuchern verwendet wird, um Sand und Kies zu waschen und Goldnuggets zu gewinnen.

Batea ist ein kontextgesteuertes Framework zur Bewertung von Netzwerkgeräten, das auf der Familie der Algorithmen zur Anomalieerkennung im maschinellen Lernen basiert. Das Ziel von Batea ist es, Sicherheitsteams zu ermöglichen, interessante Netzwerkressourcen in großen Netzwerken automatisch zu filtern, indem Nmap-Scanberichte verwendet werden. Wir nennen diese Gold Nuggets.

Weitere Informationen über Gold Nuggeting und die Wissenschaft hinter Batea finden Sie in unserem Whitepaper hier.

Funktionsweise

Batea funktioniert, indem es eine numerische Darstellung (numpy) aller Geräte aus Ihren Nmap-Berichten (XML) erstellt und dann Methoden zur Anomalieerkennung anwendet, um die Goldnuggets zu finden. Es ist leicht erweiterbar, indem spezifische Merkmale oder interessante Eigenschaften zur numerischen Darstellung der Netzwerkelemente hinzugefügt werden.

Die numerische Darstellung des Netzwerks wird mithilfe von Merkmalen (Features) erstellt, die von der Expertise der Sicherheitscommunity inspiriert sind. Die Merkmale fungieren als Elemente der Intuition, und die unüberwachten Anomalieerkennungsmethoden ermöglichen es, den Kontext des Netzwerkgeräts oder die vollständige Beschreibung des Netzwerks als zentralen Baustein des Bewertungsalgorithmus zu nutzen. Der verwendete Algorithmus ist Isolation Forest (https://en.wikipedia.org/wiki/Isolation_forest).

Modelle des maschinellen Lernens sind das Herzstück von Batea. Modelle sind Algorithmen, die auf dem gesamten Datensatz trainiert werden und verwendet werden, um einen Score für dieselben (und andere) Datenpunkte (Netzwerkgeräte) vorherzusagen. Batea ermöglicht auch die Persistenz von Modellen. Das bedeutet, Sie können vortrainierte Modelle wiederverwenden und auf großen Datensätzen trainierte Modelle zur weiteren Verwendung exportieren.

Verwendung

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 .

Entwicklerinstallation

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

Beispielverwendung

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

Hinzufügen eines Merkmals (Feature)

Batea funktioniert, indem jedem Host im Bericht (oder in einer Reihe von Berichten) numerische Merkmale zugewiesen werden. Hosts sind Python-Objekte, die aus dem Nmap-Bericht abgeleitet werden. Sie bestehen aus der folgenden Liste von Attributen: [ipv4, hostname, os_info, ports], wobei ports eine Liste von Port-Objekten ist. Jeder Port hat die folgende Liste von Attributen: [port, protocol, state, service, software, version, cpe, scripts], alle standardmäßig None.

Merkmale sind Objekte, die von der FeatureBase-Klasse erben und eine spezifische _transform-Methode instanziieren. Diese Methode nimmt immer die Liste aller Hosts als Eingabe und gibt eine Lambda-Funktion zurück, die jeden Host auf eine numpy-Spalte mit numerischen Werten abbildet (die Host-Reihenfolge bleibt erhalten). Die Spalte wird dann an die Matrixdarstellung des Berichts angehängt. Merkmale müssen korrekte numerische Werte (Fließkommazahlen oder Ganzzahlen) und nichts anderes ausgeben.

Die meisten Merkmalstransformationen werden mit einer einfachen Lambda-Funktion implementiert. Stellen Sie sicher, dass Sie für jeden Host einen numerischen Wert standardmäßig setzen, um die Modellkompatibilität zu gewährleisten.

Beispiel:

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

Sie können das Merkmal dann zum Bericht hinzufügen, indem Sie die Methode NmapReport.add_feature in batea/__init__.py verwenden.

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

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

    return report

Verwenden vorkalkulierter tabellarischer Daten (CSV)

Es ist möglich, vorverarbeitete Daten zum Trainieren des Modells oder für Vorhersagen zu verwenden. Die Daten müssen nach (ipv4, port) indiziert sein, mit einer eindeutigen Kombination pro Zeile. Der Datentyp sollte dem ähneln, was Sie von der XML-Version eines Nmap-Berichts erwarten. Eine Spalte muss einen der folgenden Namen verwenden, aber Sie müssen nicht alle verwenden. Der Parser standardisiert auf Nullwerte, wenn eine Spalte fehlt.

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

Beispiel:

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"

Ausgabe der numerischen Repräsentation

Für den Data Scientist in Ihnen, oder einfach aus Spaß und Gewinn, können Sie die numerische Matrix zusammen mit der Score-Spalte anstelle der normalen Ausgabe ausgeben. Dies kann für weitere Datenanalysen und Debugging-Zwecke nützlich sein.

root@kitploit:~
$ batea -oM network_matrix nmap_report.xml
Tool herunterladen