Мал, да удал: Trojan-Downloader.Win32.Tiny

    Доброго дня всем.
    В сегодняшнем выпуске много технических подробностей. Так что уж извините, если их слишком много :)

    Письмо


    Итак, начинаем. На входе у нас письмо с текстом «Journalist shot in Georgia! See attached video. Password is 123» и с приложенным файлом «Georgia.zip».

    Для более или менее полного анализа нам понадобятся:
    — Самый Лучший дизассемблер в мире IDA
    — Неплохой Отладчик Windbg
    — python 2.5 (строго говоря, подойдет любой, просто у меня 2.5)
    — Visual Studio какая-нибудь и Microsoft SDK, чтобы собрать небольшую программу на с++.
    — упаковщик программ upx
    — ну и чего-то еще по мелочи.

    Распаковываем присланный нам файл, и видим, что наши подозрения оправданы: видео там и рядом не ночевало.
    joined.exe (md5:607af96b03addadf28cf9280701df191)
    Dr.Web: Trojan.Packed.151
    Kaspersky: Trojan-Downloader.Win32.Agent.abqe
    


    Распаковка


    Приступ первый. Сохраняем файл в безопасное место, снимаем с него права на выполнение, загружаем в ida. Сразу же ida ругается на IAT в нестандартной секции и предупреждает, что не все импортируемые функции будут видны, соглашаемся продолжать. После этого ida немного думает, произоводя дизассемблирование и анализ нашего файла, а, закончив, сама переходит в Entry Point.



    Видим в окошке «Navigation» какие-то большие и сложные вычисления, а, нажав Ctrl-S, в открывшемся списке сегментов видим две записи: «UPX0» и «UPX1». И это отчетливо отдается у нас в могзу: «упакованно upx». Точнее, есть вероятность, что упакованно upx, и мы отправляемся эту возможность проверять.

    D:\programs\upx>upx -t  D:\prog\virus\0001.Georgia-2008-08-25\joined.exe
    
    testing D:\prog\virus\0001.Georgia-2008-08-25\joined.exe [OK]
    
    То есть, upx опознал свой файл. Рапаковываем:
    D:\programs\upx>upx -d  D:\prog\virus\0001.Georgia-2008-08-25\joined.exe
            File size         Ratio      Format      Name
       --------------------   ------   -----------   ----------
         10240 <-      7680   75.00%    win32/pe     joined.exe
    
    Unpacked 1 file.
    

    После чего, открываем распакованный файл в ida и бегло просматриваем.



    Основная функция выглядит довольно просто: сначала производится некоторая настройка с использованием LoadLibrary и GetProcAddress, чтобы не светить используемые функции в импорте. После идет вызов EnumResourceNames, которая перечисляет все имена ресурсов. Что ж, ресурсы, это интересно, посмотрим, что находится в ресурсах нашего файла.

    Открываем редактор ресурсов (у меня это старенький ResourceExplorer), и видим среди прочего отличный бинарный ресурс под названием «LOADER.19B099.EXE». Исполняемый файл внутри ресурса! Ну что, очень похоже, что основной вирус экспортирует вложеннный и запускает каким-то образом. Предлагаю пока отложить первый файл и поковырять этот бинарный ресурс.



    Троян в трояне



    Экспортируем ресурс в файл, смотрим, что говорят антивирусы.

    resource-loader.19b099.exe (md5:ca843aed6a7910fcb36bd0146af990ca)
    Dr.Web:  Trojan.Packed.151
    Kaspersky: Trojan-Downloader.Win32.Tiny.bvi
    

    (Обратите внимание, кстати, что докторвеб маркирует этот файл также, как и joined.exe).

    Ну, во-первых, размер. 1.6 килобайт. Значит основательно работали напильником, заставляли компилятор оптимизировать и вообще всячески старались. Во-вторых, такой код можно запросто инъектировать в какой-нибудь другой процесс — если этот код, конечно, правильно написан. В третьих, никаких импортов вообще — еще один плюс к гипотезе шелл-кода. Ну и, в четвертых, тело «зашифровано». Вот что у нас творится в точке входа:



    Видим, что код вычисляет, где же он находится (получает EIP, используя fnstenv), пробегается от этого места назад до начала текущей страницы, то есть, грубо говоря, пока последные три знака адреса не станут равны нулю. Делается это потому, что код начинается со смещения 00001000h относительно начала образа файла в памяти. Алгоритм распаковки такой:

    byte* data = [EIP], полученный хитрыими манипуляциями.
    x = 0A9h;
    while( data & 0xFFF )
    {
    	*data = *data ^ x;
    	x--;
    	data--;
    }

    После чего управление передается куда-то в середину распакованного кода.

    Распаковка-2


    Ну что же, раз файл сам себя распаковывает, пусть сам это и делает. Нам лишь будет нужно остановиться в правильном месте, чтобы увидеть распакованный код. Запускаем Windbg, жмем Ctrl-E (Open executable file), после этого дебагер останавливается. Это еще не точка входа, а лишь начало процесса. Выясняем точку входа (если мы вдруг забыли ее, когда разглядывали дизассемблированный код):

    0:001> !dh 00400000 
    File Type: EXECUTABLE IMAGE
    ...
    OPTIONAL HEADER VALUES
         10B magic #
        7.10 linker version
         400 size of code
         200 size of initialized data
           0 size of uninitialized data
    
        132F address of entry point		
    
        1000 base of code


    Переходим на нее:
    0:000> g 40132F 
    


    Нас интересует конечный этап расшифровки: переход на расшифрованный код, который происходит в строке:
    .text:0040135D   push  offset dword_401135
    

    Переходим сюда:
    0:000> bp 0040135D
    

    Жмем «g» (Go), и, не успеваем моргнуть глазом, как программа останавливается. Мы, кстати, можем увидеть прямо отсюда, как этот код выглядит теперь. По адресу, куда планируется переход, находится вот что:

    0:000> uf 00401135
    image00400000+0x1135:
    00401135 55              push    ebp
    00401136 8bec            mov     ebp,esp
    00401138 81ec98060000    sub     esp,698h
    0040113e 53              push    ebx
    


    Ну, вот и прекрасно. Запускаем какой-нибудь LordPE, делаем дамп файла, и код в дизассемблере выглядит теперь более удобочитаемым. Файл размером не изменился, он по-прежнему крошечный. В нем всего три функции. Займемся их изучением.

    Основная функциональность



    Вот что в точке входа.



    Особый интерес представляет связка такого вида:
    mov     ecx, 0D82AFA6Fh
    call    my_get_proc_address
    ...
    call    eax             
    


    Через ECX передается параметр в функцию my_get_proc_address (это я ее так назвал. В оригинале она называлась sub_00401135 :), а то, что она возвращает — это ни что иное, как адрес некой функции, на которую передается управление инструкцией call.

    Что же делает функция my_get_proc_address?

    (Кода там довольно много, те, кому не лень, посмотрят сами, см. ниже). Вкратце:

    1. Получает указатель на PEB:
    mov     eax, large fs:30h


    Мы, кстати, тоже можем посмотреть, что там находится:
    0:000> dt nt!_PEB
    ntdll!_PEB
       +0x000 InheritedAddressSpace : UChar
       +0x001 ReadImageFileExecOptions : UChar
       +0x002 BeingDebugged    : UChar
       +0x003 SpareBool        : UChar
       +0x004 Mutant           : Ptr32 Void
       +0x008 ImageBaseAddress : Ptr32 Void
       +0x00c Ldr              : Ptr32 _PEB_LDR_DATA
       +0x010 ProcessParameters : Ptr32 _RTL_USER_PROCESS_PARAMETERS
       +0x014 SubSystemData    : Ptr32 Void
    ...
    


    2. Получает из PEB список загруженных модулей и проходится по нему. Мы тоже знаем, где лежит этот список:

    0:000> dt -r1 nt!_PEB
    ntdll!_PEB
    ...
       +0x00c Ldr              : Ptr32 _PEB_LDR_DATA
          +0x000 Length           : Uint4B
          +0x004 Initialized      : UChar
          +0x008 SsHandle         : Ptr32 Void
          +0x00c InLoadOrderModuleList : _LIST_ENTRY
          +0x014 InMemoryOrderModuleList : _LIST_ENTRY
          +0x01c InInitializationOrderModuleList : _LIST_ENTRY
    ...
    


    3. Для каждого из этих модулей функция находит таблицу экспорта, «получает список» экспортируемых функций. Для каждой экспортируемой функции вычисляется некий хэш, который и сравнивается с тем самым странным числом, которое передается в функцию как агрумент.



    Между прочим, это классика жанра шелкода. Да, это работает немного медленнее обычной процедуры импорта, но имена используемых функций прячет неплохо. Как же нам найти те функции, которые реально используются? В принципе, есть вариант поставить точку останова куда надо и ждать. Но так как прогресс не стоит на месте, и нам отставать нельзя, то мы отвлечемся ненадолго от анализа и займемся программированием.



    Вот, значит эта самая функция, довольно простая. Ее мы и запрограмируем. Как на чем, на питоне! Он теперь везде, и в гугле его, говорят, любят.

    #!bin/python
    def rotl(x, n):
        return ((x << n) | (x >> (32-n))) % 2**32
    
    def hash(s):
        x = 0
        for i in s:
            x = (rotl(x, 5) ^ ord(i)) % 2**32
        return x
    


    Питон своей поддержкой больших чисел нам мешает, поэтому эмулируем 32-битовую арифметику, беря модуль по 232.

    Значит вспоминаем, о чем мы говорили раньше: «для всех экспортируемых функций всех модулей». Но, постой-ка, скажут внимательные читатели. Ведь шелкод ничего не импортирует! Попался! и довольно потирают руки :) Но есть в исполняемых файлах windows такая извечная русская печаль: создавая новый win32 процесс из PE-файла, загрузчик всегда загружает в него две стандартные библиотеки: ntdll и kernel32. Вот у нас уже и есть список из двух модулей.

    Хорошая новость заключается в том, что мы тоже можем получить имена функций, которых экспортируются этими библиотеками! Старой-престарой утилитой dumpbin. И cygwin, конечно же, иметь под рукой будет неплохо.

    dumpbin /exports C:\WINDOWS\system32\kernel32.dll > krnl-exp 
    gawk '{print $4}' krnl-exp > krnl-exp1 
    


    Ну, и тоже самое для ntdll. Затем в редакторе убираем остатки заголовка и итога, который генерит dumpbin, получая список в итоге. Натравляем наш питон-скрипт на эти файлы, получаем, что например «0xd82afa6f» означает «LdrLoadDll» — о-очень слабо документированная функция, которой пользуется сам загрузчик. Однако, ее название говорит само за себя — она загружает библиотеку в адресное пространство процесса. Как мы уже видели раньше, в дизассемблированном коде фигурирует строка «ole32.dll», да, точно, это именно ее и загружает зловред функцией LdrLoadDll.

    Проделываем пассы дампбином и над ol32.dll, находим нашим доморощенным брутфорсом все «секретные» функции (в порядке вызова).

    0xd82afa6f — «LdrLoadDll»
    0x872b8a64 — «GetTempPathW»
    0x4b99cb08 — «CoInitializeEx»
    0x938ed88c — «CoInitializeSecurity»
    0x7279d017 — «CoCreateInstance»
    0xbde95c09 — «GetTempFileNameW»
    0x050798d0 — «Sleep»
    0x4b09a52a — «CreateProcessW»
    0x0f12e6f0 — «CoUninitialize»
    0xe3db70a7 — «ExitProcess»

    Делаем в уме небольшое описание этого процесса: «Загружаем ole32 (LdrLoadDll), инициализируем COM (CoInitialize*), создаем COM-объект (CoCreateInstance), полчаем название временного файла (GetTemp*), ждем у моря погоды (Sleep), создаем процесс (CreateProcessW), выходим (все остальное). Брр, аж мороз по коже, как методично и равномерно нас собираются заразить какой-то гадостью.

    Вобщем, самая большая неприятность — это CoCreateInstance и последующий CreateProcess. Потому как вызовы методов ком-объекта делаются динамически, и эти методы совершенно не поименованы. То есть, мы, конечно, можем узнать, что там вызывается, но это будет геморрой… А что поделать.

    Что же за объект создает этот гад? В CoCreateInstance передаются два Guid'а — в коде они выглядят так:
    .text:00401000 rclsid dd 4991D34Bh, 429180A1h, 2833B683h, 97906B36h
    .text:00401010 riid dd 5CE34C0Dh, 4C1F0DC9h, 0A1DA7C89h, 7CEE8CB7h
    


    Из-за особенностей хранения данных, „user-friendly“ guid выглядит „перемешанным“ например, если в памяти массив {5CE34C0Dh, 4C1F0DC9h, 0A1DA7C89h, 7CEE8CB7h}, обозначает {5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C}. Ну, уже кое-что. Автор шелкода включил захардкоданный guid, значит он уверен, что на большинстве машин это сработает. Ищем по своему реестру это идентификаторы и получаем:

    {5CE34C0D-0DC9-4C1F-897C-DAA1B78CEE7C} 
    InProcServer32 = C:\WINDOWS\system32\qmgrprxy.dll = Background Intelligent Transfer Service Proxy
    {4991d34b-80a1-4291-83b6-3328366b9097}
    Background Intelligent Transfer Control Class 1.0
    


    Зловещая тень „разумного“ сервиса закачки файлов маячит за этими идентификаторами. Background Intelligent Transfer Service, или в просторечии, BITS, — это, кстати, та самая штука, которая качает из интернета апдейты для windows. Короче, есть подозрение, что таким образом создается ком-объект, который с помощью BITS качает к нам на машину другой, более опасный вирус. Но это пока только догадки, и мы отправляемся в мснд за документацией по BITS.

    Покопавшись немного, находим небольшой пример кода в Connecting to the BITS Service.

    hr = CoCreateInstance(__uuidof(BackgroundCopyManager), NULL,
                            CLSCTX_LOCAL_SERVER,
                            __uuidof(IBackgroundCopyManager),
                            (void**) &g_pbcm);
    


    Компилируем, дизассемблируем, смотрим, что получилось в нашей демо-программе:

    lea     eax, [ebp+ppv]
    push    eax             ; ppv
    push    offset dword_408140 ; riid
    push    4               ; dwClsContext
    push    0               ; pUnkOuter
    push    offset dword_408130 ; rclsid
    call    ds:CoCreateInstance
    ...
    .rdata:00408130 ; CLSID dword_408130
    .rdata:00408130 dword_408130 dd 4991D34Bh,429180A1h,2833B683h,97906B36h; 0
    .rdata:00408140 ; IID dword_408140
    .rdata:00408140 dword_408140 dd 5CE34C0Dh,4C1F0DC9h,0A1DA7C89h,7CEE8CB7h; 0
    


    Собственно, что и требовалось доказать. Те самые Guid'ы! Пытаясь выяснить, что имено скачивается в помошью BITS, видим, что имя файла „зашифровано“.


    Опять быстренько пишем скрипт на питоне, который расшифровывает нам эту строку:
    def xor(enc, key):
        res = ''
        for x in enc:
            y = (x ^ key) % 255
            if y == 0:
                break
            key = (key + 1) % 2**32;
            res = res + (chr(y))
        return res
    


    … и получаем результат, потрясающий нас до глубины души!!!

    http://reddii.org/traffic/all/files/filebyaka.exe 
    

    (Внимание! По указанному адрему до сих пор находится вирус. Попытка открыть этот файл может окончиться фатально для вас и вашей машины).

    Название говорит само за себя. Это бяка, и еше какая!

    filebyaka.exe (md5:fc85dab5849416f8796b799fc209395a)
    Dr.Web: Trojan.Packed.619
    Kaspersky: Backdoor.Win32.Agent.ajd
    


    Собственно, анализ этой бяки вы можете найти по ссылке xanalysis.blogspot.com, которую подсказали в комментариях.

    Все, что происходит дальше, мы можем предсказать, даже не возвращаясь в дебагер. Создается задание (Job) для BITS, запускается закачка. Потом каждые 10 милисекунд проверяется статус задачи. Когда закачка завершается, скачанный файл запускается на выполнение. Фух, потора килобайта, а столько возни!

    Итого


    „Большой“ троянский конь внутри себя как ресурс содержит „маленького“ троянского жеребенка. Этот вирус, всего в полтора килобайта размером (это две страницы текста у меня в редакторе), умеет скачивать и запускать на выполнение другой, более опасный вирус. Сделан он в стиле шелкода, прямо „по учебнику“. Большая часть используемых техник подробно рассмотрена в статье Evolving Shell Code. Троян делает небольшой финт ушами, и вместо реализации сетевых соединений, http протокола, и проч., просто использует сервис windows под названием Background intelligent transfer service (именно это позволяет уменьшить размер кода). Системные функции вызываются не по прямым адресам, а функции, которые используются для работы с файлами, типа CreateFile, не вызываются вообще. Есть большое сомнение, что какой-либо из существующих антивирусов способен опознать такую зловредную функциональность одним только эвристическим анализом. Скачивает эта крошка файл с грациозным названем filebyaka.exe, что говорит о сам знаете каких корнях.

    Файлы, использованные при анализе, можно найти по этому адресу

    На этой оптимистичной ноте прощаюсь с вами. Не запускайте незнакомые файлы. Берегите себя!
    Share post
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 118

      +15
      вау, отличный материал, спасибо, с удовольствием прочитал!
        +16
        спасибо за старания.
        прочитал на одном дыхании!
          +4
          Спасибо, хорошая статья, понравилось. Стало интересно, а зачем все эти сложности, если в итоге и сам «большой конь» и «жеребец» и, тем более, «бяка» на данный момент успешно определяются антивирусами? Чтобы затруднить анализ разработчикам антивирусов? Видимо, не очень сильно помогло.
          • UFO just landed and posted this here
              +3
              Защита от эвристик. Гарантирует высокую скорость распространения до того, как сигнатуры трояна попадут в антивирусные базы и эти базы попадут к пользователям.
              +7
              Детектив (во всех смыслах) :)
                +11
                Красивый слог, вам не только аналитиком можно работать.
                  +4
                  великолепно, ждем продолжения про подробности того, что делает большой троянский конь
                  • UFO just landed and posted this here
                      +2
                      ээ… какой такой макбук?
                        +3
                        Вот этот ;).
                        Количество плюсов за топик позволяет надеяться что именно вы его и получите, за очень хороший материал. Спасибо.
                        +6
                        А ведь угадали!
                          0
                          А чего тут угадывать, материал достаточно хороший.
                          Думаю многим было интересно почитать
                          0
                          Напророчил :)
                          +8
                          маньяк
                            +2
                            супер!!! :)
                              +5
                              • UFO just landed and posted this here
                                  +2
                                  добавил в текст
                                  +14
                                  Блестящий материал! После прочтения вашей статьи складывается впечатление, что, казалось бы, в профильные журналы «Хакер» и «Спец» статьи пишут старшеклассники.
                                    +1
                                    Ммм… Статья замечательная, но про авторство статей в «Хакере» такие мысли и без этой статьи появлялись :)
                                      +1
                                      Вы никогда не пробовали писать статьи в «Хакер»? Зря. Заодно получите подтверждение своего впечатления :)
                                        +1
                                        Вы хотите сказать, что я получу подтверждение того, что сам являюсь старшеклассником? :-)
                                        • UFO just landed and posted this here
                                            +2
                                            с чего вы решили, что переведена?
                                            • UFO just landed and posted this here
                                                +3
                                                имеется ввиду, что эта статья — перевод предложения

                                                «When executed, the malware creates %Temp%\LOADER.19B099.EXE and uses the BITS (Background Intelligent Transfer Service) to download filebyaka.exe and exe.php from the Chinese hosted site reddii.org (220.196.42.217).»?

                                                Ну-ну :)
                                        +1
                                        Отнюдь :)
                                        Просто формат журнала вряд ли позволяет ТАК подробно описывать отлов одного вируса.
                                          +1
                                          Формат журнала позволяет! Только, видать, нет желающих писать на такие темы. Если кто хочет опубликоваться — могу дать нужную аську, куда следует обращаться со статьями.
                                        +2
                                        Прекрасно написано!
                                        Перечитал все ваши статьи, узнал для себя много нового, немного вспомнил.
                                        Ну и чуть понастальгировал по времени, когда сам штудировал книжки П. Нортона по асму, вирусную аналитику Д. Н. Лозинского и др.
                                        Вообщем спасибо за материал.
                                          +45
                                          Нехрена не понял, но круто!
                                            +1
                                            Я ничего в этом не понимаю:), но мне интересно, что конкретно делает этот вирус (filebyaka.exe), т.е. именно последствия, а что что-то не нашел этого.
                                              +3
                                              Немного выше дали ссылку на анализ действий «бяки». Если коротко, то выводит предупреждение о вирусе, заставляя пользователя скачать и установить некий продукт «Antivirus XP 2008», который на самом деле не настоящий антивирус. После установки этот фейковый антивирус имитирует полезную деятельность и выдает отчеты о якобы найденных вирусах, убеждая пользователя купить полную версию себя.
                                                +1
                                                И?.. Просвятите тех, кто далёк от этой темы, пожалуйста (статьи отличные, но как писали выше «Круто, но не очень понятно» :) ). Предлагает он купить более полную версию себя — и что? В итоге что-то покупается (т.е. это преступление, чтобы заставить пользователя купить чей-то продукт) или нам продают в итоге комплект «Все трояны на одном диске — активируй и радуйся».

                                                Что в итоге-то? Какой результат реального ущерба? Или это такой «маркетинг», в попытке заставить купить какой-то продукт?

                                                Спасибо за пояснения…
                                                  +1
                                                  это простое вымогательство. Этот «антивирус» в жестких угрожающих формах говорит о том, что компьютер якобы заражен. Пользователь пугается, платит деньги… и ничего. Компьютер как был чистым, так и остается. «Антивирус» просто говорит, что все ок.
                                                    0
                                                    Не все так просто. Эти FakeAlert'ы довольно убедительно показывают, что вирусы есть — анноящая реклама и порнуха в браузерах — это цветочки. Некоторые звери вместе с ложными антивирусами еще и пяток настоящик троянов качают :-)
                                                      0
                                                      ничего себе. Я как-то ковырял «папу» этого антивируса — MS Antivirus, но ничего такого не нашел…

                                                      Кстати, даже касперского подделывают уже — www.viruslist.com/ru/weblog? weblogid=207758727
                                                        +1
                                                        Есть семейство Vapsup (у M$ и Каспера, каежется), характерно полной неупакованностью, но очень характерным шифрованием строк. По ключу шифрования и можно установить, что несколько файлов из одной связки. Там среди компонентов есть и Downloader, он качает фэйковый антивирус и еще 4-5 файлов. Точнее, даже не сам антивирус, а прогу, которая говорит «вы заражены, лекарство тут».
                                                      0
                                                      Тогда у меня интересное предположение… В подобных статьях (безусловно, отличных статьях!) мы имеем разложенный по полочкам, с комментариями код вполне себе работающего трояна. Что дальше мешает более-менее понимающему человеку (не мне, блондинке от программирования) чуть скорректировать код, что бы пошло обращение не к «файлу-бяке» fake-антивируса, а на что-нибудь более вредоносное — и разослать? Тем более, что комплект файлов мы тоже имеем…

                                                      Как бы «обратная сторона медали» получается.
                                                        +2
                                                        да, но… понимающий человек может это спокойно сделать и без этой статьи.
                                                          0
                                                          P.S. Данный комментарий прошу рассматривать исключительно как пространное рассуждение о теоретических возможностях, не носящий своей цель отбрасывать какого-либо рода негативную тень на подобные статьи и их Авторов.
                                                      +1
                                                      долго смеялся :) но ни над текстом ни над автором :) этот «продукт» вендор биллинга одной известной мне компании, к сожалению я договор подписывал, скажу только, что судя по их продажам, многие ведутся на такие попапы.

                                                      Я не говорю про СНГ, большей частью восточная европа и конечно же США.
                                                        0
                                                        Жаль, что на западе с этой компанией не борются, так как это явно должно подпадать под какую-то статью. Хороших хакеров ловят, а мошенников никто не трогает((
                                                          0
                                                          такая уж у мошенников судьба, всегда за спиной есть чей то дядя в налоговой, или чей то тётя в МРЕО и так далее, и так далее… увы :(
                                                    +3
                                                    Грациозное вальсирование по острию бритвы.
                                                      +3
                                                      Сэр, Вы Шерлок :)
                                                      или маг

                                                      я догадываюсь, что все куда проще — но как приятно и интересно читать!

                                                      Спасибо!
                                                        +3
                                                        Лоадеры, которые качают через BITS — это поделки 2005-2006 года. Сейчас внедрение в BITS ловят почти все антивири.
                                                        Лучше всего сделать обзор лоадеров, которые работают через драйвер… Это куда более сложные звери…
                                                          +1
                                                          мне пока не попадались. Хотя я занимаюсь вирусами в свободное время, и не могу быть особым авторитетом. Если есть сэмплы таких зверей — давайте, с удовольствием поковыряю.
                                                            0
                                                            ну надо учитывать тот факт что БИТС может и работать (может!!! не проверял) под не привилегированной учетной записи… а драйвер под такой учеткой ты не воткнешь =\
                                                              –5
                                                              Драйвер, если его удалось поставить, может работать на ring0 — это уровень самого антивируса или даже ниже, а вот BITS мониторится на раз сейчас и не важно, какая у него учётная запись.
                                                                0
                                                                >ring0 — это уровень самого антивируса
                                                                эм… не так конечно…
                                                                не все АВ вообще в r0 работают ;)

                                                                да и в ринг0 можно без драйверов пролесть ;))
                                                            +1
                                                            Автор молодца! узнал много интересного… спасибо…
                                                              +1
                                                              Спасибо за материал, боролся я с этой «бякой» на 10 машинах, не применяя антивируса, победить было не просто.
                                                                +2
                                                                отличный материал, читал как современный детектив, так как сам никогда за такое не возьмусь, но уж очень интересно :)
                                                                  +1
                                                                  Хабракат.

                                                                  Можно в блог по асму опубликовать :)
                                                                    +1
                                                                    Вот это действительно нормальный топик, развернуто и не затянуто.
                                                                    + вам однозначно.
                                                                      +1
                                                                      Потрясающий детектив!
                                                                        +3
                                                                        не знаю ассемблера. почти все утилиты мне незнакомы. никогда не занимался изучением вирусов и прочих «бяк», но автор дал материал так что мне показалось что я кое-что понял. Реально, если бы каждый гик-специалист умел так излагать мысли мнение людей о хакерах могло бы поменять в лучшую сторону.
                                                                        П.С. хакер это просто специалист, а не специалист-злоумышленник, как нам пытаются объяснить в фильмах
                                                                          +1
                                                                          s/поменять/поменяться
                                                                          запятых не хватает. Утро.
                                                                          +1
                                                                          use condoms ;)
                                                                          Затягивает ;) Автор вы молодец!
                                                                            +3
                                                                            Крис Касперски, это ты? :)
                                                                              +1
                                                                              Нет. К сожалению, или может быть, к счастью? )
                                                                              +4
                                                                              Именно за такие статьи я полюбил Хабр. Автору огромное спасибо!
                                                                                +3
                                                                                и хабру спасибо тоже, и вам
                                                                              • UFO just landed and posted this here
                                                                                  +2
                                                                                  Отличная статья!
                                                                                  На хабре относительно недавно, это первый материал где вчитывался буквально в каждую букву, силясь понять, хотя в этом нифига не разбираюсь )
                                                                                    +3
                                                                                    По-моему, это ноутбук!
                                                                                      +1
                                                                                      Спасибо за материал.
                                                                                        +2
                                                                                        Автор, я очень надеюсь, что это не последний твомй топик, и ты еще порадуешь нас такии же великолепными статьями.
                                                                                          +1
                                                                                          Почти ничего толком не понял, но было очень интересно, правда :)
                                                                                            +1
                                                                                            браво!
                                                                                              +1
                                                                                              … продолжать в таком же духе!!!
                                                                                                +1
                                                                                                побольше бы таких детективчиков!
                                                                                                  +1
                                                                                                  читал — «детство» вспоминал… так захотелась опять поковыряться в IDA/WinDasm/WinHex ;)
                                                                                                    +2
                                                                                                    Великолепно. Спасибо большое.
                                                                                                    2ФППХ: макбук автору
                                                                                                    • UFO just landed and posted this here
                                                                                                        +1
                                                                                                        Практически ощутил себя «дизайнером-блондинкой» :) НО! Большое спасибо Автору за материал — изложенно всё настолько популярно, что даже не понимая некоторых технических моментов общая суть стала понятна. Спасибо, это было очень интересно!
                                                                                                          0
                                                                                                          а что делает сам вирус (файлобяка)?
                                                                                                          как всегда шикарная статья)
                                                                                                            –6
                                                                                                            спасибо, очень интересно читать (хотя, честно говоря, понимаю очень мало :).

                                                                                                            Я бы порекомендовал (для привлечения похожих на меня читателей) проверять текст где-нибудь на орфографию (использование gawk/python наряду с win32 немного пугает, поэтому даже не могу предположить, какая ОС используется). + рисовать простые блок-схемы. Дизассемблированный код говорит крайне мало, два-пять блоков со стрелочками лично мне было бы понятнее.
                                                                                                              0
                                                                                                              Простые блок-схемы скрывают все нюансы! На асме одно и тоже можно написать десятком, если не больше, способов, поэтому блок-схемы сокроют внутри всякие интересные вкусности.
                                                                                                                0
                                                                                                                может быть, тогда стоит их добавить, как альтернативу? Статья от этого только выиграет
                                                                                                                +1
                                                                                                                gawk для win32 — берется из cygwin'а. А питон (как и большинство открытых проектов) есть и под windows. Open Source != Linux :)
                                                                                                                0
                                                                                                                Видно, что читать надо, но наверное вечером, а то с утра мозги закипять — хоть пакетик во рту заваривай :)
                                                                                                                  –4
                                                                                                                  Большое спасибо за шикарную статью. Очень интересно и позновательно.
                                                                                                                    –4
                                                                                                                    Вы отличный реверсер. Спасибо за интересный материал :)
                                                                                                                      +4
                                                                                                                      Не зря наши великие умы Trojan.Packed делали! :-)

                                                                                                                      Кстати, по поводу UPX. Приведенная картинка с блок-схемой программы (которая первая) выдает UPX сразу: куча каких-то переходов, но в конце — обязательно «красный» на адрес до точки входа. Довольно часто попадается модифицированный UPX, который upx -d не возьмет, приходится ручками: ставится бряк на этот «красный» переход и дальше один шаг пройти :-)

                                                                                                                      Для снятия дампов есть прекрасная примочка к Olly — OllyDump, рекомендую. Баги, правда, тоже есть :-)
                                                                                                                      По ссылочке сейчас файлег скачаю, посмотрю что там и как :-)

                                                                                                                      Спасибо за интересную статью ;-)
                                                                                                                        +1
                                                                                                                        Какие люди)

                                                                                                                        Ну, как говориться, век живи, век учись. — про upx.

                                                                                                                        Про OllyDump знаю, но как-то не срослось у меня пока с olly. windbg для меня почему-то удобнее.
                                                                                                                          +1
                                                                                                                          windbg имеет огромный плюс — может показывать поля структур, ну и ядреные драйвера отлаживать им можно, Olly только юзермодные модули берет, да и то иногда помучаться надо.
                                                                                                                        +1
                                                                                                                        Я прошел-таки по зловещему адресу, оказалось там ничего нет, как собственно и целого сайта reddii.org.

                                                                                                                        Проверил WHOIS: сразу бросилась в глаза запись Last Updated On:10-Sep-2008 00:21:26 UTC.
                                                                                                                        Они заподозрили неладное уже спустя час после написания статьи и спешительно скрылись.

                                                                                                                        PS: Статья очень понравилась, очень вы лихо расправляетесь с заразой.

                                                                                                                          +1
                                                                                                                          необычный хабраэффект :-)
                                                                                                                          перед автором статьи снимаю шляпу
                                                                                                                          –4
                                                                                                                          Таааак… пошел учить матчасть…
                                                                                                                            –12
                                                                                                                            ничо не понял, но читал с удовольствием, пасиб))
                                                                                                                              –12
                                                                                                                              Я нихрена не понял, но ты затронул мою душу.
                                                                                                                                0
                                                                                                                                Обожаю такова рода разборы троев… сам ковыряю по возможности…
                                                                                                                                  –4
                                                                                                                                  Отлично, спасибо!
                                                                                                                                    0
                                                                                                                                    Шикарное исследование, очень интересно. Хорошо бы разбор какого-нибудь злостного вируса с самокопированием.
                                                                                                                                      0
                                                                                                                                      /me ушел читать «Ассемблер для чайников».
                                                                                                                                        +4
                                                                                                                                        Я, к сожалению, физически не могу ответить на все комментарии. Видно, и для не-специалистов это не было таким уж бесполезным чтением. Спасибо за добрые слова.
                                                                                                                                          0
                                                                                                                                          поправьте последнее слово в фразе:
                                                                                                                                          «То есть, upx опознал свой файл. Рапаковываем:»

                                                                                                                                          и спасибо за статью, очень познавательно)
                                                                                                                                            0
                                                                                                                                            Держим репутацию статьи на 512 :))))))
                                                                                                                                              +2
                                                                                                                                              Здравствуйте,

                                                                                                                                              Домен reddii.org заблокирован.
                                                                                                                                              Regards,
                                                                                                                                              Estdomains, Inc

                                                                                                                                              На этой оптимистичной ноте прощаемся с доменом. :-)
                                                                                                                                                0
                                                                                                                                                Спасибо за интересную статью, в свое время похожие статьи от Криса Касперски читал одну за другой)) Наверно непросто сделать такой маленький, но работающий лоадер.
                                                                                                                                                  0
                                                                                                                                                  Спасибо за статью.
                                                                                                                                                  Иногда я жалею, что пошел по пути программиста.
                                                                                                                                                    0
                                                                                                                                                    Спасибо.

                                                                                                                                                    Статьи про раздор вирусов отлично идут на хабре. И читать их интересно, не в обиду другим топикам. Сама тематика цепляет многих, программистов и далёких от этого людей.
                                                                                                                                                      +1
                                                                                                                                                      Компания, в которой вы работаете, должна вами очень и очень гордиться.
                                                                                                                                                        –5
                                                                                                                                                        Еще один повод отключить нафиг BITS и Windows Update. Система должна быть под контролем владельца (юзера, а не разработчика)
                                                                                                                                                          +2
                                                                                                                                                          Заодно есть повод отключить нафиг IE, ведь можно точно так же через CoCreateInstance создать инстанс IE и им что-то скачать. А ещё можно отключить нафиг интернет, а то вдруг кто-то задумает обычный сокет открыть…
                                                                                                                                                            0
                                                                                                                                                            так же програмно можно и включить этот битс ;)
                                                                                                                                                            лодеры на битсе много шума понаделали…
                                                                                                                                                            0
                                                                                                                                                            Отличный интересный труд, спасибо вам. И достойно ноута, конечно
                                                                                                                                                              0
                                                                                                                                                              Не думал, что обыкновенная «лошадь» может быть так сложно устроена! Так что молодец тот, кто раскрутил весь этот клубок.
                                                                                                                                                              P.S. Хорошую систему Windows NT убили маркетологи! Статья действительно достойна ноутбука.
                                                                                                                                                                +3
                                                                                                                                                                Спасибо за материал! Пишите чаще, пожалуйста=)
                                                                                                                                                                  +1
                                                                                                                                                                  До прочтения статьи думал что я что — о знаю о программировании ибо работаю программером, но после прочтения статьи…
                                                                                                                                                                  Автору огромное спасибо за положительные эмоции от прочтения, интересную тему и хорошее изложение!!! Побольше бы таких статей!!!
                                                                                                                                                                    +1
                                                                                                                                                                    с победой!
                                                                                                                                                                      0
                                                                                                                                                                      Поздравляю с победой! Отличная статья, побольше бы таких!
                                                                                                                                                                        –1
                                                                                                                                                                        Вы прямо как доктор Хаус :)
                                                                                                                                                                          0
                                                                                                                                                                          Мои поздравления :)
                                                                                                                                                                          Ждём новых интересных обзоров!
                                                                                                                                                                            0
                                                                                                                                                                            Очаровательно. Можно еще такой же вкуснятины :)
                                                                                                                                                                              0
                                                                                                                                                                              В лучших традициях Криса Касперски, респект.

                                                                                                                                                                              Only users with full accounts can post comments. Log in, please.