Извлечение ключа разблокировки из MBR-блокера

    Мы решили учесть пожелания читателей нашего блога и подготовили небольшую статью о том, как можно извлечь код разблокировки из блокера. Отвечает старший вирусный аналитик «Лаборатории Касперского» Вячеслав Закоржевский!..

    Для разбора мной был выбран один из представителей нового семейства Trojan-Ransom.Win32.Mbro. Эти блокеры заражают MBR и вымогают деньги у пользователя за снятие блокировки компьютера.

    Я решил не углубляться в разбор процесса попадания зловреда на компьютер и алгоритма заражения загрузочного сектора, а сразу приступить к анализу модифицированного MBR’а. Итак, после запуска рассматриваемого блокера операционная система уйдет в перезагрузку, а при последующей загрузке компьютера отобразится следующий текст.
    image
    Сообщение, появляющееся при загрузке компьютера после запуска блокера

    Ниже представлены скриншоты начальных секторов жесткого диска до и после их заражения блокером.

    image
    Начальные секторы жесткого диска до заражения
    image
    Фрагмент той же самой области жесткого диска после заражения

    Отчетливо видно, что начало жесткого диска значительно преобразилось – добавился дополнительный код, EGA-паттерны и текст, который был приведен на первой картинке.
    Ниже я буду поэтапно расписывать весь функционал модифицированной Master Boot Record, а в конце статьи будет приведена полная схема, содержащая секторы, используемые блокером, и их назначение. Для отладки MBR’а я использовал комбинацию IDA и Bochs for Windows.
    Первым делом вредоносный код считывает девятый сектор и сохраняет его по адресу 0186A:0000. Затем, на него выполняется переход с помощью CALLF 0186A:0000.
    image
    Фрагмент кода, выполняющий чтение девятого сектора

    Далее, происходит проверка текущей даты и времени с эталонным значением. В моем случае, это значение (очевидно, представленное в удобном виде) равнялось 04.06.2011 15:04. Сообщение с требованием об оплате будет появляться только в том случае, если текущий отпечаток времени меньше, чем эталонный. А если он больше, то блокер восстанавливает оригинальный МБР и загружает компьютер, как ни в чем не бывало. Время и дата получаются напрямую из BIOS’а при помощи следующей последовательности команд:


        mov     al, x
        out     70h, al
        in     al, 71h
        aam     10h
        aad


    Где ‘x’ принимает разные значения в зависимости от того, что требуется получить. Стоит отметить, что BIOS возвращает числа в формате BCD. Инструкции AAM и AAD преобразовывают эти числа в hex.

    Если проверка на время и дату прошла успешно, то зловред зачитывает секторы с третьего по пятый включительно. В третьем и четвертом содержатся так называемые «user font table», а в пятом – текст, отображаемый при загрузке. Для применения собственного «стиля» (громко сказано) написания текста вызывается INT 10h. Далее, зачитываются секторы 5-8 включительно, и выводится текст, содержащийся в пятом и нулевом секторах (“Enter Code:»).
    image
    Фрагмент кода, выводящий на экран текст

    После этого начинает работать цикл проверки введенного текста. Цикл реализован следующим образом. Вначале вызывается инструкция INT 16h. Это прерывание возвращает в AX значение нажатой кнопки (AH = скан-код, AL – символ) клавиатуры:

        mov     ah, 0
        push     di
        int     16h
        pop     di
        jmp     short loc_7CC7


    Потом идет проверка на введенный символ. Если он находится между 20h и 7Fh, то его значение записывается по ES:DI при помощи инструкции STOSB. Если же была нажата клавиша Enter (0Dh), то выполняется проверка введенной и эталонной строки при помощи REPE CMPSB.
    image
    Сравнение введенной строка и кода разблокировки

    Из скриншота видно, что по адресу ES:7DA5 находится строка, необходимая для разблокировки загрузки компьютера. Вот что находится по этому адресу: '002158RD',0. А так как в CL заносится число «6», то это означает, что достаточно ввести лишь «002158».
    Если введен корректный код, то зловред берет из второго сектора оригинальный MBR и записывает его в начало жесткого диска.

    Сектора, используемые блокером:

    1 – основной код;
    2 – оригинальный первый сектор;
    3 – 4 – user font tables;
    5 – 6 – текст, выводимый пользователю;
    7 – 8 – сектора заполнены нулями;
    9 – код, выполняющий сверку текущей даты и времени;

    P.S. А можно было просто из Hiew «глазами» посмотреть на начало жесткого диска и найти пресловутый код.

    Теперь, если каким-то чудом вы подцепите подобную штуковину, для вас не составит труда разблокировать ее самостоятельно. Но в случае заражения неопознанными объектами вам следует пройти по ссылке http://support.kaspersky.ru/viruses/deblocker. Буду рад ответить на все вопросы в комментариях.
    «Лаборатория Касперского»
    351,62
    Ловим вирусы, исследуем угрозы, спасаем мир
    Поделиться публикацией

    Комментарии 42

      0
      Может, для борьбы с такого типа зловредами есть смысл создать микроверсию антивируса для загрузки с СD/USB Flash?
        +8
        fixmbr уже изобрели. Его можно найти в консоли восстановления на любом установочном диске Windows.
          +1
          Согласен, но тот, кто может воспользоватся fixmbr сможет воспользоваться и способом описаным в статье (то есть у него есть некоторые понятия о том, как все работает).
          А я говорю о обычных пользователях, которые умеют только включить компьютер, залезть в интернет и послушать музыку и подхватили эту штуку. Для них было бы весьма удобно загрузить с сайта антивирусной компании исполняемый файл (запустить на другом компьютере (у друзей, на работе, итд)), который сделает загрузочную флешку с антивирусным продуктом, которая полечит зараженный компьютер.
            0
            Windows 7 умеет создавать диск восстановления системы. Ничего качать не нужно. Для пользователя это ещё проще.
              0
              Пользователи не знают о такой возможности Windows 7. А которые знают, звонят и спрашивают «а вот я слышал про такое, а где это?». После чего снова звонят и заявляют «У меня ниче не получается, приди сделай» или еще интереснее «Все сломалось, комп не включается, приди почини».
            • НЛО прилетело и опубликовало эту надпись здесь
            +3
              +3
              Дык есть такой диск. С сайта скачивается. Там линух с антивирусом. Сканирует и лечит все.
                0
                Дак есть же касперский на основе WinPE
                  0
                  Опередели, ну или с Linux. Не помню уже.
                    +2
                    Linux, в котором Каспер запускается через вайн.
                +1
                сорри, не знал, поскольку очень редко пользуюся антивирусными продуктами.
                  0
                  Да Вы счастливый человек!
                    +1
                    Да не, ему скорее просто вирусы не мешают работать.
                      +1
                      Тут все очень просто.
                      Использую несколько отдельных компьютеров с четко определенными задачами, которые выполняются на каждом из них:

                      — работа с документами и информацией, которая имеет для меня некоторую ценность выполняется с компьютера1 + бекапы на внешнемвинте1 + имидж винта со всеми необходимыми рабочими данными, который делаю с некоторой регулярностью и храню на внешних дисках + на других домашних компьютерах.
                      — просмотр видео, фото, хранилище личных данных (фото, видео, старые письма, книги, музыка) на компьютере2 + бекапы на внешних винтах 2 и 3 и на CD/DVD дисках.
                      — браузинг «стремных» сайтов (форумы по комп. безопасности, сайты-фейки, крякохранилища, итд.) с отдельного компьютера3 (если не лень вставать), либо из под виртуалки на компьютере1 или ноутбуке, или с iPhone/iPod (если вообще лень вставать, или сижу не за столом).
                      — работа со «стремным» софтом (исходники вирусов, софт полученный с соответствующих ненадежных источником) выполняется либо на отдельном компьютере (после работы с такими вещами опять таки восстанавливаю все из бекапа), либо из под виртуалки.
                      — осуществление покупок с помощью кредитных карточек делаю с iPhone/iPod (там вроде побезопаснее чем с компьютера), или (очень редко) с компьютера1.

                      Если на каком либо из устройств подхватил вирус либо с ходу восстанавливаю систему из бекапа (если на каком либо из важных для работы устройств — компьютер1 либо ноутбук), либо отключаю его от локалки до того времени, как не востановлю систему из бекапа (если лень это делать в сию минуту).

                      Не вижу причин устанавливать антивирусное ПО, которое меня просто раздражает своими глупыми ограничениями, периодическим напоминанием о том, что «А Вы знаете, что у Вас антивирусное ПО отключено? Это же очень опасно» и довольно частым торможением.
                        0
                        Антивирус установить всё же проще
                          +2
                          Сижу 5 лет без АВ, ни одного прецедента. При этом активная работа в Интернете + белый IP. Для себя я не вижу смысла в АВ уже достаточно давно. Для офиса, чтобы закрыть дырявых админов и нубов — да, без АВ никуда.
                        0
                        нет просто после определенной точки антивирусы кажутся лишь обузой.
                    0
                    Я думаю обычно кода разблокировки нет, всмысле не подходит никакой. Деньги за SMS та они получат, а потом ведь можно вывести «ещё одно SMS».
                      0
                      я сам знаю одного человека, который после 2 не удачных попыток ввода кодов (с сайта касперского вроде) реально оплатил, ибо 300-1000 р ( или сколько там просят) для него была смешная сумма. и все разблокировалось.
                        0
                        Вот на таких это и рассчитано. Ну и на домохозяек конечно…
                          +2
                          я также знаю человека который оплатил, правда ему это не помогло и блокер потом уберал я )
                        –4
                        Что характерно, контора за свои продукты дерет нехилые деньги, а фиксить mbr предлагает ручками. Дескать — не графья, на кухне помоетесь. Молодцы, чо.
                          +6
                          В посте не содержится предложений «фиксить mbr ручками». Для избавления от таких блокеров у нас существует бесплатный сервис Деблокер.
                          +1
                          А, не судьба, просто загрузиться с загрузочного диска,
                          и в зависимости от версии MBR ввести:

                          fdisk /mbr

                          ну, или там типа:

                          FIXBOOT
                          FIXMBR


                          I would..
                            0
                            Если я не ошибаюсь, то оно ещё и таблицу разделов портит.
                              0
                              А давно портит?
                                0
                                Именно эта модификация не должна. Если не обманывает память, то Trojan.MBRlock.1 портил.
                                  0
                                  vms.drweb.com/virus/?i=589788

                                  Или может я просто неправильно понял строку «НЕ рекомендуется для лечения использовать утилиты, позволяющие восстанавливать стандартный MBR, т.к. в этом случае не происходит восстановление таблицы разделов диска.»?
                                    0
                                    Кхм. Ну тогда 50 на 50, что с fixmbr повезет :)
                              +1
                              Я правильно понимаю, что на «фискальном чеке из терминала» этого кода и в помине не будет?
                                +6
                                Ээээ, ребята, без обид — но мы немного раньше об этому уже писали. Более того, линк был и на Хабре.

                                Хотя бы укажите, у кого пальма первенства.
                                  0
                                  Мы видели тот пост, но все же нас очень просили осветить данную тему, кроме того, написано несколько в другом стиле, поэтому каждому — свое.
                                    +1
                                    Я тоже видел этот пост. И название Вашей статьи — «Извлечение ключа разблокировки из MBR-блокера». Только вот в тексте я нигде не увидел собственно извлечения ключа, который, кстати, легко виден в дампе заражённой MBR.

                                    Поэтому просьба осветить тему остаётся актуальной :)
                                      0
                                      Вы пишете: «легко виден в дампе заражённой MBR.» Мы написали тоже самое в P.S.
                                        +1
                                        Я пишу так, потому что мы статью писали под другим названием, нас ни о чём не просили да и цель статьи была иная.

                                        Ладно, раз Вам нравится и всем нравится — значит отлично. В любом случае радует, что на Хабре описания вредоносов появляются даже раньше, чем даже на официальных ресурсах :)
                                          0
                                          Идеи витают в воздухе, значит. И да, это уникальный контент специално для Хабра.
                                  +4
                                  Картинки дампов стоило сделать кликабельными, так как видно плоховато…
                                    +1
                                    fixboot/fixmbr из консоли восстановления и всех делов.
                                    Плюс ко всему, если мне не изменяет память, boot не одна копия даже на FAT32, не говоря уже о NTFS. Аналогично и с MBR, его винда сейвит куда-то в файл, но можно по сигнатуре найти. Да любой загрузочный диск хоть с Nortod Disk Editor или WinHex, или ваще любая софтина и дел на пару минут.
                                      +1
                                      Далее, происходит проверка текущей даты и времени с эталонным значением. В моем случае, это значение (очевидно, представленное в удобном виде) равнялось 04.06.2011 15:04. Сообщение с требованием об оплате будет появляться только в том случае, если текущий отпечаток времени меньше, чем эталонный. А если он больше, то блокер восстанавливает оригинальный МБР и загружает компьютер, как ни в чем не бывало.

                                      Перевод системных часов в таком случае должен бы выполнить роль антивируса :)
                                      Или я чего-то недопонял?
                                        0
                                        > Ваш компьютер заблокирован за просмотр (перечесление всяких вкусняшек)

                                        Какой шаловливый компьютер. Надо бы поставить фаервол, вдруг мой тоже тихонько в сети смотрит.
                                          0
                                          Dis is one half.

                                          Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                          Самое читаемое