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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2021-3156-Project — CVE-2021-3156 (Baron Samedit) के लिए शैक्षिक प्रयोगशाला वातावरण, जिसमें एक Dockerized असुरक्षित sudo लक्ष्य, exploit स्कैफोल्ड, कैनरी परीक्षण, मूल-कारण विश्लेषण और पैच किए गए संस्करण के साथ तुलना शामिल है। | Kitploit
उपकरण/GitHubGitHub/shams-ul-mehmood/cve-2021-3156-project
विशेषाधिकार वृद्धिभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषणलैब और अभ्यास
GitHubshams-ul-mehmood/cve-2021-3156-project

CVE-2021-3156-Project

CVE-2021-3156 (Baron Samedit) के लिए शैक्षिक प्रयोगशाला वातावरण, जिसमें एक Dockerized असुरक्षित sudo लक्ष्य, exploit स्कैफोल्ड, कैनरी परीक्षण, मूल-कारण विश्लेषण और पैच किए गए संस्करण के साथ तुलना शामिल है।

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

सभी देखें →

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

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

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

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

CVE-2021-3156 — Baron Samedit

sudo में हीप-आधारित बफ़र ओवरफ़्लो → स्थानीय विशेषाधिकार उन्नयन

ITSOLERA साइबर सुरक्षा विभाग | रेड टीम इंटर्नशिप 2026


root@kitploit:~
  ██████╗  █████╗ ██████╗  ██████╗ ███╗   ██╗    ███████╗ █████╗ ███╗   ███╗███████╗██████╗ ██╗████████╗
  ██╔══██╗██╔══██╗██╔══██╗██╔═══██╗████╗  ██║    ██╔════╝██╔══██╗████╗ ████║██╔════╝██╔══██╗██║╚══██╔══╝
  ██████╔╝███████║██████╔╝██║   ██║██╔██╗ ██║    ███████╗███████║██╔████╔██║█████╗  ██║  ██║██║   ██║
  ██╔══██╗██╔══██║██╔══██╗██║   ██║██║╚██╗██║    ╚════██║██╔══██║██║╚██╔╝██║██╔══╝  ██║  ██║██║   ██║
  ██████╔╝██║  ██║██║  ██║╚██████╔╝██║ ╚████║    ███████║██║  ██║██║ ╚═╝ ██║███████╗██████╔╝██║   ██║
  ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═══╝    ╚══════╝╚═╝  ╚═╝╚═╝     ╚═╝╚══════╝╚═════╝ ╚═╝   ╚═╝

⚠️ केवल शैक्षिक / पृथक लैब उपयोग हेतु सभी परीक्षण विशेष रूप से Docker लैब कंटेनर के अंदर ही किए जाने चाहिए। वास्तविक, प्रोडक्शन या साझा प्रणालियों के विरुद्ध कभी न चलाएँ।


विषय-सूची

  1. CVE अवलोकन
  2. इस CVE को क्या विशेष बनाता है
  3. प्रोजेक्ट संरचना
  4. टीम डिलीवरेबल्स
  5. त्वरित आरंभ
  6. एक्सप्लॉइट कैसे काम करता है
  7. भेद्यता कैनरी परीक्षण
  8. exploit.py उपयोग
  9. लैब रीसेट और स्नैपशॉट
  10. पैच्ड बनाम भेद्य तुलना
  11. संदर्भ

CVE अवलोकन


इस CVE को क्या विशेष बनाता है

मुख्य अंतर्दृष्टि: ओवरफ़्लो set_cmnd() में होता है — वह फ़ंक्शन जो आर्गुमेंट पार्स करता है — जो sudo द्वारा /etc/sudoers से परामर्श लेने से पहले चलता है। 10 सेकंड पहले बनाया गया शून्य अनुमतियों वाला खाता इसका दोहन कर सकता है।


प्रोजेक्ट संरचना

