Aller à : navigation, rechercher

SAMBA - Liste des derniers mot de passe changés

Utilisation d'un script python pour afficher les personnes qui ont changé leur mot de passe depuis une certaine date.

C'est fortement utile suite à la faille de sécurité CVE-2018-1057 publiée le 13 mars.

  • Créer le fichier /root/last_changed_password.py
#!/usr/bin/python2
import samba
import sys, ldb, os
from datetime import datetime
 
from samba import dsdb
from samba.samdb import SamDB
from samba.param import LoadParm
from samba.auth import system_session
from samba.credentials import Credentials
from datetime import datetime,timedelta
import time
 
lp = LoadParm()
creds = Credentials()
creds.guess(lp)
sam_ldb_file = "/var/lib/samba/private/sam.ldb"
samdb = SamDB(url=sam_ldb_file, session_info=system_session(),  lp=lp)
if len(sys.argv) > 1:
   date_limit = time.mktime(datetime.strptime(sys.argv[1], '%Y%m%d').timetuple())
else:
   print "%s 20161230" % sys.argv[0]
   print "These users have changed their password since 20161230"
   sys.exit(1)
 
domain_dn = samdb.domain_dn()
domain = samdb.domain_dns_name()
def ADToUnix ( WinTimestamp, accExp = 0 ):
    MagicNumber = 11644473600
    if accExp:
        MagicNumber += 86400
    return ( (WinTimestamp /10000000) - MagicNumber )
 
def UnixToAD ( UnixTimesTamp, accExp = 0 ):
    MagicNumber = 116444736000000000
    if not accExp:
        MagicNumber += 86400
 
    return ( (UnixTimesTamp *10000000) + MagicNumber )
 
res = samdb.search(domain_dn,scope=ldb.SCOPE_SUBTREE, attrs=["dn","pwdLastSet","samaccountname"],expression='(&(lastlogon=*)(objectClass=user)(!(objectClass=computer)))')
for msg in res:
    dn =  msg.get("dn", idx=0)
    samaccountname =  msg.get("samaccountname", idx=0)
    pwdLastSet = int(msg.get("pwdLastSet", idx=0))
 
    if pwdLastSet > UnixToAD(date_limit):
        print samaccountname, datetime.fromtimestamp(ADToUnix(pwdLastSet))
  • On met les droits d’exécution
chmod 775 /root/last_changed_password.py
  • On liste les utilisateurs qui ont changé leur mot de passe depuis 10 Mars 2018
 
 [root@dc1 ~]# /root/last_changed_password.py 20180310
 toto096 2018-03-15 17:18:10