Инвентаризация пользователей и групп NT/2000

Знать имена компьютеров и совместно используемых ресурсов совсем неплохо, однако настоящим праздником для хакера является получение имен пользователей. С того момента, как получено такое имя, можно считать, что 50% работы по взлому учетной записи выполнено. Некоторые специалисты считают, что на самом деле после получения имени пользователя остается затратить гораздо меньше усилий, поскольку распространенной практикой является использование простых паролей (и, вообще говоря, имен учетных записей!).
Мы снова попробуем открыть нулевой сеанс (который уже упоминался в этой главе) для получения начального доступа и попробуем воспользоваться различными приемами инвентаризации. Кроме того, вы узнаете, как извлечь информацию о пользователях с использованием службы SNMP и службы активного каталога Windows 2000.

Инвентаризация пользователей через протокол NetBIOS


К сожалению, неправильно сконфигурированные компьютеры NT/2000 предоставляют информацию о пользователях с такой же готовностью, как и о совместно используемых ресурсах. Это неоднократно демонстрировалось при рассмотрении приемов инвентаризации NetBIOS. В данном разделе вы еще раз столкнетесь с уже известными и познакомитесь с новыми средствами, которые очень хорошо подходят для получения информации о пользователях.
Ранее уже рассматривались возможности встроенной в операционную систему утилиты nbtstat и ее дополнения — свободно распространяемой программы nbtscan. Обе утилиты позволяют получить дамп удаленной таблицы имен NetBIOS, и, что очень важно, при этом не требуется открывать нулевой сеанс. Так что имена пользователей будут получены независимо от того, правильно ли установлено значение параметра RestrictAnonymous системного реестра.
Утилита еnum группы разработчиков Razor (которая уже упоминалась выше) автоматически устанавливает нулевое соединение и извлекает всю наиболее ценную информацию, о которой только может мечтать взломщик. Следующий пример, демонстрирующий всю опасность подобных действий, для краткости был отредактирован.

D:\Toolbox>enum -U -d -Р -L -с 172.16.41.10
server: 172.16.41.10
setting up session... success,
password policy: rain length: none
lockout threshold: none
opening Isa policy... success. names:
netbics: LABFARCE.COM
domain: LA3FARCE.COM
trusted domains:
SYSOPS
PDC: CORP-DC
netlogon done by a PDC server
getting user list {pass 1, index 0)... success, got 11.
Administrator (Built-in account for administering
the computer/domain)
attributes:
chris attributes:
Guest (Built-in account for guest access to the computer/domain)
attributes: disabled
keith attributes: Michelle attributes:

Утилита enum позволяет также определить удаленный пароль одного пользователя за один раз с использованием параметров-о -и <имя-пользователя> -f <файл-словаря>.
В комплекте NTRK имеется еще несколько инструментов, с помощью которых можно получить более подробную информацию о пользователях (через нулевой сеанс или другими способами). К таким утилитам относятся usrstat, showgrps, local и global. Однако наиболее мощным средством получения информации о пользователях является утилита DumpSec. Она позволяет получить список пользователей, групп, используемых системных политиках и правах пользователей NT. В следующем примере утилита DumpSec используется в командной строке для получения файла с информацией о пользователях удаленного компьютера (не забывайте о том, что эта утилита требует открытия нулевого сеанса).

C:\>dumpsec /computer=\\192.168.202.33 /rpt=usersonly
/saveas=tsv /outfile=c:\temp\users.txt

C:\>cat c:\temp\users.txt
4/3/99 8:15 PM - Somarsoft DumpSec - \\192.168.202.33
UserName FullName Comment
barzini Enrico Barzini Rival mob chieftain
godfather Vito Corleone Capo
godzilla Administrator Built-in account for administering the
domain
Guest Built-in account for guest access
lucca Lucca Brazzi Hit man
mike Michael Corleone Son of Godfather

