Whistler Bootkit

Напоследък се появиха и постепенно набират скорост оплаквания от потребители за наличието на злонамерени файлове, които не могат да бъдат изтрити по никакъв начин. Тези файлове се виждат в списъка с активни процеси и което е типично - всички те се намират в папка (или подпапки)C:\System Volume Information\и се изпълняват с права NT-AUTHORITY\SYSTEM.

Ако откриете това поведение - поздравления, взехте Whistrler Bootkit. За него и ще бъде обсъдено днес. В момента аз, като някои мои приятели в антивирусни компании, нямам инфектора на този буткит. Ясно е обаче, че зловреден софтуер не е ново изобретение, а продължение на идеята на Peter Kleissner, изразена в проекта Stoned PoC. В този случай създателят на вируси вероятно откровено е копирал кода, без дори да си направи труда да го добави или промени. Така че историята...

Първоначално бяха добре документирани различни методи за заразяване: автоматично стартиране от флаш устройство, pdf експлойти (заразяване от заразен pdf файл), инфектори, заразяване при зареждане на специални LiveCD/LiveUFD изображения. Следователно заразителят може да бъде във всичко, което затруднява разбирането как се предава Whistler и къде се взема Whistler.

Списъкът на заразените операционни системи е впечатляващ: 2000, XP, Vista, Seven, Server 2003, Server 2008, поддържа се x64. В същото време работи коректно с хардуерно и софтуерно криптиране на цялото съдържание на твърдия диск. Деактивирането на възможността за модифициране на MBR в BIOS не помага (работеше само в DOS и win95/98, така че по принцип е без значение).

В заразената система буутлоудърът в MBR се пачва за първоначалното изпълнение на кода на буткита, последвано от прехвърляне на контрола към оригиналния буутлоудър. оригинален код на буутлоудъраБуткитът и неговите добавки се съхраняват в неразпределена област в края на физическия диск в специална файлова система (RawFS - такъв беше случаят в оригиналния Stoned). В същото време кодът на bootkit е първият файл на тази система и местоположението му е точно известно. Това е важен момент, който ви позволява да заразявате дори напълно криптирани дискове, тъй като буутлоудърът не е криптиран в тях и началото на неразпределената област е известно със сигурност - и това е напълно достатъчно.

1. Функцията PsGetVersion / RtlGetVersion определя версията на операционната система. 2. Въз основа на тази информация се дефинират структурите EPROCESS и KTHREAD. 3. Буткитът, чрез извикване на асинхронна процедура, инжектира кода на приставката във всеки изпълним процес в потребителски режим.

Какво да направите, ако имате Whistler? Въз основа на наличността на MBR е достатъчен стандартен fixmbr. Въпреки това, като се има предвид, че този вирус все още е "тъмен кон", силно се препоръчва първо да премахнете MBR дъмповете. Това може да стане, например, с помощта на MBRWizard чрез изпълнение на командния ред:

mbrwiz.exe /save=mbr /filename=mbr.bin

Можете да опитате в действие и antiboot. Промених леко тази помощна програма или по-скоро автоматизирах събирането на карантина. В крайна сметка: боклуците провеждат антибуут изследвания на следната команда:

antiboot.exe -l "%cd%\log.txt" -p "%cd%\MBR"

След това пакетира папката MBR в zip архив quarantine.zip с вируса на паролата и изтрива папката MBR. Има грешки в самата помощна програма: спира по време на работа и замръзва на някои машини. Изглежда така: в конзолата пише:

Antibootkt, (c) Kaspersky Lab 2010, версия 1.2.1 Дневникът е стартиран Разопаковане на драйвер Стартиране на драйвер

след което - дълго мълчание. В този случай трябва да помолите потребителя да затвори прозореца и да изпрати ръчносъздадената папка MBR (изхвърлянията вече ще бъдат в нея). (Според представителя на LC този бъг е известен, но не е възможно да бъде коригиран поради различни причини).

start /wait remover.exe dump \\.\PhysicalDrive0 mbr.bin remover.exe fix \\.\PhysicalDrive0

Получените MBR дъмпове могат да бъдат изпратени на вашия любим антивирусен производител :) Това ще ви позволи да прецените колко различен е Whistler от Stoned. Силно подозирам, че не :)

P.S. Много благодаря на Peter Kleissner за помощта му при подготовката на този материал и като цяло за работата, извършена в рамките на проекта Stoned.

Hardcore conf в C++. Каним само професионалисти.