Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > default
duben 14
Nová adresa (https://www.ondrejsevecek.cz)

Ode dneška je tento blog přesunut na novou adresu https://www.ondrejsevecek.cz.​ Omlouvám se za komplikace. Bohužel na googlu nejde jen tak aktualizovat odkazy, tak se to snad samo opraví postupně a znovu všechno naindexuje.

Na původní adrese https://www.sevecek.com jsem ještě na nějakou dobu zanechal redirect, bohužel to má certifikát se špatným názvem, protože na mém prehistorickém TMG 2010 nejde udělat SNI binding :-(

květen 24
TechEd 2023 - MFA - řešení problému

Měl jsem teď na TechEdu problém s funkcí /remoteGuard. Ne že bych někomu doporučoval to používat pro správu, ale pro běžné uživatele na aplikační terminálový server je to velmi pohodlné. A nejelo mi to.

Důvodem bylo zřejmě​ to, že ​na klientovi byl zapnut Credentials Guard. Podle mě to musí fungovat i v této kombinaci, ale po vypnutí Credentials Guard na klientovi se mstsc /remoteGuard rozjel.

Akutalizace: tak bylo to starou verzí Windows 10 20H2. Nejnovější verze 22H2 funguje dobře, Credentials Guard + /remoteGuard bez problémů.

únor 15
SAPHA AD scanner konečně venku aneb případ jedné DoS chybičky

Na konci října jsem tady na jeden týden uveřejnil svůj AD scanner bezpečnosti. Byl jsem na něho pyšnej. Prošlo to testy na více než 250 000 účtech a více než stovce řadičů domény (DC). A za několik dnů mi zákazník píše, že mu to restartuje řadiče domény. Následovalo horentní testování. Trvalo mi překvapivě jen několik hodin, než jsem to nasymuloval.

Opravdu se to dělo po několika desítkách tisíc replikací objektů, chaoticky někdy ano, obvykle ne. Vždycky jenom pod zátěží a v okamžiku, kdy moje replikace kolidovala s nějakou jinou v tu správnou milisekundu. Kontroluju kvalitu hesel z jejich heší a k tomu využívám běžně zdokumentované DRSR API. No evidentně jsem nechtěně objevil tzv. race condition - tedy nekorektní stituaci, kdy LSASSu vadilo, že se dva replikační požadavky setkaly. A šel do restartu, event ID 1173 od ActiveDirectory_DomainServices s hláškou C0000005.

Skenování ve velkých doménách trvá někdy i několik hodin, takže skript se umí bez problémů přepínat mezi řadiči domény, pokud někde upadne konektivita. Tudíž jsem si toho nevšiml. Ale zpětná analýza logů ukázala, že se to fakt občas děje i na mém testovacím vzorku. Jenomže nikomu občasný restart DC nevadil :-) tak se to nepoznalo.

Následovalo deset! full time dnů práce na dvou věcech - zaprvé zjistit proč, a kdy se to přesně děje, abych to mohl nahlásit do Microsoftu. Za druhé samozřejmě workaround, pokud by byl možný. Nebyl. Nakonec jsem dokázal restartovat libovolný řadič domény během několika sekund od zahájení "útoku".

A dokázal jsem to i bez přihlašovacích údajů na úrovni Domain Admins, aby se to dalo kvalifikovat jako DoS pod omezeným účtem. Pěkně z RODC pod jeho obyčejným správcem. RODC můžete mít například i v DMZ apod. Takže jsem to 30. října nahlásil na MSRC jako DoS.

Po několika kolečkách vysvětlování, těsně před vánoci, dorazilo tohle:

Hello Ondrej,

Thank you for your submission. We determined your finding is valid but does not meet our bar for immediate servicing.
For more information, please see the Microsoft Security Servicing Criteria for Windows.

However, we’ve marked your finding for future review as an opportunity to improve our products.
I do not have a timeline for this review. As no further action is required at this time, I am closing this case.  

No super :-) Naštěstí se mi podařilo z nich vydyndat workaround. Zjistilo se, že to není žádný workaround. Prostě jsem používal špatnou kombinaci parametrů. Blbci. Kdyby to správně pořádně zdokumentovali, tak jsme si mohli tohle všechno ušetřit.

