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
MSSQLand — Strumento di post-exploitation in C# per Microsoft SQL Server (MS SQL / MSSQL) che attraversa catene di server collegati di qualsiasi profondità con impersonificazione di login a cascata a ogni salto. | Kitploit
Strumenti/GitHubGitHub/n3rada/mssqland
Escalation di PrivilegiStrumenti di ImpersonificazioneMovimento LateraleAudit di ConfigurazioneRaccolta InformazioniPost-ExploitPenetration TestingRed TeamingSicurezza dei Database
GitHubn3rada/mssqland

MSSQLand

Strumento di post-exploitation in C# per Microsoft SQL Server (MS SQL / MSSQL) che attraversa catene di server collegati di qualsiasi profondità con impersonificazione di login a cascata a ogni salto.

759126 giorni 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
Vedi Repository

✈️ MSSQLand

Atterra con eleganza nel tuo database Microsoft SQL Server (MS SQL) di destinazione, come se arrivassi su un volo business class con un calice di champagne in mano. 🥂

Capacità di concatenamento di MSSQLand

MSSQLand è uno strumento di post-sfruttamento per Microsoft SQL Server (MSSQL / MS SQL) scritto in C#, progettato per operatori red team. Progettato per essere eseguito direttamente nell'ambiente target tramite i tuoi beacon (ad esempio, usando execute-assembly in Cobalt Strike o Havoc o qualsiasi comando dotnet), ti consente di attraversare catene di server collegati, impersonare qualsiasi login incontrato lungo il percorso e uscire dall'ultimo hop con qualsiasi azione desiderata. Il tutto con un'impronta OPSEC minima e senza dipendenze esterne.

  • Attraversamento dei server collegati: wrapping automatico di OPENQUERY / EXEC AT attraverso catene arbitrariamente profonde
  • Impersonificazione: EXECUTE AS LOGIN ad ogni hop con impersonificazione a cascata multi-utente
  • Autenticazione: token Windows corrente, pass-the-hash tramite impersonificazione del token del beacon, Kerberos
  • Scoperta: SQL Browser (UDP 1434), enumerazione SPN di Active Directory tramite LDAP, broadcast, scansione porta TDS
  • ConfigMgr / SCCM / MECM: azioni dedicate cm-* per ricognizione e sfruttamento dei database di Microsoft Configuration Manager
  • Output: tabelle compatibili con Markdown con timestamp, esportazione CSV per deliverable puliti di pentest

[!TIP] MSSQLand è realizzato con .NET Framework 4.8, pensato per l'esecuzione di assembly, utilizzando il contesto corrente. Se devi connetterti utilizzando hash NT/LM o un ticket Kerberos, vedi Pass-the-Hash.

[!NOTE] Non dimenticare le basi. Durante un assessment di sicurezza, a volte è più facile usare SQL Server Management Studio (SSMS).

🧸 Utilizzo

root@kitploit:~
MSSQLand.exe [options] <host> [options] <action> [action-options]
MSSQLand.exe <host> --probe

I flag globali (-c, -l, --debug, ecc.) sono accettati in qualsiasi posizione, anche dopo il nome dell'azione; i token non riconosciuti dopo l'azione vengono passati così come sono all'azione.

[!NOTE] Omettere <action> esegue solo un test di connessione. Si autentica ed esce senza eseguire query. Ideale per la validazione delle credenziali con un'impronta OPSEC minima.

[!TIP] Evita di scrivere manualmente tutte le chiamate RPC Out o OPENQUERY. Lascia che lo strumento gestisca qualsiasi catena di server collegati con l'argomento -l, così puoi concentrarti sul quadro generale.

Formato: server:port/user@database o qualsiasi combinazione server/user@database:port.

  • server (obbligatorio) - Il nome host o l'IP del SQL Server
  • :port (opzionale) - Numero di porta (predefinito: 1433, anche comuni: 1434, 14333, 2433)
  • /user (opzionale) - Utente da impersonare su questo server ("execute as login")
    • Supporta impersonificazione a cascata: /user1/user2/user3 esegue EXECUTE AS LOGIN = 'user1'; EXECUTE AS LOGIN = 'user2'; EXECUTE AS LOGIN = 'user3';
    • Ogni /user inserisce un nuovo contesto di impersonificazione nello stack di sicurezza
  • @database (opzionale) - Contesto del database
root@kitploit:~
# Connectivity probe: checks if server is alive without authenticating
MSSQLand.exe localhost --probe

# Connection test only (no action executed, authenticates and exits)
MSSQLand.exe localhost -c token

# Execute specific action
MSSQLand.exe localhost -c token info
MSSQLand.exe localhost:1434@db03 -c token info
MSSQLand.exe LAB-SQL01@AdventureWorks -c token tables -n Customer

🔗 Catena di Server Collegati

Collega più server SQL utilizzando il flag -l con punto e virgola (;) come separatore:

root@kitploit:~
-l SQL01;SQL02/user;SQL03@database

Sintassi:

  • Punto e virgola (;) - Separa i server nella catena
  • Barra (/) - Specifica l'utente da impersonare ("execute as login")
    • Supporta impersonificazione a cascata: /user1/user2 esegue impersonificazioni sequenziali
  • Chiocciola (@) - Specifica il contesto del database
  • Parentesi quadre ([...]) - Usate per proteggere il nome del server dall'essere diviso dai nostri delimitatori

Esempi:

root@kitploit:~
# Simple chain
-l SQL01;SQL02;SQL03

# With impersonation and databases
-l SQL01/admin;SQL02;SQL03/manager@clients

# Cascading impersonation (impersonate user1, then user2 on SQL01)
-l SQL01/user1/user2;SQL02;SQL03

# Mixed cascading (SQL01: user1→user2, SQL03: user3→user4→user5)
-l SQL01/user1/user2;SQL02;SQL03/user3/user4/user5@database

# Server names can contain hyphens, dots (no brackets needed)
-l SQL-01;SERVER.001;HOST.DOMAIN.COM

# Brackets only needed if server name contains delimiter characters
-l [SERVER;PROD];SQL02;[SQL03@clients]@clientdb

[!NOTE] La specifica della porta (:port) si applica solo alla connessione host iniziale. Le catene di server collegati (-l) usano i nomi dei server collegati come configurati in sys.servers, non combinazioni hostname:port.

🔍 Scoperta

Queste modalità non richiedono autenticazione e funzionano prima di avere le credenziali.

📡 Servizio di Esplorazione

Il servizio SQL Server Browser ascolta su UDP 1434 e risponde alle richieste di scoperta con l'elenco delle istanze di SQL Server in esecuzione su un host, inclusi nomi, versioni e porte TCP. È utile quando il target esegue istanze con nome su porte dinamiche, non è necessario indovinare o scansionare.

root@kitploit:~
# Query the SQL Browser service on a specific host (UDP 1434)
MSSQLand.exe LAB-SQL03 --browse

📂 Query LDAP

