Перейти к содержанию
Иван

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

Recommended Posts

Иван

Это к заявлениям о том, что вот дескать в касперском и других антивирях находят уязвимости, а вот нод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, разработчик антивируса, выпустила обновление, которое доступно для автоматической загрузки.

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


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

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

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


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

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

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

Спасибо.

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


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

на rootkits.ru было написано..

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


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

Погуглил

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

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

Давно было?

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

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


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

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

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


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

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

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

Пишет:

[scan path] E:Longlonglonglonglonglonglonglong

И всё.

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

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

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

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

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


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

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

при просмотре списка дисков и директорий происходит 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;

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

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


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

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

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


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

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.

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

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

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


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

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

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

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

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

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

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

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

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

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

CsrClientCallServer

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

CsrClientCallServer

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

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

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


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

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

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

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


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

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

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

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

Ы?

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


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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

Сокращать пути до меньших 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?

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

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


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

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

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


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

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

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

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


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

  • Сообщения

    • Dmitrius
      Сервис подбора и сравнение кредитов Случается так, что деньги нужны срочно. Поэтому если у вас нет накоплений, рациональней всего обратиться за помощью на этот сайт, где собраны надежные, проверенные банки, которым точно можно доверять. Учреждения подготовили лучшие предложения, которые только возможны. На этом сайте есть возможность подобрать кредит, а также оформить займ либо взять деньги на приобретение автомобиля. И самое главное, что все это на наиболее выгодных для вас условиях. Автокредит Казахстан проценты - это шанс купить все, что нужно, не отказывая себе в покупке. Все банковские продукты различаются требованиями, условиями выдачи, а потому рекомендуется детально изучить условия договора и особенности выдачи денежных средств. Потребительский кредит оформить (рассчитать) в Алматы получится в данный момент. На этом сайте вы сможете не только подобрать подходящий вариант, но и сравнить имеющиеся. Затем следует определиться с тем, в какой банк обратиться за материальной поддержкой. Составить заявку на выдачу средств можно в режиме реального времени. Кредит наличными заявка онлайн выдается в течение часа наиболее комфортным для вас способом. На портале опубликован список всех доступных предложений, имеется необходимая информация о каждом банке и кредитах. Выберете самую низкую процентную ставку, а также сумму и сроки, на которые планируете занять сумму. Все максимально просто, быстро и понятно. Ипотека проценты Казахстан (ипотека Казахстан) - это отличная возможность решить свои жилищные проблемы. Важно помнить о том, что лишь надежные компании с огромным опытом готовы предложить приемлемые условия. Выберете подходящий для себя банковский продукт, чтобы поправить материальное положение.
    • Dmitrius
      Интернет магазин автозапчастей  Интернет-магазин «AUTOSHOP» реализует внушительный выбор деталей на автомобили - их можно подобрать не только по наименованию, но и артикулу и другим параметрам. Имеются разные запчасти на любые автомобили самых разных марок и моделей - вы сможете их найти в один клик. Запчасти находятся на складе - это дает возможность осуществить быструю транспортировку. Сотрудничество исключительно с надежными, проверенными поставщиками, которые работают на совесть и предлагают продукцию безупречного качества и с длительными эксплуатационными сроками. Автозапчасти интернет магазин для иномарок рекомендует ознакомиться с полным ассортиментом – он даст возможность подобрать вариант с учетом обозначенных требований. Перед тем, как осуществить приобретение, необходимо детально изучить технические аспекты, ведь именно они влияют на сроки эксплуатации и внешний вид авто. Но если вам требуется помощь специалиста, то вы всегда можете воспользоваться профессиональной консультацией. Автозапчасти для иномарок Курск вы обязательно подберете для любой машины, несмотря на год производства. Изучите справочник автотоваров, каталог, а также новости, представленные на данную тематику - информация поможет принять правильное решение. Сотрудники интернет-магазина быстро реагируют на появление новых деталей в европейских магазинах для того, чтобы в ближайшее время пополнить ими свой ассортимент. Это даст возможность быстро среагировать за изменяющуюся ситуацию. Каталог автозапчастей Курск содержит огромный перечень деталей. Они созданы в соответствии с самыми высокими стандартами, нормами, требованиями. Администрация проверяет запчасти на соответствие заданным характеристикам, поэтому в продажу попадает только та продукция, которая имеет сопроводительную документацию, сертификаты. На продукцию есть гарантии, подтверждающие безупречное качество, оригинальность.
    • JamesBisee
      Купить газовый котел с закрытой камерой сгорания в Москве
      https://www.fire-flower.ru/
      https://www.google.tg/url?q=https://fire-flower.ru
    • PR55.RP55
      По всей видимости uVS не всегда может получить доступ к: Hosts Нужно чтобы в Лог писалась информация: "Нет доступа  к Hosts " Вроде сейчас uVS  соответствующих записей не создаёт?
    • Dmitrius
      Канализация из септиков под ключ На предприятии каждый сможет заказать установку септиков, созданных из ЖБ конец - они не только практичны, но и отличаются безукоризненным качеством. Ищите где заказать монтаж септика астра - получите всю необходимую информацию на сайте. Важным моментом является то, что услуги оказываются на должном, профессиональном уровне. Это достигается за счет того, что в бригаде трудятся специалисты, которые знают все особенности своей работы. При этом стоимость работ остается на доступном уровне. Огромный стаж работы позволил приобрести большое количество клиентов – они советуют предприятие знакомым. Бетонные септики пользуются популярностью не только за счет своей небольшой стоимости, но и благодаря прочности, а также невосприимчивы к негативным условиях среды, они не нуждаются в сервисном обслуживании. И самое важное, что установка проводится на грунте любого типа. Такой вид септика считается самым быстрым способом организовать очистное сооружение на дачном участке. Сотрудники предприятия специально для вас подготовят предложение, произведут расчеты, грамотно расположат септик, а заодно и закупят все необходимые материалы по доступным ценам, выполнят доставку и монтажные работы. На все, включая материалы, предоставляются гарантии. Услуги оказываются не только по столице, но и области, на любом грунте: песке, глине и др. Монтаж септиков различной сложности, а также с подключением бани или дачи, переливом, любых соединений. Есть возможность вызвать целую бригаду специалистов на малый участок либо дачу, на которой вы проживаете время от времени или постоянно. Монтажные работы в ограниченные сроки. Во время монтажных работ учитывается то, сколько человек проживает в доме, особенности – о них поведает консультант. Теперь и вы сможете заказать высококлассные работы.
×