Карта сайта Хакер в RSS Энциклопедия Хакера PDA версия сайта Почтовые рассылки Хакера    Хакер в Twitter Хакер в ВКонтакте Приложение Хакер для Facebook Хакер на Formspring.me
Журнал Новости Форум Видео Life Xakep Live (блоги)
Bugtrack Статьи Блог Поиск English
Трюки с phpinfo Трюки с phpinfo
Совсем недавно в паблике появилась информация о новом интересном подходе к эксплуатации уязвимостей класса LFI с помощью бесполезной на первый взгляд функции phpinfo() и временных загрузочных файлов. Берем на вооружение этот полезный прием....
Интервью с создателем NGINX Игорем Сысоевым Интервью с создателем NGINX Игорем Сысоевым
Легкий веб-сервер NGINX буквально только что вышел на 2 место по популярности в интернете. А незадолго до этого создатель NGINX привлек 3 млн. долларов инвестиций и основал одноименную компанию. В общем, поводов для общения с Игорем Сысоевым у нас была масса....

Руткит от Sony: история в деталях №1

Bookmark and Share

История о новой защите Sony, которая оказалась настоящим руткитом, по моему довольно интересна. Сегодня мы представляем подробное описание работы Марка Руссиновича, обнаружившего непрошеного гостя в своем компьютере. 

На прошлой неделе я тестировал последнюю версию RootkitRevealer (RKR) сканируя одну из моих систем. Довольно неприятным сюрпризом для меня стало обнаружение реального руткита... Обычно руткиты тщательно скрывают свое присутствие в системе, пряча файлы, ключи реестра и другие объекты от постороннего взгляда и диагностики, и потому руткит обычно скорее вредоносная программа, нежели нормальный софт - нормальной программе есть ли смысл прятаться? Так или иначе, RKR обнаружил скрытую директорию, спрятанный драйвер устройства, приложение, файлы:

Появление руткита стало неприятным сюрпризом для меня - я стараюсь не шастать в Интернете где попало и уж тем более не устанавливать программы из непроверенных источников. Я просто терялся в догадках где я мог подцепить руткит, и если бы не подозрительное название фалов я бы скорее сказал, что RKR ошибся в своей работе. Я срочно запустил Process Explorer и Autoruns дабы посмотреть что же активирует запуск руткита, однако обе программы мне ничего не показали. Настала очередь LiveKd, утилиты для работы внутри живой Windows на уровне дебагерра ядра, с ее помощью я попытался определить компонент, отвечающий за сокрытие руткита.

Руткит, скрывающий свои файлы, директории и ключи реестра, может работать в user mode за счет изменения Windows API, которые используются для просмотра этих объектов, либо в kernel mode за счет перехвата необходимых "ядерных" API. В последнем случае стандартная практика перехвата kernel-mode application API - изменение таблицы системных вызовов, техника впервые представленная в 1996 году с первой версией Regmon. Каждый сервис в ядре, который используется приложениями Windows, имеет указатель в таблице который индексируется внутренней службой и используется в системе. Если драйвер заменяет любую запись в таблице указателем на свою функцию, тогда ядро обращается к драйверу каждый раз когда приложению требуется API и таким образом драйвер может контролировать работу интерфейса (собственно, Хакер не раз писал о разных техниках работы с таблицей, поэтому отсылаю вас к поиску). 

Довольно легко заметить перехват системных вызовов просто загрузив содержание таблицы: все функции должны ссылаться на адреса, лежащие внутри ядра Windows, все непропатченные функции. Livekd показал мне адреса некоторых измененных функций:

Я просмотрел одну из перехваченных функций и увидел, что она является частью драйвера Aries.sys, который как раз и находился в скрытой директории $sys$filesystem. Вооруженный знание того, что же осуществляет скрытие руткита, я подумал что смогу убрать невидимость и посмотреть на процессы, файлы, директории, записи реестра наконец. Несмотря на то, что RKR  показал закрытость \Windows\System32\$sys$filesystem от Windows API, обычная практика для такой ситуации - возможность открыть директорию ручками. Я захотел проверить можно ли увидеть директорию из командной строки . Оказалось, что вполне возможно увидеть все ее содержимое:

Возможно переименование драйвера и перезагрузка уберет невидимость, но я хотел посмотреть что же еще делает Aries.sys. Я скопировал программу в другую директорию и проверил ее в дизассемблере IDA Pro. Ниже скриншот кода, который подсчитывает записи в таблице вызовов для дальнейшей манипуляции:

Я изучил процедуру инициализации и увидел, что она патчит несколько функций в  таблице системных вызовов и обнаружил, что драйвер скрывает любые файлы, диры, процессы и т.д., начинающиеся на $sys$. Для проверки сделал копию Notepad.exe и назвал ее $sys$notepad.exe - блокнот тут же исчез из поля зрения. Вне функций скрытия драйвер оказался довольно непрофессиональной программой. Дело в том, что всегда небезопасно выгружать драйвер, который патчит таблицу вызовов из-за того, что некоторые потоки могут выполнять первую функцию перехваченной функции во время выгрузки драйвера, если это происходит поток переходит на неправильный адрес и вся система вешается. Для драйвера нет возможности защитится от этой ситуации, однако Aries поддерживает выгрузку и пытается отслеживать любые потоки, исполняющие код. В данном случае программист не учел такой ситуации. Так или иначе программистам придется искать новые пути работы руткитов, так как перехват вызовов не всегда работает на 64-битный версиях Windows.

После того, как я закончил изучение драйвера я перезагрузил систему. Невидимость руткита исчезла и я мог видеть прежде недоступные файлы в Проводнике и записи реестра в Regedit. Я сомневался, что файлы имели информацию о версиях и создателях, но все равно запустил Sigcheck для их проверки. К моему удивлению, большинство файлов удалось опознать. Dbghelp.dll и Unicows.dll принадлежали Microsoft, остальные оказались частью Essential System Tools, продукта компании First 4 Internet:

Недолгий поиск вывел меня на сайт http://www.first4internet.com/, однако дальнейший поиск по программе или Aries.sys ничего не дал. Сам факт, что компания продает систему защиты контента под названием XCP навел меня на подозрения, что я стал жертвой именно такой системы. Поиск в Gooogle вывел на другую статью, рассказывающую о сделке со звукозаписывающими компаниями, в частности Sony, по внедрению Digital Rights Management (DRM) системы для звуковых CD.

Ссылка на DRM заставила меня вспомнить о недавно приобретенных компактах: они могли проигрываться только плеером, поставляющимся на самом диске. Недолгий поиск по компактам вывел меня диск Sony BMG Get Right with the Man от братьев Van Zant. При покупке никаких сведения о DRM защите я не заметил, однако более тщательное изучение сайта Amazon действительно рассказало мне о том, что этот диск поставляется с защитой.

Следующая фаза моего расследования: убедиться что именно этот диск во всем виноват. Я вставил диск и запустил плеер, который кроме всего прочего позволяет создать только три копии диска на диске. Process Explorer показал, что плеер работает на основе технология Мacromedia, но так же он показал использование процессора прежде скрытым процессом $sys$DRMServer.exe. Взгляд на свойства процесса показал его название - Plug and Play Device Manager, что явно является попыткой ввести обычного пользователя в заблуждение с целью заставить его думать, что это обычная часть Windows:

Я закрыл плеер и понадеялся, что использование CPU процессом прекратится, однако $sys$DRMServer по прежнему потреблял от 1 до 2 процентов его времени...

(Продолжение следует)





СЛЕДУЮЩИЕ СТАТЬИ
Китайские закладки: непридуманная история о виртуализации, безопасности и шпионах
Бабло на малвари: как и сколько зарабатывают наши криминальные коллеги?
Безопасность расширений Opera: новые векторы атак через аддоны браузеров
Безопасность расширений Google Chrome: привычные векторы атак в контексте аддонов для браузера
Взлом игр ВКонтакте: исследование приложений ВКонтакте под микроскопом
Драйверы антивирусов — источник зла: уязвимости в драйверах проактивных защит
Взлом Psychometric Expert 7
Посев троянов в железные девайсы: заражение роутера Dlink 2500U
Брутим дедики по-новому: свежий подход к программированию RDP-брутфорсеров
Фаззинг, фаззить, фаззер: ищем уязвимости в программах, сетевых сервисах, драйверах
ПРЕДЫДУЩИЕ СТАТЬИ
Троянизация Тукса №2
Троянизация Тукса №1
Свой ботнет - это просто
Эксплуатирование нестандартных ошибок форматирования строки
Оконный доступ к БД
Решение головоломки для хакера №20
RDP и MITM: любовь навеки
Головоломка для хакера №20
Восстановление EFS №2
Восстановление EFS №1
ОБСУЖДЕНИЕ СТАТЬИ
Логин:
Пароль:
Если у вас есть форумный логин - вы можете использовать его, иначе анонимный гостевой доступ.

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





Keywords: zPOSTz zHOMEz, zHACKz, zSOFTz, zINFOz z28597z
Для Авторов: edit Lock delete Lock



    Rambler's Top100