Tak jsem to zapracoval, celý skenner současně ještě trošku vylepšil, znovu přetestoval (poslední tři týdny nedělám skoro nic jiného) a už je zase k dispozici.

říjen 23
Proč ransomware funguje?

Záznam z mé přednášky ​na konferenci CyberCon 2020. Povinnost vidět pro každého, kdo doufá, že ho antivirové produkty ochrání:

Proč ransomware funguje - CyberCon 2020

říjen 22
SAPHA ad scanner

Kdo má zájem vyzkoušet můj SAPHA (Sevecek AD and password hash analysis) AD scanner, který jsem prezentoval na WUG Days 2020, zde je několik poznámek:

  1. stáhněte si celý balík SAPHA AD scanneru zde. Nebo na mém OneDrive zde.
  2. jsou uvnitř i zdrojové kódy v adresáři SRC-CAN-REMOVE, které nepotřebujete k provozu samotnému a můžete je tedy vymazat, pokud vás to nezajímá
  3. všechno co jde, je digitálně podepsáno mým podpisovým certifikátem, který je součástí balení v adresáři Certificates
  4. kdyby tomu někdo nevěřil, tak thumbprint podpisového certifikátu je 0754e7dfdac37f067d5f8e5f24239505fbe508cc, thumbprint CAčky je b1edc75e1e4572ad493899a593c2f7cca0d5095b a ID klíče CAčky je 1a7304060d3638d36f4de171aa14657c77a0d0c9
  5. otisk SHA256 nejnovějšího .ZIP souboru je: 68-AA-BD-89-DC-A5-8B-F8-7A-5D-02-03-64-B9-BF-78-41-55-64-6F-39-C5-3D-33-16-AF-91-21-02-66-D3-49
  6. otisk SHA265 nejnovějšího .ZIP souboru se zdrojáky je: 01-4F-08-7A-40-37-15-FD-13-EB-DC-08-0F-06-DB-CD-64-F9-E7-05-4D-8F-FE-3B-5B-F2-44-76-F3-CE-CD-60
  7. dále je tam seznam SHA256 heší všech souborů v souboru signed-catalogue.csv, který je sám také podepsaný
  8. ideálně přímo na nějakém DC, které má online konektivitu na ostatní DC a další TIER0 servery, spustíte celý AD scan včetně PWD scanu:
saphaADscanner.bat
mon -all
  1. všechny nálezy najdete v CSV souboru OUTPUT\OUT-PWDS-...\pwds-...issues....csv

 

  1. pokud nemáte online konektivitu na ostatní DCčka, tak to můžete spustit postupně na každém zvlášť. Ideálně na každém z nich vytvoříte jen DC scan:
saphaADscanner.bat
mon -dcOnly
  1. jednotlivé DC scany je nejlepší dělat postupně, vždy na jednom DC a potom to celé, včetně OUTPUT adresářů, překopírovat na další DC a znovu spustit další DC scan. Už se totiž nebude muset dělat znovu SYSVOL scan ani FOREST scan.
  2. pokud to někde selže, možná přes síť, nebo lokálně, poznáte to jednoduše podle toho, že odpovídající OUTPUT adresář bude mít jméno obsahující error.interrupted. A stačí to prostě na tom počítači spustit znovu, pokud se jednalo o problém přístupu přes síť.
  3. až máte kompletní výstup adresářů OUTPUT-DC tak můžete končeně spustit zbytek, tak jako na začátku:
saphaADscanner.bat
mon -all
  1. pokud adresáře existují, tak se to znovu neskenuje. Kdybyste chtěli vyvolat nové skenování, tak buď smažete odpovídající OUTPUT adresáře, nebo použijete parametr:
saphaADscanner.bat
mon -all -rescanAll

 

Prozatím jsem nepublikoval verzi se skenováním lokálních hesel serverů a DSRM admin hesel, protože je tam jedna muška, vydám snad během zbytku týdne. V adresáři budou vždycky všechny vydané verze, takže si prostě stáhnete tu nejnovější.

