Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SQLRecon — Un toolkit C# MS SQL progettato per ricognizione offensiva e post-sfruttamento. | Kitploit
Strumenti/GitHubGitHub/skahwah/sqlrecon
RicognizioneExploitRaccolta InformazioniPost-ExploitPenetration TestingAutenticazioneRed TeamingSicurezza dei Database
GitHubskahwah/sqlrecon

SQLRecon

Un toolkit C# MS SQL progettato per ricognizione offensiva e post-sfruttamento.

Vedi Repository
81412942 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

  licence badge wiki Badge stars badge forks badge issues badge

SQLRecon

SQLRecon è un toolkit per Microsoft SQL Server progettato per ricognizione offensiva e post-sfruttamento. Per informazioni dettagliate su come utilizzare ogni tecnica, fare riferimento alla wiki.

Puoi scaricare una copia di SQLRecon dalla pagina releases. In alternativa, sentiti libero di compilare la soluzione da solo. Dovrebbe essere semplice come clonare il repository, fare doppio clic sul file della soluzione e compilare.

Guida alla prevenzione, rilevamento e mitigazione è stata fornita anche per tutti voi difensori.

Dai un'occhiata al mio post sul blog sul sito IBM Security Intelligence. Se preferisci i video, dai un'occhiata alla mia presentazione al Black Hat.

Moduli di Enumerazione

I moduli di enumerazione non richiedono che venga fornito un provider di autenticazione. Questi moduli devono essere passati al flag del modulo di enumerazione (/e:, /enum:). La wiki ha dettagli sull'uso dei moduli di enumerazione.``` Info - Show information about the SQL server. /h:, /host -> SQL server hostname or IP. Multiple hosts supported. /port: -> (OPTIONAL) Defaults to 1434 (UDP). /t:, timeout: -> (OPTIONAL) Defaults to 3s.

SqlSpns - Use the current user token to enumerate the AD domain for MSSQL SPNs. /d:, /domain: -> (OPTIONAL) NETBIOS name or FQDN of domain.

root@kitploit:~
# Fornitori di Autenticazione

SQLRecon supporta un insieme diversificato di fornitori di autenticazione (`/a:, /auth:`) per consentire l'interazione con un Microsoft SQL Server.```
WinToken   - Use the current users token to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP

WinDomain  - Use AD credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS name or FQDN of domain.
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

Local      - Use local SQL credentials to authenticate against the SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

EntraID    - Use Azure EntraID credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> FQDN of domain (DOMAIN.COM).
             /u:, /username: -> Username for domain user.
             /p:, /password: -> Password for domain user.

AzureLocal - Use local SQL credentials to authenticate against the Azure SQL database
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /u:, /username: -> Username for local SQL user.
             /p:, /password: -> Password for local SQL user.

Pth        - Authenticate using an NT hash (pass-the-hash) over raw TDS/NTLM. Elevated privileges or SeImpersonate is not required.
             /h:, /host:     -> SQL server hostname or IP. Multiple hosts supported.
             /d:, /domain:   -> NETBIOS domain name.
             /u:, /username: -> Domain username.
             /hash:          -> NT hash (32 hex chars, 8846f7eaee8fb117ad06bdd830b7586c) or LM:NT format.

Provider di Autenticazione - Ulteriori Dettagli

  • Hosts: Il flag host (/h:, host:) è obbligatorio e permette di specificare uno o più server SQL. Se si desidera eseguire un modulo su più server SQL, separare gli host con una virgola, ad esempio /h:SQL01,10.10.10.2,SQL03.
  • Database: SQLRecon si connette al database master per impostazione predefinita, tuttavia è possibile modificarlo fornendo un nome di database personalizzato tramite il flag database (/database:).
  • Debug: Il flag /debug è opzionale e mostra tutte le query SQL eseguite da un modulo, senza effettivamente eseguirle sul/i host remoto/i. Un esempio è disponibile nel wiki.
  • Porta: In alcuni casi, un Microsoft SQL Server potrebbe non essere in ascolto sulla porta TCP standard. Alcuni esempi sono il clustering di failover di Microsoft SQL Server o le porte TCP dinamiche. SQLRecon si connette ai database tramite la porta TCP 1433 per impostazione predefinita, tuttavia è possibile modificarla utilizzando il flag /port:.
  • Timeout: Il tempo di connessione predefinito al database SQL è di 3 secondi, tuttavia è possibile modificare questo valore fornendo un timeout (/t:, /timeout:) che corrisponde al numero di secondi prima di terminare il tentativo di connessione.

