Jak říká můj oblíbený spisovatel Richard Marcinko, autor Profesionálního válečníka, tedy bojovník z amerických Seal 6 - "nikdy nic kurva nepředpokládejte". A buďte si jisti, že Marcinko to ví fakt kurva dobře. Protože když něco někdy předpokládal, tak ho taky pak kurevsky bolelo.
Podvod na Autoruns
Jak jsem zjistil, všichni, včetně mě, používají na detekci automaticky spouštěných programů nástroj autoruns ze SysInternals. Rozdíl je jenom v tom, že já tomu vůbec nevěřím a nic nepředpokládám. Ne tak mnozí jiní, kteří věří, co vidí. Chápu to. Ale proto je tu taky tenhle článek, aby věřit přestali.
Co je autoruns a jak funguje
Je to parádní program, který vám zobrazí mnoho různých .EXE a .DLL, které se načítají buď při startu, nebo do různých aplikací. Takže třeba při přihlášení. Nebo do průzkumníka, IEčka a podobně. Samozřejmě to nezobrazuje všechno, ale ta nejběžnější místa ano.
Je tam dobře vidět různé trojany, exploity a potvory, která vám infikovaly počítač. Tedy pokud jsou to potvory, které vytvářel nějaký trotlík. Ideálně je někde stáhnul na internetu a nepoužil u toho mozek. Pokud by totiž mozek použil, vidět by tam bylo hovno.
Ono totiž těch programů je děsně moc. Hlavně těch od Microsoftu. A autoruns má takovou milou fíčuru, že nezobrazuje, ve výchozím stavu, součásti Windows. A dá se vypnout i zobrazení vůbec všech Microsoft programů.
Tak jsem si řekl, že zjistím, jak to jako ten fiškuntálek poznává. A zjištění vás zajisté nepotěší :-) Protože ti skuteční hackeři tohle vědí už dávno. A taky to už dávno takhle používají. V tom obrázku totiž vůbec nevidíte můj testovací prográmek.
Jak to poznává Windows Entries?
Udělal jsem si zkušební exáč. Menuje se MicrosoftFakeApp.exe. Trvalo to jen 6 minut stáhnout Visual Studio Express. A potom cca 15 minut upravovat vlastnosti tak, aby v jeho popisku bylo přesně to stejné, co je na Windows 7. Z těch 15 minut jsem spotřeboval cca 9 na to, abych zjistil, jak tam vložit symbol (R) :-)
Teď jak to píšu na Windows 8, tak jsem zjistli, že autoruns dokonce nekontroluje číslo verze. Na mých Windows 8 to stejně není vidět, i když to má popisek jako starší Windows 7.
Když tenhle filtr vypnete, samozřejmě to už pak v obrázku vidět bude:
Kontrola digitálních podpisů
No dobře. Autoruns umí ale kontrolovat i digitální podpisy (signature) těch programů. Stačí si to zapnout ve stejném filtrovacím dialogovém okně. Přesně podle následujícího obrázku. A ejhle. Můj podvodník vyplul na povrch jako leklá ryba.
A zase by se mohlo zdát, že tím příhoda končí. Ale nekončí.
Tak si to teda podepišme
Nainstalovat si certifikační autoritu (AD CS) a vydat si podpisový (Code Signing) certifikát umí každý. Šel jsem na to ovšem trošku víc od lesa a rovnou jsem si nainstaloval Microsoft Root Authority. Proč to dělat nedokonale, když to jde takhle pěkně.
A vydal jsem si z ní certifikát se stejným Subject, jako má ten skutečný certifikát, kterým Microsoft podepisuje Office.
Samozřejmě to nejsou ty stejné certifkáty. Skutečná Microsoft Root Authority používá MD5 hash (zatímco moje má SHA-1) a má jinou platnost. I když tohle by šlo samozřejmě přizpůsobit taky. Můj certifikát má přirozeně jiný otisk (thumbprint). Podpisový certifikát je tedy také jiný.
Jediné co jsem vlastně udělal stejně, jsou právě obsahy políček Subject. Dokonce jsem se vykašlal i na tu prostřední meziautoriu a vydal to rovnou z rootu. Zde jsou:
signer:
CN=Microsoft Corporation,OU=MOPR,O=Microsoft Corporation,L=Redmond,S=Washington,C=US
SHA1-RSA2048
CodeSigning
issuer:
CN=Microsoft Code Signing PCA, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
SHA1-RSA2048
CodeSigning
root:
CN=Microsoft Root Authority,OU=Microsoft Corporation,OU=Copyright (c) 1997 Microsoft Corp.
MD5-RSA2048
Pro pohodlnost jsem do podepisovacího certifikátu nevložil CRL Distribution Point políčko (extension) ani OCSP. Proč? No protože bych musel někde pravidělně vydávat CRL a muselo by potom být dostupné. Takhle ho kontrolovat nebudu a je to.
No a samozřejmě jsem tu svoji autoritu vložil do úložiště Trusted Root Certification Authorities.
A fičíme z kopce. Exáček jsem si podepsal pomocí PowerShellu. Stačí na to příkazy Dir a Set-AuthenticodeSignature.
No a když jsem ryfrešnul autoruns, tak se na výsledek podívejte sami. Parádní hláška verified. Hustěééééééééééé:
V obrázku je vidět můj podepsaný i nepodepsaný exáček. Ten podepsaný se jeví v pořádku. Vypadá úplně stejně, jako další dva programy od Microsoftu - IntelliPoint a IntelliType Pro.
Takže jsem si na závěr vypnul nejen Windows entries, ale i Microsoft entries. A výpis je prostě hladký, jak děcká prdelka:
Strejdo Rusinoviči, to snad nemyslíš vážně?
Tak to je fakt hardkór. Jestli se v našich prostředích pohybuje jen trošku akčnější útočník, tak tohle ho napadlo už hoodně dávno. Mě to napadlo taky už hodně dávno, ale nejsem hacker. Takže jsem se to vydal prověřit až teď. A možná jsem to radši dělat neměl. Protože od teď, já mažu všechny Trusted Root Certification Authorities.
Pomoooooooooc!
PS: Doufám, že už chápete, proč Izraelci ještě nevyhodili Iráncům ty jejich atomový provozy do vzduchu. Nebyl důvod. Až bude potřeba, prostě jenom někde dvakrát kliknou a ono se to vyhodí do vzduchu samo. Díky kluci že vás máme. Byl jsem trošku nervózní, že Iránci už pomalu finišujou s obohacováním. Ale už jsem se zase hodil do klidu.
A na úplný závěr
Opakuju, nikdy nic nepředpokládejte. Marcinko taky nepředpokládal, a proto to taky všechno přežil.