Вирусная аналитика

Тема в разделе "WASM.HEAP", создана пользователем Luis, 20 сен 2010.

  1. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    > Наоборото, не детектируется упакованный nProtect'ом
    внимательнее :)
    Оригинал:
    Код (Text):
    1. Norman      2009.04.30  W32/Pinfi.A
    2. nProtect    2009.1.8.0  2009.05.03  -
    3. Panda   10.0.0.14   2009.05.03  W32/Parite.B
    Пакованный:
    Код (Text):
    1. Norman  6.06.06 2010.09.19  -
    2. nProtect    2010-09-20.01   2010.09.20  Win32.Parite.F
    3. Panda   10.0.2.7    2010.09.19  Suspicious file
     
  2. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    Бл, что такое nProtect? :)
     
  3. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    так вот оно что :)
    кстати, открой военную тайну - кто придумал имя детекта Katusha? Какой подтекст именно такого названия. Т.е. не по чем палят, а почему решили дать именно такое имя?
     
  4. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    Понятия не имею, но есть даже заметка в блоге.

    http://www.securelist.com/ru/blog/32891/Packed_Win32_Katusha_n
     
  5. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    n0name

    Короче, да, с nProtect'ом все понятно, наверняка автодятлом сделали сигнатуру украв детект, а оригинал тупо не знают. Что такое за продукт nProtect я в душе не чАю.

    Насчет ЛК, я проверил нашим внутренним эмулятором и запакованный успешно распаковался и после этого задетектировался и даже вылечился. Видать была какая-то бага с проходом такого пакера/криптора :)
     
  6. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    > Насчет ЛК, я проверил нашим внутренним эмулятором и запакованный успешно распаковался и после этого задетектировался и даже вылечился
    ну это совсем не удивительно как бы. там эмулируй на здоровье, даже 4-5 летние движки справились бы наверняка.
    Поэтому и удивил касперский.
     
  7. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    n0name
    В x64 если описать диспетчер исключений в IMAGE_DIRECTORY_ENTRY_EXCEPTION и разбить хидер, тогда хэндлер получит управление при инициализации загрузчика, тоесть это теневой вызов кода, по типу тлс ?
     
  8. HH9

    HH9 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2007
    Сообщения:
    72
    У кала эвристик примитивнейший, однако есть подрубаемый модуль от AVZ. Эмулятор там тоже далек от совершенства.
     
  9. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    Вот поэтому я сюда и захожу раз в несколько месяцев, т.к. школота не считает своим долгом обосновать мнение :)
     
  10. HH9

    HH9 New Member

    Публикаций:
    0
    Регистрация:
    28 ноя 2007
    Сообщения:
    72
    батенька, давайте без перехода на личности. я кишочки продукта видел, поэтому знаю, о чем говорю.
     
  11. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    > В x64 если описать диспетчер исключений в IMAGE_DIRECTORY_ENTRY_EXCEPTION и разбить хидер, тогда хэндлер получит управление при инициализации загрузчика, тоесть это теневой вызов кода, по типу тлс ?

    Насколько я помню RtlLookupFunctionEntry() не чекает то что границы функции из RtlpUnwindHistoryTable попадают в границы модуля.
    В теории можно попробовать, но там подводные камни скорее всего встретятся.
     
  12. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    n0name
    Вроде нет подводных камней никаких..
    sww_
    Если определить фиксап для IMAGE_NT_HEADERS.OptionalHeader.AddressOfEntryPoint как это обработают аверы ?
    Загрузчик так в начале читает ссылку в LdrpFetchAddressOfEntryPoint(), а затем выполняет релокацию и настройку импорта.
     
  13. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    > Вроде нет подводных камней никаких..
    завтра напишу тестовый примерчик.
    > Загрузчик так в начале читает ссылку в LdrpFetchAddressOfEntryPoint(), а затем выполняет релокацию и настройку импорта.
    угу, это печалит немного, ибо несколько интересных фишек можно на этом нюансе сделать было бы.
    только это лишняя черта для эвристика - нормальные проги редко фиксапят заголовок :)
     
  14. lhc645

    lhc645 New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    106
    Я правильно понимаю, что исключение произойдет в ntdll? Если так, то вызовется обработчик для функции ntdll из таблицы эксепшенов ntdll, а не экзешника.
     
  15. Clerk

    Clerk Забанен

    Публикаций:
    0
    Регистрация:
    4 янв 2008
    Сообщения:
    6.689
    Адрес:
    РБ, Могилёв
    lhc645
    Возможно, еслиб я знал, то не спрашивал :)
     
  16. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    > Я правильно понимаю, что исключение произойдет в ntdll? Если так, то вызовется обработчик для функции ntdll из таблицы эксепшенов ntdll, а не экзешника.
    почему это?
    пробегаем же тупо по функциям и смотрим на то попадает ли адрес сепшна в регион. при этом регион мы можем задать и 0x00..00-0xFF..FF.
    Главное чтоб наша функция была выше в RtlpUnwindHistoryTable чем ntdll'шная.
     
  17. lhc645

    lhc645 New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    106
    RtlLookupFunctionTable (full source ->wrk, правда там для ядра с PsInvertedFunctionTable) сначала находит описание модуля, в котором произошло исключение, в InvertedFunctionTable, следовательно возвращается FunctionTable того модуля, в котором произошло исключение (а у ntdll есть запись в InventedFunctionTable). Каким образом тогда может получить управление наш обработчик?
    В любом случае это теоретически, конечно. Практика все разрулит.
     
  18. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    Хороший вопрос, кстати. К сожалению я уже дома и не могу посмотреть наши сорцы, но думаю, что ничего хорошего не будет :)

    Вопрос обхода эмуляторов через использование различных структур (PEB/TEB и т.п.) и фишек различных ставился уже ни раз. Все поддержать невозможно физически, однако, не стоит забывать о том, что иногда проще задетектить способ, т.к. в нормальных программах такого нет.
     
  19. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    есть эпичная тема на 13 листов про это =)
    в вирулогии.
     
  20. sww_

    sww_ New Member

    Публикаций:
    0
    Регистрация:
    21 окт 2007
    Сообщения:
    155
    Лениво читать, вряд ли там будет что-то новое :)