Aller au contenu

Depuis Linux

👮 Password policy

Par défaut, la politique de mot de passe est souvent configurée comme ceci:

Policy Default Value
Enforce password history 24 days
Maximum password age 42 days
Minimum password age 1 day
Minimum password length 7
Password must meet complexity requirements Enabled
Store passwords using reversible encryption Disabled
Account lockout duration Not set
Account lockout threshold 0
Reset account lockout counter after Not set

En ayant des creds valides il est possible d'énumérer la politique de mot de passe avec crackmapexec:

netexec smb $ip -u $user -p $pass --pass-pol

Sans creds valides, possible avec une NULL SESSION. Via rpc:

1
2
3
rpcclient -U "" -N $ip
querydominfo
getdompwinfo

via enum4linux:

enum4linux -P $ip

Parfois il est possible de récupérer des infos depuis le LDAP sans avoir de creds valides (anonymous bind). Ce n'est normalement plus le cas de base depuis Windows Server 2003 mais l'option peut avoir été activée:

ldapsearch -h $ip -x -b "DC=INLANEFREIGHT,DC=LOCAL" -s sub "*" | grep -m 1 -B 10 pwdHistoryLength

En direct depuis un windows:

net accounts

🤼 Users

Sans creds, il peut être possible d'avoir une liste d'user via une NULL session également. Via enum4linux:

enum4linux -U $ip  | grep "user:" | cut -f2 -d"[" | cut -f1 -d"]"

via rpc:

rpcclient -U "" -N $ip
enumdomusers

via crackmapexec:

netexec smb $ip --users

Comme la politique de mot de passe, il est possible d'avoir une liste d'user si LDAP permet l'anonymous bind. Via ldapsearch:

ldapsearch -h $ip -x -b "DC=INLANEFREIGHT,DC=LOCAL" -s sub "(&(objectclass=user))"  | grep sAMAccountName: | cut -f2 -d" "

Via windapsearch.py:

./windapsearch.py --dc-ip $ip -u "" -U

Il est possible de bruteforcer une liste d'utilisateurs via kerbrute. Cette méthode a pour avantage de ne pas générer d'event "failed to log on" ou "logon failure":

kerbrute userenum -d inlanefreight.local --dc $ip /opt/wordlist.txt

Avec des creds valides, il est possibles d'utiliser crackmapexec:

netexec smb $ip -u $user -p $password --users

Avec des creds valides, énumération des users loggés:

netexec smb $ip -u $user -p $password --loggedon-users

👨‍👩‍👦 groupes

Avec des creds valides, énumération des groupes présents sur l'AD:

netexec smb $ip -u $user -p $password --groups