# n3rada/mssqland architecture

> Architecture diagram of the GitHub repository n3rada/mssqland, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-23). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/n3rada/mssqland
- Repository: https://github.com/n3rada/mssqland

## Overview

MSSQLand is a command-line SQL Server post-exploitation tool. An operator supplies a target, authentication options, and an action; the program parses and dispatches the action, establishes a database context, and runs SQL directly or across linked servers. Results are formatted for terminal or CSV output. Separate branches cover unauthenticated server discovery, Active Directory queries, and ConfigMgr reconnaissance and operations. The excerpts confirm the main dispatch, context, query, and selected action paths; several feature links below reflect README documentation and the file tree, not inspected implementations.

Main entry points: [`MSSQLand/Services/QueryService.cs`](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/QueryService.cs) (Query and routing), [`MSSQLand/Program.cs`](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Program.cs) (CLI entry point), [`MSSQLand/Utilities/Discovery/FindSqlServers.cs`](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Discovery/FindSqlServers.cs) (Discovery commands), [`MSSQLand/Services/DatabaseContext.cs`](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/DatabaseContext.cs) (Database context)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["Command workflow"]
  node_program["CLI entry point<br/>[Program.cs]"]
  node_parser["Argument parser<br/>[CommandParser.cs]"]
  node_factory["Action factory<br/>[ActionFactory.cs]"]
  node_formatter["Output formatting<br/>[OutputFormatter.cs]"]
  node_csv["CSV formatter<br/>[CsvFormatter.cs]"]
end

subgraph group_connection["Connection and routing"]
  node_auth["Authentication"]
  node_context["Database context<br/>[DatabaseContext.cs]"]
  node_query["Query and routing<br/>[QueryService.cs]"]
  node_server["Server model<br/>[Server.cs]"]
end

subgraph group_actions["SQL actions"]
  node_queryaction["Query actions<br/>[Query.cs]"]
  node_dbactions["Database actions<br/>[Databases.cs]"]
  node_execution["Execution actions<br/>[Run.cs]"]
  node_admin["Administration actions<br/>[Requests.cs]"]
  node_agent["SQL Agent actions<br/>[Jobs.cs]"]
  node_remote["Linked server actions<br/>[Links.cs]"]
  node_filesystem["File actions<br/>[FileRead.cs]"]
end

subgraph group_discovery["Discovery"]
  node_discovery["Discovery commands<br/>[FindSqlServers.cs]"]
end

subgraph group_integrations["Domain and ConfigMgr"]
  node_domain["AD and ADSI actions<br/>[AdsiQuery.cs]"]
  node_adservice["Directory services"]
  node_cm["ConfigMgr actions<br/>[CMTaskSequences.cs]"]
  node_cmservice["ConfigMgr service<br/>[CMService.cs]"]
end

node_operator(("Operator"))
node_sql[("SQL Server")]
node_browser["SQL Browser"]
node_ad["Active Directory"]

node_operator -->|"provides options"| node_program
node_program -->|"parses arguments"| node_parser
node_program -->|"authenticates"| node_auth
node_program -->|"dispatches action"| node_factory
node_program -->|"creates context"| node_context
node_parser -->|"builds target"| node_server
node_factory -->|"creates action"| node_queryaction
node_context -->|"constructs service"| node_query
node_context -->|"uses connection"| node_auth
node_auth -->|"connects"| node_sql
node_query -->|"executes routed SQL"| node_sql
node_queryaction -->|"executes queries"| node_query
node_dbactions -->|"queries metadata"| node_query
node_execution -->|"executes commands"| node_query
node_admin -->|"queries server"| node_query
node_agent -->|"queries jobs"| node_query
node_remote -->|"routes remote access"| node_query
node_filesystem -->|"uses SQL file actions"| node_query
node_queryaction -->|"formats results"| node_formatter
node_formatter -->|"prints results"| node_operator
node_program -.->|"selects export"| node_csv
node_discovery -->|"queries instances"| node_browser
node_discovery -->|"enumerates SPNs"| node_adservice
node_discovery -->|"reports servers"| node_operator
node_domain -->|"queries ADSI link"| node_query
node_domain -->|"uses directory access"| node_adservice
node_adservice -->|"queries directory"| node_ad
node_cm -->|"uses ConfigMgr queries"| node_cmservice
node_cmservice -->|"queries ConfigMgr data"| node_query
node_cm -->|"formats results"| node_formatter

