Иван

Антивирус NOD32 работает на хакеров

В этой теме 31 сообщений

Это к заявлениям о том, что вот дескать в касперском и других антивирях находят уязвимости, а вот нод32 безупречен.

http://safe.cnews.ru/news/line/index.shtml?2007/05/24/251713

В антивирусе NOD32 версий до 2.70.37.0 включительно обнаружены две уязвимости, заставляющие его выполнять произвольный код при определённых условиях, сообщает Heise-security.co.uk.

Как сообщили в списке рассылки Bugtraq, две ошибки переполнения буфера срабатывают при лечении, удалении или перемещении файлов в директорию с длинным именем. Вредоносный код при этом необходимо записать как часть названия директории в формате Unicode. Уязвимость, тем не менее, довольно сложно эксплуатировать, однако специалисты утверждают, что работающий эксплоит уже создан.

Компания Eset, разработчик антивируса, выпустила обновление, которое доступно для автоматической загрузки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

длина пути очень многими плохо обрабатываеться, др.веб тоже падает..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
др.веб тоже падает..

Steps to reproduce для Dr.Web можно? Например, для eicar.com .

Какая версия падает? Релизная, бета? Что падает - спайдер роняет систему в BSOD при проверке или же сканер падает?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
на rootkits.ru было написано..

Погуглил

site:rootkits.ru - 853 результата

site:rootkits.ru Dr.Web - ничего не найдено

Давно было?

Просто насколько я помню, давеча правили что-то похожее. И вроде как исправляли. Поэтому нужно бы поточнее. Если точнее нет, то даже баг не завести.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, буду смотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создал путь длиннее MAX_PATH (260 символов).

Dr.Web не сканирует, но и не падает.

Пишет:

[scan path] E:Longlonglonglonglonglonglonglong

И всё.

Хотя настоящий путь там E:LonglonglonglonglonglonglonglongLonglonglonglonglonglonglonglong... и т.д.

А NOD после исправления уязвимости стал именно сканировать (лечить, перемещать) такие пути или же просто не падает?

Да, ещё вопрос.

Как создать 1024 вложенных папки, если общий путь не превышает 260 символов. Ограничение на 260 символов можно обмануть в Windows, т.е. сделать путь длиннее (что я и сделал). А вот 1024 вложенные папки как сделать, пока не придумал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Какая версия падает? Релизная, бета?

любая из существующих.

при просмотре списка дисков и директорий происходит buffer overrun

drwebre5.gif

касперски 7 тоже не блещет, он просто висит на сканировании подобного каталога.

другие не лучше - они либо пропускают либо начиная раскручивать каталог выпадают. аффтарам нод32 надо меньше курить их программа не лучше.

повторить это можно простым кодом в несколько строк.

 strcpyW(buf, '?J:fdir');  CreateDirectoryW(buf, nil);  for i := 0 to 1023 do  begin    strcatW(buf, 'fdir');    CreateDirectoryW(buf, nil);  end;

можно расширить код и запихать в директорию бинарник + стартовать его оттуда.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EP_X0FF, спасибо за подробную информацию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

EP_X0FF, проверил сегодня по Вашему методу. 4.44 не падает, но и, опять же, не проверяет.

Вот что у меня на VC++ 2005 получилось:

void CMy1024Dlg::OnBnClickedOk(){    CString buf, buf1;    buf = "?C:long";    buf1 = "C:Hello.exe";    ::CreateDirectoryW(buf,NULL);    for (int i=0; i<1030; i++)    {        buf += "long";        ::CreateDirectoryW(buf,NULL);    }    ::CopyFileW(buf1, buf, NULL);    buf += "Hello.exe";    ::ShellExecuteW(0,L"",buf,L"",L"",0);    OnOK();}

Так вот либо CopyFileW не работает, либо ShellExecuteW.

Может, Вы ошибку подскажете?

Или же запустить всё же невозможно?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4.44 не падает, но и, опять же, не проверяет.

А если раскрыть список директорий в его интерфейсе? :) Вышеприведенный скриншот как раз получен при этом.

Сработал или нет CopyFileW легко проверить, наверняка сработал.

А вот чтобы запустить с такого пути что-либо обычное API неприменимо.

Нужно полностью повторить процесс загрузки и запуска процесса.

1. создать секцию из файла ZwOpenFile, ZwCreateSection

2. создать оболочку - процесс ZwCreateProcess, ZwQuerySection

