Добро пожаловать

Уважаемые граждане!
К сожалению, религия не позволяет мне разрешить комментирование всяческими подозрительными анонимами, так что, если у вас нет учётной записи имени Гугла, напрягитесь, пожалуйста, и узнайте, что такое OpenID. И радостно авторизуйтесь своими учётными записями Я.рушечки или ЖЖшечки. Или ещё какой подобной ерунды.
Спасибо за внимание.

четверг, 15 июля 2010 г.

Чудеса UPnP и хитрые черви

Началось всё с того, что несколько дней назад мне позвонил Баг и пожаловался, что у него перестали работать соединения по 80му порту. Остальное всё в порядке, а вот 80й порт — ни в какую! Выкрутился он временно пустив http через какой-то прокси. Я пообещал, когда смогу, заглянуть, посмотреть.
Центральный герой: adsl-роутер DSL-2640U.

И вот сегодня я, наконец, добрался до пациента. К моему удивлению, всё оказалось именно так, как он описывал — действительно, работает всё, окромя любой активности по 80му порту. По этой же причине в веб-интерфейс роутера не пробраться. Многократные сбросы ни к чему не приводят.
Тут я порадовался, что захватил (предчувствуя развлечение) флешку с Бэктреком. Пригодилась. Просканировал роутеру порты. Помимо ожидаемых 22 и 80, обнаружил 23 (что меня порадовало) и 5431 (что удивило). Ну хорошо, 23 есть, значит, телнетимся. Логин, пароль, добро пожаловать. Поверхностный осмотр того, что пришло в голову, показал: в iptables фигурирует чудесное правило:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.1.3:2060
Для тех, кто не в курсе, эта радость любой пакет, идущий на 80й порт, перебрасывает по указанному адресу. Фигурирущий айпишник принадлежит одному из компьютеров (на борту WinXP). Сие меня безумно удивило. Правило я радостно удалил, полез искать странности в веб-интерфейс.
Тут я закончу повествование о своих похождениях и перейду к выводам.

Как оказалось, это правило появляется под воздействием того самого компьютера (т.е. когда он включается и получает адрес). Первым делом, естественно, я подумал о каком-то супер-хитром вирусе, который такую ерунду делает через телнет, но смена админского пароля на роутере ничего не дала. Как выяснилось, воздействие это происходит через тот самый порт 5431 (если его заблокировать фаерволлом, то всё хорошо). Что за сервис висит на этом порту выяснить мне так и не удалось, но в интернете периодически встречается информация о том, что он как-то связан с UPnP. И действительно, стоило мне в настройках роутера убрать галочку с UPnP, как порт закрылся. С тех пор всё и работает.

Следующим объектом изучения стал, конечно же, тот подозрительный компьютер. Предположение про вирус подтвердилось. Помимо парочки нелепых троянов, обнаружился самый настоящий червь! Вот такой вот: Net-Worm.Win32.Kido.ih. В общем-то, описание соответстует тому, что происходило. Действительно, судя по собранным логам, тот самый 2060 порт (в нашем случае) слушал svchost.exe, а точнее, хитрый червь. Вот только в этом описании нигде не сказано, что этот хитрый червь умеет ещё и роутеры по UPnP перенастраивать!

Вот такие вот чудеса современных технологий. Будьте аккуратны и пользуйтесь антивирусами!

2 коммент.:

  1. По той ссылке на securitylist есть описание того, что червь логинится на комп. Хотя я до сих пор смутно представляю, что можно сделать с помощью UPnP, весьма возможно, что сначала он получил доступ к роутеру по telnet'у, включил (или дал необходимые себе права UPnP) и дальше игрался с ним.

    ОтветитьУдалить
  2. Я же, по-моему, написал, что смена пароля админа ничего не дала, стало быть, он уж точно не логинился никуда по телнету. Да и там нигде не сказано, что он умеет логиниться на длинковские роутеры -- он умеет логиниться на виндокомп, так что описание там фуфло.
    UPnP -- это просто такая штука, которая позволяет внешнему устройству объяснить роутеру, как бы так получше им провзаимодействовать. Например, торрент-клиент так может намекнуть роутеру, что неплохо бы форварднуть ему порт. Ну, по крайней мере, я так понимаю UPnP.

    ОтветитьУдалить