http module exploits SCCM’s client enrollment process to extract Network Access Account credentials from Management Points. This technique combines Adam Chester’s research with skelsec’s deobfuscator to spoof legitimate client enrollment and retrieve sensitive policy information.
This attack leverages the fact that SCCM clients automatically receive Network Access Account credentials through policy requests, allowing attackers to extract these credentials by masquerading as legitimate clients.
Attack Overview
The HTTP client enrollment attack works by:- Machine Account Creation: Creating a new machine account in Active Directory (or using existing credentials)
- Client Registration: Registering with Management Points as a legitimate SCCM client
- Policy Request: Requesting client policies that contain Network Access Account credentials
- Credential Extraction: Decrypting and extracting the credentials from the policy response
Troubleshooting Common Issues
'NoneType' object has no attribute split Error
'NoneType' object has no attribute split Error
Cause: This error typically occurs when the policy is not immediately available after registration.Solutions:
- Increase sleep time with the
-sleepflag (default: 10 seconds) - Use manual policy request with
-mpand-uuidflags - Wait for SCCM database updates to complete
- Check for proxy interference in network communications
- SCCM database performance issues
- Network proxy delays
- Management Point processing lag
- Timing synchronization issues
Prerequisites
Command Syntax
Parameters
Authentication Parameters
Authentication Parameters
| Parameter | Description | Example |
|---|---|---|
-u | Username for authentication | administrator |
-p | Password for authentication | P@ssw0rd |
-d | Target domain name | internal.lab |
-dc-ip | Domain controller IP or FQDN | 10.10.100.100 |
-hashes | NT:LM hash for authentication | aad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 |
-k | Use Kerberos authentication | |
-no-pass | Don’t prompt for password | |
-aes | AES key for Kerberos (128/256 bits) | |
-ldaps | Use LDAPS instead of LDAP |
Machine Account Options
Machine Account Options
| Parameter | Description | Example |
|---|---|---|
-auto | Automatically create machine account and extract policies | |
-cn | Existing machine account name | DESKTOP-ABC123$ |
-cp | Machine account password | RandomPassword123 |
Manual Operation Options
Manual Operation Options
| Parameter | Description | Example |
|---|---|---|
-uuid | Registration UUID for manual policy request | 7E7CC94B-E056-45C8-A2D9-03AD3114AE1F |
-mp | Specific Management Point to target | mp.internal.lab |
-sleep | Wait time between registration and policy request (seconds) | 20 |
-debug | Enable verbose logging |
Usage Examples
Automatic Machine Account Creation and Credential Extraction
Automatic Machine Account Creation and Credential Extraction
Fully automated attack using account with machine creation privilegesExpected Output:
The automatic mode creates a new machine account, registers with all discovered Management Points, and extracts Network Access Account credentials. The decrypted policy is saved for further analysis.
Manual Attack with Existing Machine Credentials
Manual Attack with Existing Machine Credentials
Use pre-existing machine account credentials for stealthy operationsExpected Output:
Manual Policy Request from Previous Registration
Manual Policy Request from Previous Registration
Request policies using previously obtained registration UUIDExpected Output:
Attack Analysis
Understanding Network Access Account Credentials
The extracted Network Access Account (NAA) credentials provide:
- Domain Authentication: Access to network resources during OS deployment
- Share Access: Read access to distribution point content shares
- Lateral Movement: Potential for further domain compromise
- Task Sequence Variables: Additional secrets from deployment configurations
Operational Security
Detection Considerations:
- Machine account creation may trigger security alerts
- HTTP traffic to Management Points may be logged
- Policy requests create entries in SCCM logs
- Consider using existing machine accounts when possible
Output Files
Generated Artifacts:
- Decrypted policy XML files
- Registration UUIDs for future use
- Network Access Account credentials
- Task sequence variable dumps
Troubleshooting Guide
Common Error Messages and Solutions
Common Error Messages and Solutions
‘NoneType’ object has no attribute split
- Increase
-sleepvalue to 20-30 seconds - Try manual policy request with saved UUID
- Check Management Point availability
- Verify machine account creation permissions
- Confirm machine account credentials are correct
- Check Kerberos vs NTLM authentication requirements
- Run
findmodule first to discover MPs - Verify Management Points are accessible
- Check network connectivity to HTTP endpoints
Next Steps
Credential Usage
Use extracted NAA credentials for:
- SMB share enumeration
- Distribution Point access
- Further lateral movement
MSSQL Exploitation
Leverage credentials for database attacks and privilege escalation
DPAPI Extraction
Extract additional secrets from client systems using local admin access