Новости из Блогов Выступление на ZeroNights 2012

Discussion in 'Мировые новости. Обсуждения.' started by VY_CMa, 6 Jan 2013.

  1. VY_CMa

    VY_CMa Green member

    Joined:
    6 Jan 2012
    Messages:
    917
    Likes Received:
    492
    Reputations:
    724
    Некоторое время назад я выступил на конференции ZeroNights 2012 c докладом про то, как может быть устроен Windows руткит режима ядра для целевых атак.

    Для хранения вредоносного кода я решил использовать параметры системного реестра, и реализовать руткиты таким образом, что бы на стадии установки в систему, кроме нескольких параметров реестра, они ничего не модифицировали. В результате такого решения предо мной стала задача о том, как исполнить нечто (находящееся в системном реестре) как машинный код на этапе загрузки операционной системы.

    В качестве решений для этой задачи было найдено и опробовано несколько возможных вариантов:
    • Передача управления на код руткита путём модификации DSDT таблицы ACPI, которая записывается ACPI-драйвером Windows для долгосрочного хранения именно в системный реестр.
    • Передача управления на вредоносный код путём эксплуатации уязвимости нулевого дня в компонентах режима ядра Windows, связанной с некорректной обработкой данных которые были получены из системного реестра.

    Первый вариант в последствии бы отклонен в связи с его принципиальной неработоспособностью на NT 6.x, второй же - получил развитие в виде вполне функционального руткита, умеющего следующее:

    • Использует уязвимость нулевого дня в win32k.sys (переполнение буфера на стеке в функции win32k!bInitializeEUDC() из-за небезопасного использования nt!RtlQueryregistryValues ()) для того что бы получить управление на этапе загрузки ОС.
    • Устанавливает сетевой бекдор, основанный на NDIS перехватах. Код руткита ищет во входящем трафике магическую последовательность и при её нахождении запускает на исполнение meterpreter/bind_tcp (из состава Metasploit Frameowrk ) в контексте процесса пользовательского режима.
    • Для обхода детектирования неизвестного исполняемого кода в памяти со стороны анти-руткит утилит используется перемещение кода руткита в discardable-секции стандартных драйверов Windows.
    • Не детектируется доступными публично анти-руткит утилитами (правда, после того как я связался с автором wincheck - в него было добавлено детектирование NDIS перехватов моего руткита).
    • Работает на Windows 7 (SP0, SP1) x86.

    Схема эксплуатации уязвимости для запуска кода руткита выглядит следующим образом:
    [​IMG]

    Более подробную информацию можно почерпнуть из слайдов с выступления:
    http://dl.dropbox.com/u/22903093/Applied-anti-forensics.pdf
    Исходный код руткита доступен на GitHub:
    https://github.com/Cr4sh/WindowsRegistryRootkit

    5 января 2013
    Автор: Сr4sh
    http://blog.cr4.sh/2013/01/zeronights-2012.html
     
    _________________________
  2. Billar

    Billar Banned

    Joined:
    9 Jul 2012
    Messages:
    15
    Likes Received:
    5
    Reputations:
    5
    Спасибо, очень познавательно получилось. Радует, что на ачате есть такие люди.

    Жду еще подобных статей!
     
  3. Ins3t

    Ins3t Харьковчанин

    Joined:
    18 Jul 2009
    Messages:
    939
    Likes Received:
    429
    Reputations:
    139
    ну почти на ачате, ага.