Si noti che il provider di autenticazione EntraID richiede che la libreria di autenticazione Azure Active Directory (ADAL) o la libreria di autenticazione Microsoft (MSAL) sia presente nel sistema in cui viene eseguito SQLRecon. Questo è per la funzionalità di autenticazione e autorizzazione di Azure EntraID.

Moduli SQL

I moduli SQL vengono eseguiti su una o più istanze di Microsoft SQL Server. Questi moduli devono essere passati al flag del modulo (/m:, /module:).

Moduli SQL - Standard

Il flag host (/h:, host:) è obbligatorio e permette di specificare uno o più server SQL. Se si desidera eseguire un modulo su più server SQL, separare gli host con una virgola, ad esempio /h:SQL01,10.10.10.2,SQL03.

Il wiki ha dettagli sull'uso di ciascun modulo che supporta l'esecuzione su una o più istanze di SQL Server.

Moduli SQL - Impersonificazione

I moduli di impersonificazione vengono eseguiti su una o più istanze di Microsoft SQL Server, nel contesto di un utente SQL impersonato. Tutti i moduli di impersonificazione hanno i seguenti requisiti minimi:

  • È necessario specificare un utente da impersonare (/i:, /iuser:).
  • È necessario specificare un modulo che supporti l'impersonificazione (/m:, /module:).

Il wiki ha dettagli sull'uso di ciascun modulo che supporta l'esecuzione tramite Impersonificazione.

Moduli SQL - Collegati

I moduli collegati vengono eseguiti su una o più istanze di un server Microsoft SQL collegato. Tutti i moduli collegati hanno i seguenti requisiti minimi:

  • È necessario specificare un server SQL collegato (/l:, /link:). Il flag link permette di specificare uno o più server SQL collegati. Ad esempio, se SQL01 ha un collegamento a SQL02, e SQL01 ha un collegamento a DB04, è possibile separare gli host collegati con una virgola, e il modulo verrà eseguito su ciascun server SQL collegato, ad esempio /l:SQL02,DB04.
  • È necessario specificare un modulo che supporti l'esecuzione collegata (/m:, /module:).

Il wiki ha dettagli sull'uso di ciascun modulo che supporta l'esecuzione su una o più istanze di un Server SQL Collegato.

Moduli SQL - Catena Collegata

I moduli di catena collegata vengono eseguiti sul server Microsoft SQL finale in una catena di server collegati. Tutti i moduli di catena collegata hanno i seguenti requisiti minimi:

  • È necessario specificare una catena di server SQL collegati nel flag /l:, /link:. Se SQL01 ha un collegamento a SQL02, e SQL02 ha un collegamento a PAYMENTS01, e si desidera eseguire un modulo su PAYMENTS01, l'argomento sarebbe /l:SQL02,PAYMENTS01.
  • Il flag /chain deve essere incluso per eseguire il modulo sul server SQL finale nella catena collegata fornita.
  • È necessario specificare un modulo che supporti l'esecuzione di catena collegata (/m:, /module:).

Il wiki ha dettagli sull'uso di ciascun modulo che supporta l'esecuzione sul server SQL finale fornito in una Catena di Server SQL Collegati.

Moduli SCCM

SQLRecon dispone di diversi moduli che possono aiutare nell'enumerazione e nell'attacco di Microsoft System Center Configuration Manager (SCCM) e Microsoft Endpoint Configuration Manager (ECM). Il server SCCM o ECM dovrà esporre un database Microsoft SQL, localmente o in remoto.

I moduli SCCM devono essere passati al flag del modulo SCCM (/s:, /sccm:).

La maggior parte dei moduli SCCM può essere eseguita nel contesto di un utente SQL impersonato (/i:, /iuser:).

Il wiki ha dettagli sull'uso di ciascun modulo contro un database SCCM/ECM.

