13.07.2015 Views

НА БАГАХ В CHROME - Xakep Online

НА БАГАХ В CHROME - Xakep Online

НА БАГАХ В CHROME - Xakep Online

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

VBR-руткитДалее автор вредоносной программы прибег к изящному и нестандартномурешению: руткит патчит списки из структурыLOADER_PARAMETER_BLOCK, в частности в список LoadOrderListон добавляется как копия первого модуля в списке (а это ядроОС), а в BootDriverList как загрузочный драйвер, якобы прописанныйв ветке реестра \Registry\Machine\System\CurrentControlSet\Services\null. Сам механизм перезаписи сектора не используетникаких новых методов. Крис Касперски, например, неоднократнописал в нашем журнале о способах raw-чтения и записи информациина жесткий диск. Обычно для этого вызывается API-функцияnbtdll!DeviceIoControl с кодом IOCTL_SCSI_PASS_THROUGH_DIRECT.Предварительно заполняются блоки SCSI_PASS_THROUGH_DIRECTи SCSI_PASS_THROUGH_DIRECT_WITH_BUFFER, после чего уже посылаетсяSRB (SCSI Request Block). Руткит делает это следующимобразом:if (Flags & SCSI_IO_WRITE_SECTOR){Direction = SCSI_IOCTL_DATA_OUT;OpCode = SCSIOP_WRITE;OpCode16 = SCSIOP_WRITE16;}else{Direction = SCSI_IOCTL_DATA_IN;OpCode = SCSIOP_READ;OpCode16 = SCSIOP_READ16;}if (Spt = (PSCSI_PASS_THROUGH_DIRECT)malloc(bLen)){Sptb = (PSCSI_PASS_THROUGH_DIRECT_WITH_BUFFER)Spt;hDrive = CreateFile(Drive, ....);if (hDrive != INVALID_HANDLE_VALUE){Spt->Length = sizeof(SCSI_PASS_THROUGH_DIRECT);Spt->SenseInfoLength = SPTWB_SENSE_LENGTH;Spt->DataIn = Direction;Spt->DataTransferLength = Length;Spt->TimeOutValue = 200;Spt->DataBuffer = Buffer;Spt->SenseInfoOffset = (ULONG)((PCHAR)&Sptb->SenseInfoBuffer - (PCHAR)Sptb);if (LOBYTE(LOWORD(GetVersion())) > 5)Spt->Cdb16.OperationCode = OpCode16;elseSpt->Cdb16.OperationCode = OpCode;Spt->Cdb16.ForceUnitAccess = TRUE;// тут заполняются блоки Spt->Cdb16Spt->Cdb16.Control = 0x10;// посылаем SRB block дискуStatus = DeviceIoControl(hDrive,IOCTL_SCSI_PASS_THROUGH_DIRECT, Spt, bLen,Spt, bLen, &bRead, NULL);}free(Spt);}МУХИ И КОТЛЕТЫВ зараженную систему устанавливается полноценный драйвер,однако он всего лишь грузит дополнительную библиотеку иливо все процессы подряд, или в некий заранее выделенный (тотэкземпляр, который попал мне в руки, грузил dll во все стартующиепроцессы). Это осуществляется с помощью обычного способа,который основан на регистрации собственного нотификатораPsCreateProcessNotifyRoutine и последующем задействованиимеханизма APC. Этот способ, используется и семейством руткитаTDL/TDSS, в нем нет ничего нового, и останавливаться на немНезараженная системаСистема, зараженная VBR-руткитомнезачем. Как именно портит жизнь троян, зависит уже от самойпрогружаемой библиотеки. Так, антивирусные компании частоутверждают в тырнетах, что Mayachok представляет серьезнуюопасность. Он крадет средства со счетов сотовых абонентов,предлагая пользователям ответить на входящее SMS-сообщение.Зафиксированы случаи, когда троян подменял youtube.com,vkontakte.ru, odnoklassniki.ru, rostelecom.ru, support.akado.ru,my.mail.ru и блокировал доступ в интернет. При попытке открытьв браузере какой-либо сайт Trojan.Mayachok.1 перенаправлялпользователя на URL страницы, предлагающей «активировать»или «подтвердить» аккаунт. Для этого пользователю нужно былоуказать свой номер телефона и ответить на SMS-сообщение. Одиниз подтвержденных методов распространения этой программы— рассылка в социальной сети В Контакте, рекламирующаяпрограмму для просмотра посетителей, заходивших на страницупользователя. Это означает, что Trojan.Mayachok прогружает в процессыбраузеров свою библиотеку, которая подменяет стартовыестраницы указанных сайтов, которые просят доверчивых пользователейотправить SMS-сообщение для получения доступа к сайту.Вся закавыка в том, что сам VBR-руткит служит лишь средствомдля доставки зловредного кода и сам по себе ничего деструктивногоне несет (с точки зрения воздействия на ядро и установкидрайвера в систему).И НА СТАРУХУ НАЙДЕТСЯ САМ ЗНАЕШЬ ЧЕГО...Самое удивительное в новомодном рутките — это отсутствие хотькакой-нибудь защиты от проактивок и антивирусных программ. Иэто крайне необычно, поскольку автор руткита, со своим опытом иочень оригинальным подходом к делу, мог бы запросто прикрутитьдля защиты нечто выдающееся. Например, взять TDL с его техникойперехвата обработчиков atapi.sys, которая используется длясокрытия файлов и до сих пор ставит в тупик разработчиков антивирусныхрешений. Реализуй автор VBR-руткита нечто подобное,троян бы превратился в очень мощное оружие, бороться с которымбыло бы очень непросто. Однако, как ни странно, ничего похожегов функционале VBR-руткита нет. Может быть, автор решил сделатьзащиту в более поздних «релизах» или в версиях для более узкихкругов? К тому же выявить заражение системы очень легко (см.скрины). Да и вообще, зараженная VBR, присутствие «левого»драйвера и dll в системе, регистрация собственного нотификаторазагрузки процессов PsCreateProcessNotifyRoutine и патч заргузчика— все это палится в системе на ура.ЗАКЛЮЧЕНИЕВыходит, не такой уж сильный программист писал этот руткит. Нозато в креативности ему не откажешь. Возможно, в будущем егозамучают клиенты, и он разработает более серьезные и сложныеверсии VBR-руткита, которые будут выделяться не только уникальнымспособом заражения системы. Интересно будет посмотреть,что у него получится, — разработчики TDL/TDSS не стоят на месте,и, может быть, этот руткит тоже получит интересное техническоеразвитие. zХАКЕР 02 /157/ 2012 081

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!