Опубликован: 20.02.2007 | Уровень: специалист | Доступ: платный
Лекция 7:

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

Аннотация: В этой лекции автор демонстрирует, как коллекционирование знаний об удаленном компьютере может быть использовано в личных целях

В рассказе Конан Дойля "Долина страха" Шерлок Холмс бранит полицейского инспектора: "Широта кругозора - одно из главных требований в нашей профессии. Взаимосвязь идей и косвенное использование знаний зачастую бывает невероятно интересным". В этой лекции мы надеемся продемонстрировать, как коллекционирование знаний об удаленном компьютере может быть использовано в личных целях. Меньше всего вам понравится создавать список пользователей, которые имеют интерактивный доступ к исследуемой системе; но можно получить и большое количество другой информации. Какие использованы (или не использованы) исправления в системе? Подбор пароля один из старейших, наиболее часто используемых методов атаки системы, но блокирует ли система вход после нескольких последовательных вводов неправильного пароля?

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

Большинство информации о Windows может быть получено из области общего пользования IPC$ (InterProcess Communications), по умолчанию - область общего доступа в системах Windows NT, 2000 и XP. Она поддерживает взаимодействие между приложениями в рамках одной системы или между удаленными системами. Для поддержки распределенного доступа и доменной среды IPC$ содержит много системной и пользовательской информации, необходимой для обслуживания их запросов.

Наиболее распространенный вид соединения - NULL -соединение или анонимное, которое может быть установлено вручную с использованием команды net:

C:\>net use \\target\ipc$ " " /u:" "

Команда smbclient (из набора команд поддержки Samba) также может установить анонимное соединение, но только команда net use устанавливает соединение, поверх которого может работать другое приложение.

$ smbclient \\\\target\\ipc\$ " " -U " "

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

Winfingerprint

Утилита Winfingerprint активно разрабатывается, доступна в исходных кодах и позволяет получить большое количество информации из IPC$-области. Реализация протокола SNMP (Simple Network Management Protocol) дает доступ к журналу событий и возможность исследовать структуру Active Directory.

Реализация

Winfingerprint основана на графическом интерфейсе пользователя (GUI). Программа может сканировать единичный хост или непрерывный интервал сети. Состав запрашиваемой информации определяется установкой соответствующих отметок в формах. В этом есть только один неясный момент: нажимая кнопку OK, вы подразумеваете команду "сканировать хост". Рисунок 7.1 демонстрирует сканирование с отмеченным флагом NetBIOS.

Сканирование Winfingerprint

увеличить изображение
Рис. 7.1. Сканирование Winfingerprint

Это не главный фокус в использовании Winfingerprint. Но, тем не менее, отметим некоторую полезную информацию.

  • Role. Winfingerprint может определить с некоторой степенью подробности тип сервера и его операционную систему. Идентификаторы первичных контроллеров доменов (PDCs), контроллеров доменов резервирования (BDCs), и любые домены, к которым относится компьютер.
  • Date/Time. Помогает сделать предположения о месте физического размещения сервера. Локальное время сервера также может быть использовано, если вы попытаетесь управлять удаленными заданиями с использованием команды AT.
  • Usernames. Winfingerprint выводит список системных идентификаторов ID (SID) для каждого пользователя. Так можно определить администратора (SID 500).
  • Sessions. Здесь приводится список NetBIOS-имен других систем, которые поддерживают соединение с исследуемой. Часто это помогает уточнить список исследуемых систем BDC, баз данных или администраторов.
  • Services. Полный список служб дает возможность узнать, какие программы установлены и активны.
Примечание. Использование кнопки Save приведет к запросу "Winfingerprint Output", но это всего лишь способ вывести информацию в текстовый файл.

Несмотря на извлекаемое количество информации, Winfingerprint, как все программы с графическим интерфейсом, имеет тот же недостаток - он не может быть запущен под управлением файла параметров. Интерфейс также позволяет задать большой интервал для сканирования, что приведет к получению результата в не слишком удобном формате. Можно использовать Perl-скрипт для анализа результата по ключевым полям, но это будет весьма неудобно для большой сети.

