Утечка памяти при входе в консольную RDP-сессию при запущенном сервисе RAdmin
День добрый!
Сильно сомневаюсь, что это происки вируса, но уже голову сломал пополам. Вот и решил обратиться к сообществу.
Предистория:
Один из серверов (конкретно - Интернет-шлюз) под Win2K3 SE R2 стал периодически зависать. Ни с того, ни с сего нельзя было зайти в сессию RDP - сообщало, что недостаточно системных ресурсов. Через некоторое время он подвисал намертво и лечилось это только волшебной кнопкой питания.
Вроде бы это было не слишком часто и руки не доходили. Но когда на майские праздники, а потом еще и в недавние трехдневные выходные в июне он завис несколько раз, терпение кончилось.
Раньше с похожей ситуацией сталкивался в связи с утечкой памяти невыгружаемого пула в ESET NOD32 5 для рабочих станций (для версии для файловых серверов такого не было). Поэтому создал плановое задание на логирование отчетов утилиты poolmon и собирал их несколько дней.
В конце концов, сервер опять завис, а стабильной утечки памяти из пула замечено так и не было.
Пришлось в диспетчере задач включить отображение почти всех характеристик и смотреть внимательно глазами. На второй день было четко определено, что виной этому - рост числа открытых дескрипторов в процедуре входа в систему winlogon. За 2,5 дня с момента перезагрузки число дескрипторов достигло 160000 и продолжало медленно, но верно расти.
Самое интересное, что дескрипторы создавались не в процессе winlogon активного RDP-сеанса, а winlogon консоли, но только после создания терминального сеанса с эмуляцией консоли.
Т.е. происходило следующее:
1. При заходе на сервер непосредственно с консоли ничего подозрительного не происходило. Process Explorer показывал умеренную активность дескриптосозидания/освобождения по всем процессам.
2. Но стоило зайти на сервер по RDP с эмуляцией консоли (с ключом /admin), как происходило следующее:
2.1. Для терминального сеанса создавалась новая сессия в диспетчере служб терминалов отображающаяся как RDP-Tcp#NN.
2.2. В эту сессию перекидывались все процессы из консольной сессии включая winlogon.
2.3. В консольной сессии создавался новый процесс winlogon (та самая заставка с сообщением, что сессия заблокирована, т.к. в нее зашел другой пользователь - нажмите Ctrl-Alt-Delete).
2.4. И вот в этой "заглушке" и происходило массовое создание дескрипторов. Каждые 1-2-3 секунды создавались 3 дескриптора - на процесс rserver3.exe, на секцию \BaseNamedObjects\{CAB0B33C-8DAB-B8B1-EF8EE2E05B51}_2 и на токен NT AUTHORITY\SYSTEM.
Сама история:
При остановке службы RAdmin создание хэндлов прекращалось. Но только до запуска службы.
Выход из терминальной сессии и повторный заход не очищал затоваренный процесс. И даже не прекращал его. Если повтороно зайти по RDP минут через 15-20, то можно увидеть, что число открытых дескрипторов на этом процессе значительно увеличилось. Только если сбегать в серверную и зайти на сервер консольно. Тогда "заглушка" winlogon уничтожалась и дескрипторы освобождались.
Грешил на то, что RAdmin взломали и он куда-то что-то пытается делать, но делает это неаккуратно в остановленной консольной сессии.
Но запуск его с самыми жесткими ограничениями (смена порта по умолчанию, пароля, полная IP-фильтрация, требование подтверждения разрешения подключения и т.д.) ни к чему не привело. Стоит службе запуститься - начиналось создание этих дескрипторов. Т.е. подключений к RAdmin быть не могло, а достаточно было только факта запуска службы.
Не помогло так же снос RAdmin, чистка папок и установка с нуля.
Вот даже не знаю, в чем может быть проблема? Ставил RAdmin на другие сервера и с Win2K3 и с Win2K12. И на 32 разрядные и на 64-разрядные. Нигде больше такая шняга не наблюдается. Вот и думаю, может быть все же шлюз как-то взломали и что-то подсадили?
Посмотрите на логи, кому не жалко, люди добрые Лог скрипта лечения не прикрепляю, т.к. в инструкции сказано, что для сервера это делать не надо.
P.S. Но при чем тут RAdmin?
Последний раз редактировалось Pochemuk; 17.06.2016 в 09:14.
Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:
Уважаемый(ая) Pochemuk, спасибо за обращение на наш форум!
Удаление вирусов - абсолютно бесплатная услуга на VirusInfo.Info. Хелперы в самое ближайшее время ответят на Ваш запрос. Для оказания помощи необходимо предоставить логи сканирования утилитами АВЗ и HiJackThis, подробнее можно прочитать в правилах оформления запроса о помощи.
Информация
Если вы хотите получить персональную гарантированную помощь в приоритетном режиме, то воспользуйтесь платным сервисом Помогите+.
Если наш сайт окажется полезен Вам и у Вас будет такая возможность - пожалуйста поддержите проект.