При использовании графического интерфейса утилиты DumpSec можно получить отчет с гораздо большим количеством полей, однако даже формат приведенного выше примера обычно позволяет выявить нарушителя. Например, однажды мы натолкнулись на сервер, на котором пароль для переименованной учетной записи администратора хранился в поле FullName. При задании правильного значения параметра RestrictAnonymous все попытки извлечения такой информации с помощью утилиты DumpSec будут блокироваться.

Идентификация учетных записей с помощью утилит user2sid/sid2user


Двумя другими чрезвычайно мощными средствами инвентаризации NT/2000 являются утилиты sid2user и user2sid, написанные Евгением Рудным (Evgenii Rudnyi). Эти утилиты командной строки позволяют получить идентификатор защиты пользователя (SID — Security ID) no его идентификатору и наоборот. SID — это числовое значение переменной длины, назначаемое системой NT во время установки. Хорошее описание структуры и функций SID приведено в статье Марка Русиновича (Mark Russinovich). После получения с помощью утилиты user2sid идентификатора SID домена взломщик может использовать его для извлечения соответствующих имен пользователей. Например

C:\>user2sid \\
192.168.202.33 "domain users"

S-l-5-21-8915387-1645822062-1819828000-513
Number of subauthorities is 5
Domain is WINDOWSNT
Length of SID in memory is 28 bytes
Type of SID is SidTypeGroup

Таким образом, мы получили SID компьютера, представляющий собой строку, начинающуюся с S-1 и нескольких чисел, разделенных дефисами. Последнее число последовательности называется относительным идентификатором (RID — Relative ID), значение которого для встроенных групп и пользователей Windows NT/2000, таких как Administrator или Guest, определено по умолчанию. Например, RID пользователя Administrator всегда равен 500, а пользователя Guest — 501. Вооружившись этой информацией, хакер может с помощью утилиты sid2user и RID 500, добавленного к SID, узнать имя пользователя, являющегося администратором, даже если учетная запись Administrator была переименована.

C:\>sid2user \\192.168.2.33 5 21
8915387 1645822062 18198280005 500

Name is godzilla
Domain is WINDOWSNT
Type of SID is SidTypeUser

Обратите внимание, что префикс S-1 и дефисы опущены. Еше одним интересным фактом является то, что первой учетной записи, созданной в любой локальной системе или домене NT/2000, присваивается RID 1000, а каждому последующему объекту — следующий номер (1001, 1002, 1003 и т.д.), причем при удалении объекта его номер уже никогда не используется при создании новых объектов. Таким образом, узнав лишь SID, хакер может получить сведения практически обо всех пользователях и группах системы, работающей под управлением Windows NT/2000, как в прошлом, так и в настоящем. Самое важное, что утилиты sid2user и user2sid работают даже в тех случаях, когда включен режим RestrictAnonumous (см. выше) — лишь бы только был открыт порт 139. Есть над чем подумать, не так ли?

Пример сценария, который можно использовать для применения утилит sid2user/user2sid, содержится ниже в разделе "Позвольте Сценариям Выполнить Всю Работу".


Инвентаризация пользователей через протокол NetBIOS: контрмеры


Хотя меры защиты против рассмотренных выше приемов инвентаризации уже рассматривались, не лишним будет упомянуть о них еще раз.
Для блокировки запросов к таблице имен NetBIOS с помощью таких утилит, как nbtstat и nbtscan, лучше всего запретить доступ к TCP- и UDP-портам с номерами 135-139 и 445. В противном случае данные о пользователям можно защитить лишь одним способом — запретив использование служб Alerter и Messenger на отдельных узлах. Способ запуска этих служб при загрузке компьютера можно задать с помощью аплета Services панели управления.
Зашита данных, которые можно получить путем открытия нулевого сеанса с использованием утилиты DumpSec, может быть обеспечена при установке соответствующего значения (типа REG_DWORD, 1 для NT4 и 2 для Win 2000) для параметра RestrictAnonymous системного реестра. Его можно найти в поддереве HKLM\SYSTEM\CurrentControlSet\ Control\LSA.
Предотвратить попытки извлечения данных с помощью утилит sid2user/user2sid можно лишь одним способом, а именно запретив доступ к портам 139 и 445.