Jakékoliv vady hlaste, fíčr requesty požadujte a užívejte!

říjen 22
WugDays 2020 aka Conšvindr 2020 aka GešvindrFest 2020

Děkuji za možnost zúčastnit se!!! A nejvíc děkuji Davidovi Gešvindrovi, že to uspořádal a natočil nás. Takový objem práce pro komunitu jsem snad ještě neviděl!!!

K přednášce o PowerShellu najdete ukázkový skript zde​.

K přednáškám o SAPHA AD scanneru a SAPHA Machine Admins (aka LAPS) budou samostatné přízpěvky.

září 18
NUKIB CyberCon dodělávky

Předně děkuji za možnost zúčastnit se!

a) teď jsem znovu vyzkoušel tu ne úplně podařenou schránku. Nevím proč, ale i v tom VMCONNECT klientovi RDP to teď funguje normálně tak, jako v případě MSTSC klienta RDP.

Okno se skenerem schránky ve vzdáleném RDP (ať je to MSTSC nebo VMCONNECT) můžete mít klidně i minimalizované. Pokud v jiném okně VMCONNECT dáte něco do schránky, 1-2 sekundy to tam necháte, dáte tam něco jiného a takhle několikrát dokola, můžete se následně jít přesvědčit do toho prvního minimalizovaného okna, že všechny schránky to vycucalo v průběhu. A to aniž by to okno bylo vidět.

Důvod proč to včera fungovalo až s tou poslední schánkou nevím, možná jsem ten první text do schránky korektně nevložil, nebo to bylo vytuhlé, nebo možná moc rychlé, teď jsem tomu dával 1-2 sekundy čas. Nebo to prostě někdy přes minimalizovaná okna nefunguje. Ale teď ve vlaku to opět funguje :-)

b) prý byly nějaké dotazy, které jsem nestihl zodpovědět v tom online systému a po přednášce jsem je tam už neviděl. Kdokoliv cokoliv, pište emailem prosím.

c) po přednášce, ještě než jsem zdrhal zpátky do práce, jsem stihl promluvit s jedním pánem, co mi říkal senzační UAC bypass a další věci. Kdybyste ho někdo znali, řekněte mu, ať se mi ozve :-) Nemám na něj bohužel kontakt. Chtěl jsem původně nasprejovat na zeď v podchodu něco ve stylu "hledám simonu z čochu ze soboty, ozvi se. značka ten co ti držel vlasy". Ale pak jsem si říkal, že jsme dospělí lidé :-DDD

 

květen 25
Poznámky k heslovníčkům a jejich bezpečnosti

Měl jsem na GOPAS TechEd Online přednášku o ransomware, kde jsem vyhrožoval :-) ohledně heslovníčků. Po několika dotazech bych to rád trošku uvedl na pravou míru.

Cílem části přednášky bylo uvědomit si, že samotné použití heslovníčku (bacha to se vtahuje i na PAM - provileged access management), ať už cloudového nebo lokálního, vás proti krádeži přihlašovacích údajů neochrání. Pokud už se spyware spustí, vždycky to ukradne. I když se všichni pyšní tím, že mají databázi šifrovanou, nebo že je to cloudové řešení a má to více-faktorové (MFA) přihlašování. Pokud s tím můžete pracovat vy, může s tím pracovat i spyware.

Šifrovací klíče jsou v paměti. Řekněme, že by to bylo celé v cloudu a pracovalo se s tím přes webový prohlížeč, nebo jinou GUI aplikaci. Jak jste mohli vidět, vždycky si něco dáte do schránky a použijete to v nějakém programu. Jaký je problém, aby si to spyware vzal?

Při nejhorším to za vás spyware celé prokliká. Nevím jestli to už existuje, ale odhaduju to tak na 1 den práce, udělat automatický proklikávač prohlížeče pro každý cloudový heslovníček, který se nabízí. Porovnejte to s cenou dat v nemocnici :-) Máte tam MFA (multi-factor ověření)? Jenže to MFA zadáváte jenom jednorázově při vstupu a potom je přístup dlouhodobě otevřený. Pokud se ten spyware integruje do prohlížeče, nemůže mít problém. Porovnejte s elektronickým bankovnictvím, kde děláte MFA pro každou platbu, což provádíte jen velmi sporadicky.

