суббота, 14 марта 2009 г.

Тестирование на проникновение Windows 2003 Server. Часть 2. Попытка получить списки пользователей.



Итак, продолжаем наш тест на проникновение, описание которого было начато в моей заметке http://adorofeev.blogspot.com/2009/03/windows-2003-server-1.html. Хотя моим основным инструментом является Backtrack 4, я решил рассматривать в ходе описания тестирования и утилиты под Windows, так как некоторые средства взлома Windows работают только под Windows. К тому же многиеWindows-утилиты более дружественные для пользователей :).

Одной из интересных уязвимостей Windows является раcкрытие информации об учетных записях любому пользователю через, так называемое, нулевое соединение (“null session”), которое не требует ввода имени пользователя и пароля. Наличие этой уязвимости в Windows 2003 Server определяется значением ключа реестра “HKLM\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM”: если его значение установлено равным 0, то уязвимость есть, если 1 -  то нет.

Итак, вводим команду, устанавливающую нулевую сессию: 

net use \\10.140.170.1\ipc$ "" /user: "" 

Нулевая сессия установлена:












После установления нулевой сессии удобнее всего получать и анализировать информацию о пользователяхчерез  с помощью бесплатной утилиты Dumpsec (www.somarsoft.com). Но,  к  сожалению (на самом деле, к счастью), настройка Windows 2003 Server по умолчанию не позволяет нам так легко получить список пользователей, и мы видим пустой экран:















Также мы можем убедиться, что получить список пользователей не получается с  помощью Linux-утилиты rpcclient и ее команды “enumdomusers”:












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

Как известно,  каждому пользователю Windows присвоен уникальный числовой идентификатор SID (Security IDentifier). SID имеет постоянную часть, которая уникальна для инсталляции или домена, и переменную часть RID (Relative IDentifier), которая изменяется от пользователя к пользователю. У локального администратора значение RID равно 500. Windows 2003 может позволить нам получить перечень пользователей по известным SID, в случае если в политике безопасности не заблокирована опция: “Network access: Allow anonymous SID/Name translation”. По умолчанию эта опция установлена в “enabled”.

Получить SID можно с помощью все той же утилиты rpcclient или с помощью утилиты SAU (www.lcpsoft.com). Правда, во втором случае нужно будет угадать имя учетной записи администратора (в ходе тестирований на проникновение сталкиваюсь с тем, что все больше администраторов меняют имя учетной записи локального администратора).

Начнем с утилиты rpcclient, которая входит в Backtrack 4. Мы набираем следующую команду:

 rpcclient -c 'lsaquery' 10.140.170.1 - U ""

 Вводим пустой пароль и получаем SID домена:










С помощью той же утилиты, но уже, введя команду lookupsids и добавив к нашему идентификатору RID администратора видим, что система разглашает нам имена пользователей:










Написав небольшой скрипт, который будет увеличивать значение RID, мы сможем без труда получить перечень всех пользователей домена.

Теперь вернемся к нашим дружественным Windows-утилитам :). С помощью программы SAU мы сначала получаем SID домена, а затем осуществляем перебор идентификаторов пользователей и в итоге получаем их полный список:










Таким образом, мы смогли получить список пользователей домена, теперь нам требуется получить их пароли.

Продолжение следует....

Александр Дорофеев (с)



2 коммент.:

Pento комментирует...

С учётом того, что на 2к3 по умолчанию RestrictAnonymousSAM = 1, насколько часто встречалось, что оно было выставлено в 0?

Александр Дорофеев комментирует...

Как ни странно в 2004-2008 годах такая ситуация встречалась повсеместно. Сейчас намного реже, но в большой сети обязательно найдется сервер с "косячными" настройками.