Инвентаризация пользовательских учетных записей с помощью протокола SNMP


Не забывайте о том, что компьютеры под управлением системы Windows, на которых запущен агент SNMP, будут предостаапять информацию об учетных записях таким средствам, как, например, утилита IP Network Browser от компании Solar Winds (см. рис. 3.3 выше в данной главе). Более подробные сведения о мерах защиты против инвентаризации SN М Р содержатся в предыдущем разделе.

Инвентаризация службы активного каталога .'#." Win 2000 с помощью утилиты ldp


Наиболее существенным изменением, внесенным компанией Microsoft в свою новую операционную систему Win 2000, является добавление в нее службы каталогов, работа которой основана на протоколе LDAP (Lightweight Directory Access Protocol — упрошенный протокол доступа к каталогам). Компания Microsoft называет эту службу активные каталогом (Active Directory). В активном каталоге содержится унифицированное логическое представление всех объектов корпоративной сети. С точки зрения инвентаризации, активный каталог является прекрасным источником извлечения требуемой информации. Среди разнообразных средств поддержки Windows 2000 (которые можно найти на установочном компакт-диске серверной версии в папке Support\Tools) имеется простой клиент LDAP (ldp.exe), предназначенный для администрирования активного каталога.
Летом 1999 года авторы этой книги принимали участие в тестировании средств обеспечения безопасности системы Windows 2000. При этом было обнаружено, что просто задав для утилиты Idp контроллер домена Win 2000, с помощью простого запроса LDAP можно провести инвентаризацию всех существующих пользователей и групп. Для этого требуется лишь открыть аутентифицированный сеанс на основе протокола LDAP. Если с помощью других средств взломщику удалось получить в свое распоряжение какую-либо учетную запись, то протокол LDAP предоставляет альтернативный механизм инвентаризации пользователей, если заблокированы порты NetBIOS или отсутствуют другие службы.
В следующем примере иллюстрируется использование утилиты дdp для инвентаризации пользователей и групп контроллера домена bigdc.labfarce.org, имеющего корневой контекст активного каталога oc=labfarce, DC=org. При этом предполагается, что ранее уже был получен пароль учетной записи Guest этого контроллера — guest.


1. Во-первых, необходимо подключиться к целевому компьютеру с использованием утилиты ldp. Для этого выберите команду Connection>Connect и введите IP-адрес или доменное имя целевого сервера. Можно подключиться к LDAP-порту с номером 389, который используется по умолчанию, или использовать порт 3268 службы глобального каталога. В данном случае применяется порт 389.
2. После установки соединения необходимо зарегистрироваться в качестве пользователя Guest, данные о котором были получены ранее. Для этого выберите команду Connections>Bind, убедитесь, что установлен флажок Domain и в соответствующем поле введено корректное имя домена, а затем введите имя и пароль, как показано на рисунке.
3. После успешного открытия сеанса LDAP можно приступать к инвентаризации пользователей и групп. Выберите команду View>Tree и введите в появившемся диалоговом окне корневой контекст (например, dc=labfarce, dc=org).
4. В левой панели появится новый элемент. После щелчка на символе +, расположенном слева от него, в левой панели под корневым элементом появится несколько основных объектов.
5. Наконец после двойного щелчка на элементах CN=Users и CN=Builtin в левой панели диалогового окна появится перечень пользователей и встроенных групп сервера, соответственно (рис. 3.4).



Рис. 3.4. Утилита ldp.exe, средство администрирования активного каталога, позволяет выполнить инвентаризацию пользователей активного каталога через аутентифицированное соединение

