Sto cercando di migliorare la difesa in profondità su un sistema, principalmente chiudendo alcuni buchi nelle DLL iniettate. Alcune applicazioni installate sul sistema fanno sì che le DLL di supporto (ad esempio estensioni della shell, BHO, ecc.) Vengano caricate nei processi. Sfortunatamente, molti di questi non sono stati compilati con flag di attivazione ASLR / DEP. Dato che i processi interessati sono i principali obiettivi di sfruttamento, ho eseguito manualmente il patching del supporto in modo che le cosiddette catene ROP "universali" non possano essere sfruttate.
Un effetto collaterale delle mie modifiche è che molti componenti ora hanno firme di codice non valide. Questo non sembra aver rotto nulla, ma mi piacerebbe ri-firmare con un certificato installato localmente, utilizzando una sorta di certificato di origine personale come genitore. Come bonus, posso approfittare del flag force integrity.
Quali passi dovrei fare per fare quanto segue?
- Crea e installa un certificato di origine, con un certificato secondario (intermedio?) per la firma del codice.
- Elimina i certificati esistenti dai binari.
- Firma nuovamente i binari con il nuovo certificato.
Non ho mai veramente incasinato l'archivio di certificati su Windows, oltre a poche incursioni nel controllo di quelle esistenti o l'installazione di Burp CA, quindi sono un po 'perso qui. OpenSSL è una buona opzione per generare i certificati oppure esiste una soluzione specifica per Windows? Quali strumenti sono ideali per la firma di nuovi binari?