
Laboratorio & PoC
Questo repository sembra essere un progetto di ricerca proof-of-concept per validare un problema di deserializzazione e di elaborazione del riquadro strumenti (tool-pane) in stile SharePoint in un laboratorio controllato. Include un driver Python, un'applicazione vulnerabile simulata e asset container per test isolati.
[!WARNING] Questo progetto deve essere utilizzato esclusivamente su sistemi, container o reti di tua proprietà o per i quali hai esplicita autorizzazione ai test. Non eseguire questo codice contro infrastrutture pubbliche, servizi di terze parti, ambienti di produzione o qualsiasi target senza autorizzazione scritta. I test di sicurezza non autorizzati possono violare leggi, contratti, policy o termini di utilizzo accettabile.
I contenuti di questo repository devono essere trattati come materiale sensibile di ricerca sulla sicurezza. Se utilizzi questo progetto per attività di assessment, mantieni l'esecuzione isolata, registra tutte le attività e coordina la verifica con il proprietario del sistema prima di testare.
Il repository contiene attualmente:
sploit.py: driver Python asincrono che invia richieste appositamente costruite a un endpoint ToolPane.lab/mock_vulnerable_app.cs: applicazione ASP.NET simulata che riflette un marcatore di validazione e, nella sua forma attuale, può eseguire un comando fornito all'interno del container di laboratorio.lab/docker-compose.yml: laboratorio locale a due container che separa il target simulato dal terminale dell'attaccante.lab/Dockerfile: build .NET multi-stage che pubblica l'applicazione vulnerabile simulata in un'immagine runtime ASP.NET più piccola e la esegue come utente non root.lab/attacker.Dockerfile: definizione del container attaccante Python che preinstalla il set di dipendenze dello script necessario per il terminale di laboratorio.lab/vulnerable.csproj: file di progetto web .NET 6 per l'applicazione vulnerabile simulata.lab/genGadget.py: script ausiliario per generare un payload Base64 compresso per test di deserializzazione solo in laboratorio.Questo flusso di lavoro è pensato esclusivamente per il laboratorio locale.
Prerequisiti:
Avvia il laboratorio dalla directory lab/:
cd lab
docker-compose up --build -d
Se la tua configurazione Docker richiede privilegi elevati, esegui gli stessi comandi con sudo.
Conferma che entrambi i container siano in esecuzione:
docker-compose ps
Logging in caso di problemi o per la validazione dell'exploit:
docker logs sp_attacker
docker logs sp_vulnerable_lab
Il laboratorio è intenzionalmente isolato:
lab_net;Apri una shell nel container attaccante:
docker exec -it sp_attacker bash
Dall'interno del container attaccante, puoi eseguire controlli sicuri per il laboratorio, come verificare che il target sia raggiungibile e testare lo script in modalità di verifica contro il target simulato:
python3 sploit.py http://sp_vulnerable_lab/
# Se la risoluzione DNS del nome del servizio fallisce nel tuo ambiente, usa l'IP del lab:
# python3 sploit.py http://10.10.10.5
# Se vuoi andare oltre la validazione base puoi includere i comandi desiderati.
python3 sploit.py http://sp_vulnerable_lab whoami
Comportamento atteso nell'ambiente simulato locale:
http://sharepoint-target dal container attaccante;Note operative:
Ferma e rimuovi i container e la rete del laboratorio:
cd lab
docker-compose down
Se vuoi rimuovere anche le immagini costruite:
docker-compose down --rmi local
Se vuoi un reset completo degli artefatti del workspace di laboratorio, rimuovi gli eventuali file di risultato generati dopo lo spegnimento:
rm -f vuln.lst
Pratica di pulizia consigliata dopo ogni esercizio:
docker-compose down;Il progetto è strutturalmente valido come laboratorio di ricerca locale, ma non dovrebbe essere trattato come un validatore sicuro per la produzione nella sua forma attuale.
Cosa funziona:
Cosa richiede cautela:
vuln.lst, il che può creare dati sensibili residui non necessari.Usa questo progetto solo per la validazione controllata di rilevamento ed esposizione, non per lo sfruttamento operativo.
Metodologia consigliata:
Per il lavoro di assessment nel mondo reale, lo standard più sicuro è sostituire la validazione di tipo exploit con uno o più dei seguenti:
Se un target è realmente vulnerabile a una falla di deserializzazione in un componente applicativo privilegiato, l'impatto potenziale può essere grave:
Anche in un laboratorio, la semantica di esecuzione dei comandi aumenta significativamente il rischio perché normalizza flussi di lavoro che dovrebbero essere riservati a indagini strettamente controllate e autorizzate.