Skip Ribbon Commands
Skip to main content

Ondrej Sevecek's Blog

:

Engineering and troubleshooting by Directory Master!
Ondrej Sevecek's Blog > Posts > Nevěřte nikomu a nikdy nic kurva nepředpokládejte
prosinec 06
Nevěřte nikomu a nikdy nic kurva nepředpokládejte

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.

Comments

jak vyřešit tento problém?

ahoj Ondro, a jak tedy řešit tento problém? když vymažu Trusted Root Certification Authorities tak nebudou digitální podpisy platné a to včetně těch vydaných pro OS ... co dál?
Michal Zobec on 27.12.2012 0:43

Re: Nevěřte nikomu a nikdy nic kurva nepředpokládejte

no mě napadlo akorát vyrobit si nějaký automatizovaný tester otisků - tzn. někde by se sehnal seznam autorit, kterým MS věří a to by se porovnalo se seznamem v trusted root certification authorities.

problém je, že takový seznam neexistuje. nebo jsem ho nebyl schopen najít. MS to dříve autoritativně zveřejňoval, ale už delší dobu to není aktualizované a navíc se ten seznam přesunul na nějaký blog, což je totálně nedůvěryhodné.

Druhá metoda by byla striktně si to řídit přes Group Policy. Ale zase by se to pak muselo budovat ručně, podle požadavků uživatelů.
ondass on 27.12.2012 9:57

Re: Nevěřte nikomu a nikdy nic kurva nepředpokládejte

jak jsem právě zjistil, pokud uděláte zkrytou registrovou hodnotu (hidden registry value), například pomocí PowerShell (viz. tady https://www.sevecek.com/Lists/Posts/Post.aspx?ID=523), tak například autoruns ji normálně zobrazuje. Uff, tak až tak strašné to třeba není :-)
ondass on 22.9.2015 16:34

Add Comment

Sorry comments are disable due to the constant load of spam *


Omlouvám se, ale příval spamu nelze kontrolovat, takže mi prosím pošlete email, pokud máte nějaký dotaz, nebo připomínku.

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 *


Email


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

Attachments