Звонят знакомые, жалуются что не работает vkontakte.ru и odnoklassniki.ru на ноуте (а я его недавно от вирусов лечил, антивирь ставил, в общем комп был чистый). Ну, подключаюсь удалённо TeamViewer'ом, захожу как всегда проверить файл hosts в папке c:\windows\system32\drivers\etc, открываю его — всё нормально. Странно.
Комп — чистый, в этом я уверен — значит, остались хвосты какие-то. Проверяю статические маршруты: route print — тоже всё чисто. Очищаю всё равно командами route delete * и route -f. Не помогает. nslookup vkontakte.ru выдаёт правильные IP-адреса, а вот ping vkontakte.ru ведёт на лупбэк, 127.0.0.1. Совсем странно.
Опять начинаю копать информацию в инете, выхожу на ссылку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath — место, откуда берётся файл hosts — там тоже всё в порядке.
Скребу в затылке, копаю дальше. Маршруты в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
— чисто. Может в автозагрузке что или в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon? Нет, тоже чисто. Настройки файрволла — чисто. Делаю netsh int ip reset и netsh winsock reset — не помогает.
Гуглю похожие проблемы — народ жалуется на то, что это может глючить кэш DNS.
ipconfig /flushdns — должен решать проблему, но не решает.
ipconfig /all — выдаёт корректные настройки.
Разные arp -a, netstat, nbtstat тоже ничего подозрительного не выдают.
Пересылаю на комп AVZ4 и выполняю в нём скрипт:
begin
SearchRootkit(true, true);
SetAVZGuardStatus(True);
BC_ImportAll;
ExecuteSysClean;
ExecuteWizard('TSW',2,3,true);
BC_Activate;
RebootWindows(true);
end.
Комп перезагружается, подключаюсь снова к нему — та же фигня.
Антируткиты Gmer и HiJackThis показывают чистоту везде.
IPv6-отключен.
Пробую отключать службу ДНС-клиента
net stop dnscache
чищу кэш, пингую — опять та же фигня.
Включаю обратно, опять чищу, выполняю команду ipconfig /displaydns — и опаньки, есть записи соответствия вконтакту и одноклассникам адреса 127.0.0.1. Но откуда он берётся?!
Маленькое отступление:
Вообще проблема очень интересная — почему nslookup и ping возвращают разные значения… Nslookup'у действительно кэш DNS не нужен, он напрямую запрашивает. Механизм такой:
Nslookup работает напрямую с сервером DNS (а именно с записью о доменной зоне вытаскивая из нее нужные данные).
Так по команде
Nslookup www.yandex.ru
делается запрос UDP на адрес сервера DNS который указан в настройках сетевой карты — IP:53 (порт 53 Dns — Query) передается параметр yandex.ru, потом получаем ответ UDP от сервера DNS (порт 53 DNS — Response — 78.110.50.103), далее уже протокол ICMP на полученный IP пробует достучаться.
Или на другом уровне:
1.Сначала из свойств сетевой будет вытащен адрес DNS сервера, потом будет запрос на определение записи PTR (т.е. обратное преобразование из IP в имя), чисто для того работает ли сервер DNS и как его зовут.
Вы получили —
Цитата:
: resolver1.opendns.com
Address: 208.67.222.222
2.Потом обычный запрос по имени www.yandex.ru получить IP адреса.
3.Получить полностью запись типа «А»
Вы получили — Цитата:
Не заслуживающий доверия ответ:
: yandex.ru
Addresses: 87.250.251.11
93.158.134.11
213.180.204.11
213.180.204.211
77.88.21.11
При отключении windows кэша DNS вы заставляете лишний раз ПК клиента определять IP по мнемонике используя запросы по сети на ваш DNS (если они есть у него в кэше, то он просто их отправит), по времени это доли секунд.
Итак, ищу в реестре сбитые настройки кэша ДНС HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache — тоже чисто.
В итоге иду консолью в злополучный c:\windows\system32\drivers\etc, печатаю команду type hosts — и он мне, выдаёт табличку, в которой как раз указаны 127.0.0.1 vkontakte.ru и ещё несколько подобных, без комментов и прочей информации. Как же так? Открываю через проводник, вижу там файл hosts, открываю блокнотом — а в нём всё в норме!
Захожу в свойства папки, включаю показ скрытых и системных файлов — и вуаля! настоящий hosts оказался скрытым, а у видимого поддельное имя, я уж в ascii не копался, но где-то там поменяли букву на аналогичную. Удаляю невидимый hosts, переименовываю нормальный (с неизвестно какой подменённой буквой) вручную в hosts — и вуаля! Всё работает.
Вывод — лучше всего сразу заливать какой-нибудь свой менеджер файлов (тоталкоммандер, увы, разросся до совершенно бесстыжих размеров, надо искать альтернативы) и смотреть всё только им. И — вирусы начали маскировать себя ещё лучше.
Комп — чистый, в этом я уверен — значит, остались хвосты какие-то. Проверяю статические маршруты: route print — тоже всё чисто. Очищаю всё равно командами route delete * и route -f. Не помогает. nslookup vkontakte.ru выдаёт правильные IP-адреса, а вот ping vkontakte.ru ведёт на лупбэк, 127.0.0.1. Совсем странно.
Опять начинаю копать информацию в инете, выхожу на ссылку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\DataBasePath — место, откуда берётся файл hosts — там тоже всё в порядке.
Скребу в затылке, копаю дальше. Маршруты в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes
— чисто. Может в автозагрузке что или в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon? Нет, тоже чисто. Настройки файрволла — чисто. Делаю netsh int ip reset и netsh winsock reset — не помогает.
Гуглю похожие проблемы — народ жалуется на то, что это может глючить кэш DNS.
ipconfig /flushdns — должен решать проблему, но не решает.
ipconfig /all — выдаёт корректные настройки.
Разные arp -a, netstat, nbtstat тоже ничего подозрительного не выдают.
Пересылаю на комп AVZ4 и выполняю в нём скрипт:
begin
SearchRootkit(true, true);
SetAVZGuardStatus(True);
BC_ImportAll;
ExecuteSysClean;
ExecuteWizard('TSW',2,3,true);
BC_Activate;
RebootWindows(true);
end.
Комп перезагружается, подключаюсь снова к нему — та же фигня.
Антируткиты Gmer и HiJackThis показывают чистоту везде.
IPv6-отключен.
Пробую отключать службу ДНС-клиента
net stop dnscache
чищу кэш, пингую — опять та же фигня.
Включаю обратно, опять чищу, выполняю команду ipconfig /displaydns — и опаньки, есть записи соответствия вконтакту и одноклассникам адреса 127.0.0.1. Но откуда он берётся?!
Маленькое отступление:
Вообще проблема очень интересная — почему nslookup и ping возвращают разные значения… Nslookup'у действительно кэш DNS не нужен, он напрямую запрашивает. Механизм такой:
Nslookup работает напрямую с сервером DNS (а именно с записью о доменной зоне вытаскивая из нее нужные данные).
Так по команде
Nslookup www.yandex.ru
делается запрос UDP на адрес сервера DNS который указан в настройках сетевой карты — IP:53 (порт 53 Dns — Query) передается параметр yandex.ru, потом получаем ответ UDP от сервера DNS (порт 53 DNS — Response — 78.110.50.103), далее уже протокол ICMP на полученный IP пробует достучаться.
Или на другом уровне:
1.Сначала из свойств сетевой будет вытащен адрес DNS сервера, потом будет запрос на определение записи PTR (т.е. обратное преобразование из IP в имя), чисто для того работает ли сервер DNS и как его зовут.
Вы получили —
Цитата:
: resolver1.opendns.com
Address: 208.67.222.222
2.Потом обычный запрос по имени www.yandex.ru получить IP адреса.
3.Получить полностью запись типа «А»
Вы получили — Цитата:
Не заслуживающий доверия ответ:
: yandex.ru
Addresses: 87.250.251.11
93.158.134.11
213.180.204.11
213.180.204.211
77.88.21.11
При отключении windows кэша DNS вы заставляете лишний раз ПК клиента определять IP по мнемонике используя запросы по сети на ваш DNS (если они есть у него в кэше, то он просто их отправит), по времени это доли секунд.
Итак, ищу в реестре сбитые настройки кэша ДНС HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Dnscache — тоже чисто.
В итоге иду консолью в злополучный c:\windows\system32\drivers\etc, печатаю команду type hosts — и он мне, выдаёт табличку, в которой как раз указаны 127.0.0.1 vkontakte.ru и ещё несколько подобных, без комментов и прочей информации. Как же так? Открываю через проводник, вижу там файл hosts, открываю блокнотом — а в нём всё в норме!
Захожу в свойства папки, включаю показ скрытых и системных файлов — и вуаля! настоящий hosts оказался скрытым, а у видимого поддельное имя, я уж в ascii не копался, но где-то там поменяли букву на аналогичную. Удаляю невидимый hosts, переименовываю нормальный (с неизвестно какой подменённой буквой) вручную в hosts — и вуаля! Всё работает.
Вывод — лучше всего сразу заливать какой-нибудь свой менеджер файлов (тоталкоммандер, увы, разросся до совершенно бесстыжих размеров, надо искать альтернативы) и смотреть всё только им. И — вирусы начали маскировать себя ещё лучше.