Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3507 / 793 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 7:

Средства ревизии Windows

PSTOOLS

Комплект PsTools располагается в переходной области между регистрирующим и полнофункциональным доступом к системе. Эти средства разработаны Марком Русиновичем из SysInternals и доступны по адресу http://www.sysinternals.com/ntw2k/freeware/pstools.shtml. Утилиты enum и Winfingerprint довольствуются установлением NULL IPC$ соединения, а PsTools требуют пользовательских полномочий для реализации некоторых возможностей. Тем не менее, этот набор утилит возвращает открытый порт NetBIOS к лучшим временам удаленного выполнения команд. Вместо описания утилит в алфавитном порядке, мы начнем с наиболее безобидных и работающих универсально. Набор администратора Windows должен содержать эти средства, поскольку они существенно упрощают удаленное администрирование.

Но для начала сделаем несколько замечаний об использовании этих программ.

  • Вы должны иметь полномочия пользователя. Наиболее функциональные из описываемых средств требуют полномочий администратора системы.
  • На исследуемой системе должна быть запущена служба "Server". Служба "NetLogon" помогает передавать пользовательские полномочия в домене.
  • Служба "RemoteRegistry" используется аналогично PsInfo.
  • Должен быть доступен ресурс IPC$.

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

Внимание. В процессе удаленного администрирования ваше имя пользователя и пароль передаются по сети! Если вы беспокоитесь о sniffing -атаках, убедитесь, что ваши Windows 2000- и XP-серверы используют NTLMv2. Это дефект скрытой схемы аутентификации Windows, а не PsTools. Обратитесь к лекции "Средства взлома/подбора паролей" для получения дополнительной информации о паролях Windows.
Реализация

PsTools содержит 10 различных утилит, существенно упрощающих администрирование больших сетей. Удаленный доступ с использованием Terminal Services также способствует этому, но эти утилиты могут быть составной частью автоматических скриптов, включающих в себя журналы, списки активных пользователей, или могут выполняться по команде в дюжине систем.

PsFile

PsFile дает возможность получить список файлов на хосте, которые используются другим хостом. Эта утилита зеркально воспроизводит встроенную команду net file. Программа используется для отладки общего доступа к файлам и контроля неавторизованного доступа к файлам. Ниже приводится сокращенный вывод.

C:\>psfile.exe
Files opened remotely on GOBLYNSWOOD:
[23]    D:\downloads\VMware-license-linux.txt
    User:   ORC
    Locks:  0
    Access: Read
C:\>net file
ID  Path                        User name   # Locks
---------------------------------------------------------------
23  D:\downloads\VMware-license-linux.txt   ORC     0
The command completed successfully.

Можно сказать, что пользователь ORC просматривает лицензионную информацию нашего приложения VMware. Эта программа не может дать сведений, откуда пользователь осуществляет доступ. Это работа для netstat. Что общего между двумя этими командами? Параметр -c работает точно так же, как и параметр /close программы net file. Он закрывает соединение, основанное на идентификаторе пользователя ID (отмечено жирным шрифтом в предыдущем примере).

C:\>psfile.exe 23 -c
Closed file D:\downloads\VMware-license-linux.txt on GOBLYN.

Кажется, нет никакого преимущества по сравнению с утилитой net. Однако каждая утилита из набора PSTools работает поверх удаленного соединения. Использование аналогично с добавлением полномочий пользователя в командной строке.

C:\>psfile.exe \\192.168.0.176 -u Administrator -p IM!secure
Files opened remotely on 192.168.0.176:
[32] \PIPE\srvsvc
    User: ADMINISTRATOR
    Locks: 0
    Access: Read Write

Если вы запустите программу psfile для хоста localhost и зададите его IP-адрес, то увидите, что он открывает соединение со службой server.

Примечание. Каждая утилита PsTool принимает в командной строке последовательность \\RemoteHost -u UserName -p password, даже если в справке ( /h ) ничего об этом не говорится.
PsLoggedOn

PsTools не заподозришь в запутанном соглашении об именовании. PsLoggedOn отображает пользователей, которые работают в системе, неважно, соединившись с помощью консоли, используя файлы или другим удаленным методом.

C:\>psloggedon.exe
Users logged on locally:
        Unknown NT AUTHORITY\LOCAL SERVICE
        Unknown NT AUTHORITY\NETWORK SERVICE
        3/10/2002 11:23:49 AM   GOBLYNSWOOD\pyretta
        Unknown NT AUTHORITY\SYSTEM
Users logged on via resource shares:
        3/12/2002 12:04:12 AM   (null)\ORC

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

Предполагая перспективу атак, будет предусмотрительно перехватывать атаки по переполнению буфера.

PsGetSid

