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
Tools/GitHubGitHub/pmaynard/ics-testbed-framework
Paket-Sniffing & AnalyseSCADA/ICS-SicherheitNetzwerksicherheitPenetrationstestsRed TeamingLabs & PraxisTop in SCADA/ICS-Sicherheit Nr.7
GitHubpmaynard/ics-testbed-framework

ICS-TestBed-Framework

Stellt realistische virtuelle SCADA/ICS-Testumgebungen mit IEC 60870-5-104- und OPC-UA-Knoten bereit, die Angriffssimulationen, legitime Paketerzeugung und Red-Team-Sicherheitsübungen ermöglichen.

Repository anzeigen
702630vor 7 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

ICS TestBed Framework

Es wird ein skalierbares Framework vorgeschlagen, das automatisch eine Anzahl virtueller Maschinen lokal (oder remote) bereitstellt, die ein Supervisory Control And Data Acquisition (SCADA)-Netzwerk nachbilden. Dazu gehören mehrere virtuelle Hosts, die Sensoren und Aktuatoren emulieren, mit einer Human Machine Interface (HMI), die die Hosts steuert. Das vorgestellte Framework enthält eine Sammlung von Automatisierungsskripten, die eine variable Anzahl virtueller Maschinen erstellen und bereitstellen, die entweder als Remote Terminal Unit (RTU), HMI oder Data Historian vorkonfiguriert sind. Die vorgestellte Arbeit umfasst eine standardkonforme Implementierung von IEC 60870-5-104 (IEC104) und OPC Unified Architecture (OPC-UA) sowie die Fähigkeit, weitere Protokolle wie Modbus-TCP (Modbus) und IEC61850 zu unterstützen.

Dies ermöglicht es Forschenden, Testumgebungen aufzubauen, die so konfiguriert werden können, dass sie reale Bereitstellungen von SCADA-Netzwerken nachbilden. Das Framework basiert auf Open-Source-Bibliotheken und wird unter der von der Free Software Foundation anerkannten Lizenz GNU General Public License Version 3 veröffentlicht.

Beispielbetrieb

asciicast