3. создать стек и первичный поток ZwCreateThread

4. создать и инициализировать структуры процесса RtlCreateProcessParameters

5. уведомить сервер процессов о создании нового процесса

CsrClientCallServer

6. поставить маркер доступа к новому процессу RtlAdjustPrivilege ZwSetInformationThread

По всему этому есть полагающаяся инфа и даже примеры готового кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А если раскрыть список директорий в его интерфейсе? Smile Вышеприведенный скриншот как раз получен при этом.

Да, при планомерном раскрытии таких поддиректорий на определённом моменте получаем вышеопубликованный скриншот, но это менее критично, чем падение на сканировании таких папок. Хотя, конечно, тоже заслуживает внимания.

А вот чтобы запустить с такого пути что-либо обычное API неприменимо.

Нужно полностью повторить процесс загрузки и запуска процесса.

Опять же спасибо за информацию. Буду подумать :)

Добавлено спустя 33 минуты 20 секунд:

Нужно полностью повторить процесс загрузки и запуска процесса.

1. создать секцию из файла ZwOpenFile, ZwCreateSection

2. создать оболочку - процесс ZwCreateProcess, ZwQuerySection

3. создать стек и первичный поток ZwCreateThread

4. создать и инициализировать структуры процесса RtlCreateProcessParameters

5. уведомить сервер процессов о создании нового процесса

CsrClientCallServer

6. поставить маркер доступа к новому процессу RtlAdjustPrivilege ZwSetInformationThread

Кажется, тут схема дописана не до конца :) Или на 6-ом пункте программа уже запустится?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще на сколько на ваш взгляд реально использование подобной уязвимости вирусописателями?

Ведь писать malware с расчетом только на Nod32 невыгодно, не такой популярный продукт да и выхлоп не такой большой получится как ни крути, уязвимость быстро закроют.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Вообще на сколько на ваш взгляд реально использование подобной уязвимости вирусописателями?

А что мешает? Схема указана. Дело за реализацией.

Да и причём тут НОД? Проблема есть у всех, и не думаю, что её так уж легко исправить.

Запустится вирусок из %WINDIR%system32system32system32... (и так 1024 раза), и никто о нём и не узнает, хотя антивирус и не упадёт.

Ы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересно.Нету возможности детекта просто длинных путей?Скажем,более 50 вложенных папок уже можно предлагать стирать.Либо сразу иметь возможность подобной установки и по умолчанию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Нету возможности детекта просто длинных путей?

Есть, конечно. Dr.Web такие пути, например, игнорирует, не сканирует.

Утверждается, что КАВ 7.0 на их скане зависает, но, думаю, там это легко поправят.

Скажем,более 50 вложенных папок уже можно предлагать стирать.

Стирать - не очень правильное решение, даже если спрашивать. А вдруг там что-нибудь нужное? Всегда найдётся пользователь, который не сможет ответить на вопрос - нужно оно ему или нет.

Добавлено спустя 52 секунды:

Да ещё нужно и уметь удалить такой путь.

Проводник и всё на нём основанное, например, не может удалить такие папки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я цифру 50 наугад взял.А есть ли такие длинные пути вообще,кроме вирусных?То есть,как с неизвестными пакерами,кто-то пользуется дырой.Я бы стирал.Можно цифру и повысить.

Я не программист.Удалить нельзя путём,обратным созданию?Команде,которую выполнила ОС по созданию папки/папки...,должна быть и обратная.Через ответ "стереть" в АВ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Удалить нельзя путём,обратным созданию?

Да, видимо, можно. Сейчас с этим играюсь. Функцию нашёл соответствующую готовую.

Именно обратным путём:

1. удалением файлов в самой "дальней" папке;

2. удалением самой "дальней" папки;

3. переход на уровень выше

4. Переход на п.1, пока не достигнем корня.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько загружает анализировать в реальном времени команды в кодах,направленные на создание,скажем,>50 вложенных папок?На крайний случай только в небольших файлах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Насколько загружает анализировать в реальном времени команды в кодах,направленные на создание,скажем,>50 вложенных папок?На крайний случай только в небольших файлах.

Не понял вопроса.

1024 поддиректории у меня создались где-то за минуту. В это время остальные программы нормально продолжали работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Имел ввиду,если АВ это в порядке своей деятельности при доступе к файлам делает.Возможно вообще такую команду отловить,если в файле узнана не была?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сокращать пути до меньших MAX_PATH не так накладно по ресурсам, как оказалось.