root@kitploit:~
CVE-2021-3156-Project/
│
├── README.md                        ← you are here
│
├── lab/                             ← Member 1: Lab Environment
│   ├── Dockerfile                   ← Ubuntu 20.04 + sudo 1.8.31 (pinned)
│   ├── docker-compose.yml           ← vulnerable target + patched reference
│   ├── evidence_helper.sh           ← pre/post-exploit state capture
│   ├── SETUP.md                     ← step-by-step VM/Docker guide
│   └── config_notes.md              ← CVE conditions & container details
│
├── exploit/                         ← Member 2: Exploit Development
│   ├── exploit.py                   ← Python LPE framework + canary test
│   └── payloads.txt                 ← heap overflow research notes
│
├── docs/                            ← Member 3: Research & Documentation
│   ├── root_cause_analysis.md       ← set_cmnd() deep dive + off-by-one
│   ├── references.md                ← all sources, PoCs, CWE mapping
│   └── mitigation.md                ← sudo upgrade + hardening checklist
│
├── proof/                           ← Member 4: Evidence Collection
│   ├── screenshots/                 ← exploitation screenshots
│   └── terminal_logs.txt            ← command output template + logs
│
└── report/
    └── CVE-2021-3156_Report.docx    ← Member 4: Final professional report

टीम डिलीवरेबल्स

सदस्य 1 — लैब वातावरण और CVE सत्यापन

सदस्य 2 — एक्सप्लॉइट विकास (PoC स्क्रिप्ट)

नोट: नैतिक दिशानिर्देशों के अनुसार कार्यशील कर्नेल/हीप एक्सप्लॉइट कोड शामिल नहीं किया गया है। exploit.py के TODO स्टब्स https://github.com/blasty/CVE-2021-3156 और https://github.com/worawit/CVE-2021-3156 को आधिकारिक सार्वजनिक PoCs के रूप में संदर्भित करते हैं जिनका अध्ययन और एकीकरण आपकी टीम को करना है।

सदस्य 3 — मूल कारण विश्लेषण और शोध

फ़ाइलविवरण
docs/root_cause_analysis.mdविस्तृत: आकार बनाम कॉपी बेमेल, कोड उदाहरणों के साथ ऑफ-बाय-वन, पैच डिफ़, एक्सप्लॉइट श्रृंखला, मेट्रिक-दर-मेट्रिक CVSS 7.8, 10-वर्षीय समयरेखा, वितरण प्रभाव तालिका

सदस्य 4 — प्रमाण संग्रह, रिपोर्टिंग और एकीकरण

फ़ाइलविवरण
proof/terminal_logs.txtप्रमाण संग्रह टेम्पलेट (वास्तविक लैब आउटपुट से भरें)
proof/screenshots/7 आवश्यक स्क्रीनशॉट के लिए निर्देशिका
report/CVE-2021-3156_Report.docx12-खंडीय पेशेवर रिपोर्ट: कवर पेज, कार्यकारी सारांश, CVE विवरण, मूल कारण विश्लेषण, CVSS विवरण, शोषण चरण, कोड स्पष्टीकरण, प्रमाण जाँच सूची, शमन, समयरेखा, संदर्भ, अस्वीकरण

त्वरित आरंभ

1. लैब बिल्ड करें और आरंभ करें

root@kitploit:~
cd CVE-2021-3156-Project/lab/

# Build the vulnerable image (downloads Ubuntu 20.04, pins sudo 1.8.31)
docker compose build

# Start both containers
docker compose up -d

# Confirm containers are running
docker compose ps

अपेक्षित:

root@kitploit:~
NAME                      STATUS
baron_samedit_target      running
baron_samedit_patched     running

2. भेद्य कंटेनर में प्रवेश करें

root@kitploit:~
docker exec -it baron_samedit_target bash

3. भेद्यता की स्थितियाँ सत्यापित करें

root@kitploit:~
# Inside the container as labuser