Moduli SCCM - Ulteriori Dettagli
  • Il modulo Users elenca tutti gli utenti nella tabella RBAC_Admins. Questi sono tutti gli utenti configurati per un certo livello di accesso a SCCM.
  • Il modulo Sites elenca tutti gli altri siti con dati archiviati nella tabella DPInfo del database SCCM. Questo può fornire ulteriori vie di attacco poiché diversi siti possono essere configurati in modi diversi (e non sicuri).
  • Il modulo Logons interroga la tabella Computer_System_DATA per recuperare tutti i client SCCM associati insieme all'utente che ha effettuato l'ultimo accesso. NOTA: Questo si aggiorna solo una volta a settimana per impostazione predefinita e non sarà aggiornato al 100%. Utilizzare /option: come argomento opzionale (non obbligatorio) per filtrare i client SCCM.
  • Il modulo TaskList fornisce un elenco di tutte le sequenze di attività archiviate nel database SCCM, ma non accede al contenuto effettivo dei dati delle attività.
  • Il modulo TaskData recupera tutte le sequenze di attività archiviate nel database SCCM e le decifra in testo semplice. Le sequenze di attività possono contenere credenziali per l'aggiunta di sistemi ai domini, la mappatura di condivisioni, l'esecuzione di comandi, ecc.
  • Il modulo elenca le credenziali custodite da SCCM per l'uso in varie funzioni. Queste credenziali non possono essere decifrate in remoto poiché la chiave è memorizzata sul server SCCM. Tuttavia, questo modulo fornisce informazioni sull'opportunità di tentare di ottenere la chiave.

Estendere SQLRecon

Se sei interessato a estendere SQLRecon, consulta la sezione contributi ed estensione nel wiki.

Ti incoraggio ad aprire un issue se hai suggerimenti o idee.

Roadmap

L'obiettivo è migliorare continuamente SQLRecon. Di seguito sono elencate alcune aree di ricerca pianificate:

  • Implementare il supporto per l'autenticazione basata su hash NTLM.
  • Esplorare le funzionalità di enablerpc/disablerpc per server SQL collegati e in catena collegata.

Crediti

Le seguenti persone hanno contribuito direttamente o indirettamente a vari aspetti di SQLRecon.

  • Adam Chester (xpn)
  • Andrew Smith (jakxx)
  • Azaël Martin (n3rada)
  • Crusher (chryzsh)
  • Daniel Duggan (rasta-mouse)
  • Dave Cossa (G0ldenGunSec)
  • Dwight Hohnstein (djhohnstein)
  • Javier Balanza (JBalanza)
  • Joshua Magri (passthehashbrowns)

Cronologia

v4.0
  • Aggiunto il provider di autenticazione NTLM pass-the-hash (/auth:pth). Implementa l'autenticazione TDS/NTLM raw tramite PTHTdsConnection, NtlmHelper e PthState in modo che tutti i moduli funzionino senza credenziali in chiaro o privilegi elevati. Le correzioni principali includono opzioni di sessione ANSI post-login, suddivisione TDS multi-pacchetto, gestione del deadlock del flusso TCP per connessioni CLR concorrenti e compatibilità con la notazione parentesi di OPENQUERY.
  • Correzioni di bug nei moduli di impersonificazione.
  • Correzioni di bug nei moduli adsi.
  • Correzioni di bug nei moduli ole.
  • Correzioni di bug in _linkedChainRpcQuery
  • Risolto un problema di lunga data in cui System.Byte[] non veniva mai convertito e stampato correttamente nella console.
  • Aggiunti i moduli credentialobjects e proxies (jakxx).
  • Aggiornato README.md
  • Aggiornato il wiki
v3.12
  • Aggiunto supporto proxy a agentcmd (jakxx).
  • Risolto il problema con l'enumerazione role che non funzionava correttamente su catena collegata (passthehashbrowns).
  • Risolto il problema con il modulo impersonate che non funzionava correttamente su catena collegata (passthehashbrowns).
  • Risolto il problema con EnableRpc/DisableRpc non disponibili su catene collegate (passthehashbrowns).
  • Risolto il problema con il modulo XpCmd che non funzionava su catene collegate, ora supporta anche l'output (passthehashbrowns).
  • Risolti i problemi in cui i nomi di server collegati contenenti un carattere '.' causavano problemi quando utilizzati in query EXEC AT a meno che non fossero racchiusi tra parentesi; questo causava problemi se il nome del server collegato è un indirizzo IP o un FQDN (passthehashbrowns).
  • Apportate modifiche alla logica per la costruzione di una query su catena di server collegati. La logica esistente utilizza la ricorsione e il caso base prevede che uno '0' sia il primo elemento nell'array, ma ciò causa un comportamento non intuitivo durante lo sviluppo di moduli in cui è necessario iterare sulla catena collegata, come la funzione .First che restituisce uno '0'. Ho aggiornato il codice in modo che la funzione LinkedChainQuery crei un nuovo array con uno '0' all'inizio e poi chiami la logica esistente in una funzione separata, ora chiamata LinkedChainQueryRecurse (passthehashbrowns).
