FFoundationalActive Directory

Domain Controllers and Their Role

Foundationsbeginner12 min

A domain controller is the server that every Active Directory environment trusts to answer the question 'who are you, and what are you allowed to do.' This lesson explains what a domain controller actually holds, why that makes it the single most valuable target in any assessment, and how to recognize one on the network by the services it runs.

This lesson builds on

Why it matters

Every technique you will study in this course eventually points at the same machine: the domain controller. If you cannot explain what a domain controller is and why it holds that position, you cannot explain why any AD attack matters. Kerberoasting, DCSync, golden tickets, and privilege escalation via group membership are all different roads to the same destination. Before any of those techniques make sense, you need a clear picture of what the domain controller does and what it holds.

Key Concepts

  • Domain controller (DC)a server that hosts the Active Directory database and answers authentication and authorization requests for every user and computer in the domain
  • NTDS.ditthe database file on a domain controller that stores every AD object, including every account's password hash; the single most sensitive file in the domain
  • Central authoritythe property that makes AD work: every domain member trusts the domain controller's answers about identity and policy instead of maintaining its own local list of trusted users
  • Group Policy enforcementdomain controllers store and distribute Group Policy Objects, which push configuration and security settings to every computer and user in scope
  • Service fingerprintthe set of ports a domain controller exposes, including 389/636 (LDAP), 88 (Kerberos), 464 (kpasswd), and 53 (DNS), that reliably identifies it on a network scan

Theory

Core idea

A domain controller is a server that runs Active Directory Domain Services and acts as the central authority for authentication, authorization, and policy in a Windows domain. When a user logs in, the domain controller verifies their credentials. When a computer applies a security setting, the domain controller is the source of that setting. When an application needs to know whether a user belongs to a particular group, the domain controller answers that question too.

This centralization is the entire point of running a domain. Without it, every server and workstation would need its own local list of trusted users and its own local security policy, which does not scale past a handful of machines and quickly becomes inconsistent. The domain controller exists so that trust and policy live in one place instead of being duplicated and drifting across thousands of endpoints. Add a new employee once, in one place, and every machine in the domain that checks with the domain controller immediately recognizes them; disable one compromised account once, and every machine immediately stops trusting it.

Mental model

Think of a domain controller as the records office and gatekeeper for a large organization at once. Every employee's file, their credentials, their department, their access badge level, lives in that one office. Every door in the building checks with that office before letting someone through, rather than each door keeping its own private guest list. If you wanted to understand or control the entire building, that office is where you would go.

An AD domain works the same way. The domain controller holds the authoritative copy of every account, every group membership, and every policy in the domain, in a database file called NTDS.dit. Every workstation, server, and application that needs to make an access decision defers to the domain controller rather than deciding on its own. That single point of authority is what makes AD administration manageable at scale, and it is exactly what makes the domain controller the highest-value target in the environment: compromise the records office, and you compromise the trust of everything that relies on it.

The domain controller is not exclusively a Windows concept either. On Linux, a Samba server can be configured to provide a basic equivalent, answering authentication requests the same way, though most enterprise environments you will assess run Windows domain controllers.

Common misunderstandings

  • Thinking of the domain controller as "just a server that logs people in." It authenticates users, but it also stores every account's password hash, enforces Group Policy across every computer in scope, and holds the schema that defines what kinds of objects can exist in the domain. Authentication is one job among several.
  • Assuming password hashes are only reachable if you have physical access. NTDS.dit sits on the domain controller's disk, but the same data is also exposed through replication protocols that a sufficiently privileged account can abuse remotely. Physical access is one path to that data, not the only one.
  • Believing there is exactly one domain controller per domain. Production domains almost always run multiple domain controllers for redundancy, and they replicate changes between each other so any one of them can answer authoritatively. Compromising a single domain controller is still enough, because each one holds the full database.
  • Overlooking DNS as part of the domain controller's job. Domain controllers are frequently also the DNS servers for the environment, because AD relies on DNS to let clients locate services like Kerberos and LDAP. A domain controller that looks like "just a directory server" is usually also quietly running the network's name resolution.

Real-world context

During enumeration, one of the first things you establish is where the domain controllers are. You can usually identify one by its service fingerprint: a distinctive combination of open ports that Windows domain controllers expose by default. LDAP runs on 389 (and 636 for LDAP over TLS), Kerberos runs on 88, the Kerberos password-change service runs on 464, and DNS runs on 53. A scan that shows this combination together, alongside Microsoft RPC on 135 and SMB on 445, is a strong signal that you are looking at a domain controller rather than an ordinary member server.

kali@kali:~$ nmap -sV -p- someADip
PORT     STATE SERVICE       VERSION
53/tcp   open  domain        Simple DNS Plus
88/tcp   open  kerberos-sec  Microsoft Windows Kerberos (server time: 2021-11-09 20:21:06Z)
135/tcp  open  msrpc         Microsoft Windows RPC
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp  open  ldap          Microsoft Windows Active Directory LDAP
445/tcp  open  microsoft-ds
464/tcp  open  kpasswd5
593/tcp  open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp  open  tcpwrapped
3268/tcp open  ldap          Microsoft Windows Active Directory LDAP (Global Catalog)
3269/tcp open  tcpwrapped

Identifying the domain controller early shapes the rest of the engagement. It tells you where the group policy objects live, where the account database lives, and which single machine, if compromised, gives an attacker visibility into the entire domain. Everything else you enumerate, workstations, file servers, applications, is ultimately a client of that one machine, which is why a scope discussion or a network diagram almost always starts by locating the domain controllers first.

This is also why client stakeholders need to understand the concept even if they never see a terminal: when you explain that "the domain controller was exposed," you are telling them their organization's entire employee directory, password hashes included, and every security policy in the building, was reachable. That framing lands with a stakeholder in a way that a technical finding name never will on its own.

Communication

Interview answer

A domain controller is the server that hosts Active Directory Domain Services and acts as the central authority for authentication, authorization, and policy in a Windows domain. It stores the AD database, NTDS.dit, which holds every user and computer account along with their password hashes, and it processes login requests, group membership checks, and Group Policy distribution for the entire domain.

It is the highest-value target in an AD environment because it centralizes trust: every machine that joins the domain defers its authentication and policy decisions to the domain controller instead of maintaining that information locally. You can typically identify one on the network by its service fingerprint, LDAP on 389/636, Kerberos on 88, kpasswd on 464, DNS on 53, alongside RPC and SMB. Compromising the domain controller effectively means compromising the trust relationship of every device in the domain.

Follow-up questions

  • What specific data does NTDS.dit contain, and why does that make it more sensitive than any individual workstation?
  • Why do most production environments run more than one domain controller, and does that reduce the risk of compromising one?
  • How does DNS being co-located with the domain controller affect what an attacker can learn from it?
  • What is the difference between a domain controller and an ordinary member server that happens to run Windows Server?
  • Why does the service fingerprint of a domain controller (LDAP, Kerberos, kpasswd, DNS together) reliably identify it during a scan?