Запуск Development Build

Для администраторов, которые хотят получить доступ к самым свежим возможностям Winfingerprint, доступны исходные коды программы. Используйте cvs-систему (Concurrent Versions System) для получения последней версии кодов (пароль остается пустым).

$ cvs -d:pserver:anonymous@cvs.winfingerprint.sourceforge.net
:/cvsroot/winfingerprint login
(Logging in to anonymous@cvs.winfingerprint.sourceforge.net)
CVS password:
$ cvs -z3 -d:pserver:anonymous@cvs.winfingerprint.sourceforge.net
:/cvsroot/winfingerprint co winfingerprint

Результирующая директория содержит рабочий проект для Visual Studio. Откройте проект Visual Studio Project (DSP) и откомпилируйте. Если вы столкнулись с проблемами, убедитесь, что в опциях компиляции General установлен параметр uses MFC Shared DLL.

GETUSERINFO

GetUserInfo - одна из утилит набора "joeware", созданных Джо Ричардсом (http://www.joeware.net/). Эта коллекция включает в себя несколько утилит, составляющих набор инструментов для администраторов, которым действительно требуется залезть внутрь Windows.

Реализация

Формат вывода очень похож на вывод команды net user, с несколькими мелкими отличиями, на которые важно обратить внимание. Строки, представленные жирным шрифтом, содержат информацию, которой нет в сообщениях команды net user.

C:\>GetUserInfo.exe administrator
GetUserInfo V02.05.00cpp Joe Richards (joe@joeware.net) January 2002
User information for [Local]\administrator
User Name           Administrator
Full Name
Description         Built-in account for administering the computer/domain
User's Comment
User Type           Admin
Enhanced Authority
Account Type            Global
Workstations
Home Directory
User Profile
Logon Script
Flags               NO_PWD_EXPIRE
Account Expires     Never
Password age in days    249
Password last set       7/6/2001 3:22 PM
Bad PWD count       0
Num logons (this machine)   2432
Last logon          3/12/2002 8:24 PM
Logon hours         All
Global group memberships    *None
Local group memberships *Administrators
Completed.
7.1.

Используя информацию о паролях (возраст, счетчик ошибочно введенных паролей, число входов в систему), вы можете сделать несколько выводов об этом пользователе. Неправильно введенные пароли могут свидетельствовать о предпринимаемых атаках или, если вы сами совершаете такую атаку, о том, как близко вы к пределу возможного количества попыток ввода неверного пароля. Возраст пароля может свидетельствовать о старом, не изменявшемся пароле, что является признаком пользовательского профиля, который никогда не использовался. Количество входов в систему может свидетельствовать об интенсивности использования соответствующего пользовательского профиля. Профиль с большим количеством входов может означать, что пользователь часто использует систему; соответственно малое количество входов может говорить о не слишком частой проверке системы. Конечно, количество входов в систему больше нуля для заблокированного пользователя (например, guest) означает, что в сети произошло нечто.

Используя символ точки (.), можно перечислить всех пользователей системы. Посмотрите на правильный синтаксис.

C:\>GetUserInfo.exe \.
GetUserInfo V02.05.00cpp Joe Richards (joe@joeware.net) January 2002
User Accounts for [Local]
---------------------------------------------------------------------
Administrator           Orc         skycladgirl
test                __vmware_user__

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

C:\>GetUserInfo.exe \\192.168.0.43\.
C:\>GetUserInfo.exe domain\\192.168.0.43\.
Совет. В сети с большим количеством Windows-доменов в первую очередь обращайте внимание на локальных пользователей (Local user).

Замените точку именем пользователя для получения сведений о заданном пользователе.

Сергей Хлюкин
Сергей Хлюкин
Россия, Москва, Московский Государственный Открытый Университет, 2007
Игорь Касаткин
Игорь Касаткин
Россия, Москва