v3.11
  • Aggiunta funzionalità per decifrare le credenziali custodite in siti configurati per l'alta disponibilità (con server attivi + passivi).
v3.10
  • Risolto un problema nel modulo impersonate per gestire correttamente i casi sysadmin (n3rada).
  • Implementati due nuovi moduli SCCM scriptdata e cidata (G0ldenGunSec).
  • Ottimizzati i tempi di caricamento ed esecuzione della DLL CLR (chryzsh).
  • Creato il modulo auditstatus per verificare se il controllo SQL è attivo (chryzsh).
  • Aggiornati i casi di test.
  • Aggiornato README.
  • Aggiornato il wiki.
v3.9
  • Aggiunti i database a cui l'utente ha accesso nel modulo whoami (JBalanza).
  • Corretto un problema nel modulo adsi in cui il server LDAP non necessita di essere aggiunto al database msdb, inoltre la funzione creata ora viene eliminata correttamente.
  • Corretto un problema per cui le query RPC con un'istruzione AT fallivano sul server di destinazione se il nome host fornito è un FQDN.
  • Aggiornato README.
  • Aggiornato il wiki.
v3.8
  • Aggiunta logica per supportare l'esecuzione di assembly CLR su SQL Server 2016 e versioni precedenti. Questo è per il modulo clr. Esecuzione supportata in tutti i contesti.
  • Aggiunta logica per caricare un assembly CLR del server LDAP su SQL Server 2016 e versioni precedenti. Questo è per il modulo adsi. Esecuzione supportata in tutti i contesti.
  • Aggiornato README.
  • Aggiornato il wiki.
v3.7* Rifattorizzazione completa del code base. * Documentazione aggiornata (commenti nel codice, README e wiki). * Esecuzione contro una catena di server SQL collegati. Ad esempio, se `SQL01` ha un collegamento a `SQL02`, `SQL02` ha un collegamento a `SQL03` e `SQL03` ha un collegamento a `PAYMENTS01`. Ora è possibile eseguire comandi da `SQL01` su `PAYMENTS01` utilizzando la catena di server collegati (`/link:SQL02,SQL03,PAYMENTS01 /chain`). Crediti a Azaël Martin (n3rada). * Rimossi i moduli '`l`' e '`i`' e introdotta la logica di contesto in modo che i nomi dei moduli possano essere gli stessi tra esecuzione standard, impersonificazione, collegata e in catena. * Aggiunto supporto per catena a tutti i moduli collegati. * Aggiunto supporto per debug (`/debug`), che mostrerà varie informazioni di debug e tutte le query SQL che verranno eseguite da un modulo, senza eseguirle. * Aggiunto verbose (`/verbose, /v`), che mostrerà tutte le query SQL che verranno eseguite durante l'esecuzione del modulo. * Aggiunto timeout (`/timeout, /t`), che accetta un valore intero per il timeout di connessione al database del server SQL. * Migliorato il modulo `links` per includere informazioni dettagliate. Crediti a Azaël Martin (n3rada). * Migliorato il modulo `whoami` per includere principal Windows e utenti del database. Crediti a Azaël Martin (n3rada). * Migliorato il modulo `impersonation` per includere principal Windows e utenti del database. Crediti a Azaël Martin (n3rada). * Aggiunto recupero dell'indirizzo IP nel modulo di enumerazione `sqlspns`. Crediti a Azaël Martin (n3rada). * Standardizzato l'output della console in markdown dove applicabile. Crediti a Azaël Martin (n3rada). * Aggiunto supporto DNS al modulo `/enum:info`. * Aggiunto argomento opzionale `/subsystem` al modulo `olecmdexec`, che accetta esecuzione utilizzando i sottosistemi di automazione OLE `CmdExec` o `PowerShell`. * Aggiornati i test harness per riflettere le modifiche all'interfaccia a riga di comando e i nuovi moduli. * Modificata l'autenticazione `AzureAD` in `EntraID`.
v3.6
  • Ora è supportata l'esecuzione contro più server SQL forniti nel flag /host o /h utilizzando valori separati da virgola.
  • Ora è supportata l'esecuzione contro più server SQL collegati forniti nel flag /link o /l utilizzando valori separati da virgola.
  • Modificato /lhost in /link.
  • Rimossi i moduli 's' e creato lo switch /s, /sccm per i moduli SCCM.
  • Aggiunto supporto impersonificazione a tutti i moduli SCCM, ad eccezione di DecryptCredentials.
  • Aggiunto un nuovo modulo di enumerazione (/enum) chiamato info in grado di utilizzare un contesto non autenticato per ottenere informazioni sul server SQL, inclusi nome dell'istanza e porta TCP tramite protocollo UDP.
  • Spostata la logica degli argomenti in metodi individuali all'interno di per promuovere semplificazione ed estensibilità.
