На главную | Содержание | Назад | Вперёд
Наши друзья

 

 

Инвентаризация SMB-служб

Теперь мы рассмотрим широко распространенный Windows-интерфейс, протокол SMB (Server Message Block — блок сообщений сервера), который определяет регламент служб совме­стного использования файлов и печати в операционных системах Microsoft. Мы продемонстри­руем возможности инвентаризации с помощью уже ставшего классическим метода нулевого се­анса (null session). С помощью нулевого сеанса анонимный злоумышленник способен получить значительный объем информации об интересующей системе и, самое главное, имена учетных записей.


Нулевые сеансы

 

 

 

8

 

Простота

10

 

 

 

Степень риска

9

 


Одним из наиболее серьезных уязвимых мест систем семейства Windows NT традиционно яв­лялась поддержка по умолчанию и доверие к данным, передающимся по протоколам CIFS/SMB (далее просто SMB). В спецификацию SMB входят программные интерфейсы (API), которые воз­вращают достоверную информацию о компьютере через ТСР-порты 139 и 145 даже тем пользова­телям, которые не прошли аутентификацию. Первый этап для удаленного доступа к этим интер­фейсам заключается в создании анонимного соединения с системой Windows Server 2003 с помо­щью так называемого нулевого сеанса. При этом предполагается, что проведенное заранее сканиро­вание выявило открытый ТСР-порт 139 или 145.
C:\>net use \\192.16в.202.33\1РС$ Ли'™' The command completed successfully.
Эта команда позволяет подключиться к скрытой межпроцессной системе ■'совместного использования" (1РС$) на компьютере с IP-адресом в качестве анонимного пользователя (/и: •"), применив нулевой пароль <""). При успешно установленном соединении в распо­ряжении хакера оказывается открытый канал обмена информацией, благодаря которому он может использовать различные методы (описаны далее в этой главе) для получения макси­мального объема информации о системе: данные о сетевых соединениях, наличие совместно используемых данных, сведения о пользователях, группах, ключах регистра и т.д.
Почти во всех методах, изложенных в этой главе, используется этот стандартный недоста­ток систем семейства Windows NT. Этот недостаток нулевого сеанса, или анонимного входа, является стартовой точкой для многих опустошительных атак злоумышленников.
Мы рассмотрим различные атаки с использованием метода нулевого сеанса, а меры про­тиводействия этим атакам будут представлены в конце этого раздела. Есть и хорошие ново­сти: в системах Windows ХР и Windows Server 2003 наконец-то внесены серьезные изменения в целях устранения инвентаризации с помощью SMB.
Инвентаризация совместно используемых ресурсов
При установленном нулевом сеансе можно получить информацию обо всех совместно ис­пользуемых ресурсах на удаленной системе.
C:\>uet view Wvito Shared resources at W192.163.7.45
VITO


Share name

Type

 

Used as

Comment:

HETLOGON
Test
Finance

Disk Disk Disk

 

 

Logon server share Public access Transaction records

