Небольшая история о xp_cmdshell, хранимой процедуры из Microsoft Sql Server.

Стоит на на домашнем компьютере у меня Sql Server 2008 Express, использую ее для разработок Бд различных. Понадобилось мне как-то связываться с ней удаленно. Включил TCP протокол на нестандартный порт, настроил стандартный виндовый брандмауер, отключил sa врубив отдельную учетку для редактирования только одной базы. Все было настроено — работало замечательно.

И вот однажды понадобился мне срочно доступ к одному файлу на домашнем компьютере, причем где он находится и как называется было забыто (файл давний был). Ситуация была такова, что никаких других доступов к компьютеру у меня не было, ни стандартного rdp, ни каких-то сторонних приложений. В распоряжении была только жена, которая может сделать с компом по указке в принципе все что угодно, кроме разве что самостоятельного поиска нужного файла.

Все что я сделал попросил выйти ее из своего сеанса и войти под моей учеткой (сбросил ее пароль по СМС), включить Managment Studio и активировать логин sa с паролем 123456 (я как я надеялся всего на пару часов). Когда процедура была выполнена — я смог спокойно залогинится под sa. После этого первым делом я разрешил выполнения xp_cmdshell, и приступил к поискам файла через консоль. Через «пару» часов файл был найден и скопирован в доступное для жены место. Получив файл через Skype я благополучно забыл про «образовавшуюся дыру».

После этого прошло несколько дней. Слава богу за это время домашний компьютер не использовался. Буквально сегодня, после того как я сел за компьютер, взбесился антивирус: в течении 10 минут он 3 раза блокировал файл из папки System32. По описанию это оказывался один из вирусов данного семейства www.securelist.com/ru/descriptions/115419/Trojan-Downloader.BAT.Ftp.ab. Я долго не мог понять, что же может умудрится записать в данную папку: uac никогда не отключаю, все программы, требующие прав администратора, проверяю — ну не мог вирус просочиться так просто. Мониторинг папки System32 не дал результата — файл не успевал в ней появляться, как антивирус сразу же его блокировал. Стандартный виндовый Task Manager не показывал никакой аномальной активности… но у меня кроме него стоит еще Process Explorer. Запустив его — сразу же бросился в глаза дочерний процесс cmd от службы sql server, который в свою очередь запустил процесс ftp. Тут же вспомнил, что я не отключил ни sa ни тем более xp_cmdshell. В первую очередь вырубил доступ в файрволе, и лишь затем отключил sa, а за ней и xp_cmdshell — после этого антивирус успокоился.

Во все этой ситуации меня поразило только одно — как быстро просканировали открытый нестандартный порт и попытались воспользоваться этой «дырой».

Вывод понятно один — сам дурак. Однако, если бы не антивирус, я наверное еще долго не вспомнил про открытый доступ к компьютеру.

А для тех, кто еще сомневается, хочу сказать, что любая дыра в вашем компьютере может быть кем то обнаружена в тот же миг как она появится.

UPD Эх почему я так часто не смотрю Event Log, попытки доступа к SQL Server'у начались сразу же после открытия порта. Еще за месяц до указанных событий, начались попытки подбора паролей к несуществующим логинам. Только когда был открыт логин sa — эти попытки смогли увенчаться некоторым успехом. Все ip с внутренней сетки провайдера — судя по всему либо у кого-то вирус, либо кто-то хорошо лоханулся…