Благодаря чему с помощью простого гостевого подключения можно извлечь подобную информацию? Некоторым службам (таким как RAS и SQL Server) системы NT4, требуется получать информацию об объектах групп и пользователей, содержащуюся в активном каталоге. Процедура установки активного каталога Win 2000 (dcpromo) предоставляет возможность расширить разрешения на доступ к активному каталогу и предоставить их серверам более ранних версий для получения требуемой информации (рис. 3.5). Если в процессе установки был выбран этот режим, то объекты пользователей и групп будут доступны для инвентаризации через протокол LDAP.

Инвентаризация службы активного каталога: контрмеры


Первое и самое важное, что необходимо осуществить, это контролировать доступ к TCP-портам с номерами 389 и 3268 по границам сети. Если в ваши задачи не входит предоставление данных активного каталога всему миру, запретите несанкционированный доступ к нему.
Для того чтобы предотвратить утечку информации в те части сети, у которых нет разрешений на использование дерева активного каталога, ограничьте соответствующим образом эти разрешения. Различие между смешанным режимом (который следует понимать как "менее безопасный") и основным режимом работы системы Win 2000 определяется членством в группе Pre-Windows 2000 Compatible Access, которой по умолчанию предоставлены разрешения на использование активного каталога (см. табл. 3.2).

Таблица 3.2. Paзрешения на использование бъектов дерева активного калога для группы Pre-Wind ows 2000 Compatible Access

Объект
Разрешения
К каким объектам применяется
Корневой каталог
Просмотр содержимого
К данному и всем дочерним объектам
Пользователи
Просмотр содержимого, чтение всех свойств и разрешений
К объектам пользователей
Группы
Просмотр содержимого, чтение всех свойств и разрешений
К объектам групп

При выборе режима Permissions compatible with pre-Windows 2000 servers (рис. 3.5) мастером установки активного каталога в группу Pre-Windows 2000 Compatible Access автоматически будет добавлена группа Everyone. В специальную группу Everyone входят все аутентифицированные пользователи. Если группу Everyone удалить из группы Pre-Windows 2000 Compatible Access (а затем перезагрузить контроллеры домена), то домен будет функционировать с более высокой степенью безопасности, что обеспечивается основным режимом работы Windows 2000. Если по каким-либо соображениям требуется снизить уровень защиты, то группу Everyone необходимо добавить снова, запустив в командной строке следующую команду.
net localgroup "Pre-Windows 2000 Compatible Access" everyone /add



Рис. З.5. Мастер установки службы активного каталога Win 2000 (dcpromo) предоставляет возможность расширить разрешения на доступ к активному каталогу и предоставить их серверам более ранних версий

Более подробная информация содержится в статье Q240855 базы данных (Knowledge Base) компании Microsoft, которую можно найти по адресу http: //search.support. microsoft.com.
Механизм управления доступом, определяемый членством в группе Pre-Windows 2000 Compatible Access, применяется также и к запросам, генерируемым при использовании открытых сеансов NetBIOS. Подтверждением этого может служить следующий пример, где снова используется утилита enum (описанная выше). Первый раз эта утилита запущена для инвентаризации сервера Win 2000 Advanced Server, на котором в группу Pre-Windows 2000 Compatible Access входит группа Everyone.

D:\Toolbox>enum -U corp-dc
server: corp-dc
setting up session... success.
getting user list (pass 1, index 0)... success, got 7.
Administrator Guest IUSR_CORP-DC IWAM_CORP-DC krbtgt
NetShowServices TsInternetUser cleaning up... success.

Теперь удалим группу Everyone из группы Pre-Windows 2000 Compatible Access, выполним перезагрузку и запустим тот же самый запрос.

D:\Toolbox>enum -U corp-dc
server: corp-dc
setting up session... success.
getting user list (pass 1, index 0)... fail
return 5, Access is denied.
cleaning up... success.

Серьезно рассмотрите вопрос обновления всех серверов RAS (Remote Access Service— спужба удапенного доступа), RRAS (Routing and Remote Access Service — спужба маршрутизации и удапенного доступа) и SQL и установки на них системы Windows 2000 перед тем, как перейти на испопьзование спужбы активного катапога. Это позвонит забпокировать возможность случайного просмотра информации об учетных записях.