v3.5
  • Corretto bug in cui l'esecuzione collegata di adsi non rimuoveva il server LDAP.
  • Rimossa l'esecuzione di job agente da adsi collegato, in favore di openquery/rpc.
  • Modificato /lhost in /adsi nel modulo adsi.
  • Modificato /rhost in /unc nel modulo smb.
  • Rimosso CaptureHash.cs e semplificata la logica.
  • Rimosso SetEnumerationType.cs e semplificata la logica.
  • Rinominato Impersonation.cs in Impersonate.cs.
  • Rinominato OleCmdExec.cs in .
v3.4
  • Aggiunto supporto impersonificazione per il modulo smb.
  • Aggiunto supporto impersonificazione per il modulo info.
  • Aggiunto supporto collegato per il modulo info.
v3.3
  • Creati i moduli rows, iRows e lRows.
  • Aggiornato sLogons per includere un filtro opzionale.
  • Corretto bug in cui i moduli xp_cmdshell non stampavano l'output dei comandi sulla console.
  • Pulito il menu di aiuto.
v3.2
  • Revisione completa dell'analisi degli argomenti della riga di comando.
  • Aggiornati README, casi di test e wiki con nuovi esempi.
  • Rielaborata l'analisi degli argomenti basata su enumerazione e autenticazione.
  • Creato SetEnumerationType.cs.
  • Modificato il modulo di enumerazione domain in SqlSpns.
v3.1
  • Modificato il costruttore di SetAuthenticationType.cs in un nuovo metodo chiamato EvaluateAuthenticationType.
  • Creato CreateSqlConnectionObject in SetAuthenticationType.cs che estende SQLRecon per supportare oggetti di connessione SQL multipli simultanei.
  • Creato ADSI.cs, che incorpora attacchi alle credenziali ADSI come descritto qui.
  • Creati i moduli adsi, iAdsi e lAdsi.
  • Creati i moduli lLinks e iLinks.
  • Aggiornati README, casi di test e wiki con nuovi esempi.
v3.0
  • Implementato controllo errori per utenti impersonificati inesistenti.
  • Creati ExecuteImpersonationQuery e ExecuteImpersonationCustomQuery.
  • Eliminato Impersonate.cs
  • Aggiunto modulo checkRpc.
  • Aggiunto modulo iCheckRpc.
  • Aggiunto modulo lCheckRpc.
  • Rielaborati i moduli SCCM.
  • Rielaborata l'analisi degli argomenti SCCM.
  • Comandi in camel case nel menu di aiuto per una lettura più facile.
  • Aggiornati i test con nuovi moduli.
v2.9
  • Rinominato EnableDisable.cs in ConfigureOptions.cs
  • Revisione completa delle configurazioni avanzate delle opzioni.
  • Implementato controllo errori RPC ovunque venga chiamato ExecuteLinkedCustomQueryRpcExec.
v2.8
  • Creato PrintUtils.cs, che implementa una classe di stampa per output standardizzato.
  • Spostato TablePrinter da Help.cs a PrintUtils.cs.
  • Standardizzata la formattazione di stampa per tutto l'output della console utilizzando la classe PrintUtils.
  • Modificati i modificatori di accesso per classi e variabili di classe.
  • Aggiunto controllo per vedere se il risultato è vuoto per:
    • query
    • search
    • tables
    • lColumns
    • lQuery
    • lSearch
    • lTables
    • iColumns
