Реализация
Начнем с последовательного ознакомления с аргументами командной строки и их краткого описания, как это представлено в таблице 2.1. Мы будем следовать примерам использования наиболее важных команд и знакомиться с тем, что они делают. Наберите флаг /? после любой из команд, приведенных в таблице, чтобы получить расширенную информацию о синтаксисе команды.
net accounts | No | Yes | No | Yes | Yes | Определяет параметры политики доступа в систему, такие как срок действия пароля, историю паролей и политику блокировки и выхода из системы. |
net computer | No | Yes | No | Yes | Yes | Добавляет или удаляет компьютеры в домен. |
net config | Yes | Yes | Yes | Yes | Yes | Отображает текущую информацию о сервере и рабочей группе, включая имя компьютера, имя пользователя, версию программного обеспечения и имя домена. |
net continue | No | Yes | No | Yes | Yes | Перезапускает приостановленную службу. |
net diag | Yes | No | Yes | No | No | Отображает диагностическую информацию о соединениях оборудования в сети. |
net file | No | Yes | No | Yes | Yes | Отображает имена всех открытых в настоящее время файлов и предоставляет возможность их закрытия. |
net group | No | Yes | No | Yes | Yes | Установка свойств Общей группы Windows (только на контроллере домена). |
net help | Yes | Yes | Yes | Yes | Yes | Выводит информацию о доступных командах |
net helpmsg | No | Yes | No | Yes | Yes | Выводит подробную информацию по номерам сообщений об ошибках. |
net init | Yes | No | Yes | No | No | Загружает драйверы протоколов и сетевых карт без присоединения их к Менеджеру протоколов Windows. |
net localgroup | No | Yes | No | Yes | Yes | Конфигурирование свойств рабочей группы. |
net name | No | Yes | No | Yes | Yes | Устанавливает имя, по которому компьютер будет получать сообщения. |
net logoff | Yes | No | Yes | No | No | Закрывает соединение между вашим компьютером и сетевыми ресурсами, к которым вы были подсоединены. |
net logon | Yes | No | Yes | No | No | Вход в домен или рабочую группу. |
net password | Yes | No | Yes | No | No | Изменяет пароль для заданного пользователя. |
net pause | No | Yes | No | Yes | Yes | Приостанавливает работу выполняющейся службы. |
net print | Yes | Yes | Yes | Yes | Yes | Получение информации и управление очередью печати компьютера. |
net send | No | Yes | No | Yes | Yes | Посылает сообщение другому пользователю или компьютеру в сети. |
net session | No | Yes | No | Yes | Yes | Отображает список прерванных соединений между компьютером и другими устройствами в сети. |
net share | No | Yes | No | Yes | Yes | Создает, уничтожает или отображает список общих ресурсов. |
net start | Yes | Yes | Yes | Yes | Yes | Запускает службу |
net statistics | No | Yes | No | Yes | Yes | Отображает статистику для сервера или рабочей станции, такую как использование сети, открытые файлы или задания на печати. |
net stop | Yes | Yes | Yes | Yes | Yes | Останавливает работу службы. |
net time | Yes | Yes | Yes | Yes | Yes | Отображает время, синхронизированное со специальным сервером времени в сети. |
net use | Yes | Yes | Yes | Yes | Yes | Соединяется или отсоединяется от общих сетевых ресурсов; выводит информацию об общих сетевых ресурсах. |
net user | No | Yes | No | Yes | Yes | Добавляет или удаляет пользователя. |
net ver | Yes | No | Yes | No | No | Отображает информацию о версии редиректора вашей рабочей группы. |
net view | Yes | Yes | Yes | Yes | Yes | Отображает список общих ресурсов для заданного компьютера или всех компьютеров подсети. |
Набрав в командной строке Windows nbtstat, мы увидим информацию об использовании этой утилиты.
C:\WINDOWS\Desktop>nbstat
Displays protocol statistics and current TCP/IP connections using NBT (NetBIOS over TCP/IP). NBTSTAT [-a RemoteName] [-A IP address] [-c] [-n] [-r] [-R] [-s] [S] [interval] ] -a (adapter status) выдает список таблицы имен удаленной машине по ее имени. -A (Adapter status) выдает список таблицы имен удаленной машине по ее IP-адресу. -c (cache) список содержимого кэша удаленной машины, включая ее IP-адрес. -n (names) список локальных NetBIOS-имен. -r (resolved) список имен, найденных через широковещательный запрос и WINS. -R (Reload) сбрасывает и перезагружает удаленную таблицу имен. -S (Sessions) выводит таблицу сессий, установленных с заданным IP-адресом. -s (sessions) выводит таблицу сессий, преобразуя заданные IP-адреса в имена хостов на основе содержимого файла hosts. -RR (ReleaseRefresh) отсылает на WINs пакеты Release names, а затем выполняет обновление.
RemoteName имя удаленной машины. IP-address десятичное представление IP адреса. Interval обновление выведенной статистики. Промежуток в секундах между обновлением информации. Нажмите Ctrl-C для завершения обновления.
C:\WINDOWS\Desktop>
Если мы работаем на локальной машине, то можем использовать NBTSTAT для мониторинга информации о нашей локальной сессии, проверять и сбрасывать кэш WINS-имен, делая все это в режиме реального времени, задав интервал (в секундах) в конце командной строки. Например, команда nbtstat -S 2 позволит осуществлять мониторинг текущих открытых NetBIOS-сессий, установленных между локальной системой и другими машинами в сети, и будет обновлять эту информацию каждые две секунды.
C:\WINDOWS\Desktop>nbtstat -S 2
NetBIOS Connections Table
LocalName State In/Out Remote Host Input Output -------------------------------------------------------------- WINBOX <03> Listening WINBOX Connected in 192.168.1.102 10Kb 208Kb WINBOX Listening WINBOX <03> Listening
Можно использовать regdmp, чтобы получить сведения о том, какие службы и приложения запускаются на нашем компьютере в момент загрузки.
C:\Windows\Desktop\> regdmp HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Мы должны убедится, что в момент загрузки не запускается никаких зловредных программ, вроде Netcat или Netbus.
У regdmp есть опция -m, которая позволяет задать удаленный хост. Обычно только администратор имеет удаленный доступ к реестру, но можно попытаться сделать это, и, не будучи администратором.
C:\Windows\Desktop\>regdmp -m 192.168.1.102 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
Подробнее мы обсудим использование regdmp в лекции "Компоновка и использование набора инструментов для расследования хакерских атак, то есть для "живого ответа" в системе Windows".
Поскольку используется много версий finger-клиентов и демонов, то может меняться состав доступных опций, но мы приведем основную информацию о том, что можно получить с помощью утилиты finger.
Сама по себе команда весьма проста. Наиболее старые версии команды whois требуют ввода имени хоста, на котором поддерживается whois-сервер с использованием флага -h. Оставшаяся часть командной строки содержит в себе запрос, который мы хотим послать. Команда fwhois требует сначала определить запрос, и при необходимости в конце задать адрес whois с сервера (@whois_server).
Следующие две команды идентичны друг другу.
bash% whois -h whois.networksolutions.com yahoo.com
и то же самое
bash% fwhois yahoo.com@whois.networksolutions.com
По умолчанию используется сервер whois.internic.net. Мы можем запустить команду whois без указания имени сервера, чтобы получить самую общую информацию о домене.
bash% whois yahoo.com Domain Name: YAHOO.COM Registrar: NETWORK SOLUTIONS, INC. Whois Server: whois.networksolutions.com Referral URL: http://www.networksolutions.com Name Server: NS3.EUROPE.YAHOO.COM Name Server: NS5.DCX.YAHOO.COM Name Server: NS4.DAL.YAHOO.COM Name Server: NS2.SAN.YAHOO.COM Name Server: NS1.SNV.YAHOO.COM Updated Date: 05-nov-2001
На выходе мы получили информацию о серверах доменных имен и сведения о том, когда в последний раз обновлялась соответствующая запись. Но здесь нет никакой информации о местоположении сервера или контактной информации. К счастью, здесь есть ссылка на другой whois-сервер, где должна быть интересующая нас информация. Теперь, если мы попытаемся выполнить команду whois -h whois.networksolutions.com yahoo.com, мы должны будем получить ту же самую информацию что и ранее, но вдобавок еще и сведения о географическом положении и контактную информацию.
Таким образом, если нам надоело назойливое сканирование портов с адреса somesystem.some_loser.org, теперь мы можем просто связаться с организацией SomeLoser и выразить протест. Whois - также весьма полезен для взломщиков, которые пытаются преследовать особые цели.
Но что делать, если мы не знаем имени хоста. Что если в нашем распоряжении имеется только IP-адрес. К счастью, есть whois-серверы, которые поддерживают выполнение запросов по IP-адресу.
Во-первых, упомянем несколько весьма важных параметров командной строки. Есть много различных реализаций команды Ping, но большинство Ping-утилит для Unix-систем имеют общие параметры командной строки. Основные отличия Unix- и Windows-реализаций этой утилиты представлены в таблице 2.3.
-c count (Unix) -n count (Windows) | Количество посылаемых вызовов. |
-f (Unix) | Потоковый вызов, при котором посылается столько запросов, сколько возможно. Выводит символ (.) для каждого посланного запроса и символ (^H) для каждого полученного ответа. Обеспечивает визуальное отображение количества потерянных пакетов. Этот параметр может использовать только пользователь с правами супервайзера. |
-i wait (Unix) | Определяет время ожидания в секундах между посылкой пакетов (по умолчанию 1 сек.). |
-m TTL (Unix) -i TTL (Windows) | Определяет параметр времени жизни (TTL).. |
-n (Unix) -a (Windows) | В Unix-системах параметр -n указывает на то, что не нужно определять имя для IP-адреса (выводятся только числовые значения). Параметр -a в Windows сообщает о необходимости определения имени по IP-адресам. В Unix и Windows реализациях утилиты по умолчанию определяется разное значение параметра разрешения имен. |
-p pattern (Unix) | Позволяет вам дополнить заголовок посылаемого ICMP-пакета специальным шаблоном, чтобы определить идентичность получаемой в ответ информации. |
-q (Unix) | Запрещает вывод промежуточной информации, разрешая вывод обобщенных сведений после завершения работы программы. |
-R (Unix) -r (Windows) | Определяет параметр "record route" для ICMP-пакета. Если маршрутизатор поддерживает такую возможность, он будет записывать маршрут пакета, получаемый с параметрами IP, и будет отображать его в результатах работы программы после получения ответа. Однако большинство маршрутизаторов игнорирует параметры маршрутизации по источнику, и поэтому игнорируют этот параметр. |
-s size (Unix) -l size (Windows) | Дает возможность определить размер ICMP-пакета. Заголовок ICMP-пакета имеет 8 байт в длину, таким образом, реальный размер пакета будет составлять <size> + 8. По умолчанию для Unix значение параметра равно 56 и 24 для Windows. Это соответствует 64 и 32 байтам, если принять во внимание длину заголовка. |
-w wait (Unix) -w timeout (Windows) | Прерывает работу программы после заданного ожидания. Определяет задержку в <timeout> миллисекунд перед завершением запроса. |
Так же как и Ping, команда traceroute имеет несколько различных реализаций. Так же как и Ping, реализация traceroute для Windows сильно отличается от версии, используемой для Unix. Настолько что Windows-утилита носит название tracert, напоминая о том, что в системе Windows эта программа используется без поддержки длинных имен файлов. В таблице 2.4 описаны некоторые наиболее важные параметры командной строки (все параметры, если иное не оговаривается, приводятся для Unix-версии).
-g hostlist (Unix) -j hostlist (Windows) | Определяет маршрут для прохождения пакетов (см. лекцию "NETCAT и CRYPTCAT"). |
-i interface | Задает используемый для отсылки пакетов сетевой интерфейс (для хоста с несколькими сетевыми интерфейсами). |
-I | Определяет использование ICMP-сообщений вместо UDP. По умолчанию traceroute посылает UDP-пакеты порту, который обычно бывает свободным, так что конечный хост может послать в ответ сообщение PORT_UNREACHABLE в ответ на пришедшие пакеты. |
-m hops (Unix) -h hops (Windows) | Задает максимальное число промежуточных хостов, которое может быть пройдено до конечного пункта. Если конечный хост не достигается за заданное число шагов, все возвращается обратно. По умолчанию равно 30. |
-n (Unix) -d (Windows) | Запрещает определение имен для IP-адресов. Обычно это существенно ускоряет работу программы, но в этом случае вы не сможете получить представление о географическом положении хостов. |
-p port | Если мы используем traceroute на основе протокола UDP и конечный хост прослушивает номера портов вокруг значения по умолчанию(33434), мы можем определить здесь другой номер порта. |
-w (Unix and Windows) | Задает время ожидания ответа от промежуточных хостов. |
Исходные тексты программы hping можно загрузить по адресу http://www.hping.org/. Процесс инсталляции детально описан в файле README, так же как и несколько примеров использования этой программы.
Примечание. Исполняемый модуль hping2 необходимо запускать, имея полномочия пользователя root, чтобы иметь возможность использовать некоторые программы сетевых интерфейсов, которые требуются для работы.
[root@originix hping2]# ./hping2 -c 4 -n -i 2 192.168.1.101 HPING 192.168.1.101 (eth0 192.168.1.101): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=192.168.1.101 flags=RA seq=0 ttl=128 id=54167 win=0 rtt=0.8 ms len=46 ip=192.168.1.101 flags=RA seq=1 ttl=128 id=54935 win=0 rtt=0.7 ms len=46 ip=192.168.1.101 flags=RA seq=2 ttl=128 id=55447 win=0 rtt=0.7 ms len=46 ip=192.168.1.101 flags=RA seq=3 ttl=128 id=55959 win=0 rtt=0.7 ms
--- 192.168.1.101 hping statistic --- 4 packets tramitted, 4 packets received, 0% packet loss round-trip min/avg/max = 0.7/0.8/0.8 ms
По умолчанию hping использует TCP-протокол. Программа создает пустые TCP-пакеты с размером окна равным 64 и неустановленными флагами заголовка, и посылает эти пакеты на порт с номером 0 требуемого хоста. В данном примере флаг -c 4 указывает программе на необходимость послать 4 пакета, флаг -n запрещает разрешение имен, и флаг -i 2 задает интервал между попытками равным двум секундам.
Примечание. Есть только один способ обнаружить использование программы hping в вашей сети: установить систему обнаружения вторжений, анализирующей трафик по порту с номером 0.
Это позволяет нам понять, что хост работает в том случае, когда у него блокируется передача ICMP-пакетов. Хорошо еще и то, что этот вид деятельности редко заносится в какой-либо из системных журналов.
Какой ответ мы получим от системы? Параметр len полученных обратно IP-пакетов. ip, соответственно - IP-адрес. flags показывает, какие TCP-флаги установлены в получаемых обратно пакетах. В данном случае установлены влаги RESET и ACK. Другие возможные значения: SYN (S), FIN (F), PUSH (P), и URGENT (U).
rpcinfo -p hostname. Это основной способ использования rpcinfo для вывода полного списка RPC-служб, которые зарегистрированы с использованием portmapper.
rpcinfo -u hostname programid [version]. Получив ID-номер RPC-программы, версию и номер порта мы можем использовать эту команду для создания RPC-вызова и получения информации об отклике. Добавление параметра -n portnumber позволяет использовать отличный от зарегистрированного portmapper номер порта. Параметр -u означает использование UDP; чтобы использовать TCP, можно применить параметр -t. Номер версии программы - не обязательный параметр.
rpcinfo -b programid version. Эта команда позволяет сделать широковещательный RPC-запрос с целью получить соединение со всеми машинами в локальной сети и определить те из них, которые ответят. Таким способом можно выявить машины, которые используют уязвимые RPC-службы.
rpcinfo -d programid version. Это команда может получить идентификатор/номер версии "незарегистрированных" программ. Может выполняться только на локальной машине с полномочиями пользователя root.
rpcinfo -m hostname. Параметр -m то же самое, что и -p за исключением того, что он выводить на экран таблицу статистики: число RPC-запросов, которые обслужила RPC-служба. Этот параметр доступен не на всех платформах. Linux-версии не включают этот параметр, но более новые версии Solaris (SunOS 5.6 и выше) его поддерживают. За более подробной информацией обращайтесь к man-страницам.
Эта команда отображает все смонтированные директории на NFS-сервере и имена хостов клиентов, которые к ним смонтированы.
showmount -a hostname
Флаг -d идентичен флагу -a, но он не выводит имена клиентских хостов.
showmount -d hostname
Это наиболее популярный формат команды. Эта команда показывает точки монтирования, которые экспортированы и доступны для монтирования с использованием NFS.
showmount -e hostname