Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Vlastní řešení změny lokálních admin účtů o hodně lepší než LAPS
únor 27
Vlastní řešení změny lokálních admin účtů o hodně lepší než LAPS

Už to začíná být docela vyladěné, takže jsem se rozhodl zveřejnit vlastní řešení na řízení hesel lokálních admin účtů na stanicích a serverech. Je to něco podobného jako LAPS od Microsoftu, ale je to lepší. Samozřejmě :-) Obsahuje to fíčury, které jsem vyvíjel vždycky pro nějakého zákazníka, takže všechno má smysl :-)

O co jde?

Na počítačích v síti, ať už jsou doménové, nebo ne, nebo jsou spravované Intune apod. potřebujete mít nějaký lokální účet, nebo účty, které jsou lokálními Administrators. Říkám schálně lokální účty, protože pokud nejede síť, nebo doménové ověřování, tak byste se tam nepřihlásili. Někdy počítač odpojíte z domény kvůli údržbě, a pokud neznáte heslo lokálního správce, už se tam nedostanete. Někdy vám počítače vypadávají z domény i samy. Pokud nemáte doménu nebo Azure, je to jasné samo o sobě.

Na jednotlivých strojích nechcete mít stejná hesla těchto účtů. Pokud někdo jedno zjistí, dostal by se s tím na všechny ostatní stroje. Potřebujete tedy náhodné heslo admin účtu na každém počítači. Také ho chcete občas změnit. Nebo ho chcete změnit i rovnou brzy po jeho občasném použití.

Co to umí?

  • hesla ukládat do trezorů, kterými je Active Directory, FTPS server ve formě souborů, nebo Azure Key Vault
  • měnit automaticky heslo zabudovaného účtu Administrator (SID -500) na náhodné
  • přejmenovat, nebo úplně zakázat zabudovaný účet Administrator (SID -500) a klidně mu u toho taky měnit heslo
  • vytvořit vlastní účet, který bude členem skupiny Administrators a bude mu měněno heslo (lze vytvářet více takových účtů)
  • vytvořit další vlastní účty, které třeba ani nebudou členem skupiny Administrators, a budou mít náhodné heslo (například kvůli nějakým naplánovaným úlohám, nebo autologon na kiosku)
  • zapnout daný účet rovnou na autologon
  • měnit hesla opakovaně po několika dnech
  • měnit hesla rovnou brzy po jejich použití. Jakmile se jednou použije, po několika hodinách se rovnou heslo změní. Nemusí se čekat na pravidelný interval změny
  • pamatovat si historie všech hesel, takže pokud se změna nepovede, nebo se nezapíše do trezoru (síťové výpadky), tak se dá použít předchozí heslo
  • pokud počítač obnovíte ze zálohy, nebo snapshot, nebo checkpoint, nebo imidž, tak máte tehdejší heslo v trezoru
  • různé kombinace předchozího. Můžete mít více účtů, něco v AD, něco v FTPS a něco v Azure Key Vault. Současně autologon apod.

Jak na to?

Tady si to stáhnete. Případně zdrojové kódy jsou vidět po jednom zde. Celé to dělá skript nazvaný JOB. Spouští se stejně pojmenovaným BATákem. Pokud chcete trezor v ADčku, musíte si rozšířit schéma pomocí SCHEMA-UPDATE souboru. Do Active Directory se to zapisuje pod účtem počítače, pod kterým to je také potřeba spouštět.

Pokud chcete trezory v FTPS nebo Azure stačí zadat login a heslo. V případě těchto dvou trezorů je generováno náhodné jméno souboru nebo tajemství (secret), samozřejmě odpovídající jménu počítače, ale obohocené o náhodné číslo. Tím se brání DoS útoku, protože na všech počítačích budete mít nejspíš stejná hesla do FTPS nebo Azure Key Vault. Stačí udělat takový účet, který má zakázané čtení v tom FTPS nebo Azure. Stačí mu tam jenom zapisovat. Nemusí být schopen z toho nic přečíst.

Na ruční zkoušení jsou tam BATáky nazvané USE. Loginy a hesla jsou v nich, to si musíte upravit a můžete zkoušet. Pokud použijete heslo ve formě hvězdičky (*) zeptá se vás to.

Comments

Lokální řešení pro stanici offline?

ahoj Ondro, díky za toto řešení. Čirou náhodou, toto řešení pro osamělou stanici, tedy s úložištěm hesel na tom samém stroji bys neměl? tedy pokud to není příliš pitomý nápad :)

proč to potřebuji? občas mívám stanice, nebo servery, které jsou kompletně izolované pro testovací účely. na dotyčném stroji se něco testuje, nějaká aplikace. případně je to jen dvojice server a klient, které jsou jen spolu propojeny a jinak kompletně izolované ...

díky.

Michal
Michal Zobec on 8.3.2020 18:02

Object Computer