whoami                         # Expected: labuser
id                             # Expected: uid=1000(labuser)...
sudo --version                 # Expected: Sudo version 1.8.31
sudo -l                        # Expected: Sorry, user labuser may not run sudo...
sudoedit -s '\' 2>&1          # Expected: NOT "usage:" → VULNERABLE

4. एक्सप्लॉइट की प्रतिलिपि बनाएँ और चलाएँ

root@kitploit:~
# From host machine
docker cp exploit/exploit.py baron_samedit_target:/home/labuser/

# Inside container
python3 exploit.py --check-only      # verify all prerequisites pass
python3 exploit.py --safe-mode       # canary only, no exploitation
python3 exploit.py --cmd "id"        # LPE → show root identity
python3 exploit.py --cmd "whoami /all" --output /tmp/proof.txt

5. प्रमाण कैप्चर करें

root@kitploit:~
# Inside container — before exploit
~/evidence_helper.sh > /tmp/before.txt

# After exploit
~/evidence_helper.sh > /tmp/after.txt

# Copy to host
docker cp baron_samedit_target:/tmp/before.txt proof/terminal_logs_before.txt
docker cp baron_samedit_target:/tmp/after.txt  proof/terminal_logs_after.txt

एक्सप्लॉइट कैसे काम करता है

root@kitploit:~
Step 1: Run 'sudoedit -s <crafted_argument>'
        ↓
Step 2: sudo calls set_cmnd() to parse arguments in shell mode
        ↓
Step 3: set_cmnd() COUNTS bytes for the cmnd_args buffer (correct size)
        ↓
Step 4: set_cmnd() COPIES bytes — but reads 1 byte past the null
        terminator of any argument ending with '\'
        ↓
Step 5: Off-by-one overflow writes 1 unexpected byte beyond cmnd_args
        ↓
Step 6: Heap grooming (environment variable layout manipulation) ensures
        a valuable sudo struct sits adjacent to the overflowed buffer
        ↓
Step 7: The overflow byte corrupts a pointer in the adjacent struct
        ↓
Step 8: sudo follows the corrupted pointer → executes attacker-controlled
        command (via SUDO_EDITOR) with root privileges
        ↓
Result: uid=0(root) — from a user with ZERO sudo permissions

एक पंक्ति में मूल कारण