Web
Disk
Webroot for acme.com
The command completed successfully.
Можно назвать еще три хороших средства для инвентаризации совместно используемых ресурсов из пакета Resource Kit: rmtshare, srvcheck и srvinf о (при использовании пара­метра -s). Отчеты программы rmtshare подобны приведенному выше отчету, полученному
с помощью команды net, Программа srvcheck выводит сведения не только о совместно ис­пользуемых ресурсах, но и об авторизованных пользователях, включая и скрытые ресурсы, но требует привилегированного доступа к удаленной системе для получения этой дополнитель­ной информации. С помощью команды srvinfo -s можно узнать о совместно используе­мых ресурсах удаленной системы, а также большой объем других полезных сведений.
Инвентаризация доверенных доменов
После установки нулевого сеанса с одним из компьютеров домена, с помощью команды nltest /server: <имя_^цомена> /domain_trusts можно узнать о других доменах Windows, с которыми первым доменом установлены доверительные отношения. Эта инфор­мация пригодится при изучении секретов LSA в главе 8, "Расширение сферы влияния".
Получение данных о пользователях
В "добрые" для хакеров времена, до появления операционной системы Windows Server 2003, системы семейства Windows NT выдавали сведения об учетных записях пользователей с такой же легкостью, как и данные о совместно используемых ресурсах. Некоторые коренные измене­ния в настройках по умолчанию систем Windows ХР и Windows Server 2003 для доступа с помо­щью нулевых сеансов призваны запретить подобные действия.
ВНИМАНИЕ
При установке системы Windows Server 2003 в качестве контроллера домена ограничения по установке нулевых сеансов являются менее строгими.
По этой причине в следующих примерах команды выполнялись на контроллере домена под управлением Windows Server 2003 (эти команды будут запрещены по умолчанию на от­дельном компьютере или рядовом сервере домена).
Существует несколько средств из набора Resource Kit, которые позволяют с помощью ну­левого сеанса получить сведения о пользователях удаленной системы, например утилиты usrstat. showgrps, local и global. Мы обычно используем утилиту local для получе­ния сведений о членах группы Administrators на интересующем сервере.
C:\>local administrators Wceosars
Administrator Enterprise Admins Domain Admins backadmin
Обратите внимание, что учетная запись с идентификатором RID 500 в отчете всегда выво­дится первой в списке, а дополнительные учетные записи администраторов (в нашем приме­ре backadmin) указываются после групп.
Подобным образом можно использовать И утилиту global для получения списка членов группы Domain Admins.
C:\>global "domain admina" Wcaesars
Administrator backadmin
В следующем разделе мы рассмотрим некоторые универсальные средства, которые также позволяют получать информацию о пользователях, совместно используемых ресурсах, дове­рительных отношениях и т.д. интересующей хакера удаленной системы.
Универсальные средства инвентаризации
Рассмотренные выше средства имеют строгую специализацию. В следующих абзацах мы расскажем о некоторых универсальных средствах инвентаризации, которые позволяют про­водить все описанные методы инвентаризации по SMB и даже некоторые другие.
Программа DumpSec (ранее называвшаяся DumpACL) производства компании Somarsoft— одна из лучших утилит для инвентаризации ресурсов в системах семейства
Windows NT. Найдется не так много программ, которые заслуживают большего внимания со стороны администратора безопасности, чем программа DumpSec — она проверяет все: от прав доступа файловой системы до служб, доступных удаленным системам. Эта программа имеет удобный графический пользовательский интерфейс или же ее можно запускать из ко­мандной строки, что делает ее удобной для автоматизации и применения в сценариях.
Для анонимного использования DumpSec сначала необходимо установить нулевой сеанс с удаленной системой. Затем в интерфейсе программы DumpSec перейти в раздел меню Report (Отчет) ^Select Computer (Выбрать компьютер) и ввести имя удаленной системы (убедитесь в том, что это именно то имя, для которого было создано нулевое соединение, иначе будет вы­дано сообщение об ошибке). Затем выберите в меню отчет, который хотите получить. На 1 показано окно программы DumpSec во время получения информации о совместно используе­мых ресурсах удаленного компьютера при выполнении команды Report (Огчет)с?Оигпр Permissions for Shares (Получить права доступа для совместно используемых ресурсов). Обра­тите внимание, что здесь выводятся и скрытые совместно используемые ресурсы.
Не забывайте, что получение сведений о совместно используемых ресурсах с помощью нуле­вого сеанса по-прежнему доступно по умолчанию для систем Windows Server 2003. Программой DumpSec также можно воспользоваться для извлечения информации об учетных записях поль­зователей, но только в том случае, если удаленная система предоставляет эту информацию при использовании нулевого сеанса (например, при неверной настройке такой системы). Контрол­леры доменов под управлением Windows Server 2003 предоставляют эти сведения по умолчанию, поэтому наш запрос будет направлен именно на такую систему (листинг4.б). В этом примере мы запускаем DumpSec из командной строки в целях создания файла, в котором будут сохране­ны сведения об ученых записях удаленной системы (не забывайте о необходимости предвари­тельной установки нулевого сеанса).
Листинг 4.6. Использование DumpSec для пййученЩ|Ш^
С; \>dumpeec /computers\\саеяага /rpt=usereonly
/snvaas=tsv /outfile=c:\temp\users.txt C:\>cat ci\tempYueerB.txt
5/26/2003 3:39 PM - Somarsoft DumpSec (formerly DumpAcl) -
U s e rName Ful1Name Comment
Administrator
Built-in account for administering the computer/domain
backadmin backadmin
Guest
Built-in account for guest access to the computer/domain
Wcaesars
IUSR_CAESARS
Internet Guest Account     Built-in account for anonymous access to Internet Information Services IWAM_CAESARS        Launch 11Б Process Account Built-in account for Internet
Information Services to stare out of process applications krbtgt Key Distribution Center Service Account
SUPPORT_3 8894 5a0     CN=Microsoft Corporation,L=Redmond,S-Washington,C=US This is a vendor's account for the Help and Support Service
При использовании графического интерфейса утилиты DumpSec можно получить отчет с го­раздо большим количеством полей, однако даже приведенный пример позволяет выявить про­блемные места. Например, однажды мы натолкнулись на сервер, где пароль для переименованной учетной записи администратора хранился в поле FullName!
Программа DumpSec с помощью нулевого сеанса также способна предоставлять сведения о установленных политиках, правах пользователей И запушенных службах, но разглашение этой информации по умолчанию запрещено в системах Windows Server 2003.
Программа епшп от группы разработчиков Razor объединила в себе все возможные функ­ции инвентаризации посредством SMB. Название утилиты полностью соответствует задаче, решаемой в этой главе. Даже из перечня параметров командной строки этой программы вид­но, насколько она универсальна. С: \>ашвп
usage:    enum    [switchesj     [hostname|ipj
-U -M -N
-S -P -G -h -D -d -c -u
-p -f
(different from -UI-Ю
enum get userlist get machine list get namelist dump get sharelist
get password policy information get group and member list get LSA policy information
don't cancel sessions
specify username to use <de!
specify password to use (default "
specify dictfile to use (wants -D)

 

 

-f
-s

 

ft

 

)
Программа enum даже автоматизирует установление и разрыв нулевого сеанса. Особо сле­дует отметить параметр -Р, который позволяет получить данные о политике паролей и узнать, может ли удаленный взломщик отгадывать пароли пользовательских учетных записей (используя параметры -D, -и и - f) до тех пор, когда будет найдена уязвимая учетная запись. Следующий пример, демонстрирующий программу епшп в действии против контроллера до­мена Windows Server 2003, был для краткости отредактирован (7).
Листинг 4.7. Использование программы епшп для инеентар
vIP^Kompcv^epa домена    ■ ^i,,^
_
С:\>втш -D -d -Р -L -с caasars
server: caesars
setting up session... success.
password policy: min length: none min age: none max age: 42 days lockout threshold: none lockout duration: 30 mins lockout reset: 30 mins
opening Isa policy... success.
server role: 3   [primary (unknownl
names:
netbios: VEGAS2
domain;  VEGAS2 quota:
paged pool limit: 33554432
non paged pool limit: 1048576
min work set size: 65536
max work set size: 251658240
pagefile limit: 0
time limit: 45B672 trusted domains:
indeterminate netlogon done by a PDC server
getting user List (pass 1,  index Q) . -. succes-s, got 7.
Administrator (Built-in account for administering the computer/domain)
attributes.-
backadmin attributes: disabled Guest [Built-in account for guest access to the computer/domain) attributes: disabled no__passwd IUSR_CAESARS (Built-in account for anonymous access to Internet Information Services) attributes: no_passwd IWAM_CAESARS
(Built-in account for Internet Information Services to start out of process applications) attributes: no_passwd
krbtgt (Key Distribution Center Service Account) attributes: disabled
SUPPORT_388945a0 (This is a vendor's account for the Help and Support Service) attributes: disabled




4MB
Программа enum также позволяет подобрать удаленный пароль для одного пользователя за один раз при использовании параметров-D -и <имя_пользователя> -£ <дЬайл_словаря>,
Программа nete (NetE), которую написал Sir Dystic, может предоставить через нулевое соединение очень много информации. Мы часто используем параметр / 0, который включает все проверки, но здесь приведен перечень всех возможных параметров, по которому можно сделать вывод о возможностях этой программы.
С:Ч>ьвев
NetE v.96 Questions, comments, etc. to sirdystic@cultdeadcow.com
Usage: NetE [Options] WKachinenameOrIP


Options:

 

/0 -

All NULL session

operations

/А -

All operations

 

/В -

Get PDC name

 

/С -

Connections

 

/D -

Date and time

 

/Е -

Exports

 

/F -

Files

 

/G -

Groups

/I -

Statistics

 

/ J -

Scheduled jobs

 

/К -

Disks

 

/L -

Local groups

 

/Н -

Machines

 

/N -

Message names

 

/0 -

Platform specific info

/Р -

Printer ports and info

/R -

Replicated directories

/S -

Sessions

 

■ ■ ■


/Т - Transports /и - Users /V - Services /W - RAS ports /X - Uses
/V - Remote registry trees /Z - Trusted domains
Параметр реестра Rest r let Anonymous
Прежде чем перейти к мерам противодействия, мы хотим остановиться на параметрах безо­пасности, которые предшествовали появлению систем Windows Server 2003, и средствах для обмана этих защитных мер.
После выпуска версии Windows NT4 Service Pack 3 компания Microsoft попыталась предот­вратить получение потенциально опасной информации при проведении инвентаризации через нулевые соединения. Для этой цели был создан параметр реестра Res trie tAnonymous.
HKLM\SYSTEMXCurrentControlSe t\Control\LSA\Rea«rictftnonymoua
В Windows 2000 для изменения значений многих скрытых параметров реестра, связанных с сис­темой защиты, через графический интерфейс можно использовать оснастку Security Policy консоли управления ММС (см. главу 16, "Возможности и средства защиты в системах Windows"). В NT4 эти параметры необходимо конфигурировать вручную. В Windows 2000 параметр получил название "Additional Restrictions for Anonymous Connections" ("Дополнительные ограничения для анонимных соединений", аего третье значение "No access Without Explicit Anonymous Permissions" ("Запретдос­тупа без явного разрешения для анонимных пользователей") эквивалентно установке в реестре значения 2 для параметра Res trie tAnonymous (см. табл. 4.4). Этот параметр теперь уже недосту­пен в интерфейсе Security Policy (Политика безопасности) систем Windows ХР и Windows Server 2003, но значения в реестре сохранили актуальность.
Параметр RestrictAnonymous имеет тип reg_DWORTj и может принимать одно из трех значений: 0,1, 2. Эти значения описаны в табл. 4.4.
[*4.&: Значения irapaMeiTjajiestricubionymous *Щ
Значение Уровень защиты
0 Отсутствует. Остаются значения по умолчанию
1 Не разрешать инвентаризацию имен и учетных записей SAM
2 Запрещает доступ без явных разрешений для анонимного соединения
Интересно, что установка значения 1 для параметра RestrictAnonymous на самом Деле не блокирует анонимные соединения. Однако в результате предотвращаются утечки инфор­мации через нулевое соединение и прежде всего — инвентаризация пользовательских учет­ных записей и совместно используемых ресурсов.
Установка значения 2 для параметра RestrictAnonymous Предотвращает добавление специального идентификатора Everyone от добавления в анонимные маркеры доступа. Уста­новка этого значения 2 может привести к нежелательным проблемам при установке соедине­ний для программ других производителей или на других версиях платформы Windows. Зато это эффективно блокирует создание нулевых сеансов.
C:\>net use \\jngmgrand\ipcS "" /и:""
System error 5 has occurred.
Access is denied.
При значении 1 параметра RestrictAnonymous некоторые программы все еще смогут работать через нулевые соединения. Некоторые из них мы опишем далее.
Обход ограничений RestrictAnonymous=l
Программы sid2user и user2sid, написанные Евгением Рудным (Evgenii Rudnyi), — очень мощные средства инвентаризации ресурсов систем семейства Windows NT. Эти программы запус­каются из командной строки, которые по имени пользователя определяют идентификатор безо­пасности (SID) и наоборот (SID описаны в главе 2, "Архитектура системы безопасности Windows Server 2003"). Для удаленного использования этих программ требуется гтредварительно ус­тановить доступ к интересующему компьютеру через нулевое соединение. Следующий метод будет работать даже при значении 1 параметра Res trie tAnonymous.
Сначала с помощью программы user2sid извлекаем SID домена.


C;\>UB«r2sia NN1.32 .168.202.33

"domain цвета"

 

5-1-5-21-8915387-1645822062-И

!19828000-513

 

Number of subauthorities is 5

 

 

Domain is WINDOWSNT

bytes

 

Length ot 5ID in memory is 28 Type of SID is SidTypeGroUp

 

 

 

 

В результате получаем идентификатор SID компьютера — строку чисел, разделенных де­фисами, которая начинается с символов s-1.
Как было указано в главе 2, "Архитектура системы безопасности WindowsServer2003", последовательность цифр после последнего дефиса называется относительным идентифика­тором (relative identifier, RID). Идентификатор RID предопределен для стандартных пользо­вателей систем семейства Windows NT и групп наподобие Administrator или Guest. Например, идентификатор RID для записи Administrator всегда равен 500, а для записи Guest — 501. Воо­ружившись этой информацией, хакер может использовать программу sid2user для поиска учетной записи администратора по известному идентификатору RID, равному 500 (даже если учетная запись была переименована).
C:\>sid2user \МЭ2.16В.2.33 5 21 8915387  1645822062 18198280005 500
Name is godzilla
Domain is WINDOWSNT
Type of SID is SidTypeUser
Обратите внимание, что при вводе идентификатора SID нужно пропускать символы S-1 и де­фисы. Еще один интересный факт— если первая учетная запись, созданная в любой локальной системе или домене NT/2000, получила идентификатор RID 1000, то.все последующие объекты бу­дут получать последовательно увеличивающиеся идентификаторы RID (1000, 1002, 1003 и т.д. — идентификаторы RID для текущей инсталляции не повторяются и не используются повторно). Та­ким образом, узнав один номер SID, хакер может элементарно инвентаризовать всех пользовате­лей и все группы системы NT/2000, бывших и настоящих.
Рассмотрим простой пример получения всех доступных учетных записей пользователей системы с помощью программ sid2user/user2sid. Перед запуском этого сценария мы оп­ределили идентификатор SID исследуемой системы, используя user2sid при установлен­ном нулевом сеансе, как было показано в предыдущем примере. Напомним, что система NT/2000 присваивает новым идентификаторам RID значения, начиная с 1000. С помощью команды FOR командного интерпретатора систем NT/2000 и программы sid2user (см. вы­ше) исследуем до 50 учетных записей системы.
C:\>for /L %i IN (1000,1,10501  DO sid2user Wacmepdcl 5 21 1915163094 Ь    1258472701648912389 %I » ueern.txt C:\>cat ueers.txt

Name is IUSR_ACMEPDC1
Domain is ACME
Type of SID is SidTypeUser
Name is MTS Trusted Impersonators
Domain is ACME
Type of SID is SidTypeAlias
Выводимые этим сценарием необработанные данные можно пропустить через фильтр, ко­торый оставляет только имена пользователей. Конечно, для написания сценариев не обязатель­но использовать только командный интерпретатор систем Windows NT— можно применить Perl, VBScript или еще какой-либо знакомый язык программирования. И еще одно последнее предупреждение: этот сценарий выведет список пользователей только в том случае, если открыт ТСР-порт 139 или 445. Наличие установленного параметра RestrictAnonymau5=l никак не влияет на результат.
I Кратко описанная далее программа UserDump позволяет автоматизировать процесс последовательного просмотра идентификаторов SID.
Чтобы предотвратить эту атаку в системах Windows ХР и Windows Server 2003, в средстве администрирования Security Policy (Локальная политика безопасно­сти) установите значение Disabled (Отключен) для параметра "Network Access: Allow Anonymous SID/Narne Translation" (Доступ по сети: разрешить предостав­ление анонимным пользователям идентификатора SID и имен пользователей").

 

На главную | Содержание | Назад | Вперёд
 
Яндекс.Метрика