v2.7
  • Modificata l'autenticazione Azure in AzureAD.
  • Creata l'autenticazione AzureLocal.
  • Aggiunto modulo disableRpc.
  • Aggiunto modulo enableRpc.
  • Aggiunto modulo iEnableRpc.
  • Aggiunto modulo iDisableRpc.
  • Rimosso modulo lEnableRpc.
  • Rimosso modulo lDisableRpc.
  • Aggiornati i test con nuovi moduli.
v2.6.1
  • Correzioni bug per lAgentCmd.
  • Risolta la stabilità di clr, iClr e lClr usando SqlCommand.ExecuteNonQuery durante la creazione della stored procedure.
  • Corretto bug in lClr dove non venivano rimossi gli assembly o le stored procedure create.
v2.6
  • Aggiunto modulo columns.
  • Aggiunto modulo iColumns.
  • Aggiunto modulo iDatabases.
  • Aggiunto modulo iSearch.
  • Aggiunto modulo iTables.
  • Aggiunto modulo lColumns.
  • Aggiunto modulo lSearch.
v2.5
  • Vari bug corretti nei moduli SCCM.
  • Organizzato il menu di aiuto utilizzando una tabella.
  • Migliorato l'output fornito da ExecuteLinkedCustomQueryRpcExec.
  • Migliorati i commenti nel codice in tutta l'applicazione.
  • Migliorata la coerenza dei nomi dei metodi tra le funzioni di esecuzione dei comandi.
  • Migliorata la modularità attraverso un migliore uso della programmazione orientata agli oggetti.
  • Modificato il flag per la porta personalizzata del server SQL in x.
  • Spostato Random.cs nella directory utilities.
  • Standardizzato lo stile di stampa per renderlo più coerente in tutti i moduli.
  • Creati test harness standard, per impersonificazione e collegati.
v2.4
  • Modificata l'autenticazione Windows in WinToken.
  • Creata l'autenticazione WinDomain, che utilizza nome utente e password del dominio AD per l'autenticazione tramite impersonificazione. Dai un'occhiata a Impersonation.cs.
  • Rielaborata l'analisi e la gestione degli argomenti in ArgumentLogic.cs, SQLAuthentication.cs e ModuleHandler.cs.
  • ModuleHandler.cs non utilizza più un enorme statement if/else if/else per eseguire i moduli. Invece, ora viene utilizzata la riflessione per chiamare metodi corrispondenti ai nomi dei moduli comandi.
  • Aggiunta la directory commands, che contiene variabili globali utilizzate in tutto il programma.
  • Uniti tutti i provider di autenticazione in SQLAuthentication.cs.
  • Spostata l'analisi degli argomenti da Program.cs a ArgumentLogic.cs.
v2.3
  • Aggiunta funzionalità SCCM.
  • Aggiunti moduli SCCM, che possono essere eseguiti usando il comando sccm.
  • Risolto controllo dello stato RPC su server SQL collegati.
  • Aggiunta la capacità di scaricare assembly .NET tramite HTTP/S.
v2.2
  • Ampliati i ruoli interrogati nei moduli roles, iRoles e lRoles.
  • Creati i moduli users, iUsers e lUsers.
  • Risolto il problema in cui l'hash non veniva rimosso da sp_drop_trusted_assembly nei moduli clr e iClr.
  • Creato modulo lAgentCmd.
  • Creato modulo lClr.
v2.1.6
  • Aggiunto modulo info.
  • Correzioni nel menu di aiuto.
  • Risolti problemi con argomenti obbligatori per l'autenticazione Local e Azure.
v2.1.5
  • Aggiunto modulo per enumerare gli SPN del dominio (-e domain).
v2.1.4
  • Risolto un problema minore di formattazione delle stringhe.
v2.1.3
  • Aggiunto flag -r nelle modalità di autenticazione Windows e Local in modo che possano essere fornite porte TCP non standard.
v2.1.2
  • Migliorata la logica attorno a stringhe di connessione nulle.
v2.1.1
  • Rimosso Environment.Exit da TestAuthentication.cs.
v2.1
  • Creato AgentJobs.cs.
  • Creato agentStatus.
  • Creato iAgentStatus.
  • Creato lAgentStatus.
  • Creato agentCmd.
  • Creato iAgentCmd.
