| Už jsem tu několikrát psal o účtech počítačů v Active Directory a jejich heslech (například tady a tady). Vždycky mě ale zajímalo, jaké heslo je na účtu počítače (computer account) nastaveno po jeho vytvoření, případně pokud se použije operace Reset Account z konzole Active Directory Users and Computers (dsa konzole, dsa.msc).
Proč je to zajímavé? Protože:
- účet počítače se nikdy nezamyká, můžete zkoušet heslo nekonečně dlouho
- pro účet počítače neplatí žádné zásady hesel, ani kvalita ani historie
- při připojování do domény si počítač musí svoje výchozí heslo změnit (change password), nebo vyresetovat (reset password) pokud nezná heslo, které na účtu zrovna je
- existuje v konzoli operace Reset Account, která vám nedá vybrat novou hodnotu hesla (pokud byste chtěli na účet počítače nastavit nějaké konkrétní heslo - například kvůli RODC join operaci, tak můžete třeba přes konzoli ADSI Edit nebo LDP, tam to jde)
- účet a heslo počítače se dá normálně používat pro přístup do sítě, jenom se nemůže přihlásit interaktivně. Login počítače je vždycky jeho jméno zakončené dolarem $. Pokud znáte heslo, stačí ho použít například přes runas s parametrem /netonly.
- pokud se používá účet počítače pro přístup do sítě, ve výchozím stavu je na všech síťových prostředcích členem Users skupiny.
Jak jsem zjišťoval následujícíc poznatky? Použil jsem v testovacím prostředí nástroj Cain&Abel. A díval jsme se na heše hesla počítačových účtů - těch s dolarem $ na konci. Různé operace nastavují heslo různě.
Vytvoření nového účtu počítače přes ADUC/DSA konzoli
Tahle konzole, při vytváření účtu počítače, na něm nastaví náhodné heslo. Pokud jsem vytvořil vícekrát stejný účet, byla na něm pokaždé jiná hash.
Vytvoření nového účtu počítače pomocí NET COMPUTER /ADD
Pokud vytváříte počítačový účet pomocí příkazu NET COMPUTER /ADD, tak je heslo pokaždé stejné. Je to jméno počítače zapsané malými písmeny, bez koncového dolaru.
Vytváření nového účtu počítače přes ADSI rozhraní
Například z PowerShellu nebo přes VBScript apod. nastavuje heslo úplně prázdné:
$ou = [ADSI] 'LDAP://OU=Company,DC=gopas,DC=virtual'
$newComp = $ou.Create('computer', 'CN=dummyComp')
$newComp.Put('sAMAccountName', 'dummyComp$')
$newComp.SetInfo()
Vytváření nového účtu počítače přes ActiveDirectory modul v PowerShellu
Pomocí cmdletu New-ADComputer -Name se vytvoří účet počítače s náhodným heslem
Použití operace Reset Account na objektech počítačů v Active Directory Users and Computers konzoli
Tahle operace uvede heslo také pokaždé na stejnou hodnotu, stejně jako NET COMPUTER. Heslo je jméno počítače malými písmeny bez koncového dolaru. |