
Reproduzierbarer Incident-Mikro-Postmortem für On-Prem Microsoft SharePoint „ToolShell" (CVE-2025-53770): ATT&CK-Snapshot, Tabelle „logs that matter", drei Hunts (KQL/SPL/Sigma), Kommunikation der ersten 4 Stunden, Beispieldaten und Abbildungen. Entwickelt für schnelles Triage; keine Organisationsdaten; SharePoint Online außerhalb des Umfangs.
# Incident-Mikro-Postmortem — Microsoft SharePoint (On-Prem) ToolShell-Kampagne Dieses Kit analysiert die Mitte 2025 aktive „ToolShell“-Zero-Day-Kampagne gegen **On-Premises** Microsoft SharePoint Server; SharePoint Online ist nicht im Umfang enthalten. Es liefert durchgängig reproduzierbare Jagden, Kommunikation und Abbildungen, ohne auf externe Daten angewiesen zu sein. **Warum dieses Repository existiert:** Beschleunigung der Analysten-Triage mit reproduzierbaren Erkennungen und abgestimmter Management-Kommunikation. ## Umfang und Annahmen - Nur On-Premises Microsoft SharePoint Server. - Wahrscheinlicher Angriffsablauf: Internet-exponierter SharePoint/IIS → manipulierte Deserialisierung/ViewState-Missbrauch → Webshell-Bereitstellung → potenzieller Diebstahl von machineKey/ValidationKey → Token-Fälschung → RCE/laterale Bewegung. - Nur synthetische, illustrative Daten; keine echte Organisations-Telemetrie oder proprietäre IOCs. ## ATT&CK-Momentaufnahme Betonte Techniken: T1190 (Exploit Public-Facing Application), T1059.001 (PowerShell), T1505.003 (Web Shell), T1078 (Valid Accounts), T1027 (Obfuscated/Complicated Files), T1003 (OS Credential Dumping), T1082 (System Information Discovery), T1021 (Remote Services), T1071 (Application Layer Protocol), T1567 (Exfiltration Over Web Services).  ## Relevante Protokolle (Tabelle) | Phase | Signal | Protokollquelle | Wichtige Felder | Beispielmuster | | --- | --- | --- | --- | --- | | Webebene/IIS | Lange `__VIEWSTATE`-Blobs, ungewöhnliche POSTs an `/_layouts/*`, seltene User-Agents, 500/404-Ausbrüche | IIS/W3C-Protokolle, SharePoint ULS | `cs-uri-stem`, `cs-useragent`, `sc-status`, Payload-Länge | Spitzen von großen POST-Daten, gefolgt von 500-Fehlern | | Prozessausführung | `w3wp.exe -> cmd.exe -> powershell.exe` mit `-enc` oder `-EncodedCommand` | Windows Security 4688 | `ParentProcessName`, `NewProcessName`, `CommandLine`, `Account` | `C:\Windows\System32\inetsrv\w3wp.exe` startet PowerShell mit codiertem Payload | | Dateierstellung/Webshell | Unerwartete `.aspx`-Ablagen unter `\inetpub\wwwroot\wss\...` oder `\_layouts\...` | Sysmon 11 / Dateiintegritätsfeeds | `TargetFilename`, `Image`, `Hashes` | Neue `.aspx` in `\inetpub\wwwroot\wss\VirtualDirectories\80\App_Data\` | | Identität/Token | Abnormale Sitzungsausstellung, Administratoraktionen auf Dienstkonten zurückgeführt | SharePoint ULS, AD FS-Protokolle | `User`, `ClientIP`, `CorrelationId`, Token-Ansprüche | Dienstkonto gibt mehrere hochprivilegierte Token aus | | DNS/Proxy | Neu gesehene Domänen mit geringer Prävalenz nach IIS-Anomalien | DNS-, Proxy-, Firewall-Protokolle | `query`, `src_ip`, `count`, Prävalenzwerte | Erstmals gesehene Domain löst kurz nach PowerShell-Ausführung auf | ## Führen Sie diese Jagden jetzt aus - [`hunts/w3wp_powershell_encodedcommand.kql`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/w3wp_powershell_encodedcommand.kql) · [`SPL`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/w3wp_powershell_encodedcommand.spl) · [`Sigma`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/w3wp_powershell_encodedcommand.sigma.yaml): Erkennen codierte PowerShell, die vom IIS-Worker gestartet wurde. - [`hunts/sharepoint_webshell_filecreate.kql`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/sharepoint_webshell_filecreate.kql) · [`SPL`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/sharepoint_webshell_filecreate.spl) · [`Sigma`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/sharepoint_webshell_filecreate.sigma.yaml): Identifizieren unerwarteter `.aspx`-Dateien in SharePoint-Webroots. - [`hunts/dns_newly_seen_post_iis_anomaly.kql`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/dns_newly_seen_post_iis_anomaly.kql) · [`SPL`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/dns_newly_seen_post_iis_anomaly.spl) · [`Sigma`](https://github.com/cameloo1/sharepoint-toolshell-micro-postmortem/blob/main/hunts/dns_newly_seen_post_iis_anomaly.sigma.yaml): Aufdecken von DNS-Domänen mit geringer Prävalenz nach IIS-Anomalien und verdächtigen IIS-Kindprozessen. ## So reproduzieren Sie es in diesem Repository - Überprüfen Sie `samples/example_events.json` auf repräsentative Windows Security 4688, Sysmon 11 und DNS-Einträge, die auf jede Jagd abgestimmt sind (harmloses Rauschen enthalten). - Erwartete Ausgaben (gekürzt): - PowerShell-Spawn-Jagd: `Account` des Anwendungspool-Dienstkontos, `CommandLine` mit `-enc`, mit 3 bösartigen Treffern und 1 harmloser Admin-Skript-Notiz. - Webshell-Dateierstellungsjagd: Aggregation zeigt 2 `.aspx`-Pfade unter `\inetpub\wwwroot\wss\VirtualDirectories\80\Layouts\` während der Angriffsstunde und einen harmlosen Bereitstellungseintrag. - DNS-Neuauftrittsjagd: Domänen `cdn-msupdate.example`, `toolshare-sync.example` verknüpft mit der IIS-Host-IP mit `<5` Gesamtabfragen in 24h plus eine harmlose unternehmenseigene CDN-Domain, die durch Schwellenwerte ignoriert wird. - Fehlalarmoptimierung: Passen Sie Allowlists an dokumentierte Admin-Automatisierungsfenster, Bereitstellungsänderungstickets, bekannte CDN-Domänen und skriptgesteuerte Wartungsaufgaben an. Passen Sie Zeitfenster und Prävalenzschwellen basierend auf Plattformnormen an; verfolgen Sie das Verhalten von Dienstkonten durch Basislinienvergleiche. ## Erste 4 Stunden — Kommunikationsplan - Siehe `comms/first_4h.md` für versandfertige Vorlagen und Platzhalter. - Rhythmus: T+0–30 Triage-Benachrichtigung (Stakeholder abgestimmt), T+30–120 stündliche Scoping-Stand-ups, T+120–240 Eindämmungsstatus plus Management-Briefing, abgestimmt auf den Entscheidungsbaum. - Entscheidungsbaum-Grafik: `figures/decision-tree.png` spiegelt die ASCII-Logik im Kommunikationspaket wider. ## Falsifizierbarkeit und Einschränkungen - Wenn die IIS-Anwendungspool-Automatisierung legitimerweise PowerShell mit codierten Skripten startet (z. B. DevOps-Tooling), wird die PowerShell-Jagd auslösen; pflegen Sie Wartungs-Allowlists und verfolgen Sie bekannte Automatisierungskonten. - Schnelle Angreiferbereinigung oder alternative Werkzeuge (z. B. nicht verwaltete CLR-Webshells, C#-Assemblies) können die Dateierstellungs-Telemetrie umgehen, insbesondere wenn die Sysmon-Abdeckung unvollständig oder manipulationsanfällig ist. ## Zukünftige Arbeit (optional) - AppSec-Leitplanken für SharePoint-nahe Anwendungen: Geheimnisscanning für Maschinenschlüssel, CI-Prüfungen auf gefährliche Deserialisierungsmuster und Web-Root-Integritätsüberwachung während Build-Pipelines. ## Quellen (nicht zitiert, allgemeine Referenzen) - Microsoft-Sicherheitsleitfaden (On-Premises-Umfang): https://www.microsoft.com/en-us/msrc/blog/2025/07/customer-guidance-for-sharepoint-vulnerability-cve-2025-53770 - NVD CVE (Mitte 2025 SharePoint On-Prem): https://nvd.nist.gov/vuln/detail/CVE-2025-53770 - CISA-Bericht/MAR (Mitte 2025 SharePoint): https://www.cisa.gov/news-events/analysis-reports/ar25-218a Herstellerforschung: - Unit 42 — https://unit42.paloaltonetworks.com/microsoft-sharepoint-cve-2025-49704-cve-2025-49706-cve-2025-53770/ - SentinelOne — https://www.sentinelone.com/blog/sharepoint-toolshell-zero-day-exploited-in-the-wild-targets-enterprise-servers/ - Trend Micro — https://www.trendmicro.com/en_us/research.html (Suche: „SharePoint ToolShell CVE-2025-53770“) ## Nachbau-Hinweise — Anpassung an Live-SIEM/EDR - Aktualisieren Sie Index-/Tabellennamen (`index=*`, `SecurityEvent`, `Sysmon`), um sie an lokale Datenmodelle anzupassen (z. B. `m365:security`, `wineventlog`). - Ersetzen Sie Platzhalterfelder (`Account`, `ClientIP`, `TargetFilename`) durch umgebungsspezifische Aliase oder normalisierte Schemata (z. B. `user`, `ip_src`, `file_path`). - Bestätigen Sie die Zeitzonenausrichtung; passen Sie `ago(24h)` oder früheste Fenster an, um Fleet-Aufbewahrung und Erkennungslatenz zu entsprechen. - Betten Sie umgebungsspezifische Allowlists (Dienstkonten, Bereitstellungshosts) ein, um Rauschen zu reduzieren, während die Angreiferabdeckung erhalten bleibt.