v2.0
  • Creato clr.
  • Creato iEnableClr.
  • Creato iDisableClr.
  • Creato iClr.
  • Creato iWhoami.
  • Creato iMapped.
  • Creato iRoles.
  • Creato lEnableRpc.
  • Creato lDisableRpc.
  • Creato lWhoami.
  • Creato lEnableXp.
  • Creato lDisableXp.
  • Creato lEnableOle.
  • Creato lDisableOle.
v1.2
  • Creato modulo lSmb.
  • Creato modulo lWhoami.
  • Creato modulo lRoles.
v1.1
  • Risolto modulo oldCmd.
  • Risolto modulo iOleCmd.
  • Risolto modulo lDatabases.
  • Risolto modulo lTables.
  • Pulito il code base.
  • Corrette incongruenze nel menu di aiuto.
Scarica lo strumento
  • Verbose: Il flag /v, /verbose è opzionale e mostra tutte le query SQL eseguite da un modulo prima di eseguirle sul/i host remoto/i. Un esempio è disponibile nel wiki.
  • Nome ModuloDescrizioneImpersonificazioneEsecuzione CollegataEsecuzione Catena CollegataRichiede Contesto Privilegiato
    AuditStatusVerifica se il controllo (audit) SQL è attivo.✅✅✅❎
    CheckRpcOttiene un elenco di server collegati e del loro stato RPC.✅✅✅❎
    DatabasesMostra tutti i database.✅✅✅❎
    ImpersonateEnumera gli account utente che possono essere impersonati.✅✅✅❎
    InfoMostra informazioni sul server SQL.✅✅✅❎
    LinksEnumera i server SQL collegati.✅✅✅❎
    UsersMostra quali account utente e gruppi possono autenticarsi sul database.✅✅✅❎
    WhoamiMostra i tuoi privilegi.✅✅✅❎
    Query /c:QUERYEsegue una query SQL.✅✅✅❎
    Smb /unc:UNC_PATHCattura l'hash NetNTLMv2.✅✅✅❎
    Columns /db:DATABASE /table:TABLEMostra tutte le colonne nel database e nella tabella forniti.✅✅✅❎
    Rows /db:DATABASE /table:TABLEMostra il numero di righe nella tabella del database fornito.✅✅✅❎
    Search /keyword:KEYWORDCerca i nomi delle colonne nella tabella fornita del database a cui si è connessi.✅✅✅❎
    Tables /db:DATABASEMostra tutte le tabelle nel database fornito.✅✅✅❎
    EnableRpc /rhost:LINKED_HOSTAbilita RPC e RPC out su un server collegato.✅❌❌✔️
    EnableClrAbilita l'integrazione CLR.✅✅✅✔️
    EnableOleAbilita le procedure di automazione OLE.✅✅✅✔️
    EnableXpAbilita xp_cmdshell.✅✅✅✔️
    DisableRpc /rhost:LINKED_HOSTDisabilita RPC e RPC out su un server collegato.✅❌❌✔️
    DisableClrDisabilita l'integrazione CLR.✅✅✅✔️
    DisableOleDisabilita le procedure di automazione OLE.✅✅✅✔️
    DisableXpDisabilita xp_cmdshell.✅✅✅✔️
    AgentStatusMostra se l'agente SQL è in esecuzione e ottiene i processi dell'agente.✅✅✅✔️
    AgentCmd /c:COMMAND /subsystem:(OPTIONAL) /proxy:(OPTIONAL)Esegue un comando di sistema utilizzando i processi dell'agente. Opzionalmente specificare un sottosistema con /subsystem:, per impostazione predefinita 'PowerShell'. Opzionalmente specificare un account proxy dell'agente SQL con /proxy:.✅✅✅✔️
    Adsi /adsi:SERVER_NAME /lport:LOCAL_PORTOttiene le credenziali ADSI in chiaro da un server ADSI collegato.✅✅✅✔️
    Clr /dll:DLL /function:FUNCTIONCarica ed esegue un assembly .NET in una stored procedure personalizzata.✅✅✅✔️
    CredentialObjectsOttiene gli oggetti credenziali da sys.credentials.✅✅✅✔️
    OleCmd /c:COMMAND /subsystem:(OPTIONAL)Esegue un comando di sistema utilizzando le procedure di automazione OLE.✅✅✅✔️
    ProxiesOttiene le informazioni sul proxy dell'agente SQL.✅✅✅✔️
    XpCmd /c:COMMANDEsegue un comando di sistema utilizzando xp_cmdshell.✅✅✅✔️
    Nome ModuloDescrizioneImpersonificazioneRichiede Contesto Privilegiato
    UsersMostra tutti gli utenti SCCM.✅❎
    SitesMostra tutti gli altri siti con dati archiviati.✅❎
    LogonsMostra tutti i client SCCM associati e l'ultimo utente che ha effettuato l'accesso.✅❎
    CredentialsMostra le credenziali crittografate custodite da SCCM.✅❎
    TaskListMostra tutte le sequenze di attività, ma non accede al contenuto dei dati delle attività.✅❎
    TaskDataDecifra tutte le sequenze di attività in testo semplice.✅❎
    DecryptCredentialsDecifra un blob di credenziali SCCM. Deve essere eseguito in un processo ad alta integrità o SYSTEM sul server SCCM.❌✔️
    AddAdmin /user:DOMAIN\USERNAME /sid:SIDEleva un account fornito a 'Amministratore completo' in SCCM.✅✔️
    RemoveAdmin /user:ADMIN_ID /remove:STRINGRimuove i privilegi di un utente, o rimuove completamente un utente dal database SCCM.✅✔️
    ScriptDataRestituisce tutti gli script configurati per essere eseguiti in SCCM.✅✔️
    CIDataRestituisce tutti i CI configurati per eseguire script in SCCM.✅✔️
    Credentials
  • Il modulo DecryptCredentials tenta di decifrare i blob di credenziali SCCM recuperati. Questo modulo deve essere eseguito in un processo ad alta integrità o SYSTEM su un server SCCM.
  • Il modulo AddAdmin eleva l'account specificato a 'Amministratore completo' in SCCM. Se l'utente target è già un utente SCCM, questo modulo aggiungerà invece i privilegi necessari per l'elevazione. Fornire due argomenti, /user:current /sid:current se si desidera aggiungere l'utente che sta eseguendo il processo SQLRecon come 'Amministratore completo' in SCCM. Se si desidera aggiungere un altro utente come 'Amministratore completo' in SCCM, specificare il nome utente del dominio e il SID completo /user:DOMINIO\NOMEUTENTE /sid:S-1-5-.... Questo modulo richiede privilegi sysadmin o simili poiché è necessario scrivere nelle tabelle del database SCCM.
  • Il modulo RemoveAdmin rimuove i privilegi di un utente eliminando completamente un utente appena aggiunto dal database SCCM. Se l'utente esisteva già in qualche misura, questo modulo rimuove solo i tre ruoli che sono stati aggiunti all'account tramite scritture nella tabella delle autorizzazioni. Utilizzare gli argomenti forniti dall'output del comando sAddAdmin per eseguire questo comando. Questo modulo richiede privilegi sysadmin o simili poiché è necessario scrivere nelle tabelle del database SCCM.
  • ModuleHandler.cs
  • Spostate tutte le query SQL in Queries.cs.
  • Creato EnumerationModules.cs.
  • Creato FormatQuery.cs.
  • Creato SccmModules.cs.
  • Rinominato ModuleHandler.cs in SqlModules.cs.
  • OleAutomation.cs
  • Rinominato PrintUtils.cs in Print.cs.
  • Rinominato SQLServerInfo.cs in Info.cs.
  • iQuery
  • iSearch
  • Test significativi di affidabilità e funzionalità contro tutti i provider di autenticazione e moduli.
  • Rimossa la directory authentication.
  • Modificato lo stile del codice per seguire meglio la guida allo stile del codice C#/.NET di Microsoft.
  • Modificato Help.cs da un metodo a un costruttore.
  • Modificato CaptureHash.cs da un metodo a un costruttore.
  • Modificato Impersonate.cs da un metodo a un costruttore.
  • Rifattorizzato l'intero code base.
  • Creato lEnableClr.
  • Creato lDisableClr.
  • Creato lXpCmd.
  • Creato lXpOle.
  • Creato Random.cs.
  • Creato EnableDisable.cs.
  • Implementati nomi di assembly generati casualmente per clr.
  • Implementati nomi di variabili e metodi generati casualmente per ole.
  • Uniti i moduli mapped e roles in whoami.
  • Uniti i moduli lMapped e lRoles in lWhoami.
  • Uniti i moduli iMapped e iRoles in iWhoami.
  • Rifattorizzato l'intero code base.