Dobrý den,
je nějak řešený případ, pokud při automatické instalaci počítače (SCCM), nový počítač dostane stejný název, původní počítač tedy z AD zmizí? Lze nějakým způsobem heslo z AD dostat? Nebo je nutné udržovat další databázi hesel mimo AD?
Díky,
Jakub
Jakub on 22.9.2020 13:04

GitHub

ahoj Ondro, prosím tě, tak mě napadlo se zeptat, nebo tě poprosit. nechceš svou práci publikovat na githubu? myšleno skripty a další kód?

jde mi o to že za prvé se snadněji sleduje, že jsi dělal nějaké změny/aktualizace, za druhé si můžu udělat fork a odkazovat na tebe :)

díky

Michal
Michal Zobec on 24.10.2020 12:55

clen skupiny Administrator

Dobry den,
kdyz smazu po spusteni skriptu nove vytvoreneho lokalniho Admina ze skupiny Administrators tak se pri dalsim spusteni jiz sam znovu do teto skupiny neprida. Jde to nejak vynutit ?
Kamil on 2.11.2021 10:33

Install GPO script error

PS C:\Users\Administrator\Downloads\saphaMA-v247> .\SAPHA-machine-admins-INSTALL-GPO.bat
#######################################################################################################################
#######################################################################################################################
###
###  SAPHA Local Machine Admins toolkit - GPO INSTALLER
###  (C) Ondrej Sevecek, 2019 - ondrej@sevecek.com, www.sevecek.com
###
###
###  This code creates a new Group Policy Object (GPO) in the current domain which contains Group Policy Preferences
###  Scheduled Tasks item which triggers periodic password changes for the managed local admin account. The GPO is
###  either only created in the domain or you can also have it automatically linked to the domain level
###
###

Verify some basic environment parameters
Local domain: domena.local | DC=mako,DC=local
Test if the target installation folder is read: \\domena.local\SYSVOL\domena.local\Scripts
Test if the required GPO does not exist yet: SAPHA Local Admin
Verify existance of the GPO preferences XML file
Find the JOB BAT file
Found JOB BAT file: SAPHA-machine-admins-JOB.bat
Update the source GPO preferences XML file: C:\Users\Administrator\Downloads\saphaMA-v247\SAPHA-machine-admins-INSTALL-GPO.xml
Create the new GPO: SAPHA Local Admin
New GPO created: SAPHA Local Admin | d060f6bf-a685-4219-b9b2-d354356b203f | domena.local
Set GPO permissions to Apply for Domain Computers
Update GPT.INI version
Save the new GPT.INI content into the file: \\domena.local\SYSVOL\domena.local\Policies\{d060f6bf-a685-4219-b9b2-d354356b203f}\gpt.ini
Assert the target installation folder: \\domena.local\SYSVOL\domena.local\Scripts\SAPHA Local Admin
Apply restrictive NTFS permissions to the installation folder: \\domena.local\SYSVOL\domena.local\Scripts\SAPHA Local Admin
Successfully processed 1 files; Failed processing 0 files
Successfully processed 1 files; Failed processing 0 files
Successfully processed 1 files; Failed processing 0 files

ERROR: Cannot convert the "SRC" value of type "System.IO.DirectoryInfo" to type "System.IO.FileInfo".
At C:\Users\Administrator\Downloads\saphaMA-v247\SAPHA-machine-admins-INSTALL-GPO.ps1:190 char:3
+   [System.IO.FileInfo[]] $sourceItems = Get-ChildItem $toolFolderName ...
+   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : MetadataError: (:) [], ArgumentTransformationMetadataException
    + FullyQualifiedErrorId : RuntimeException



--prosim Vas , pozna niekto pricinu
Mako on 8.4.2022 15:11

šifrováni hesla uloženého v AD

Je to samotné heslo když je uloženo v AD šifrováno nebo je uloženo v plain textu? Případně jak? Díky moc.
RenS on 22.8.2023 14:29

billie

Use Windows LAPS to rotate and manage local administrator account credentials on a regular https://theminicrossword.com basis to reap the following benefits: Pass-the-hash and lateral-traversal attacks are prevented. Security has been enhanced for remote help desk settings. Sign in to and recover devices that may otherwise be inaccessible.
Billie34 on 23.8.2023 8:45

Add Comment

Title


Pole Title nemusíte vyplňovat, doplní se to samo na stejnou hodnotu jako je nadpis článku.

Author *


Pole Author nesmí být stejné jako pole Title! Mám to tu jako ochranu proti spamu. Roboti to nevyplní dobře :-)

Body *


Type number two as digit *


Semhle vyplňte číslici dvě. Předchozí antispemové pole nefunguje úplně dokonale, zdá se, že jsou i spamery, které pochopily, že je občas potřeba vyplnit autora :-)

Email


Emailová adresa, pokud na ni chcete ode mě dostat odpověď. Nikdo jiný než já vaši emailovou adresu neuvidí.

Attachments