Переименование пользователя Administrator в "TeflonBilly" неплохо, но недостаточно для реальной безопасности. С использованием PsGetSid, любой, кто может установить NULL -соединение может получить строку, называемую "секретный идентификатор SID " (Security Identifier) для конкретного пользователя. Заключительная часть этой строки содержит относительный идентификатор RID (Relative Identifier). Для пользователя с правами администратора, независимо от его имени, RID всегда равен 500 - практически, как у пользователя root в Unix, этот параметр всегда равен 0. Для гостевого профиля этот параметр всегда равен 501. Эти два RID -идентификатора никогда не изменяются.

C:\>psgetsid.exe \\192.168.0.176 -u Administrator -p IM!secure Orc
SID for 192.168.0.176\\Orc:
S-1-5-21-1454471165-484763869-1708537768-501
Совет. Когда вы ищите пользователя "Administrator", всегда проверяйте, что у профиля есть строка SID, которая заканчивается на -500. В противном случае, знайте, что профиль был переименован.

Запрос идентификатора SID не может быть адресован для конкретного пользователя. PsGetSid может перечислить другие объекты, такие как компьютеры или группы пользователей.

C:\>psgetsid.exe \\192.168.0.176 -u Administrator -p IM!secure goblynswood
SID for 192.168.0.176\\goblynswood:
S-1-5-21-1454471165-484763869-1708537768
C:\>psgetsid.exe \\192.168.0.176 -u Administrator -p IM!secure "Power Users"
SID for 192.168.0.176\\goblynswood:
S-1-5-32-547

Сам по себе этот тип информации обычно не используется, но вместе со значениями RID -пользователей, полученных из ASM -файлов, эти данные покрывают существенную часть структуры аутентификации домена.

PsInfo

Операционная система, продолжительность непрерывной работы (основанная на анализе системного журнала), корневая директория системы, дата инсталляции и т.д. и т.п. - данные, всегда вызывающие интерес. Не думайте о PsInfo, как о бесполезном инструменте. Эта программа возвращает полезную информацию о системе. И помните, она делает это удаленно!

C:\>Psinfo.exe
System information for \\GOBLYNSWOOD:
Uptime:         8 days, 2 hours, 59 minutes, 9 seconds
Kernel version:     Microsoft Windows 2000, Uniprocessor Free
Product type:           Professional
Product version:        5.0
Service pack:           2
Kernel build number:        2195
Registered organization:    twilight conclave
Registered owner:       mps
Install date:           1/2/2001, 3:03:03 PM
System root:            E:\WINNT
Processors:         1
Processor speed:        1.0 GHz
Processor type:     x86 Family 6 Model 8 Stepping 10, GenuineIntel
Physical memory:        320 MB
HotFixes:
Q147222: No Description
Q252795: Windows 2000 Hotfix (Pre-SP3) [See Q252795 for more information]
Q276471: Windows 2000 Hotfix (Pre-SP3) [See Q276471 for more information]
Q285156: Windows 2000 Hotfix (Pre-SP3) [See Q285156 for more information]
Q285851: Windows 2000 Hotfix (Pre-SP3) [See Q285851 for more information]
Q295688: No Description
Q296185: Windows 2000 Hotfix (Pre-SP3) [See Q296185 for more information]
Q298012: Windows 2000 Hotfix (Pre-SP3) [See Q298012 for more information]
Q299553: Windows 2000 Hotfix (Pre-SP3) [See Q299553 for more information]
Q299796: Windows 2000 Hotfix (Pre-SP3) [See Q299796 for more information]
Q302755: Windows 2000 Hotfix (Pre-SP3) [See Q302755 for more information]
Q314147: Windows 2000 Hotfix (Pre-SP3) [See Q314147 for more information]
SP2SRP1: Windows 2000 Security Rollup Package [See Q311401 for more information]
7.2.

PsInfo предоставляет быстрый способ для проверки ваших серверов на предмет последних обновлений. Если у вас работает IIS, вы должны трепетно относиться к последним обновлениям и заплаткам. PsInfo получает информацию о последних обновлениях из настроек HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix системного реестра, поэтому некоторые заплатки приложений могут быть не внесены в этот список.

Использование командного файла упрощает ревизию системы.

C:\>for /L %i in (1,1,254) do psinfo \\192.168.0.%i >
systeminfo_192.168.0.%i.txt

Обратите внимание, что мы обошли полномочия аутентификации. Если вы собираетесь создать пакетный файл, который требует доступа к удаленной системе, не помещайте имя пользователя и пароль в командный файл. Вместо этого запустите пакетный файл в контексте пользователя домена с полномочиями для ревизии этой информации. Проблема, с которой вы можете столкнуться, состоит в сложности доступа к системам, которые не являются частью домена.

Совет. PsInfo - фантастическое средство для управления конфигурацией. Мало других систем дают информацию об обновлениях по удаленному запросу.