Jsou tedy heslovníčky špatné?

Nejsou. Je to o něco lepší než zašifrovaný Excel. Umožňuje to nepamatovat si hesla. Mít striktně různá hesla do různých služeb. Mít kvalitní, automaticky generovaná hesla. Schránku to čistí po několika vteřinách. Může to mít MFA pro vstup do heslovníčku. Můžete to mít na více zařízeních.

Prostě všechno super. Jen to má limity, které si člověk musí uvědomit.

Je lepší lokální nebo cloudový heslovníček?

Mě je to fakt jedno. Jde spíš o osobní zvyk práce, jestli to umí MFA a přístup na internet, který to případně vyžaduje.

Jak tedy bezpečněji?

Ke správě počítačové sítě je potřeba mít vyhrazené čisté a zabezpečené prostředí (SAE - secure administration environment), kde je jen malá šance, že by se objevil spyware. Podle obrázku z mého GOC159. Heslovníček máte až na něm. Bez volného připojení do internetu (samozřejmě na cloudový heslovníček ano :-)) Na takovém SAE buď pracujete přímo lokálně, nebo se do něho připojujete přes RDP, ideálně samozřejmě bez schránky...

květen 05
Třešnička na závěr TechEd Online 2020

Aktuálně probíhá naše první online konference GOPAS TechEd Online 2020. ​Zítra budu mít přednášku a mám ještě jednu ukázečku, která se mi tam už nevešla. Tak kdo to budete poslouchat zítra, tak klidně počkejte, ostatní se třeba podívejte :-)

sevecek-teched2020-tresnicka.mp4

ú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.

září 03
Jak připojit shadow copy jako písmenko disku

V dávném článku jsem psal o tom, jak ručně vytvářet volume shadow copy (VSS snapshot) pomocí PowerShellu a WMI. Tam se využíval příkaz MKLINK k připojení stínové kopie oddílu do nějakého adresáře (directory symbolic link, nebo junction). Dneska se podíváme, jak připojit shadow copy přímo jako písmeno disku/svazku (disk volume letter):

$src = @'
namespace Sevecek {

  using System.Runtime.InteropServices;

  public class Win32Api {

    [DllImport("kernel32.dll", SetLastError = true, PreserveSig = true, CharSet = CharSet.Auto)]
    public static extern bool DefineDosDevice(uint dwFlags, string lpDeviceName, string lpTargetPath);
  }
}
'@

if (-not ('Sevecek.Win32Api' -as [Type])) { Add-Type $src }

[Sevecek.Win32Api]::DefineDosDevice(0, 'S:', '\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy38')
květen 27
Zdrojové kódy mých výukových prográmků

​Už delší dobu se chystám uveřejnit nějak souhrně zdrojové kódy svých ukázkových programů, které používám na školeních v GOPASu a na přednáškách. Například teď na konferenci TechEd jsem ukazoval fake logon :-)

Obsahuje například toto:

- WS-Fed ukázku, která vypisuje claimy, zvlášť vhodné pro testování ADFS

- SAMLP ukázka, která generuje SAML-P požadavek a dekóduje jeho odpověď

- OAuth příklady ​testovací webové aplikace a jejího back-endu

- MFA adapter pro AD FS

- Fake Logon z TechEdu

Všechno je to ke stažení tady. Odkaz naleznete také na stránce spolu se slajdy a prezentacemi:

Všechny zdrojové kódy ukázkových aplikací

 

květen 27
Prezentace z letošní konference TechEd 2019

​Moje prezentace z letošní konference GOPAS TechEd jsou ke stažení zde:

Zabezpečení RDP

Přihlašování do Windows pomocí TPM

duben 02
Windows Update a restarty serverů

Klasický požadavek. Nechceme, aby se nám servery po automatické aktualizaci restartovaly. S Windows 2016 se to trošku změnilo, tak je každý zmatený a neví, čeho se chytit. Tak tady je čeho se chytit. Připomínám, že se bavíme o serverech a nikoliv o Windows 10 stanicích.

