net user / net group — Manual Windows Enumeration
What is net.exe?
Built-in Windows command for users, groups, shares, sessions, and password policy. First stop for manual enum after whoami on any Windows shell — CMD, WinRM, or RDP.
OSCP use: Find local admins, domain users, disabled accounts, password policy before spray, and whether you’re on a domain-joined host. Works without PowerShell (unlike PowerView).
Run from: CMD, cmd.exe via evil-winrm, Impacket -x "net user", SQL xp_cmdshell.
Syntax Overview
net user [username [password | *] [/domain] [options]]
net localgroup [groupname [username] [/add | /delete] [/domain]]
net group [groupname [/domain] [options]]
net accounts [/domain]
net share
net session
net useTemplate
net localgroup administrators Eric.Wallows /add
net localgroup "Remote Desktop Users" jsmith /add
## 📌 1) net user — Users
### List all users
```cmd
net user
net user /domain REM Domain users (needs domain creds / joined host)
View one user (groups, last logon, flags)
net user %username%
net user administrator
net user jsmith /domainLook for in output:
| Field | Why it matters |
|---|---|
Local Group Memberships | Is user in Administrators? |
Global Group memberships | Domain groups (Domain Admins, etc.) |
Account active | Yes/No |
Password last set | Stale creds / spray timing |
Last logon | Active account |
Password required | Blank password allowed? |
User may change password | Policy hint |
Logon hours allowed | Restrictions |
Add / modify users (needs privs)
net user john johnjohn /add
net user hacker P@ssw0rd123! /add /domain
net user john /active:yes
net user hacker /expires:never
net user hacker /passwordreq:yes
net user hacker * REM Prompt for passwordDelete user
net user hacker /delete
net user hacker /delete /domain📌 2) net localgroup — Local Groups
List local groups
net localgroupView group members
net localgroup administrators
net localgroup "Remote Desktop Users"
net localgroup "Backup Operators"Common groups to check:
| Group | Relevance |
|---|---|
Administrators | Local admin |
Remote Desktop Users | RDP access |
Backup Operators | Backup priv abuse |
Power Users | Legacy, sometimes misconfig |
Users | Default group |
Add user to local group
net localgroup administrators john /add
net localgroup "Remote Desktop Users" jsmith /add📌 3) net group — Domain Groups
Requires domain context (/domain) and usually domain user creds:
net group /domain
net group "Domain Admins" /domain
net group "Domain Users" /domain
net group "Enterprise Admins" /domain
net group "Account Operators" /domain
net group "Server Operators" /domainAdd/remove domain group member (needs rights):
net group "Domain Admins" jsmith /add /domain
net group "Domain Admins" jsmith /delete /domainOn AD sets, pair with PowerView, CrackMapExec - nxc, ldapsearch —
netis quick from any shell.
📌 4) net accounts — Password Policy
Check before password spray — lockout threshold and reset time:
net accounts
net accounts /domain| Field | Spray impact |
|---|---|
Lockout threshold | How many bad attempts before lockout |
Lockout duration | How long account stays locked |
Lockout observation window | Window for counting failures |
Minimum password length | Wordlist tuning |
Maximum password age | Expiry behavior |
Compare with nxc smb TARGET --pass-pol and CrackMapExec - nxc.
📌 5) Other net Commands (Enum)
net share REM SMB shares on this host
net session REM Active SMB sessions (admin)
net use REM Mapped drives / connections
net view \\TARGET REM Shares on remote host
net view /domain REM Domain computers (legacy)
net config workstation REM Computer name, domain, logon server
net config server REM Server role
net statistics workstation REM Stats since boot📌 6) CMD vs PowerShell Equivalents
| Task | CMD | PowerShell |
|---|---|---|
| List users | net user | Get-LocalUser / Get-ADUser -Filter * |
| Local admins | net localgroup administrators | Get-LocalGroupMember administrators |
| Current user | whoami /all | whoami /all or [System.Security.Principal.WindowsIdentity]::GetCurrent() |
| Domain groups | net group "Domain Admins" /domain | Get-ADGroupMember "Domain Admins" |
Use net when PowerShell is restricted or you’re in pure cmd.exe.
📌 7) OSCP Manual Enum Workflow
whoami /all
net user %username%
net user
net localgroup
net localgroup administrators
net accounts
REM If domain-joined:
net user /domain
net group "Domain Admins" /domain
net accounts /domain
systeminfo | findstr /B /C:"Domain"Then: Windows PrivEsc, Privesc Tools, PowerView if PS available.
📌 8) Common Errors
| Error | Meaning |
|---|---|
System error 5 | Access denied — need higher privs |
The user name could not be found | Wrong username or wrong /domain |
The request will be processed at a domain controller | Normal for /domain queries |
Empty /domain list | Not domain-joined or no domain auth |
📌 Quick Cheat Sheet
net user
net user %username%
net localgroup administrators
net accounts
net user /domain
net group "Domain Admins" /domain
net share
whoami /allREM Add admin (after privesc)
net user hacker P@ssw0rd123! /add
net localgroup administrators hacker /add