root@kitploit:~
size_calculation("A\") = 2 bytes  ≠  copy("A\") = writes 3 bytes → overflow

भेद्यता कैनरी परीक्षण

CVE-2021-3156 की उपस्थिति सत्यापित करने का सबसे सुरक्षित तरीका — बिना किसी एक्सप्लॉइटेशन के:

root@kitploit:~
sudoedit -s '\' 2>&1; echo "Exit: $?"

exploit.py उपयोग

root@kitploit:~
Usage: python3 exploit.py [OPTIONS]

Modes (mutually exclusive):
  --check-only        Run all pre-checks only — no exploitation
  --safe-mode         Run canary test only — confirm vulnerability
  --cmd COMMAND       Execute COMMAND as root after successful LPE

Options:
  --verbose, -v       Show detailed heap/system debug output
  --output, -o FILE   Save all output to FILE
  --no-colour         Disable ANSI colour codes (for log files)
  --help              Show this help message

Examples:
  python3 exploit.py --check-only
  python3 exploit.py --safe-mode
  python3 exploit.py --cmd "id"
  python3 exploit.py --cmd "cat /etc/shadow" --output proof/root_output.txt
  python3 exploit.py --cmd "whoami" --verbose

प्रारंभिक जाँचें


लैब रीसेट और स्नैपशॉट

त्वरित रीसेट (कंटेनर रखें, अस्थायी फ़ाइलें हटाएँ)

root@kitploit:~
docker exec baron_samedit_target bash -c "rm -f /tmp/*.txt /tmp/exploit* /home/labuser/exploit.py"

स्नैपशॉट सहेजें

root@kitploit:~
docker commit baron_samedit_target baron-samedit:clean-state
echo "[+] Snapshot saved as baron-samedit:clean-state"

स्नैपशॉट पुनर्स्थापित करें

root@kitploit:~
docker compose down
docker run -it --name baron_samedit_target baron-samedit:clean-state bash

पूर्ण रीसेट (स्क्रैच से पुनर्निर्माण करें)

root@kitploit:~
docker compose down -v
docker compose up -d --build

पैच्ड बनाम भेद्य तुलना

पैच्ड कंटेनर पर परीक्षण हेतु:

root@kitploit:~
docker exec -it baron_samedit_patched bash
# Then repeat the canary test — should output "invalid argument"

संदर्भ


नैतिक सूचना

root@kitploit:~
┌─────────────────────────────────────────────────────────────────┐
│  This project was created for EDUCATIONAL PURPOSES ONLY as      │
│  part of the ITSOLERA Cybersecurity Red Team Internship 2026.   │
│                                                                 │
│  ✅ DO:  Use against the isolated Docker lab only               │
│  ✅ DO:  Study the vulnerability to understand heap exploits    │
│  ✅ DO:  Contribute findings to the team report                 │
│                                                                 │
│  ❌ DON'T: Run against any real system, VM, or cloud instance   │
│  ❌ DON'T: Share outside the internship programme               │
│  ❌ DON'T: Use for any unauthorised access                      │
└─────────────────────────────────────────────────────────────────┘

ITSOLERA साइबर सुरक्षा विभाग — रेड टीम इंटर्नशिप, ग्रीष्म 2026

टूल डाउनलोड करें
गुणमान
CVE आईडीCVE-2021-3156
उपनामBaron Samedit
प्रकारहीप-आधारित बफ़र ओवरफ़्लो → स्थानीय विशेषाधिकार उन्नयन
घटकsudo — Linux विशेषाधिकार उपयोगिता (src/sudo.c में set_cmnd())
CVSS v3 स्कोर7.8 उच्च
वेक्टरCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
भेद्य संस्करणsudo 1.8.2 – 1.8.31p2 और 1.9.0 – 1.9.5p1
पैच्ड संस्करणsudo 1.9.5p2 (1.9 शाखा) / sudo 1.8.32 (1.8 शाखा)
लैब लक्ष्य संस्करणUbuntu 20.04 पर sudo 1.8.31
पैच KB / एडवाइज़रीSA: https://www.sudo.ws/security/advisories/unescape_overflow/
खोजकर्ताQualys Research Team
खुलासा2021-01-26
वाइल्ड में मौजूद (कोड) तब से~2011-07-09 (sudo 1.8.2) — ~10 वर्षों तक अनपहचाना
आवश्यक प्रमाणीकरणकेवल स्थानीय उपयोगकर्ता — किसी sudo अनुमति की आवश्यकता नहीं
गुणCVE-2021-3156सामान्य Sudo LPE
sudoers प्रविष्टि आवश्यक❌ नहीं✅ हाँ
sudo समूह सदस्यता आवश्यक❌ नहीं✅ हाँ
कोई पूर्व sudo पहुँच आवश्यक❌ नहीं✅ हाँ
बिल्कुल नए उपयोगकर्ता खाते से काम करता है✅ हाँ❌ नहीं
अनुमति प्रणाली का दोहन❌ पूरी तरह दरकिनार करता है✅ इसका दुरुपयोग करता है
हमले की सतहआर्गुमेंट पार्सर (प्री-ऑथ)अनुमति जाँच
फ़ाइलविवरण
lab/Dockerfilesudo 1.8.31 पिन किया हुआ Ubuntu 20.04 (भेद्य); Python 3 स्थापित; labuser खाता बिना किसी sudo पहुँच के
lab/docker-compose.ymlभेद्य लक्ष्य + पैच्ड Ubuntu 22.04 संदर्भ कंटेनर का समन्वय करता है
lab/evidence_helper.shएक्सप्लॉइट से पहले/बाद सिस्टम की स्थिति (उपयोगकर्ता, sudo संस्करण, कैनरी) कैप्चर करने की Bash स्क्रिप्ट
lab/SETUP.mdचरण-दर-चरण: बिल्ड → आरंभ → प्रवेश → sudo संस्करण सत्यापित करें → कैनरी चलाएँ → स्नैपशॉट
lab/config_notes.mdबताता है कि गलत कॉन्फ़िगरेशन की आवश्यकता क्यों नहीं है, Docker सुरक्षा सेटिंग्स, क्रेडेंशियल संदर्भ
फ़ाइलविवरण
exploit/exploit.pyपूर्ण Python फ्रेमवर्क: check_platform(), check_sudo_version(), run_canary_test(), get_system_info() + तीन एक्सप्लॉइट TODO स्टब्स (select_heap_strategy, build_overflow_argument, trigger_overflow_and_escalate) जिनमें blasty/worawit PoCs के विस्तृत संदर्भ शामिल हैं
exploit/payloads.txtहीप ओवरफ़्लो अवधारणाएँ, COMPRESSION_TRANSFORM समतुल्य (आर्गुमेंट संरचना), तीन हीप रणनीतियाँ, असफल प्रयास लॉग टेम्पलेट, डिटेक्शन सिग्नेचर
set_cmnd()
docs/references.mdQualys एडवाइज़री, MITRE, NVD, sudo प्रोजेक्ट, blasty PoC, worawit PoC, ExploitDB, GTFOBins, CWE मैपिंग
docs/mitigation.mdapt-get install --only-upgrade sudo, सत्यापन कैनरी, AppArmor हार्डनिंग, auditd निगरानी, हार्डनिंग तालिका
आउटपुटअर्थ
sudoedit: /\: not a regular file✅ भेद्य
Segmentation fault / Exit: 139✅ भेद्य (क्रैश)
sudoedit: invalid argument❌ पैच्ड (1.9.5p2+)
usage: sudoedit ...❌ पैच्ड
जाँचयह क्या करता है
प्लेटफ़ॉर्म (Linux)सुनिश्चित करता है कि हम Linux पर हैं
sudoedit उपस्थितPATH में sudoedit ढूँढता है
sudo संस्करणभेद्य श्रेणी (1.8.2–1.8.31p2, 1.9.0–1.9.5p1) से तुलना करता है
पहले से root नहींUID ≠ 0 की पुष्टि करता है (LPE सार्थक है)
सिस्टम जानकारीहीप रणनीति के लिए glibc संस्करण + आर्किटेक्चर एकत्र करता है
भेद्यता कैनरीsudoedit -s '\' चलाकर प्रतिक्रिया को वर्गीकृत करता है
परीक्षणभेद्य (sudo 1.8.31)पैच्ड (sudo 1.9.5p2+)
sudo --versionSudo version 1.8.31Sudo version 1.9.x
sudoedit -s '\'not a regular file या segfaultinvalid argument
exploit.py --safe-modeकैनरी: PASS → भेद्यकैनरी: FAIL → पैच्ड
exploit.py --cmd iduid=0(root)जाँच चरण में विफल
पैच मौजूद?पैच KB अनुपस्थितपैच लागू
स्रोतURL
Qualys एडवाइज़रीhttps://blog.qualys.com/vulnerabilities-threat-research/2021/01/26/cve-2021-3156-heap-based-buffer-overflow-in-sudo-baron-samedit
MITRE CVEhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3156
NVDhttps://nvd.nist.gov/vuln/detail/CVE-2021-3156
sudo एडवाइज़रीhttps://www.sudo.ws/security/advisories/unescape_overflow/
blasty PoChttps://github.com/blasty/CVE-2021-3156
worawit PoChttps://github.com/worawit/CVE-2021-3156
ExploitDB #49521https://www.exploit-db.com/exploits/49521
Rapid7 Metasploithttps://www.rapid7.com/db/modules/exploit/linux/local/sudo_baron_samedit/
GTFOBins — sudohttps://gtfobins.github.io/gtfobins/sudo/