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++. Каним само професионалисти.