click node_program "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Program.cs"
click node_parser "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/CommandParser.cs"
click node_factory "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/ActionFactory.cs"
click node_formatter "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Formatters/OutputFormatter.cs"
click node_auth "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/Authentication/AuthenticationService.cs"
click node_context "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/DatabaseContext.cs"
click node_query "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/QueryService.cs"
click node_server "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Models/Server.cs"
click node_queryaction "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Execution/Query.cs"
click node_dbactions "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Database/Databases.cs"
click node_execution "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Execution/Run.cs"
click node_admin "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Administration/Requests.cs"
click node_agent "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Agent/Jobs.cs"
click node_remote "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Remote/Links.cs"
click node_filesystem "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/FileSystem/FileRead.cs"
click node_discovery "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Discovery/FindSqlServers.cs"
click node_domain "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Domain/AdsiQuery.cs"
click node_adservice "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/ActiveDirectoryService.cs"
click node_cm "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/ConfigMgr/CMTaskSequences.cs"
click node_cmservice "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/CMService.cs"
click node_csv "https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Formatters/CsvFormatter.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_program,node_parser,node_factory,node_formatter,node_csv,node_browser toneBlue
class node_auth,node_context,node_query,node_server,node_sql toneAmber
class node_queryaction,node_dbactions,node_execution,node_admin,node_agent,node_remote,node_filesystem toneMint
class node_discovery toneRose
class node_domain,node_adservice,node_cm,node_cmservice,node_operator,node_ad toneIndigo
```

## Components

### Command workflow

- [CLI entry point](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Program.cs): `MSSQLand/Program.cs`
- [Argument parser](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/CommandParser.cs): `MSSQLand/Utilities/CommandParser.cs`
- [Action factory](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/ActionFactory.cs): `MSSQLand/Actions/ActionFactory.cs`
- [Output formatting](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Formatters/OutputFormatter.cs): `MSSQLand/Utilities/Formatters/OutputFormatter.cs`
- [CSV formatter](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Formatters/CsvFormatter.cs): `MSSQLand/Utilities/Formatters/CsvFormatter.cs`

### Connection and routing

- [Authentication](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/Authentication/AuthenticationService.cs): `MSSQLand/Services/Authentication/AuthenticationService.cs`
- [Database context](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/DatabaseContext.cs): `MSSQLand/Services/DatabaseContext.cs`
- [Query and routing](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/QueryService.cs): `MSSQLand/Services/QueryService.cs`
- [Server model](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Models/Server.cs): `MSSQLand/Models/Server.cs`

### SQL actions

- [Query actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Execution/Query.cs): `MSSQLand/Actions/Execution/Query.cs`
- [Database actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Database/Databases.cs): `MSSQLand/Actions/Database/Databases.cs`
- [Execution actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Execution/Run.cs): `MSSQLand/Actions/Execution/Run.cs`
- [Administration actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Administration/Requests.cs): `MSSQLand/Actions/Administration/Requests.cs`
- [SQL Agent actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Agent/Jobs.cs): `MSSQLand/Actions/Agent/Jobs.cs`
- [Linked server actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Remote/Links.cs): `MSSQLand/Actions/Remote/Links.cs`
- [File actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/FileSystem/FileRead.cs): `MSSQLand/Actions/FileSystem/FileRead.cs`

### Discovery

- [Discovery commands](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Utilities/Discovery/FindSqlServers.cs): `MSSQLand/Utilities/Discovery/FindSqlServers.cs`

### Domain and ConfigMgr

- [AD and ADSI actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/Domain/AdsiQuery.cs): `MSSQLand/Actions/Domain/AdsiQuery.cs`
- [Directory services](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/ActiveDirectoryService.cs): `MSSQLand/Services/ActiveDirectoryService.cs`
- [ConfigMgr actions](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Actions/ConfigMgr/CMTaskSequences.cs): `MSSQLand/Actions/ConfigMgr/CMTaskSequences.cs`
- [ConfigMgr service](https://github.com/n3rada/mssqland/blob/main/MSSQLand/Services/CMService.cs): `MSSQLand/Services/CMService.cs`

### Other components

- **Operator**
- **SQL Server**
- **SQL Browser**
- **Active Directory**

## Connections

- Operator → CLI entry point: provides options
- CLI entry point → Argument parser: parses arguments
- CLI entry point → Authentication: authenticates
- CLI entry point → Action factory: dispatches action
- CLI entry point → Database context: creates context
- Argument parser → Server model: builds target
- Action factory → Query actions: creates action
- Database context → Query and routing: constructs service
- Database context → Authentication: uses connection
- Authentication → SQL Server: connects
- Query and routing → SQL Server: executes routed SQL
- Query actions → Query and routing: executes queries
- Database actions → Query and routing: queries metadata
- Execution actions → Query and routing: executes commands
- Administration actions → Query and routing: queries server
- SQL Agent actions → Query and routing: queries jobs
- Linked server actions → Query and routing: routes remote access
- File actions → Query and routing: uses SQL file actions
- Query actions → Output formatting: formats results
- Output formatting → Operator: prints results
- CLI entry point → CSV formatter: selects export
- Discovery commands → SQL Browser: queries instances
- Discovery commands → Directory services: enumerates SPNs
- Discovery commands → Operator: reports servers
- AD and ADSI actions → Query and routing: queries ADSI link
- AD and ADSI actions → Directory services: uses directory access
- Directory services → Active Directory: queries directory
- ConfigMgr actions → ConfigMgr service: uses ConfigMgr queries
- ConfigMgr service → Query and routing: queries ConfigMgr data
- ConfigMgr actions → Output formatting: formats results
