
Labor & PoC
Dieses Repository scheint ein Proof-of-Concept-Forschungsprojekt zur Validierung eines SharePoint-ähnlichen Deserialisierungs- und ToolPane-Verarbeitungsproblems in einer kontrollierten Laborumgebung zu sein. Es enthält einen Python-Treiber, eine scheinbar angreifbare Anwendung und Container-Assets für isolierte Tests.
[!WARNING] Dieses Projekt darf nur auf Systemen, Containern oder Netzwerken verwendet werden, die Ihnen gehören oder für die Sie ausdrücklich zur Durchführung von Tests autorisiert sind. Führen Sie diesen Code nicht gegen öffentliche Infrastruktur, Dienste Dritter, Produktionsumgebungen oder ein Ziel ohne schriftliche Genehmigung aus. Unautorisierte Sicherheitstests können gegen Gesetze, Verträge, Richtlinien oder Nutzungsbedingungen verstoßen.
Der Inhalt dieses Repositories sollte als sensibles Sicherheitsforschungsmaterial behandelt werden. Wenn Sie dieses Projekt für Bewertungsarbeiten verwenden, halten Sie die Ausführung isoliert, protokollieren Sie alle Aktivitäten und stimmen Sie sich vor dem Testen mit dem Systembesitzer ab.
Das Repository enthält derzeit:
sploit.py: asynchroner Python-Treiber, der manipulierte Anfragen an einen ToolPane-Endpunkt sendet.lab/mock_vulnerable_app.cs: scheinbare ASP.NET-Anwendung, die einen Validierungsmarker zurückgibt und in ihrer aktuellen Form einen übergebenen Befehl im Labor-Container ausführen kann.lab/docker-compose.yml: lokales Zwei-Container-Labor, das das scheinbare Ziel vom Angreiferterminal trennt.lab/Dockerfile: mehrstufiger .NET-Build, der die scheinbar angreifbare Anwendung in ein kleineres ASP.NET-Laufzeitimage veröffentlicht und als Nicht-Root-Benutzer ausführt.lab/attacker.Dockerfile: Python-Angreifer-Containerdefinition, die die für das Laborterminal benötigten Skriptabhängigkeiten vorinstalliert.lab/vulnerable.csproj: .NET 6 Web-Projektdatei für die scheinbar angreifbare Anwendung.lab/genGadget.py: Hilfsskript zum Generieren einer komprimierten Base64-Nutzlast für Deserialisierungstests nur im Labor.Dieser Workflow ist nur für das lokale Labor vorgesehen.
Voraussetzungen:
Starten Sie das Labor aus dem Verzeichnis lab/:
cd lab
docker-compose up --build -d
Wenn Ihre Docker-Einrichtung erhöhte Rechte erfordert, führen Sie die gleichen Befehle mit sudo aus.
Bestätigen Sie, dass beide Container laufen:
docker-compose ps
Protokollierung für den Fall von Problemen oder Exploit-Validierung:
docker logs sp_attacker
docker logs sp_vulnerable_lab
Das Labor ist bewusst isoliert:
lab_net-Netzwerk;Öffnen Sie eine Shell im Angreifercontainer:
docker exec -it sp_attacker bash
Im Angreifercontainer können Sie laborsichere Überprüfungen durchführen, wie z.B. die Erreichbarkeit des Ziels bestätigen und das Skript im Überprüfungsmodus gegen das scheinbare Ziel testen:
python3 sploit.py http://sp_vulnerable_lab/
# Falls die DNS-Auflösung des Dienstnamens in Ihrer Umgebung fehlschlägt, verwenden Sie die Labor-IP:
# python3 sploit.py http://10.10.10.5
# Falls Sie über die Basisvalidierung hinausgehen möchten, können Sie gewünschte Befehle angeben.
python3 sploit.py http://sp_vulnerable_lab whoami
Erwartetes Verhalten in der lokalen scheinbaren Umgebung:
http://sharepoint-target erreichbar sein;Betriebshinweise:
Stoppen und entfernen Sie die Labor-Container und das Netzwerk:
cd lab
docker-compose down
Wenn Sie auch die erstellten Images entfernen möchten:
docker-compose down --rmi local
Wenn Sie die Arbeitsbereichsartefakte des Labors vollständig zurücksetzen möchten, entfernen Sie nach dem Herunterfahren alle generierten Ergebnisdateien:
rm -f vuln.lst
Empfohlene Bereinigungspraxis nach jeder Übung:
docker-compose down herunter;Das Projekt ist als lokales Forschungslabor strukturell gültig, sollte aber in seiner aktuellen Form nicht als produktionssicherer Validator behandelt werden.
Was funktioniert:
Was Vorsicht erfordert:
vuln.lst geschrieben, was unnötige sensible Restdaten erzeugen kann.Verwenden Sie dieses Projekt nur für kontrollierte Validierung von Erkennung und Exposition, nicht für operative Ausnutzung.
Empfohlene Methodik:
Für reale Bewertungsarbeiten ist der sicherere Standard, die Exploit-artige Validierung durch eine oder mehrere der folgenden Maßnahmen zu ersetzen:
Wenn ein Ziel tatsächlich anfällig für einen Deserialisierungsfehler in einer privilegierten Anwendungskomponente ist, können die potenziellen Auswirkungen schwerwiegend sein:
Selbst in einem Labor erhöhen Befehlsausführungssemantiken das Risiko erheblich, da sie Arbeitsabläufe normalisieren, die streng kontrollierten, autorisierten Untersuchungen vorbehalten sein sollten.
Der richtige Abhilfepfad ist defensiv und mehrschichtig.
Sofortmaßnahmen:
Härtungsmaßnahmen:
/_layouts/15/ToolPane.aspx und angrenzende administrative Pfade.Spezifische Gegenmaßnahmen für Forschungslabore:
Diese README enthält keine Anweisungen zur Ausnutzung von Systemen in der Produktion. Sie dokumentiert das Repository als kontrolliertes Forschungsartefakt und beschreibt sicherere Validierungs- und Abhilfepraktiken.