Удаляется всё это гораздо быстрее. Если создаётся около минуты, то удаляется несколько секунд.

Можно такие пути "укорачивать" (спрашивая у пользователя) до MAX_PATH, в принципе.

Правда, для удаления я использовал "заточенный" под свой случай код:

void CRemoverDlg::OnBnClickedOk(){    int i,j;    CString path;    for(i=1032;i>=0;i--)    {        path = L"?C:long";        for(j=0;j<i;j++)        {            path += L"long";        }        ::DeleteFileW(path + L"Hello.exe");        ::RemoveDirectoryW(path);    }    OnOK();}

Сделал так, потому что забыл, на каких уровнях оставил файлы Hello.exe :)

Зато теперь можно смело экспериментировать с запуском оттуда.

Думаю, не так сложно сделать удаление всех подкаталогов определённого "длинного" каталога, не зная заранее структуры его подкаталогов, если использовать FindNextFileW и пр.

Добавлено спустя 6 минут 32 секунды:

Возможно вообще такую команду отловить,если в файле узнана не была?

Т.е. детектировать эвристиком/проактивкой создание пути, состоящего из символов, бОльших MAX_PATH?

Не знаю. Наверное, это будет сложнее, чем удалить уже созданный длинный путь при сканировании :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да,так как до того,как пройдут недели для очередного скана по требованию,успешно спрятанный какой-нибудь даже "знакомец" успешно запустится.Детектировать возможно на стадии создания/превышения пути.Заодно может быть и с новым инициатором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Интересное предложение - удалять такие пути или резать их. FYI Виста может на вполне законных основаниях забабахать путь > MAX_PATH и такие вот резанья ни к чему хорошему не приведут.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Создайте учетную запись или войдите, чтобы комментировать

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти с помощью Facebook Войти Войти с помощью Twitter
Anti-Malware.ru Вконтакте   Anti-Malware.ru в Facebook   Anti-Malware.ru в Twitter   Anti-Malware.ru в LinkedIn   RSS
  • Сообщения

    • DisaGlass
      Хочу чтобы на открытых парковках сделали навесы для защиты от осадков. Кто за?    Конструкции из алюминия и стекла на заказ
    • Сергей Ильин
      Каждую минуту создается несколько десятков новых образцов малвари. Чтобы она попало в облачную базу репутации нужно: 1. Чтобы антивирусу они попались (обеспечить охват близкого к 100% парка машин) 2. Чтобы антивирус опознал их как вредосносные сразу.   п 1 нереален сразу. Поэтому шансы сильно снижаются изначально. п 2 тоже работает с определенной вероятностью. В большинстве случаев должна накопиться статистика по обнаружению конкретного файла в сети, что он делал, как распространялся и тп. Если статистики нет - репутации тоже нет. Файл попадает "в серую зону". Кроме этого сейчас тренд идет к тому, что вредонос рассылается только один раз конкретному человеку. Больше его ни у кого не будет в природе. Поэтому какая уж тут репутация ...
    • ViktorFazz
      Я с вами согласен, это еще нужно уметь, а еще нужно найти хорошую работу в сети. Но мне кажется лучше ходить на нормальную работу, а в интернете просто иметь дополнительный заработок. Я работаю админом в гостинице, при этом еще увлекаюсь ставками на спорт, так я имею в месяц еще несколько тысяч практически и ничего. Смотрю прогнозы на спорт тут - http://betrating.ru/
    • olejah
      В одной из прошлых статей мы обсуждали, как настроить собственный honeypot, теперь же попытаемся рассмотреть, как злоумышленники пытаются обойти эти ловушки, какие трюки они используют при серфинге и как вы можете стать жертвой honeypot в сети. Наконец, мы поговорим о том, как системные администраторы предприятий справляются с поддельными точками доступа, размещенными в сети предприятия, целью которых является кража конфиденциальных данных. https://www.anti-malware.ru/analytics/Threats_Analysis/How-Hackers-Avoid-Honeypots
    • AM_Bot
      Леонид Ухлинов, вице-президент и исполнительный директор компании «Информзащита», поделился своим экспертным мнением с читателями Anti-Malware.ru и рассказал, как компания из-за небольшой оплошности может потерять миллионы долларов, чего ожидать бизнесу в эпоху цифровизации и кто в первую очередь станет мишенью для киберпреступников. Это интервью продолжает цикл публикаций «Индустрия в лицах». Читать далее