Mögliche Anwendungsfälle

  • Paketerzeugung: Das Ziel des ersten Anwendungsfalls ist es, Netzwerkverkehr von einer großen Anzahl von Geräten mit hoher Domänentreue zu erzeugen, wobei idealerweise Prozessinformationen in den Verkehr einbezogen werden. Wie bereits erwähnt, ist die Erstellung von Datensätzen aus einem Live-System nicht immer möglich: Sie ist arbeitsintensiv, man muss einen geeigneten Abhörpunkt finden und die Genehmigung der Anlagenbetreiber einholen. Dies kann durch den Anlagenbetrieb und -richtlinien eingeschränkt sein, da Eingriffe in ein funktionierendes Netzwerk zu unvorhergesehenen Umständen führen und identifizierbare Informationen preisgeben können. Die Paketerzeugung kann verwendet werden, um geplante Änderungen am SCADA-Netzwerk zu testen, bevor sie im Live-System bereitgestellt werden. Sie kann auch Belastungstests von Geräten mit legitim aussehenden Paketen durchführen. Interessante Forschungsanwendungsfälle umfassen Experimente mit verschiedenen Netzwerkparadigmen wie ICN oder IPv6, die bisher nicht auf ICS-Netzwerke angewendet wurden.

  • Angriffssimulationen: Dieser Fall betrachtet die Simulation komplexer Angriffe auf SCADA-Systeme und zielt darauf ab, eine Risikoanalyse eines nachgebildeten ICS-Netzwerks durchzuführen, ohne das Live-System negativ zu beeinflussen. Die Testumgebung kann von Red Teams genutzt werden, um zu versuchen, Testumgebungsknoten zu kompromittieren, während die Konsequenzen analysiert und eine vollständige Paketerfassungsanalyse durchgeführt wird. Wenn sie erfolgreich sind, kann der Prozess mit zusätzlichen Gegenmaßnahmen erneut durchgeführt werden, was das Testen der neuen Gegenmaßnahmen im Kontext der Sicherheit und ihrer Auswirkungen auf die Anlagenprozesse ermöglicht. Die Netzwerkerfassungen der Red-Team-Übung können als offene Datensätze zur Verifizierung von IDS veröffentlicht werden, die von anderen Forschenden reproduziert und bestätigt werden können.

  • Agenten-Benchmarking: Das Ziel dieses Anwendungsfalls ist es, das Benchmarking von hostbasierten Agentensystemen zu unterstützen, die aufgrund von Herstellereinschränkungen typischerweise nicht auf Live-Systemen durchgeführt werden. Sofern der Agent nicht von den Herstellern vertrauenswürdig eingestuft wird, ist seine Bereitstellung oft verboten, da die Gefahr eines Vertragsbruchs besteht. Durch die Verwendung einer Testumgebung, die den realen Industriestandort genau abbildet, ist es möglich, den Einsatz von agentenbasierter Software zu überwachen, ohne Störungen zu verursachen. Vorausgesetzt, die Testumgebung ist frei modifizierbar, funktional genau und kann mit physischer Hardware integriert werden, wäre es möglich, einen Benchmark des Agenten durchzuführen.

  • Erweiterung begrenzter Hardware: Der letzte Fall besteht darin, eine bestehende physische Testumgebung um Kommunikationsprotokolle und Konfigurationen zu erweitern, die mit der vorhandenen Hardware nicht möglich waren. Dies könnte den Einsatz von Netzwerkemulatoren zur Erweiterung der Netzwerkausrüstung und von Prozesssimulatoren zur Erweiterung der Prozessleittechnik erfordern. Durch die Kopplung virtueller und physischer Hardware kann eine komplexe und äußerst realistische Testumgebung geschaffen werden, die große Bereitstellungen ermöglicht, die mehrere Protokolle und Geräte kombinieren und analysiert werden können. Dieser Anwendungsfall kann zusammen mit den anderen verwendet werden, um deren Ergebnisse zu verbessern.

  • Lokal erstellen und ausführen

    Klonen Sie das Repository und installieren Sie die erforderlichen Abhängigkeiten:

    root@kitploit:~
    git clone --recurse-submodules [email protected]:PMaynard/ICS-TestBed-Framework.git
    sudo apt install openjdk-8-jdk maven
    

    Erstellen:

    root@kitploit:~
    mvn clean package
    mvn package -DskipTests # Skip tests.
    

    RTU starten:

    root@kitploit:~
    java -jar node/target/node-1.0.jar
    shell> rtu
    shell> rtu-iec104port 2404
    shell> rtu-listen 127.0.0.1
    shell> run
    

    HMI starten:

    root@kitploit:~
    java -jar node/target/node-1.0.jar
    shell> hmi
    shell> hmi-interval 1000
    shell> remote-hosts 127.0.0.1
    shell> run
    

    Automatische Bereitstellung in VMs

    Das Standardkonfigurationsprofil stellt 1 HMI und 4 RTUs bereit. Die HMI integriert die RTUs über IEC104 und OPC-UA. Die RTUs sind so konfiguriert, dass sie zufällige Prozessdaten zurückgeben.

    Voraussetzungen (Vagrant+VirtualBox)

    Verwenden Sie die neueste Version von Vagrant anstelle der vorgefertigten/verteilten Pakete, da diese Skripte Funktionen aus den neuesten Vagrant-Versionen verwenden. Sollte bei Verwendung von Ubuntu 18.04.1 LTS problemlos funktionieren.

    root@kitploit:~
    git clone https://github.com/mitchellh/vagrant.git /opt/vagrant
    cd /opt/vagrant
    bundle install
    bundle --binstubs exec
    ln -sf /opt/vagrant/exec/vagrant /usr/local/bin/vagrant 
    

    [OPTIONAL] VM-Image erstellen

    Dies ist ein optionaler Entwicklungsschritt. Es wird ein VM-Image erstellt, das für den Betrieb der Testumgebungs-Knoten vorkonfiguriert ist. Wenn Sie nicht die neueste Version erstellen möchten, besteht die Standardoption darin, ein stabiles Image aus dem Vagrant-Image-Repository zu beziehen, das mit dem Master-Zweig Schritt hält.

    Packer wird verwendet, um ein für VirtualBox und Vagrant geeignetes VM-Image zu erstellen:

    root@kitploit:~
    cd vagrant_image
    packer build vagrant-node.json
    vagrant box add testbed-node vagrant.box
    

    Bereitstellen

    WARNUNG Sie benötigen mindestens 4 GB freien Arbeitsspeicher.

    Aktualisieren Sie die Vagrantfile mit allen zusätzlichen Informationen, wie z. B. statischer IP-Adresse und RAM-Nutzung.

    Die Standard-IP-Einstellungen sind 10.50.50.*. .200 wird für die HMI und 101-105 für die RTUs verwendet. Der standardmäßig pro VM zugewiesene Arbeitsspeicher beträgt 512 MB.

    root@kitploit:~
    vagrant up
    vagrant ssh hmi
    vagrant ssh rtu-1 # 1-5
    vagrant halt
    vagrant destroy 
    

    Beispieldatensatz

    Ein Beispieldatensatz wurde mit der Standard-Bereitstellungskonfiguration erstellt. PCAPs können von hier heruntergeladen werden. Der IEC104-MITM wurde mit dem hier verfügbaren Ettercap-Plugin durchgeführt.

    • [Host-SCAN 13:45]: Grundlegende Netzwerkaufklärung mit einem Nmap-Netzwerkscan. CMD: 'nmap -sn 10.50.50.*'

    • [Host-SCAN 13:47]: Grundlegende Netzwerkaufklärung mit einer Suche nach erreichbaren [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} Servern. CMD: 'nmap 10.50.50.* -p 2404'

    • [Host-SCAN 13:47]: Vollständiger Portscan der identifizierten [RTUs]{acronym-label="RTU" acronym-form="plural+short"} Knoten. CMD: 'nmap 10.50.50.101-105 -A'

    • [Host-SCAN 13:49]: Ein aktiver [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} Scan, der die Knoten über das [IEC104]{acronym-label="IEC104" acronym-form="singular+short"} Protokoll testet[^1]. CMD: 'nmap -Pn -n -d --script iec-identify.nse --script-args='iec-identify.timeout=500' -p 2404 10.50.50.101-105'

    • [Host-MITM 14:19]: Führt einen [MITM]{acronym-label="MITM" acronym-form="singular+short"} auf RTU-1 und der HMI aus. CMD: 'ettercap -i enp0s8 -T -M arp -P spoof_104 /10.50.50.101/ /10.50.50.150/'

    Eine numerische Aufschlüsselung des Datensatzes ist unten dargestellt:

    HostIPIEC104OPC-UASonstigeGesamt
    HMI10.50.50.15026,158017,68843,846
    Historian10.50.50.151014,69514,92729,622
    RTU-110.50.50.1013,5922,9405,54312,075
    RTU-210.50.50.1023,6652,9415,87612,482
    RTU-310.50.50.1033,6682,9405,79312,404
    RTU-410.50.50.1043,6902,9405,77112,404
    RTU-510.50.50.1053,5769307,93312,442
    MITM10.50.50.992,39003,4495,839
    SCAN10.50.50.315028,35128,366

    Verwandte Projekte

    • https://github.com/flesueur/mi-lxc
    • https://github.com/nsec/the-internet
    • https://minicps.readthedocs.io/en/latest/

    Zitierung

    Bitte zitieren Sie dieses Framework in folgendem Format:

    root@kitploit:~
    @conference{
     author   = "Peter Maynard and Kieran McLaughlin and Sakir Sezer",
     title 	  = "An Open Framework for Deploying Experimental SCADA Testbed Networks",
     journal  = "5th International Symposium for ICS & SCADA Cyber Security Research",
     year 	  = "2018"
    }
    

    Der Datensatz kann über die DOI zitiert werden: 10.6084/m9.figshare.6133457.v1

    Das vollständige Paper ist zu finden unter: https://petermaynard.co.uk/publication/an-open-framework-for-deploying-experimental-scada-testbed-networks/

    Tool herunterladen