
CVE-2024-51324 (BYOVD) पर मास्टर थीसिस अनुसंधान। 4 परिचालन मोड (SCANNER, LOADER, KILLER, CLEANUP), SHA-256 ड्राइवर सत्यापन और पूर्ण शैक्षणिक दस्तावेज़ीकरण के साथ उन्नत एक्सप्लॉइट। पोर्टफोलियो टुकड़ा विंडोज कर्नेल ड्राइवर सुरक्षा, IOCTL रिवर्स इंजीनियरिंग और ब्रिंग योर ओन वल्नरेबल ड्राइवर शोषण को कवर करता है।
अपना स्वयं का कमजोर ड्राइवर लाएं (BYOVD) — Baidu Antivirus
BdApiUtil64.sys
तीन अप्रलेखित कर्नेल प्रिमिटिव: प्रोसेस समाप्ति, मनमानी फ़ाइल हटाना, और
SectionObjectPointerबायपास के साथ उपयोग में फ़ाइल हटाना
प्रभावित: Baidu Antivirus v5.2.3.116083 (BdApiUtil64.sys)
ड्राइवर को कर्नेल में लोड करना (LOADER मोड)
इस रिपॉजिटरी में मेरा मास्टर थीसिस अनुसंधान CVE-2024-51324 पर है, जो Baidu Antivirus के कर्नेल ड्राइवर BdApiUtil64.sys में एक Bring Your Own Vulnerable Driver (BYOVD) कमजोरी है।
NVD रिकॉर्ड CVSS v3.1 का आधार स्कोर 3.8 (निम्न) वेक्टर AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:N और CWE-269 (अनुचित विशेषाधिकार प्रबंधन) निर्दिष्ट करता है। यह स्कोर इस अनुसंधान में दर्ज स्थानीय हमले की वास्तविकता को प्रतिबिंबित नहीं करता है: एक बार जब ड्राइवर किसी प्रशासक द्वारा लोड हो जाता है (एक बार की प्रक्रिया जो सोशल इंजीनियरिंग या किसी भी स्थानीय विशेषाधिकार वृद्धि के माध्यम से प्राप्त की जा सकती है), तो कोई भी बाद की प्रक्रिया — जिसमें सैंडबॉक्स या मानक-उपयोगकर्ता प्रक्रियाएं शामिल हैं — बिना किसी और विशेषाधिकार जांच के IOCTL भेज सकती हैं। एक शोधकर्ता-मूल्यांकित CVSS v3.1 स्कोर 7.8 (उच्च) वेक्टर AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H के साथ लोड-पश्चात शोषण वास्तविकता को अधिक सटीक रूप से पकड़ता है। दोनों स्कोर तकनीकी दस्तावेज़ीकरण में चर्चित हैं।
ड्राइवर डिवाइस ऑब्जेक्ट \Device\BdApiUtil को SecurityDescriptor = NULL के साथ बनाता है, जो किसी भी प्रक्रिया को अखंडता स्तर की परवाह किए बिना एक हैंडल खोलने और IOCTL भेजने की अनुमति देता है। Ghidra 11.0.3 के माध्यम से स्थैतिक विश्लेषण से पता चलता है कि आंतरिक तंत्र पहले दस्तावेज़ीकृत की तुलना में अधिक महत्वपूर्ण है: ड्राइवर ZwOpenProcess के बजाय PsLookupProcessByProcessId + ObOpenObjectByPointer(KernelMode) का उपयोग करता है, जो SeAccessCheck को पूरी तरह से बायपास करता है। तीन IOCTL प्रिमिटिव पूरी तरह से लक्षण वर्णित किए गए, जिनमें से दो का कोई पूर्व सार्वजनिक दस्तावेज़ीकरण नहीं है।
| पहलू | विवरण |
|---|---|
| तकनीकी सुधार | ZwOpenProcess आयात तालिका से अनुपस्थित है; वास्तविक तंत्र PsLookupProcessByProcessId + ObOpenObjectByPointer(KernelMode) है, जो बिना शर्त SeAccessCheck को बायपास करता है |
| तीन दस्तावेज़ीकृत प्रिमिटिव | प्रोसेस समाप्ति (0x800024B4), मनमानी फ़ाइल हटाना (0x80002648), और SectionObjectPointer बायपास के साथ उपयोग में फ़ाइल हटाना (0x8000264C) — अंतिम दो का कोई पूर्व सार्वजनिक दस्तावेज़ीकरण नहीं है |
| चार संचालन मोड | LOADER, KILLER, SCANNER, और CLEANUP — पूर्ण जीवनचक्र प्रबंधन |
| SHA-256 सत्यापन | किसी भी लोड प्रयास से पहले ड्राइवर हैश सत्यापित किया गया |
| PPL अनुभवजन्य परीक्षण | प्रति प्रक्रिया श्रेणी 10 प्रयास जो PPL को एकमात्र रनटाइम शमन के रूप में पुष्टि करते हैं |
| फोरेंसिक विश्लेषण | सफाई के बाद Event ID 7045 स्थिरता; Event ID 1102 स्वयं-अभियोगी लॉग-साफ़ कलाकृति के रूप में |
| डिटेक्शन नियम | Sigma नियम और Sysmon कॉन्फ़िगरेशन (हैश द्वारा Event ID 6 + रजिस्ट्री कुंजी द्वारा Event ID 13) |
| CVSS पुनर्मूल्यांकन | आधिकारिक NVD स्कोर (3.8 निम्न) और शोधकर्ता-मूल्यांकित स्थानीय शोषण गंभीरता (7.8 उच्च) के बीच दस्तावेज़ीकृत विसंगति |
CVE-2024-51324/
├── README.md
├── LICENSE
│
├── drivers/
│ └── BdApiUtil64.sys # ड्राइवर (वितरित नहीं)
│
├── exploit/
│ ├── exploit-explanation.md
│ └── byovd_killer.py # मुख्य शोषण — 4 संचालन मोड
│
└── docs/
├── screenshots/
│ ├── 01-byovd-scan.png
│ ├── 02-byovd-scan-target.png
│ ├── 03-byovd-load.png
│ ├── 04-byovd-load-custom.png
│ ├── 05-kill-name.gif
│ ├── 06-kill-pid.gif
│ ├── 07-kill-limit.gif
│ ├── 08-dry-run.gif
│ └── 09-byovd-cleanup.png
│
└── analysis/
├── 01-root-cause.md
├── 02-driver-analysis.md # पूर्ण Ghidra RE, तीन प्रिमिटिव, PPL परीक्षण
└── 03-timeline.md
BdApiUtil64.sys (SHA-256: 47EC51B5F0EDE1E70BD66F3F0152F9EB536D534565DBB7FCC3A05F542DBE4428)python exploit/byovd_killer.py --scan
python exploit/byovd_killer.py --scan --target lsass.exe
python exploit/byovd_killer.py --load
python exploit/byovd_killer.py --load --driver C:\path\to\BdApiUtil64.sys
python exploit/byovd_killer.py --load --service-name MyService
python exploit/byovd_killer.py --kill notepad.exe
python exploit/byovd_killer.py --pid 1234
python exploit/byovd_killer.py --kill notepad.exe --max-instances 2
python exploit/byovd_killer.py --kill notepad.exe --dry-run
python exploit/byovd_killer.py --cleanup
python exploit/byovd_killer.py --cleanup --service-name MyService
| मोड | कमांड | विशेषाधिकार | विवरण |
|---|---|---|---|
| SCANNER | --scan | कोई भी उपयोगकर्ता | सिस्टम और ड्राइवर स्थिति जानकारी |
| LOADER | --load | प्रशासक | कर्नेल सेवा निर्माण के माध्यम से ड्राइवर लोड करें |
| KILLER | --kill / --pid | कोई भी उपयोगकर्ता | IOCTL के माध्यम से प्रक्रियाओं को समाप्त करें |
| CLEANUP | --cleanup | प्रशासक | ड्राइवर सेवा को रोकें और हटाएं |








