
DARKSURGEON è un progetto Windows packer per potenziare la risposta agli incidenti, la digital forensics, l'analisi malware e la difesa di rete.
DARKSURGEON è un progetto di Windows packer progettato per potenziare la risposta agli incidenti, la digital forensics, l'analisi del malware e la difesa di rete.
DARKSURGEON ha tre obiettivi dichiarati:
Se non hai mai lavorato con packer prima d'ora, questo progetto ha una premessa semplice:
Fornire tutti gli strumenti necessari per avere una macchina virtuale Windows produttiva, sicura e privata, in modo da poter dedicare meno tempo a modificare il tuo ambiente e più tempo a combattere i cattivi.
Si prega di notare che questo è un progetto alpha e sarà soggetto a sviluppo continuo, aggiornamenti e rotture di pacchetti.
DARKSURGEON si basa su alcuni principi chiave di sviluppo:
DARKSURGEON è hardened out of the box e viene fornito con script per abilitare le modalità di sicurezza Alta o Bassa.
Tutte le installazioni predefinite di DARKSURGEON hanno le seguenti funzionalità di sicurezza abilitate:
Inoltre, l'utente può specificare una modalità di sicurezza Bassa o Alta utilizzando gli script appropriati. L'impostazione predefinita è creare un'immagine in modalità di sicurezza Bassa.
La modalità di sicurezza Bassa è utilizzata principalmente per macchine virtuali destinate a reverse engineering, analisi malware o sistemi che non possono supportare i controlli di sicurezza VBS.
In modalità di sicurezza Bassa, sono configurate le seguenti funzionalità di hardening:
Nota: La modalità di sicurezza Alta è ancora in fase di sviluppo.
La modalità di sicurezza Alta è utilizzata principalmente per la distribuzione in produzione di sistemi sensibili (es. Stazioni di lavoro ad accesso privilegiato) e potrebbe richiedere ulteriore personalizzazione o configurazione.
In modalità di sicurezza Alta, sono configurate le seguenti funzionalità di hardening:
Che si tratti di analizzare binari sconosciuti o di lavorare su progetti sensibili, la telemetria dell'endpoint alimenta le operazioni di rilevamento e risposta. DARKSURGEON viene fornito preconfigurato con le seguenti fonti di telemetria disponibili per l'analisi:
Il tuo ambiente operativo contiene alcuni dei dati più sensibili della tua rete, ed è importante proteggerli da occhi indiscreti. DARKSURGEON implementa le seguenti strategie per massimizzare la privacy senza ostacolare i flussi di lavoro:
Out of the box, DARKSURGEON viene fornito con strumenti, script e binari per semplificare la vita del difensore.
Analisi Android:
Strumenti, script e binari focalizzati sull'analisi Android e il reverse engineering.
Blue Team:
Strumenti, script e binari focalizzati sul blue team, la difesa di rete e lo sviluppo di allerte/rilevamento.
Debugger:
Strumenti, script e binari per il debug di artefatti binari.
Disassemblatori:
Strumenti, script e binari per il disassemblaggio di artefatti binari.
Analisi Documenti: Strumenti, script e binari per l'analisi di documenti.
Analisi DotNet:
Strumenti, script e binari per l'analisi di artefatti DotNet.
Analisi Flash:
Strumenti, script e binari per l'analisi di artefatti Flash.
Analisi Forense:
Strumenti, script e binari per l'analisi forense su artefatti di applicazioni e sistemi operativi.
Editor esadecimali:
Analisi Java:
Analisi di rete:
Analisi PE:
Moduli Powershell:
Librerie Python:
Red Team:
Gestione remota:
Utility:
Analisi Visual Basic:
DARKSURGEON viene costruito utilizzando l'applicazione HashiCorp packer. Il tempo totale di build per una nuova istanza di DARKSURGEON è di circa 2-3 ore.
Nota: Hyper-V è attualmente l'unico hypervisor supportato in questa release alpha. Il supporto per VirtualBox e VMWare è in arrivo.
powershell.exe New-DARKSURGEONISO.ps1packer build -only=[hyperv-iso|vmware|virtualbox] .\DARKSURGEON.jsonDARKSURGEON è progettato per essere modulare e facile da configurare. Un esempio di configurazione è fornito nel file DARKSURGEON.json, ma puoi aggiungere, rimuovere o modificare qualsiasi script sottostante.
Hai bisogno di aggiungere una CA personalizzata? Devi aggiungere un file di licenza per IDA? Nessun problema. Puoi inserire tutti i file necessari nella directory configuration-files e verranno copiati sull'host per te.
Vuoi installare un pacchetto personalizzato o hai bisogno di modifiche specifiche del sistema operativo? Nessun problema. Crea semplicemente un nuovo script PowerShell (o modificalo) nella directory configuration-scripts e aggiungilo come passaggio di build nel file JSON di packer.
Nota: Hyper-V è attualmente l'unico hypervisor supportato in questa release alpha. Il supporto per VirtualBox e VMWare è in arrivo.
Una volta che DARKSURGEON è stato costruito con successo, riceverai un file vagrant box in output. Il file box contiene l'immagine della macchina virtuale e i metadati di vagrant, permettendoti di avviare rapidamente una macchina virtuale secondo necessità.
vagrant upVagrant ora estrarrà l'immagine della macchina virtuale dal file box, leggerà i metadati e creerà una nuova VM per te. Vuoi eliminare questa VM e ottenerne una nuova?
Facile, basta eseguire:
vagrant destroy && vagrant up
Una volta che la macchina virtuale DARKSURGEON è in esecuzione, puoi accedere utilizzando uno dei due account locali:
Nota: Questi sono account predefiniti con credenziali predefinite. Potresti voler cambiare le credenziali nella tua build packer.
Account amministratore:
Username: Darksurgeon
Password: darksurgeon
Account utente locale:
Username: Unprivileged
Password: unprivileged
Se preferisci non usare vagrant, puoi importare manualmente l'immagine VM o esaminare una delle molte altre opzioni di post-processor fornite da packer.
Se preferisci saltare il processo di costruzione di DARKSURGEON e vuoi fidarti del file box che ho costruito, puoi semplicemente scaricarlo qui.
Contributi, correzioni e miglioramenti possono essere inviati direttamente a questo progetto come issue GitHub o pull request. Gli strumenti verranno revisionati e aggiunti caso per caso.
Credo fermamente nel valore di Windows Defender Device Guard e Virtualization Based Security, che richiedono l'uso di Hyper-V per un'efficacia ottimale. Di conseguenza, altri hypervisor non sono consigliati sulla macchina host. Farò del mio meglio per supportare altri hypervisor principali, ma incoraggio tutti gli utenti a provare Hyper-V.
Questa è stata una decisione di progettazione presa per garantire che tutti i pacchetti previsti arrivassero nella build packer finale. Il vantaggio di questa decisione è che garantisce che tutti gli strumenti previsti siano disponibili nel prodotto finalizzato. Lo svantaggio è che complessità e fragilità aggiuntive vengono inserite nella pipeline di build, poiché errori transitori o di chocolatey possono causare il fallimento di una build.
Se desideri ignorare questa funzionalità, sei libero di modificare lo script sottostante per ignorare gli errori durante l'installazione dei pacchetti.
Sì. Se aggiungi il tuo file di licenza (chiamato chocolatey.license.xml) alla directory configuration-files durante una build packer, verrà automaticamente importato dallo script Set-ChocolateySettings.ps1. Assicurati che il tuo uso di una licenza chocolatey sia conforme al loro Contratto di licenza con l'utente finale.
La flessibilità è fondamentale. Puoi scegliere di utilizzare – o non utilizzare – qualsiasi di questi script, e in qualsiasi ordine. Avere file individuali, pur aumentando la complessità del progetto, garantisce che il progetto possa essere completamente personalizzato senza problemi.
Aggiungi lo script Set-Breakpoint.ps1 nel processo provisioner al punto desiderato. Questo farà sì che la build packer si fermi per 4 ore in attesa del completamento dello script.
Questo è molto probabilmente un problema di temporizzazione causato dalle pressioni di tasti emulate che non fanno avviare l'immagine dall'ISO di Windows montato. Riavvia la VM e premi un tasto alcune volte fino a quando il processo di build non inizia.
A causa delle dimensioni dei pacchetti scaricati e installati, potresti aver superato il limite di tempo predefinito della build packer.
Connettiti al guest e controlla quanto segue:
Test-NetConnection -ComputerName <Packer IP Address> -Port 5985)Sfortunatamente questi pacchetti possono essere un bersaglio mobile. Nuovi aggiornamenti possono rendere errato il checksum statico nel pacchetto chocolatey, l'antivirus potrebbe erroneamente segnalare binari, ecc. Opzioni globali di chocolatey possono essere specificate per evitare che questi errori si verifichino, ma farò del mio meglio per rispondere alle segnalazioni di bug presentate come issue sui pacchetti chocolatey sottostanti.
In qualità di utente di questo progetto, devi rivedere, accettare e rispettare i termini di licenza di ogni pacchetto scaricato/installato. Se non desideri rispettare i termini di licenza di qualsiasi componente software specifico, rimuovi quel pacchetto dalla tua build packer o non utilizzare questo progetto.
MIT License
Copyright (c) 2018
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Questo progetto si regge sulle spalle di giganti, e non posso ringraziare adeguatamente tutti gli autori originali per il loro lavoro, contributi e ispirazione.