Active Directory espone le registrazioni di SQL Server tramite Nomi Principal di Servizio (SPN) memorizzati su account computer e servizio. MSSQLand interroga AD tramite LDAP per gli SPN MSSQLSvc/* per enumerare le istanze di SQL Server nel dominio, o nell'intera foresta tramite il Catalogo Globale.

root@kitploit:~
# Find SQL Servers in Active Directory via LDAP (current domain)
MSSQLand.exe --findsql

# Target a specific domain
MSSQLand.exe --findsql pgd.lab

# Forest-wide search via Global Catalog (port 3268)
MSSQLand.exe --findsql pgd.lab --gc

La scoperta è multilivello. Vedi FindSqlServers.cs per maggiori dettagli.

📢 Broadcast

SQL Server Browser risponde anche a pacchetti broadcast UDP su UDP 1434, consentendo la scoperta di tutte le istanze di SQL Server che si pubblicizzano sulla sottorete locale.

root@kitploit:~
# Broadcast discovery on the local network (UDP 1434)
MSSQLand.exe --broadcast
MSSQLand.exe --broadcast --timeout 5

[!TIP] Questo è particolarmente utile quando un SQL Server è in esecuzione su una macchina che non è unita al dominio e quindi non apparirà in nessuna query LDAP o SPN. Pensa a server standalone, macchine di sviluppo o istanze canaglia attivate su una VLAN interna.

🔌 Scansione Porta

Convalida le porte aperte contro istanze SQL Server attive utilizzando handshake del protocollo TDS (non solo TCP SYN). Una porta viene segnalata solo se risponde a un pacchetto di pre-login TDS.

root@kitploit:~
MSSQLand.exe LAB-SQL03 --portscan
MSSQLand.exe LAB-SQL03 --portscan --all           # Find all instances (full ephemeral range)
MSSQLand.exe LAB-SQL03 --portscan 65184           # Single port
MSSQLand.exe LAB-SQL03 --portscan 65180-65190     # Port range
MSSQLand.exe LAB-SQL03 --portscan 1433,5000,65184 # Comma-separated list

🔑 Pass-the-Hash

MSSQLand viene eseguito come assembly .NET all'interno di un beacon e si autentica sempre utilizzando il contesto di esecuzione corrente (-c token). Quando hai un hash, l'approccio corretto è creare prima un token a livello di beacon e poi eseguire MSSQLand normalmente. System.Data.SqlClient eredita quel token in modo trasparente e non è richiesta alcuna implementazione TDS personalizzata.

Implementare NTLMv2 da zero dentro MSSQLand significherebbe:

  • Sostituire System.Data.SqlClient con uno stack TDS 7.x fatto a mano (troppe righe di codice socket, TLS e NTLM).
  • Mantenere tale implementazione contro le stranezze delle versioni di SQL Server, i cambiamenti delle politiche TLS e i casi limite del flusso di token.
  • Non ottenere alcun vantaggio funzionale rispetto all'approccio del token nella stragrande maggioranza degli impegni.

Se devi autenticarti con un ticket Kerberos o hash NT/LM da una posizione esterna, mssqlclient-ng è lo strumento giusto. Questo è un client Python 3 costruito per l'accesso lato Unix, facilmente abbinabile a un proxy SOCKS5 stabilito dal tuo beacon.

🌉 Port Forwarding con Linux

Se stai eseguendo MSSQLand sul tuo host Windows ma devi accedere a un target SQL Server attraverso un ambiente Linux (VM Hyper-V, VMware o WSL), puoi facilmente inoltrare la connessione usando socat:

root@kitploit:~
sudo socat TCP4-LISTEN:1433,fork,reuseaddr TCP:10.10.11.90:1433

Questo comando ascolta sulla porta 1433 sulla tua macchina Linux e inoltra tutto il traffico al target SQL Server su 10.10.11.90:1433. Puoi quindi connettere MSSQLand all'IP della tua VM Linux dal tuo host Windows.

❓ Aiuto

  • -h o --help - Mostra tutte le azioni disponibili
  • -h termine_ricerca - Filtra le azioni (es., -h adsi mostra tutte le azioni relative ad ADSI)
  • localhost -c token createuser -h - Mostra l'aiuto dettagliato per un'azione specifica

🔧 Supporto per Configuration Manager (ConfigMgr)

MSSQLand include un supporto completo per lo sfruttamento e la ricognizione di Microsoft Configuration Manager (ex SCCM / MECM). Quando hai accesso a un server database ConfigMgr, puoi sfruttare azioni specializzate per intelligence sui dispositivi (es., cm-devices) o mappatura dell'infrastruttura.

Tutte le azioni ConfigMgr usano il prefisso cm- (es., cm-scripts, cm-package) per allinearsi alla convenzione di denominazione dei cmdlet PowerShell ufficiali di Microsoft (Get-CM*, Set-CM*, ecc.).

📸 Output Pulito per Report Puliti

L'output dello strumento, arricchito con timestamp e preziose informazioni contestuali, è progettato per produrre risultati visivamente accattivanti e professionali, rendendolo ideale per catturare screenshot di alta qualità per qualsiasi report (es., deliverable per il cliente, report interno, assessment red team).

Tutte le tabelle di output sono compatibili con Markdown e possono essere copiate e incollate direttamente nelle tue note senza fastidi di formattazione.

[!TIP] Puoi anche ottenere output compatibile con .csv utilizzando l'opzione --format csv: MSSQLand.exe localhost -c token --format csv --silent procedures > procedures.csv

🤝 Contributi

I contributi sono benvenuti e apprezzati! Che si tratti di correggere bug, aggiungere nuove funzionalità, migliorare la documentazione o condividere feedback, il tuo sforzo è valorizzato e fa la differenza. L'open source prospera sulla collaborazione e sul riconoscimento. I contributi, grandi o piccoli, aiutano a migliorare lo strumento e la sua comunità. Il tuo tempo e il tuo sforzo sono davvero apprezzati.

Qui, nessuno verrà cancellato dalla cronologia Git. Nessuna paura qui. Nessuno copierà-incollerà il tuo codice senza aderire all'etica collaborativa dell'open source.

Consulta CONTRIBUTING.md per linee guida dettagliate su come iniziare.

🥚 Origine

Se ti chiedi perché questo esiste e non come contributo ad altri progetti SQL Server, vedi ORIGIN.md.

⚠️ Disclaimer

Questo strumento è fornito strettamente per ricerca sulla sicurezza difensiva, istruzione e test di penetrazione autorizzati. Devi avere esplicita autorizzazione scritta prima di eseguire questo software su qualsiasi sistema che non possiedi.

Questo strumento è progettato solo per scopi educativi e intende assistere i professionisti della sicurezza nella comprensione e nel test della sicurezza degli ambienti SQL Server in impegni autorizzati.

Gli ambienti accettabili includono:

  • Ambienti di laboratorio privati che controlli (VM locali, reti isolate).
  • Piattaforme di apprendimento autorizzate (CTF, Hack The Box, scenari d'esame OffSec).
  • Impegni formali di penetration test o red team con consenso documentato del cliente.

L'uso improprio di questo progetto può comportare azioni legali.

⚖️ Avviso Legale

Qualsiasi uso non autorizzato di questo strumento in ambienti reali o contro sistemi senza permesso esplicito del proprietario del sistema è strettamente proibito e può violare standard legali ed etici. I creatori e i contributori di questo strumento non sono responsabili per qualsiasi uso improprio o danno causato.

Usalo in modo responsabile ed etico. Rispetta sempre la legge e ottieni la dovuta autorizzazione.

Scarica lo strumento