Ten požadavek je špatně. Musíte to chápat opačně. Musíte restartovat ihned po aktualizacích.

Jakmile už Windows Update nainstaluje aktualizace, tak je restart neodkladný. Dříve to možná šlo technicky odložit, dneska už to po několika dnech ani nejde. Na Windows 2016 náhodou kliknu zaktualizovat, potom na to zapomenu, a pak se divím, že se to samo po několika dnech v horkém čase otočilo. Tak na to zapomeňte.

Jakmile se nainstaluje aktualizace, tak je restart nutný z principu. Něco jste v systému změnili a neúplně jste to zavedli. Restartovat musíte stejně. A to co nejdřív. Jinak se to může chovat nestabilně.

Takže otázka není, jak odložit restart. Restart chcete automaticky hned (co nejdříve) po instalaci.

Otázka je pouze o tom, kdy instalovat aktualizace. To jde pro serverové edice v pohodě nastavit přes GPO pomocí volby:

Computer Configuration
  Administrative Templates
    Windows Components
      Windows Updates
        
        Configure Automatic Updates
          2 - notify for download and autoinstall
          3 - auto download and notify for install
          4 - auto download and schedule the install

        Allow automatic updates immediate installation = DISABLED
Registry to jsou tyto:
  HKLM\Software\Policies\Microsoft\WindowsUpdate\AU
    AUOptions = DWORD = 2/3/4
    AutoInstallMinorUpdates = DWORD = 0

Z tohoto si vyberte. Volba 2 znamená, že musíte přijít a ručně tu aktualizaci spustit, navíc se to bude teprve potom stahovat. S volbou 3 to bude už samo staženo a připraveno, zahájit aktualizaci musíte i nadále ručně. Při nastavení 4 se to celé bude dělat ve stanovený čas, například jednou týdně někdy v noci.

Aktualizace bude chvilku trvat, asi nejdéle v případě volby 2.

Takže jediné, co k tomu potřebujete pořešit je co nejrychlejší následný automatický restart. K tomu máte tyto volby:

Windows 2019, Windows 2016, Windows 2012 R2, Windows 8.1, Windows 2012, Windows 8

  Always automatically restart at scheduled time = 15 min
  No auto-restart with logged on users for scheduled automatic updates installations = DISABLED

Těch 15 minut je minimum, ale znamená to, že celý proces aktualizace včetně restartu bude trvat něco jako půl hodinky plus železný restart, pokud to je hardware. Pro starší systémy to buď necháte ve výchozím stavu, nebo nastavíte následující:

Windows 2008 R2, Windows 7, Windows 2008, Windows Vista, ...
    
  Delay restart for scheduled installations = 5 min
  No auto-restart with logged on users for scheduled automatic updates installations = DISABLED

Doporučena kombinace pro všechny server OS - pouze ruční instalace plus restart ihned

Computer Configuration
  Administrative Templates
    Windows Components
      Windows Updates

        Configure Automatic Updates
          3 - auto download and notify for install

        Allow automatic updates immediate installation = DISABLED

        Always automatically restart at scheduled time = 15 min
        Delay restart for scheduled installations = 5 min

        No auto-restart with logged on users for scheduled automatic updates installations = DISABLED

        Reschedule automatic updates scheduled installation = DISABLED
        Allow non-administrators to receive update notifications = DISABLED

Doporučena kombinace pro všechny server OS - automatická instalace v noci plus restart ihned

Computer Configuration
  Administrative Templates
    Windows Components
      Windows Updates

        Configure Automatic Updates
          4 - auto download and schedule the install
          schedule install day: saturday, 3:00

        Allow automatic updates immediate installation = DISABLED
    
        Always automatically restart at scheduled time = 15 min
        Delay restart for scheduled installations = 5 min

        No auto-restart with logged on users for scheduled automatic updates installations = DISABLED

        Reschedule automatic updates scheduled installation = DISABLED
        Allow non-administrators to receive update notifications = DISABLED
1 - 14Next
>