created instruction files for my home OSCP labs
This commit is contained in:
419
docs/04-active-directory.md
Normal file
419
docs/04-active-directory.md
Normal file
@@ -0,0 +1,419 @@
|
||||
# Chapter 4 - Active Directory
|
||||
|
||||
> In this chapter, you'll build the Active Directory environment that powers the corporate network. This includes deploying a Domain Controller, configuring DNS, creating users and groups, joining workstations to the domain, and intentionally introducing realistic misconfigurations for security testing.
|
||||
|
||||
---
|
||||
|
||||
# Objectives
|
||||
|
||||
By the end of this chapter, you will have:
|
||||
|
||||
* Windows Server 2022 installed
|
||||
* Active Directory Domain Services (AD DS) configured
|
||||
* DNS configured
|
||||
* A new domain created
|
||||
* Organizational Units (OUs)
|
||||
* Domain users and groups
|
||||
* Service accounts
|
||||
* Domain-joined Windows clients
|
||||
* Group Policy configured
|
||||
* A realistic enterprise directory for penetration testing
|
||||
|
||||
---
|
||||
|
||||
# Active Directory Overview
|
||||
|
||||
Active Directory (AD) is Microsoft's centralized identity and authentication platform.
|
||||
|
||||
It provides:
|
||||
|
||||
* Authentication
|
||||
* Authorization
|
||||
* DNS
|
||||
* Kerberos
|
||||
* LDAP
|
||||
* Group Policy
|
||||
* Computer management
|
||||
* User management
|
||||
|
||||
Almost every medium or large Windows environment relies on Active Directory.
|
||||
|
||||
---
|
||||
|
||||
# Lab Topology
|
||||
|
||||
```text
|
||||
Corporate LAN
|
||||
10.10.20.0/24
|
||||
|
||||
+----------------------------------+
|
||||
| |
|
||||
DC01 WIN10-01
|
||||
| |
|
||||
| WIN10-02
|
||||
|
|
||||
FILE01
|
||||
|
|
||||
SQL01
|
||||
|
|
||||
LINUX01
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Domain Controller VM
|
||||
|
||||
Recommended specifications:
|
||||
|
||||
| Setting | Value |
|
||||
| ------- | -----------: |
|
||||
| CPU | 2–4 vCPU |
|
||||
| RAM | 4096–8192 MB |
|
||||
| Disk | 100 GB |
|
||||
| Bridge | vmbr2 |
|
||||
|
||||
Static configuration:
|
||||
|
||||
```text
|
||||
Hostname : DC01
|
||||
|
||||
IP : 10.10.20.10
|
||||
Mask : 255.255.255.0
|
||||
Gateway : 10.10.20.1
|
||||
DNS : 10.10.20.10
|
||||
```
|
||||
|
||||
Notice that after installing AD, the server points DNS to itself.
|
||||
|
||||
---
|
||||
|
||||
# Installing Active Directory
|
||||
|
||||
Open:
|
||||
|
||||
```
|
||||
Server Manager
|
||||
```
|
||||
|
||||
Select:
|
||||
|
||||
```
|
||||
Add Roles and Features
|
||||
```
|
||||
|
||||
Install:
|
||||
|
||||
* Active Directory Domain Services
|
||||
* DNS Server
|
||||
|
||||
After installation:
|
||||
|
||||
Select:
|
||||
|
||||
```
|
||||
Promote this server to a Domain Controller
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# Create a New Forest
|
||||
|
||||
Domain name:
|
||||
|
||||
```text
|
||||
lab.local
|
||||
```
|
||||
|
||||
Although `.local` is acceptable for a lab, a production environment would typically use a registered internal namespace such as `corp.example.com`.
|
||||
|
||||
Set a Directory Services Restore Mode (DSRM) password and document it securely.
|
||||
|
||||
---
|
||||
|
||||
# Organizational Units
|
||||
|
||||
Avoid placing users directly in the default **Users** container.
|
||||
|
||||
Create the following OUs:
|
||||
|
||||
```text
|
||||
LAB.LOCAL
|
||||
|
||||
├── Servers
|
||||
├── Workstations
|
||||
├── Users
|
||||
├── Service Accounts
|
||||
├── IT
|
||||
├── HR
|
||||
├── Finance
|
||||
└── Security
|
||||
```
|
||||
|
||||
Keeping objects organized makes administration easier and allows targeted Group Policies.
|
||||
|
||||
---
|
||||
|
||||
# User Accounts
|
||||
|
||||
Create realistic users:
|
||||
|
||||
| Username | Department |
|
||||
| ------------- | ---------- |
|
||||
| john.smith | IT |
|
||||
| sarah.jones | HR |
|
||||
| michael.brown | Finance |
|
||||
| emily.davis | Security |
|
||||
| helpdesk | IT |
|
||||
|
||||
Create passwords that are memorable but not identical.
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
Winter2026!
|
||||
```
|
||||
|
||||
Avoid using the same password everywhere unless intentionally creating a vulnerable scenario.
|
||||
|
||||
---
|
||||
|
||||
# Administrative Accounts
|
||||
|
||||
Create dedicated administrative accounts.
|
||||
|
||||
Examples:
|
||||
|
||||
```text
|
||||
administrator
|
||||
|
||||
itadmin
|
||||
|
||||
domainadmin
|
||||
```
|
||||
|
||||
Avoid logging into workstations with highly privileged accounts during normal operation.
|
||||
|
||||
---
|
||||
|
||||
# Service Accounts
|
||||
|
||||
Many enterprise attacks target service accounts.
|
||||
|
||||
Create:
|
||||
|
||||
```text
|
||||
svc_backup
|
||||
|
||||
svc_sql
|
||||
|
||||
svc_web
|
||||
```
|
||||
|
||||
Later chapters will intentionally configure weak permissions or Service Principal Names (SPNs) to practice attacks such as Kerberoasting.
|
||||
|
||||
---
|
||||
|
||||
# Security Groups
|
||||
|
||||
Create groups such as:
|
||||
|
||||
```
|
||||
IT
|
||||
HR
|
||||
Finance
|
||||
Developers
|
||||
Helpdesk
|
||||
Server Admins
|
||||
SQL Admins
|
||||
```
|
||||
|
||||
Assign users based on job function rather than individual permissions.
|
||||
|
||||
---
|
||||
|
||||
# Domain Computers
|
||||
|
||||
Join the following systems to the domain:
|
||||
|
||||
```
|
||||
WIN10-01
|
||||
|
||||
WIN10-02
|
||||
|
||||
FILE01
|
||||
|
||||
SQL01
|
||||
```
|
||||
|
||||
Linux systems will remain standalone for now.
|
||||
|
||||
---
|
||||
|
||||
# Joining a Workstation
|
||||
|
||||
Configure:
|
||||
|
||||
```text
|
||||
IP Address : 10.10.20.20
|
||||
Gateway : 10.10.20.1
|
||||
DNS : 10.10.20.10
|
||||
```
|
||||
|
||||
Open:
|
||||
|
||||
```
|
||||
System Properties
|
||||
```
|
||||
|
||||
Change the computer from a workgroup to the `LAB.LOCAL` domain.
|
||||
|
||||
Restart the machine when prompted.
|
||||
|
||||
Verify the computer appears under the **Computers** container, then move it into the **Workstations** OU.
|
||||
|
||||
---
|
||||
|
||||
# DNS Verification
|
||||
|
||||
From a workstation:
|
||||
|
||||
```powershell
|
||||
nslookup dc01.lab.local
|
||||
```
|
||||
|
||||
You should receive:
|
||||
|
||||
```text
|
||||
10.10.20.10
|
||||
```
|
||||
|
||||
Test name resolution before moving on.
|
||||
|
||||
---
|
||||
|
||||
# Group Policy
|
||||
|
||||
Create a baseline GPO for the Workstations OU.
|
||||
|
||||
Example settings:
|
||||
|
||||
* Disable guest account
|
||||
* Configure Windows Update
|
||||
* Set desktop wallpaper
|
||||
* Enable Remote Desktop (optional)
|
||||
* Configure password policy
|
||||
* Enable auditing
|
||||
|
||||
Later, you can create intentionally weak GPOs to practice abuse.
|
||||
|
||||
---
|
||||
|
||||
# File Shares
|
||||
|
||||
On FILE01 create:
|
||||
|
||||
```
|
||||
Finance
|
||||
|
||||
HR
|
||||
|
||||
IT
|
||||
|
||||
Public
|
||||
|
||||
Software
|
||||
```
|
||||
|
||||
Use different NTFS and share permissions to simulate real departments.
|
||||
|
||||
Some shares can intentionally have excessive permissions for later exercises.
|
||||
|
||||
---
|
||||
|
||||
# SQL Server
|
||||
|
||||
Deploy SQL Server Express on SQL01.
|
||||
|
||||
Create:
|
||||
|
||||
* Sample databases
|
||||
* SQL logins
|
||||
* Windows authentication
|
||||
|
||||
This provides targets for SQL enumeration and privilege escalation.
|
||||
|
||||
---
|
||||
|
||||
# Common AD Attacks to Practice
|
||||
|
||||
After the environment is complete, you'll be able to explore:
|
||||
|
||||
* SMB Enumeration
|
||||
* LDAP Enumeration
|
||||
* Kerberos Enumeration
|
||||
* Password Spraying
|
||||
* AS-REP Roasting
|
||||
* Kerberoasting
|
||||
* BloodHound Collection
|
||||
* Lateral Movement
|
||||
* Pass-the-Hash
|
||||
* Pass-the-Ticket
|
||||
* Group Policy Abuse
|
||||
* Unconstrained Delegation
|
||||
* Resource-Based Constrained Delegation (RBCD)
|
||||
|
||||
---
|
||||
|
||||
# Recommended Snapshots
|
||||
|
||||
Take snapshots after each milestone:
|
||||
|
||||
```
|
||||
SERVER_INSTALLED
|
||||
|
||||
AD_INSTALLED
|
||||
|
||||
USERS_CREATED
|
||||
|
||||
WORKSTATIONS_JOINED
|
||||
|
||||
READY_FOR_ATTACK
|
||||
```
|
||||
|
||||
This lets you reset the environment after exercises.
|
||||
|
||||
---
|
||||
|
||||
# Validation Checklist
|
||||
|
||||
Before continuing:
|
||||
|
||||
* [ ] Windows Server installed
|
||||
* [ ] AD DS installed
|
||||
* [ ] DNS installed
|
||||
* [ ] `LAB.LOCAL` domain created
|
||||
* [ ] Organizational Units created
|
||||
* [ ] User accounts created
|
||||
* [ ] Service accounts created
|
||||
* [ ] Security groups created
|
||||
* [ ] Workstations joined to the domain
|
||||
* [ ] DNS resolution verified
|
||||
* [ ] Baseline Group Policy applied
|
||||
* [ ] Snapshot created
|
||||
|
||||
---
|
||||
|
||||
# Next Chapter
|
||||
|
||||
The next chapter covers the Kali Linux attack workstation.
|
||||
|
||||
Topics include:
|
||||
|
||||
* Installing offensive security tools
|
||||
* Building a consistent pentesting toolkit
|
||||
* Configuring SSH keys
|
||||
* Setting up wordlists
|
||||
* Installing Impacket, BloodHound, Ligolo-ng, and other utilities
|
||||
* Creating reusable aliases and scripts
|
||||
* Organizing notes and reports for engagements
|
||||
|
||||
Reference in New Issue
Block a user