Nezaradené > Malware
Problém nemožnosti přihlášení
Jedná se již o velmi starý problém, jehož řešení mi před pár lety vyneslo rank přítele fóra na jednom velmi oblíbeném českém fóru zabývající se bezpečnostní (jelikož se jedná o jediné fórum, kde tent orank mám, nebude těžké jej najít). Jelikož je ale popis řešení popsán kdesi v hlubinách onoho fora a i po dvou letech se mne občas lidé ptají, jak jej vyřešit, rozhodl jsem se jej znovu popsat na pravděpodobně viditelnějším místě. Symptomy: po kliknutí na uživatelský účet, na který se chceme přihlásit, se místo známé obrazovky s textem "Vítejte" téměř ihned objeví nápis "Odhlašování" a Windows nás vrátí opět na obrazovku výběru uživatelského účtu.
Na počátku procesu přihlašování se totiž jeden ze systémocých procesů (winlogon.exe) podívá do registrů na hodnotu
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\userinit
a pokusí se spustit program, jehož cesta je uvedena v jejích datech (jedná se o řetězcovou hodnotu). Tato hodnota standardně obsahuje řetězec c:\windows\system32\userinit.exe. Winlogon.exe tedy spustí proces userinit.exe, jehož úkolem je připravit uživatelský profil na přihlášení a spustit shell, ve většině případů explorer.exe.
Jedná se tedy o hodnotu pro přihlášení klíčovou. Malware má minimálně dvě možnosti, jak jí využít:
- Změnit její řetězec na cestu ke svému souboru. Malware je pak spuštěn místo procesu userinit.exe a může začít páchat škody velmi brzy po přihlášení. Pokud tento škodlivý program navíc spustí originální userinit.exe, uživatel nic nepozná, protože se normálně přihlásí. Může maximálně pozorovat delší dobu mezi kliknutím na svůj účet a zobrazením pracovní plochy.
- Infikovat soubor userinit.exe. Protože se tento program spouští jen při přihlašování uživatele, není po většinu času nijak chráněn proti smazání či modifikaci (není ani pod ochranou SFC).
Ať už záškodník postupuje libovolným z výše jmenovaných způsobů, uživatel nic nemůže poznat. Problém nastává ve chvíli, kdy se do hry vloží antivirus, který v prvním případě smaže soubor, na který ukazuje ona hodnota v registrech, a v případě druhém smaže samotný userinit.exe. Cesta uložená v registrech je tedy neplatná, čímž je znemožněno přihlášení.
Řešení: Pokud byl smazán userinit.exe, stačí nabootovat do Konzole pro zotavení a tento soubor nahrát z instalačního CDčka pomocí příkazu expand. Syntaxe příkazu je následující:
expand [toriginalni_soubor] c:\windows\system32\userinit.exe
Prvním parametrem je cesta k souboru userinit.ex_ umístěném na instalačním CD. Příkaz tento soubor rozbalí a zkopíruje jej do umístění uvedeném v druhém parametru. Tím je userinit.exe v systému opět přítomen a problém s přihlašováním by měl zmizet.
Pokud malware modifikuje onu hodnotu v registrech, je potřeba její obsah přepsat zpět. K tomu nám pomůže bootovací CDčko, ať už založené na jádru Windows nebo Linuxu. Jediné, co od něho požadujeme, je možnost editace registrů. Osobně doporučuji CDčko založené na projektu BartPE, které si můžete stáhnout například z mých osobních stránek (obraz média je zabalen v samorozbalovacím archivu, proto ta přípona .exe). Obraz CD vypalte a nabootujte z něho.
Pokud použijete médium založené na Windows, spusťte editor registrů a načtěte soubor registru, který se nachází na c:\windows\system32\config\system (položka Soubor -> Načíst podregistr...). Tam je uložena větev HKEY_LOCAL_MACHINE vašeho systému. Soubor registru lze načíst jen v případě, že je označen některý z kořenů stromu registrů (například HKEY_LOCAL_MACHINE). Nyní stačí v připojeném souboru nalézt výše uvedenou hodnotu a změnit její obsah zpět na c:\windows\system32\userinit.exe. Poté můžete načtený soubor registru opět uvolnit, restartovat počítač a podívat se, zda-li problém s přihlášením stále přetrvává. Neměl by.
Závěrem dodám, že za cesty c:\windows a c:\windows\system32 si můžete doplnit cestu do kořenového resp. systémového adresáře vaší instalace systému. V článku používám cesty, které se vyskytují nejčastěji.
Problém s přihlašováním může mít určitě i jinou příčinu, kterou poustup popsaný v tomto článku neodstraní. Tento článek popisuje pouze příčinu nejčastější, se kterou jsem se několikrát setkal.
|