AiroPeek
AiroPeek с сайта http://www.wildpackets.com/products/airopeek фактически позволяет вам заглянуть в данные, переданные по беспроводной сети. Его способности шире, чем у NetStumbler. Фактически, он показывает Web-трафик. Этот аспект инструмента AiroPeek помещает его в категорию инструментов перехвата пакетов типа tcpdump.
NetStumbler
Инструмент NetStumbler, http://www.netstumbler.com/, идентифицирует беспроводные точки доступа и одноранговые (peer) сети. Он не прослушивает данные TCP/IP-протокола. Вместо этого, инструмент обеспечивает простой метод для инвентаризации беспроводных сетей. Вы просто запускаете приложение, обходите (или объезжаете) некоторый район и наблюдаете, как беспроводные устройства появляются в списке.
Реализация
Хотя создается впечатление, что NetStumbler перехватывает идентификаторы SSID из радиоэфира, принцип его работы прост. Инструмент передает запросы на подключение к любой слушающей точке доступа с SSID ANY. Большинство точек доступа отвечает на запрос, посылая их собственный SSID. Следовательно, NetStumbler - не пассивный перехватчик. Другими словами, его трафик может быть замечен в сети жертвы.
Когда вы запускаете NetStumbler и открываете файл перехвата данных, он начинает искать точки доступа. На рис. 15.1 показаны некоторые примеры точек доступа. Правая панель отображает MAC-адреса точек доступа и соответствующую ей информацию, такую как WEP статус, SSID, силу сигнала и координаты, если модуль GPS подключен к компьютеру.
увеличить изображение
Рис. 15.1. Обнаружение беспроводной сети
Левая панель содержит представления из трех деревьев: Channels (Каналы), SSID и Filters (Фильтры). Представления каналов и идентификаторов SSID разбивают результаты на очевидные области. Представление фильтров также показывает точки доступа, но только если они удовлетворяют некоторым критериям. Таблица 15.1 описывает каждый из заданных по умолчанию фильтров.
Основная трудность при использовании NetStumbler - локализация беспроводной сети. Web-сайт NetStumbler дает возможность пользователям загрузить их собственные файлы с перехваченными данными, дополненные SSID- и GPS-информацией. Затем любой может сделать запрос к базе данных сайта, чтобы найти географическое положение точек доступа.
Encryption Off (Шифрование отключено) | Перечисляет все устройства, у которых не включен WEP-протокол. Это подразумевает, что вы могли бы перехватить трафик сети. |
Encryption On (Шифрование включено) | Перечислите все устройства, у которых действует WEP-протокол. Ранние реализации WEP-протокола были не надежны, и их трафик мог быть расшифрован. |
ESS (AP) | Идентификатор расширенного набора услуг (ESSID - Extended Service Set ID) представляет собой алфавитно-цифровой код, общий для всех точек доступа и беспроводных клиентов, которые находятся в одной и той же беспроводной сети. Это дает возможность нескольким точкам доступа обслуживать одну и ту же сеть, что важно для физически и логически больших сетей. Таким образом, две точки доступа могут использовать один и тот же канал и даже иметь перекрывающуюся сферу действия, но обслуживать две уникальных беспроводных сети. Заданные по умолчанию значения ESSID известны для нескольких точек доступа: Cisco (tsunami), 3COM (101) и Agere (WaveLAN network). |
IBSS (Peer) | Этот фильтр представляет другую беспроводную сетевую плату в одноранговом (peer-to-peer или ad-hoc) режиме. Идея этого фильтра подобна идее перекрестного кабеля, применяемого в кабельных сетях. Фильтр позволяет двум (или большему количеству) беспроводным платам связываться друг с другом, минуя точку доступа. |
CF Pollable | Эти точки доступа отвечают на определенные пакеты маяка, чтобы определить периоды, когда нужно вести передачу. Точки доступа, которые ведут передачу, не конкурируя друг с другом (contention-free - CF). Используются для уменьшения столкновений и улучшения пропускной способности. |
Short Preamble | Дополнительный метод спецификации данных на физическом уровне в стандарте 802.11b. Укороченная преамбула используется для приложений чувствительных ко времени, таких как IP-телефония (voice-over IP) или бегущие строки (streaming media). |
Наиболее важным условием для работы AiroPeek является наличие беспроводной сетевой платы с правильным аппаратно-программным обеспечением, которое допускает смешанный режим. AiroPeek поддерживает сетевые платы Cisco Systems 340 Series, Cisco Systems 350, Symbol Spectrum24 11 Mbps DS, Nortel Networks e-mobility 802.11 WLAN, IntelR PRO/Wireless 2011 LAN, 3Com AirConnect 11 Mbps WLAN и Lucent ORiNOCO PC (Silver/Gold). Для плат, которые требуют определенного аппаратно-программного обеспечения, необходимые драйверы доступны на сайте WildPackets.
Когда вы впервые запускаете AiroPeek, вас попросят указать адаптер, используемый вами для перехвата данных. Просто выберите правильную сетевую плату и нажмите OK. На рис. 15.2 показан пример этого окна.
Рис. 15.2. Выбор беспроводного адаптера
Теперь AiroPeek готов перехватывать пакеты. Выберите Capture (Перехват) из главного меню. Вас поприветствует экран, подобный изображенному на рис. 15.3. Теперь большинство беспроводного трафика, который проходит в пределах диапазона вашей беспроводной карты, может быть перехвачен.
увеличить изображение
Рис. 15.3. Перехват беспроводного трафика
Если в данной области несколько беспроводных сетей или обильный трафик, вы можете использовать триггеры (trigger), чтобы сузить количество собираемых данных.
Совет. Вы можете расшифровывать трафик, защищенный WEP-протоколом, если вы знаете правильный WEP-ключ. Установите ключ, последовательно выбирая опции Tools/Options/802.11/WEP Key Set/Edit Key Sets (Редактирование набора ключей).
С этого места AiroPeek становится просто еще одним анализатором сетевых потоков. Используйте его, чтобы удостовериться, что трафик шифруется, или чтобы определить, какова утечка сетевой информации из кабельной сети в беспроводную. Приведем некоторые типичные сценарии.
Проверьте, что WEP включен. Без надлежащего WEP-ключа AiroPeek не может просматривать какие-либо данные.Проверьте, что доступ, основанный на MAC-адресах, работает. Доступ, основанный на MAC-адресах, разрешает подключение к беспроводной сети только беспроводным сетевым картам, имеющим определенные физические MAC-адреса. Другие сетевые платы могут видеть трафик, но не смогут получить доступ к сети.Идентифицируйте рискованные протоколы в беспроводной сети. Используйте AiroPeek, чтобы определить, какой тип трафика идет по беспроводной части сети. Прошла ли идентификация домена? Проходит ли мешанина от менеджера NT LAN Manager между частями файла? Используются ли какие-либо открытые текстовые протоколы? Даже если WEP-протокол включен в сеть, то у злонамеренного внутреннего пользователя, знающего WEP-ключ, все еще есть возможность прослушивать трафик.Сделайте отладку беспроводной сети. Как системного администратора, вас уже вероятно спросили, почему сеть такая медленная? Инструмент типа AiroPeek поможет вам отладить сеть, чтобы определить, нет ли проблем связи между серверами, не отвечающими хостами или вмешивающимся трафиком.Определите диапазон сети. Выполните простой тест, чтобы определить, как далеко распространяется ваша сеть. Например, прокатитесь на лифте вверх и вниз на несколько этажей (если вы находитесь в таком здании), чтобы определить, кто еще может видеть вашу сеть. Выйдите за пределы здания, пока не потеряете сигнал. Это испытание полезно только в том случае, если вы также используете антенну с большим усилением. Существуют узконаправленные антенны с усилением порядка 20 Дб. Эти антенны могут получать очень слабые сигналы, но диапазон углов, в котором они работают наиболее эффективно, узок. Это означает, что тот, кто желает подслушать вашу сеть на расстоянии, должен иметь терпение и использовать штатив (или другое неподвижное устройство), чтобы перехватить сигнал. Наконец, вы захотите узнать, как далеко простирается ваша сеть, так что не полагайтесь на антенну портативного компьютера.
Пример из жизни. Ненадежность WEP-протоколов
Беспроводные сети не считаются слишком ненадежными с точки зрения использования их в деловых конторах и корпоративных сетях. Они могут также появиться в жилых районах, аэропортах и больших магазинах. Обнаружение присутствия беспроводной сети не обязательно понижает ее безопасность, но способность просматривать ее данные действительно понижает безопасность сети. В мае 2002 г. анонимный хакер сообщил об обнаружении беспроводных сетей в нескольких больших универмагах, таких как Best Buy, Wal-Mart и Home Depot. Хотя не ясно, передавалась ли информация, связанная с кредитной карточкой, незашифрованной, этот случай убеждает нас в том, что кто-то, сидя на автомобильной стоянке, мог собрать немало номеров кредитных карточек в течение одного дня.
Даже если трафик зашифрован, WEP-реализации уязвимы для активных и пассивных атак и дают возможность третьему лицу идентифицировать WEP-ключ, анализируя пакеты. Таким образом, для защиты данных не достаточно полагаться только на WEP. Продавцы могут утверждать, что их WEP-защита основана на 40- или 64-разрядном шифровании, но это несколько преувеличено. Секретный ключ в обоих случаях состоит из 40 битов. Следующие 24 бита (которые входят в 64-битовый ключ) являются частью вектора инициализации (IV), который изменяется для каждого пакета. Исследователи из лаборатории AT&T Labs и из университета Райса (http://www.cs.rice.edu/~astubble/wep/wep_attack.html) обнаружили метод взлома схемы генерации IV и распознавание WEP-ключа, основанный на пассивном подслушивании, от 5 до 6 миллионов пакетов. На первый взгляд это число может показаться большим, но частично загруженная сеть легко производит такое количество пакетов за несколько часов. Исследователи универси тета Штата Мэриленд (University of Maryland) (http://www.cs.umd.edu/~waa/wireless.pdf) также идентифицировали подобную слабость в WEP-протоколе и его реализациях от разных продавцов.
<
Анализ файлов .dat
Инструмент ToneLoc также включает в себя три утилиты, которые генерируют простую статистику, основанную на результатах файла .dat. Утилита Tlsumm.exe дает резюме всех файлов .dat, которые она находит в текущем каталоге.
C:\Tlsumm.exe * Summarizing *.DAT ... filename.dat: tried rings voice busys carrs tones timeouts spent ----------- ----- ----- ----- ----- ----- ----- -------- ----- SAMPLE8A.DAT: 10000 1432 0 1963 0 4 6575 0:00 SAMPLE8B.DAT: 10000 1659 5853 466 47 0 1973 0:00 ----------- ----- ----- ----- ----- ----- ----- -------- ----- Totals: 20000 3091 5853 2429 47 4 8548 0:00 ----------- ----- ----- ----- ----- ----- ----- -------- ----- Averages: 10000 1545 2926 1214 23 2 4274 0:00 ----------- ----- ----- ----- ----- ----- ----- -------- ----- 2 DatFiles tried rings voice busys carrs tones timeouts spent
Вы можете определить другие знаки в дополнение к звездочке (*), чтобы выбрать меньшее число файлов.
Tlreport.exe дает статистику по определенному файлу .dat. Укажите имя целевого файла в командной строке.
C:\tlreport.exe PRESCAN.DAT Report for PRESCAN.DAT: (v1.00) Absolute Relative Percent Percent Dialed = 10000 (100.00%) Busy = 479 (4.79%) (4.79%) Voice = 2242 (22.42%) (22.42%) Noted = 1 (0.01%) (0.01%) Aborted = 2 (0.02%) (0.02%) Ringout = 3683 (36.83%) (36.83%) Timeout = 3563 (35.63%) (35.63%) Tones = 0 (0.00%) (0.00%) Carriers = 29 (0.29%) (0.29%) Scan is 100% complete. 56:03 spent on scan so far.
Столбец Absolute Percent дает процент номеров, соответствующий каждой категории из всех 10000 возможных номеров. Столбец Relative Percent показывает процент номеров каждой категории из общего числа набранных номеров.
Наконец, как показано на рис. 16.7, вы можете отобразить результаты в графическом формате. Каждая клетка в ToneMap представляет отдельный телефонный номер. Хотя такой способ представления данных для идентификации (carriers) слишком громоздкий, он, однако, показывает тенденцию в наборе данных. Используйте утилиту tonemap.exe, чтобы отобразить это в виде графика. Когда вы щелкаете левой кнопкой мыши на цветном пятне в ToneMap, телефонный номер появляется в нижнем правом углу. Это дает вам возможность найти соответствие между телефонным номером и его определением, закодированным определенным цветом.
C:\tonemap.exe sample2.dat
Рис. 16.7. Пример вывода утилиты ToneMap
Инструменты Dat-*
Вы можете использовать в THC-Scan данные, полученные с помощью ToneLoc.
Используйте инструмент dat-conv.exe, чтобы преобразовать файлы данных из формата ToneLoc в формат THC-Scan. Укажите .dat-файл - источник и имя нового файла.
C:\dat-conv.exe toneloc.dat thcscan.dat DAT Converter for TONELOC - THC-SCAN v2.00 (c) 1996,98 by van Hauser/THC Mode : TL - TS Datfile input : TONELOC.DAT Datfile output : THCSCAN.DAT ID for NOTE : CUSTOM1 (224) ID for NODIAL : UNDIALED (0)
Утилита Dat-manp.exe является аналогом утилиты tlreplac.exe инструмента ToneLoc и, кроме того, она допускает также использование числовых идентификаторов вместо строковых, например, можно ссылаться на номер с идентификатором UNDIALED, как на число 0. Например, ниже показано, как заменить номера с идентификатором BUSY на UNDIALED.
C:\dat-manp.exe test.dat BUSY UNDIALED DAT Manipulator v2.00 (c) 1996,98 by van Hauser/THC vh@reptile.rug.ac.be Writing .BAK File ... DAT File : TEST.DAT DAT Size : 10000 bytes (+ 32 byte Header) Exchange : 8 (All ring counts) ... with : 0 (transfering rings) Changed : 479 entries.
Вы могли также именовать идентификатор BUSY как число 8. Другие комбинации названий и соответствующих числовых значений перечислены в файле datfile.doc, который входит в содержимое пакета. THC-Scan использует номера с 8 по 15 для обозначения занятости, увеличивая это значение для каждого повторного набора.
Статистика для файла .dat создается командой dat-stat.exe.
C:\tools\thc-scan\BINDAT-STAT.EXE test.dat DAT Statistics v2.00 (c) 1996,98 by van Hauser/THC vh@reptile.rug.ac.be DAT File : TEST.DAT (created with THC-SCAN version v2.0) Dialmask : none UnDialed : 480 ( 5%) Busy : 0 ( 0%) Uninter. : 2 ( 0%) Timeout :3563 (36%) Ringout :3683 (37%) Carriers : 29 ( 0%) Tones : 0 ( 0%) Voice :2242 (22%) [Std:2242/I:0/G:0/Y:0] VMB : 0 ( 0%) Custom : 1 ( 0%) [1:1/2:0/3:0] 0 minutes used for scanning.
Пример из жизни. Обеспечение безопасности удаленного доступа
Джейн тестирует сеть финансового учреждения с помощью программы автопрозвона.
Учреждение обеспечило текстовый файл, который содержал более чем 12000 телефонных номеров из семи различных АТС двух штатов и инструкцию: "Найдите наши модемы". Имея 12000 номеров для проверки, она решает прозвонить их все как можно быстрее (используя 20-секундное время ожидания) с помощью THC-Scan, чтобы посмотреть, не появятся ли какие-нибудь модемы. Довольно уверенно появился один модем с привлекательным баннером "IRIX (seecos) Login:". Джейн некоторое время работала в системе Unix, и ее первая мысль была попробовать просмотреть пользователей командой lp с пустым паролем. Это простая и весьма старая уловка (смотрите консультацию службы компьютерной безопасности CERT на сайте http://www.cert.org/advisories/CA-1995-15.html). При дальнейшем исследовании она обнаруживает, что эта система поддерживается в качестве запасной, предназначенной для обработки команд ных файлов ночью, в случае, если откажут первичные службы TCP/IP. В результате, она получила доступ к чувствительным финансовым данным, даже не нуждаясь в пароле!
Первое правило защиты от несанкционированного доступа в систему через телефонный звонок состоит в использовании сильных паролей. Сильные пароли не только подразумевают "несловарные" слова из восьми символов или более, но и системные средства управления, сбрасывающие carrier после трех или пяти неудачных попыток входа в систему. Многие серверы удаленного доступа поддерживают идентификацию RADIUS, через которую легко применять двухфакторную идентификацию. Двухфакторная идентификация, типа одноразовых паролей S/key или электронных карт SecurID, добавляет случайный фактор к процессу входа в систему, который резко уменьшает потенциальный успех слепого угадывания паролей.
Доступ может также контролироваться заданием интервалов времени, которые ограничивают возможность принятия запросов модемом определенными днями или определенным временем в течение дня. Некоторые приложения поддерживают также "аутентификацию по обратным звонкам" (dial-back security), в которой исходящий телефонный номер пользователя хранится в аутентификационной базе данных.
Затем, когда пользователь звонит на сервер и идентифицирует себя, сервер отключает запрос, набирает обратный номер, хранящийся в его аутентификационной базе данных, а затем завершает процесс входа в систему. Таким образом, злонамеренный пользователь должен был бы не только угадать пароль, но и использовать эту учетную запись с определенного номера телефона. Конечно, такая защита ограничивает также свободу доступа к удаленной системе законных пользователей, но эту меру все же стоит иметь в виду.
И, наконец, еще один аспект обеспечения безопасности удаленного сервера (и вообще любого сервера) состоит в регулярной ревизии регистрационного журнала. Если злонамеренный пользователь подбирал пароль в течение трех недель, но не был обнаружен, то взлом сервера - это только вопрос времени. С другой стороны, ежедневный или еженедельный просмотр файлов регистрации доступа, или только просмотр неудавшихся попыток идентификации, быстро показал бы, что что-то не в порядке.
После подключения
Программы автопрозвона идентифицируют удаленные модемы и программное обеспечение с разной степенью точности. В этом методе они аналогичны просто сканерам портов. Программа автопрозвона узнает важное свойство конкретного телефонного номера, а именно, отвечает ли он с модемным подключением или нет. Часть вашей коллекции программного обеспечения, предназначенного для автопрозвона, должна включать программы, необходимые для подключения к удаленной системе. Вы не сможете во всем полагаться только на терминал. Ниже приводится список программных средств, необходимых для удаленного управления системой.
MinicomHyperTerminalCarbon CopyCitrixPCAnywhere (версии 8 и 9)Remotely AnywhereTimbuktu
<
Prescan.exe
Утилита prescan.exe помогает генерировать файл .dat, основанный на списке номеров. Например, у вас может быть текстовый файл, содержащий только 400 номеров, которые надо набрать для некоторой АТС. Вместо того чтобы пытаться создать сложную комбинацию из включающих и исключающих масок, используйте утилиту prescan.exe, чтобы быстро сгенерировать файл .dat .
Во-первых, текстовый файл должен содержать только последние четыре цифры телефонного номера. Предполагается, что первые три должны быть одинаковыми для каждого номера. Затем, запустите prescan и отметьте каждый номер как BUSY. По умолчанию, prescan отметит все остальные номера как UNDIALED (ненабиравшийся). Мы должны вначале отметить все целевые номера, как BUSY, чтобы отличать номера, которые должны быть набраны, от номеров, которые никогда не должны набираться (то есть все номера вне целевого диапазона).
C:\prescan.exe num_list.txt BUSY PreScan v.04? - Fill a ToneLoc datafile with known exchange data Sorting "num_list.txt"... Generating Header info... Processing Data... (100%), done.
Создан новый файл, prescan.dat, который содержит данные о состоянии всех 10000 номеров (0000-9999) целой АТС. Помните, что номера, которые мы собираемся набирать, в настоящее время отмечены как BUSY (занято), а номера, которые мы никогда не будем набирать, в настоящее время отмечены как UNDIALED (ненабиравшийся). Однако вы должны преобразовать файл prescan.dat из старого формата ToneLoc, который использует prescan, прежде чем вы сможете обрабатывать состояние BUSY/UNDIALED. То, что программа tconvert.exe может это сделать, весьма удобно.
D:\Tools\toneloc>TCONVERT.EXE PRESCAN.DAT TCONVERT; ToneLoc .DAT file conversion utility to 1.00 datafiles by Mucho Maas and Minor Threat 1994 Converting PRESCAN.DAT to 1.00 format PRESCAN.DAT : 0.98 -> 1.00 Ok
Теперь мы должны сделать различие между номерами UNDIALED, которые не были включены в наш первоначальный список, и номерами BUSY, которые мы должны набирать. Файл tlreplac.exe легко с этим справляется.
Нам нужно отметить номера UNDIALED как BLACK, чтобы поместить их в черный список. В результате, ToneLoc не набирает эти номера даже случайно.
C:\tlreplac.exe PRESCAN.DAT UNDIALED BLACK Using Data File: PRESCAN.DAT Marking UNDIALED responses as BLACKLIST. 9600 responses were changed.
Затем мы изменяем отметку номеров BUSY назад к UNDIALED.
C:\tlreplac.exe PRESCAN.DAT BUSY UNDIALED Using Data File: PRESCAN.DAT Marking BUSY responses as UNDIALED. 400 responses were changed.
В результате получаем файл prescan.dat, содержащий несколько номеров, которые мы хотим набрать, и которые правильно отмечены как UNDIALED. Любой другой номер будет игнорироваться. Эти шаги, возможно, показались вам сложными, но их можно тиражировать в простом командном файле (batch).
rem prep.bat rem %1 = area code, %2 = exchange, %3 = text file input PRESCAN.EXE %3 busy TCONVERT PRESCAN.DAT TLREPLAC PRESCAN undialed black TLREPLAC PRESCAN busy undialed copy PRESCAN.DAT %1%2.dat
Далее мы переименовываем prescan.dat так, чтобы указать требуемый междугородный код и АТС, запускаем ToneLoc и ждем ответ.
C:\move prescan.dat 1907836-.dat C:\toneloc.exe 1907836-.dat /M:1907836xxxx
Хотя маска имеет значение xxxx, что обычно означает номера с 0000 до 9999, будут набраны только те телефонные номера из .dat-файла, которые попадают в этот диапазон. Все номера, помещенные в черный список, будут игнорироваться.
Реализация: конфигурирование инструмента THC-SCAN
THC-Scan является, пожалуй, наиболее дружественной DOS-программой, которую мы встречали. Каждая опция на экране выбора конфигурации (см. рис. 16.8) имеет краткое описание каждого параметра.
Возможно, единственное изменение, которое вам надо сделать в меню MODEM CONFIG (Конфигурирование модема), это установить правильный COM-порт, используемый модемом. На рис. 16.9 показано это меню.
Рис. 16.8. Конфигурирование инструмента THC-SCAN
Рис. 16.9. Опции конфигурирования модема
Меню MODEM RESPONSES (Ответы модема) позволяет вам настраивать названия возможных ответов. Интересен столбец, содержащий программу для выполнения. Вы можете определить внешнюю программу, типа HyperTerminal или PCAnywhere. Тогда, если THC-Scan обнаруживает определенную строку ответа, вы можете запустить указанную программу с помощью одной из функциональных клавиш (с F1 по F8). Обратите внимание, что вы должны определить программу в меню EXECUTE CONFIG прежде, чем сможете назначать ее здесь. Кроме того, вы должны придерживаться соглашений DOS 8.3 об именах, так, что если файл находится в каталоге C:\Program Files\..., не забудьте назвать его C:\Progra~1. На рис. 16.10 показано заданное по умолчанию меню ответов модема.
Рис. 16.10. Ответы модема
Вы можете изменить имя файла регистрации, использующегося при сканировании, но обычно проще оставить в этом меню значения, заданные по умолчанию (см. рис. рис. 16.11). Используйте опцию /P в командной строке, чтобы заставить THC-Scan хранить все файлы регистрации в собственном каталоге.
Рис. 16.11. Файлы регистрации
И, наконец, меню MISCELLANEOUS (Разное) важно для установки временной задержки в течение звонка и между звонками.
Реализация: манипулирование файлами .dat инструмента THC-SCAN
Опции /P и /F предусматривают управление файлом и данными из командной строки. Если опция /P указывается с каталогом, например,
/P:555dir, то весь вывод (файлы .dat и .log) будет записан в этот каталог. Опция /F обеспечивает дополнительный вывод в формате, который можно импортировать в базу данных Microsoft Access. Это позволяет вам создавать настроенные по своему усмотрению отчеты, выводить статистические данные и другими способами анализировать большие наборы данных.
Реализация: перемещение по интерфейсу ToneLoc
Набор 1000 номеров занимает длительное время. Маловероятно, что вам потребуется контролировать программу ToneLoc во время набора каждого номера. Однако несколько ключевых команд могут помочь вам отслеживать и отмечать номера по мере того, как ToneLoc терпеливо набирает их из списка. В таблице 16.1 перечислены наиболее полезные команды. Файл tl-ref.doc в дистрибутивах программы ToneLoc содержит полный список.
C | Маркирует текущий набираемый номер как CARRIER. ToneLoc довольно надежен в обнаружении carrier, но, так или иначе, эта опция имеется. |
F | Маркирует текущий набираемый номер как факс. |
G | Маркирует текущий набираемый номер как GIRL (то есть голосовой ответ на телефонный звонок). Вы можете также использовать V. |
K | Ввести и сохранить примечание для текущего номера. |
P | Сделать паузу в сканировании (нажмите любую клавишу для возобновления). |
Q | Выход из программы. |
R | Повторно набрать текущий номер. |
S | Включает или выключает модемный динамик. Это удобно, потому что шум модема, возникающий при подключении, становится через некоторое время раздражающим. |
X | Продлить текущее время ожидания на 5 секунд. |
V | Маркирует текущий набираемый номер как Voice Mail Box (VMB) (Блок речевой почты). |
[ПРОБЕЛ] | Прерывает текущий набор номера и продолжает набор со следующего номера. |
[ESC] | Выход из программы. |
Реализация: перемещение по THC-Scan
THC-Scan также обеспечивает "горячие клавиши" для взаимодействия с текущей сессией сканирования. Так же как в ToneLoc, вы можете маркировать номера по мере их набора. В таблице 16.2 дан список этих опций.
B | BUSY (Занятый). |
C | CARRIER. |
F | FAX (Факс). |
G | GIRL (Голосовой ответ). |
I | INTERESTING (Интересный). |
S | Сохранить определенный комментарий для текущего номера. |
T | TONE (Гудок). |
U | UNUSED (Неиспользованный). (Эта маркировка отличается от UNDIALED (Ненабранный) в инструменте ToneLoc.) |
V | VMB (Voice Mail Box) - блок речевой почты. |
0-3 | Определенное описание 1, 2 или 3. |
[ПРОБЕЛ] | UNINTERESTING (Неинтересный). |
Опция Описание
Конечно, вы можете также управлять модемом и процессом набора. В таблице 16.3 приведен список нужных опций.
М [ENTER] | Повторный набор текущего номера. |
N [TAB] | Переход к следующему номеру без маркировки текущего номера описанием. |
P | Сделать паузу в сканировании. Нажмите любую клавишу для продолжения. Нажмите R ДЛЯ повторного набора, H - "ДАТЬ ОТБОЙ", или N, чтобы "ДАТЬ ОТБОЙ" и перейти к следующему номеру. |
X + | Продлить текущее время ожидания на 5 секунд. |
- | Уменьшить текущее время ожидания на 5 секунд. |
[ESC] | Выйти из программы. |
ALT-O | Выполнить ts-cfg.exe, чтобы изменить конфигурацию. Изменения вступают в силу немедленно. |
ALT-S | Включить или выключить модемный динамик. |
Реализация: сканирование
Если файл конфигурации создан, ToneLoc готов к работе. Его опции командной строки обеспечивают высокий уровень настройки.
ToneLoc [DataFile] /M:[Mask] /R:[Range] /X:[ExMask] /D:[ExRange] /C:[Config] /#:[Number] /S:[StartTime] /E:[EndTime] /H:[Hours] /T /K
Файл данных содержит результаты набора телефонных номеров. Имя файла должно удовлетворять соглашению об именах DOS 8.3 (name.extension). Каждый файл данных (*.dat) содержит результаты набора номеров целой телефонной АТС. Например, номера с 555-0000 до 555-9999 представляют целую АТС из 10000 номеров. Чтобы отслеживать информацию о набранных номерах, надо просто добавлять в имя файла префикс, основанный на номере АТС, например 1907836-.dat. Используйте также опцию /C, чтобы указать собственный файл конфигурации, созданный программой tlcfg.exe.
C:\toneloc.exe 1907836-.dat/C:836-com1.cfg Совет. Использование телефонного номера в качестве префикса в имени файла .dat инструктирует ToneLoc интерпретировать эти числа, как заданную по умолчанию телефонную маску, то есть указывает АТС, которую надо прозванивать. Это устраняет необходимость использовать опции Mask при большом сканировании.
Используйте опции Mask, Range, ExMask и ExRange, чтобы сосредоточить сканирование на определенных частях АТС. Маска представляет собой телефонный номер, содержащий семь цифр, знак X служит меткой-заполнителем, предназначенным для замены. Следующие параметры настройки маски приемлемы для инструмента ToneLoc.
/M:555-XXXX /M:555-1XXX /M:555-X9XX /M:555-XXX7
Во всех приведенных примерах ToneLoc подставляет числа от 0 до 9 вместо каждого X. Если вы используете только опцию /R, ToneLoc предполагает, что название файла .dat является маской, и использует последние четыре цифры, указанные в опции R.
C:\toneloc.exe 1907836-.dat /C:836-com1.cfg /R:0000-9999 C:\toneloc.exe 1907836-.dat /C:836-com1.cfg /R:1000-1999 /R:3000-3999
Используйте опции /X и /D, чтобы исключить целый диапазон номеров. Они полезны при распределении номеров одной АТС между модемами.
Например, если у вас есть четыре модема для прозвона АТС с номерами 1 907 836 xxxx, вы можете звонить одновременно по номерам отдельных частей этого диапазона. В следующей распечатке команд обратите внимание, что вы можете определять опции /D (и /R, и /X) несколько раз в одной командной строке, максимум девять раз каждую опцию.
C:\toneloc.exe 1907836-.dat/C:com1.cfg/M:1907836xxxx/D:2500-9999 C:\toneloc.exe 1907836-.dat/C:com2.cfg/M: 1907836xxxx/D:0000-2499 /D:5000-9999 C:\toneloc.exe 1907836-.dat/C:com3.cfg/M: 1907836xxxx/D:0000-4999 /D:7500-9999 C:\toneloc.exe 1907836-.dat/C:com4.cfg/M:1907836xxxx/D:0000-7499
Приведенная выше запись отводит каждому модему по 2500 номеров для набора.
Опции /S и /E становятся удобными для ограничения сканирования временем, которое не совпадает с обычным рабочим временем. Убедитесь, что вы используете правильный синтаксис, иначе сканирование не будет выполняться в нужное время.
C:\toneloc.exe 1907836-.dat/C:836-com1.cfg/S:6:00p/E:6:00a C:\toneloc.exe 1907836-.dat/C:836-com1.cfg/S:11:00p
На рис. 16.6 показан интерфейс ToneLoc во время набора некоторого диапазона телефонных номеров.
Рис. 16.6. ToneLoc в действии
Реализация: создание файла tl.cfg
Прежде, чем запустить ToneLoc, его необходимо сконфигурирован так, чтобы знать, на каком последовательном (COM) порте искать нужный режим работы, какой временной задержки придерживаться и где хранить результаты. Выполните утилиту tlcfg.exe, чтобы установить эти опции. Она запустит основанный на ASCII-коде графический интерфейс пользователя (GUI), показанный на рис. 16.1. Нажимайте клавишу ENTER, чтобы открыть меню, и клавишу ESC, чтобы выйти из меню. Используйте клавиши со стрелками, чтобы передвигаться между пунктами меню и в пределах каждого пункта.
Рис. 16.1. Утилита конфигурирования ToneLoc, tlcfg.exe
В меню Files вы можете определить собственные названия для каждого из файлов Log, Carrier и Found. Эти файлы содержат результаты набора номера, включая такие ответы, как "занято", "время ожидания истекло" или приглашение на вход в систему. Чтобы следить за несколькими диапазонами номеров, лучше всего назвать их, основываясь на номере соответствующей АТС или на простой мнемонике. Файл Black List содержит список номеров, которые никогда не нужно набирать, типа 911 (Скорая помощь). Alt Screen отображает встроенное справочное меню. Эти опции показаны на рис. 16.2.
Рис. 16.2. Расположения собственных файлов программы ToneLoc
Примечание. ToneLoc является утилитой, написанной для системы DOS, так что вы ограничены соглашениями 8.3 об именах файлов. Необходимо использовать краткие описания.
Из пункта меню ModemStrings вы можете настраивать Hayes-команды (которые также называются AT-командами) для вашего модема. Например, измените префикс набираемого номера с ATDT на ATDT*67, чтобы блокировать ID вызывающего. Вы можете также жестко закодировать другие префиксы набираемого номера, например, ATDT 9,1907, который автоматически выходит на внешнюю линию (9) и набирает междугородний код (1907). Оставьте остальные опции заданными по умолчанию, если только вы не используете очень нестандартный модем. Если, заставляя ToneLoc набирать номер, вы все же столкнетесь с проблемами, перепроверьте опции Init String и Tone Hangup для вашего модема.
Хорошее описание Hayes- команд можно найти на сайте http://www.modemhelp.net/basicatcommand.shtml. На рис. 16.3 показаны доступные команды модема, содержащиеся в меню ModemStrings.
Используйте меню ModemOptions, показанное на рис. 16.4, чтобы определить физические параметры настройки модема, например, COM-порт, к которому он подключен. Если вы не уверены в том, какие значения надо использовать, то в окне Control Panel (Панель управления) в Windows есть резюме этих опций под значком Phone And Modem Settings (Телефон и модем). В большинстве случаев вам надо установить только COM-порт. Один из недостатков программы ToneLoc состоит в том, что она не может управлять несколькими модемами, чтобы выполнять, например, такие задачи, как автоматическое распределение набираемых телефонных номеров между четырьмя модемами. Однако если компьютер имеет четыре модема, по одному на каждом COM-порте, вы можете создавать подобие распределенной нагрузки, сделав четыре файла конфигурации с единственным различием между ними - COM-портом. Мы остановимся на этом более подробно далее. Скорость в бодах - это скорость работы модемов; изменение ее не повлияет на то, как модем соединяется с удаленными модемами.
Рис. 16.3. Команды модема
Рис. 16.4. Опции модема
Обратите внимание на меню ScanOptions. Вам, вероятно, придется настраивать временные параметры Between-Call Delay (Интервалы между звонками) и Wait Delay (Интервалы ожидания). Оба значения задаются в миллисекундах. Увеличьте задержку Between-Call Delay, если кажется, что ToneLoc тормозит модем или не набирает последовательные номера должным образом; обычно, это признак того, что модему требуется больше времени на сброс перед следующим запросом. Параметр Wait Delay чрезвычайно важен. Он задает время, в течение которого ToneLoc ждет ответа. Этот параметр влияет на то, как долго будет происходить сканирование. ToneLoc может обеспечить в среднем набор немногим более одного телефонного номера в минуту с установкой Wait Delay на 45 секунд (45000 миллисекунд); это значит, что для набора 1000 номеров потребуется приблизительно 16 часов.
Неплохо попробовать меньшее число для этого параметра, что-то около 35000. Это позволит поймать модемы, которые предназначены отвечать после первого или второго звонка, но другие модемы будут пропущены. Однако вы всегда можете вернуться и набрать номера, отмеченные как "timeout" (время ожидания истекло), с более длительным временем ожидания.
Чтобы фиксировать данные при обнаружении carriers, удостоверьтесь, что опции Save .DAT Files, Logging to Disk и Carrier Logging установлены на Y. На рис. 16.5 показаны эти опции меню.
Рис. 16.5. Опции меню ScanOptions
После того как вы сконфигурировали ToneLoc с собственными параметрами настройки, сохраните файл на диске. По умолчанию, утилита tlcfg.exe сохраняет файл как tl.cfg. Вы должны переименовать этот файл с каким-нибудь более информативным именем, например, 1907-com1.cfg. Это позволит легче находить его.
Примечание. Tlcfg.exe всегда работает с файлом, имеющим имя tl.cfg. Вы должны будете все время изменять собственные имена файлов на значения, заданные по умолчанию, и обратно, чтобы модифицировать содержимое файлов.
Реализация: запуск THC-Scan
Каждая опция командной строки ToneLoc, за исключением опций /C (смена файла конфигурации) и /T (сообщать только гудки), работает также с инструментом THC-Scan. Одна замечательная функция THC-Scan состоит в том, что он может принимать телефонные номера из текстового файла, что удобно, когда вы должны набирать не согласующиеся диапазоны из нескольких АТС. Задайте текстовый файл (придерживаясь соглашения 8.3 об именах) после символа @.
C:\thc-scan.exe @num_list.txt
Другая особенность инструмента THC-Scan заключается в естественной поддержке распределенного набора номеров. Это дает вам возможность выполнять сеанс на нескольких компьютерах. THC-Scan поставляется с командным файлом netscan.bat в каталоге /misc, который выводит необходимую командную строку для каждого из трех, пяти или десяти различных компьютеров из модемного пула. Вы должны добавить переменную среды, CLIENT, чтобы определить клиентский номер текущего компьютера. Вы можете сделать это из командной строки; однако, возможно, вам придется редактировать переменные CLIENTS (множественное число) и DEEP в файле netscan.bat. THC-Scan запускается немедленно после командного файла, так что удостоверьтесь, что путь к нему указан, и что файл ts.cfg - правильный.
C:\set CLIENT=1 && netscan.bat 9495555 C:\THC-SCAN 1-949555/M:949555 R:0-3333/Q C:\set CLIENT=2 && netscan.bat 9495555 C:\THC-SCAN 2-949555/M:949555 R:3334-6666/Q C:\set CLIENT=2 && netscan.bat 9495555 C:\THC-SCAN 3-949555/M:949555 R:6667-9999/Q Примечание. Все манипуляции с файлом .dat должны быть сделаны вручную.
В предыдущем примере набор номеров целой АТС с 949-555-0000 до -9999 распределен между тремя компьютерами. Обратите внимание, что большую часть работы по управлению модемами и .dat-файлами все еще надо делать вручную. Но этот метод не работает для набора номеров из несочетаемых АТС. В этом отношении, поддержка модемных пулов в THC-Scan не очень сильна.
Технология обработки файлов .dat
ToneLoc подтверждает, что файлы .dat содержат всю информацию, и что необходимо отыскать и обработать эти данные. ToneLoc предоставляет несколько утилит, которые помогают это сделать.
Основная выгода от сохранения результатов сканирования в файлах .dat заключается в возможности вернуться к повторному набору номеров, которые дали некоторые типы ответов. Вспомогательная утилита tlreplac.exe дает вам возможность изменить входы в файл .dat. Файл .dat содержит отдельный байт, соответствующий каждому номеру в телефонном узле, всего 10000 байтов. Каждое число имеет значение, которое соответствует одному из нескольких возможных результатов попытки набора телефонного номера.
BUSY | [1x] | Был обнаружен сигнал "занято". |
VOICE | [2x] | Обнаружен голосовой ответ (в большинстве случаев, это означает наличие факса). |
NODIAL | [30] | Отсутствовал гудок. |
ABORTED | [5x] | Звонок был прерван. |
RINGOUT | [6x] | Достигнуто заданное количество гудков Ringout (установленное файлом tlcfg.exe в ScanOptions). |
TIMEOUT | [7x] | Достигнуто заданное время ожидания, установленное файлом tlcfg.exe в ScanOptions. |
TONE | [8x] | ToneLoc получил гудок. |
CARRIER | [9x] | Была обнаружена carrier. |
EXCLUDE | [100] | Номер исключен из сканирования. |
Утилита tlreplac.exe читает файл .dat и заменяет значение одного типа на другое. Например, вы можете повторно набрать каждый номер, по которому был получен сигнал "занято", вернув его к состоянию еще не набранного.
C:\tlreplac.exe 1907836-.dat BUSY UNDIALED TLReplace; Replace ToneLoc .DAT tone responses with something else by Minor Threat and Mucho Maas, Version 1.0 Using Data File: 1907836.DAT
Marking BUSY responses as UNDIALED. 122 responses were changed.
Когда вы повторно запускаете toneloc.exe с этим файлом .dat, он опять набирает все номера, которые ранее были заняты; то есть вам нет необходимости просматривать весь файл регистрации и вручную отмечать номера, которые будут набраться повторно! Это полезно также для обработки ответов TIMEOUT и RINGOUT.
THC-Scan
Инструмент THC-Scan, также написанный для DOS, собрал в себе лучшие свойства инструмента ToneLoc. Но к нему добавлено несколько новых функций. THC-Scan также управляет телефонными номерами через файлы .dat, хотя их формат уникален. Поскольку для этого инструмента существует подробная документация, мы сосредоточимся на таких примерах, которые демонстрируют новые свойства, или объясняют какие-либо "неписаные правила", которые используются в инструментальных средствах.
Примечание. Если вы получаете сообщение: "Runtime error 200" (Ошибка при выполнении программы 200) при выполнении любого из инструментальных средств THC-Scan, вы должны перекомпилировать исходный файл (если вы можете найти компилятор для Паскаля), выполнить его в эмуляторе DOS (doscmd, dosemu) или использовать Windows XP.
ToneLoc
ToneLoc - это программа автопрозвона для системы DOS, которая упрощает работу с полным телефонным коммутатором на 10000 номеров. Она обеспечивает возможность управления многократными сеансами набора номеров, аннотирования определенных телефонных номеров, запуска собственных программ на некоторые ответы модема, и анализа данных. У программы есть несколько опций командной строки, но вы можете также использовать управляемый с помощью меню интерфейс в ASCII-окне. Прежде чем вы начнете работать с инструментами ToneLoc или THC-Scan (описан далее в этой лекции), модем вашей системы должен быть соответствующим образом сконфигурирован. Одно из лучших свойств этих инструментальных средств состоит в том, что они не требуют специальных драйверов или аппаратных средств, достаточно иметь работающий модем.
Брандмауэры
Все эти инструментальные средства помогают удостовериться в правильности набора правил брандмауэра и производительности системы, находящейся под давлением. Например, вы могли бы запустить утилиту ISIC с высоким процентом недопустимых пакетов, чтобы создать повышенную нагрузку.
# isic -s 172.16.19.12 -d 192.168.0.1 -F75 -V75 -I75
Недопустимые пакеты предназначены для того, чтобы создать более тяжелую нагрузку на брандмауэр. Брандмауэры имеют тенденцию работать эффективно, когда трафик нормален. Как системный администратор, вы должны также беспокоиться о том, как брандмауэр действует в неблагоприятных условиях. Число 75 после опций -F, -V и -I означает, что у 75 % от всех пакетов будут ошибки в версии IP, длине заголовка и подсчете фрагментов. Хотя такая команда не является сигнатурой какой-либо специфической атаки, вызывающей отказ в обслуживании, но она может вызвать подобные эффекты.
Можно параллельно запустить tcpsic, чтобы проверить, как брандмауэр обрабатывает трафик к находящемуся за ним Web-хозяйству.
# tcpsic -s 172.16.19.23,3434 -d 192.168.0.37,80
Теоретически, брандмауэр должен просто сбрасывать недопустимый трафик и переходить к следующему пакету; однако вы можете обнаружить случаи, в которых брандмауэр тратит необычно много времени на определенный номер протокола, фрагмент или недопустимую опцию TCP. Конечно, атака на брандмауэр не является единственной возможностью. В таблице 17.2 показаны другие типы тестов, которые вы можете выполнить.
Нацелен на брандмауэр | Посылайте трафик на IP-адрес брандмауэра или на один из его портов администрирования. |
Подмена IP-адресов | Генерируйте трафик на неподходящий интерфейс. Например, используйте адреса отправителя из адресного пространства 172.16.0.0/16 для интерфейса, который обслуживает сеть 10.1.2.0/24. Этот тест особенно полезен для брандмауэров с несколькими интерфейсами. Кроме того, он может обнаруживать проблемы с правилами брандмауэра, защищающими от обманов, или их отсутствие. |
Нацелен на хосты позади брандмауэра | Пытайтесь передавать трафик через брандмауэр, чтобы посмотреть, останавливает ли он пакеты, сформированные с изъяном. |
Другая полезная методика генерации пакетов для тестов на повышенную нагрузку состоит в использовании случайного заполнителя (rand placeholder) для IP-адреса отправителя. Любое из инструментальных средств комплекта ISIC генерирует случайные IP-адреса, если это указано, даже из резервного адресного пространства. Используйте эту программу, чтобы проверить, как брандмауэр обрабатывает DNS-трафик, включающий 50 % неправильных контрольных сумм UDP.
# udpsic -s rand -d 192.168.0.121,53 -U50
Esic
Буква e в названии esic означает Ethernet-сеть. Этот инструмент передает пакеты со случайными номерами, другими словами, пакеты, основанные не на TCP/IP-протоколе. Это единственный инструмент, который работает ниже уровня IP, поэтому он не может обеспечить генерацию такого же количества недопустимых пакетов.
Использование:
esic -i interface [-s <MAC-адрес отправителя>] [-d <MAC-адрес получателя>] [-p <протокол #> или "rand">] [-r <начальное случайное число>] [-c <# число посылаемых пакетов>] [-l <максимальная длина пакета>] [-m <# число пакетов между распечаткой>]
Использование этого инструмента ограничено, главным образом, тестированием брандмауэров или причинением разрушительного ущерба коммутаторам. Обратите внимание, что заданный по умолчанию MAC-адрес получателя - широковещательный. Это означает, что любой пакет, который вы создаете без использования опции -d, будет передаваться на каждый интерфейс хаба или коммутатора. Это могло бы создавать наплыв пакетов, приводящий к атаке, вызывающей отказ в обслуживании, или к такому потоку, который коммутатор не успевает обрабатывать, таким образом, низводя функцию коммутатора до функции хаба и допуская возможность перехвата трафика. Конечно, потребуется большой трафик, чтобы повлиять на 100-мегабайтный коммутатор.
Icmpsic
Большинство сетей блокируют входящие ICMP-сообщения в своих сетях. Используйте инструмент icmpsic, чтобы посмотреть, как ваше устройство защиты обрабатывает ICMP-трафик, включая трафик, который не попадает в категорию Ping. Нормальный ICMP-трафик обычно состоит из парных ICMP-запросов (echo request) (хост задает вопрос: "Есть ли там кто-нибудь?") и ICMP-ответов (echo reply) (ответ хоста: "Мы и они"). Существуют другие типы ICMP-сообщений, которые охватывают управление доступом и метками времени (timestamp). Большую часть времени весь ICMP-трафик, направленный из интернета в сеть, блокирован. Во внутренней сети утилита ping обычно может искать свободно, так почему бы не исследовать, как устройства обрабатывают чрезмерный ICMP-трафик?
Использование:
icmpsic [-v] [-D]-s <ip отправителя> [, порт]-d <ip получателя> [,порт] [-r начальное случайное число] [-m <максимальная скорость генерации (КБ/с)>] [-p <число генерируемых пакетов>] [-k <пропускаемые пакеты>] [-x <посылать пакет X раз>] Процентные опции: [-F фрагментирование] [-V <Плохая версия IP>] [-I <Опции IP>] [-i <Плохая контрольная сумма ICMP>]
Хотя использование утилиты подразумевает, что вы можете указать порты с помощью аргументов -s и -d, установка номера порта заставляет утилиту icmpsic вместо этого использовать широковещательный (broadcast) адрес. Номера портов не являются частью ICMP-протокола. На уровне IP вы все еще можете генерировать фрагментированные пакеты (-F), пакеты с плохими версиями IP (-V) и пакеты с плохими опциями IP (-I). ICMP является подмножеством протокола IP, поэтому эти опции все еще доступны.
Единственная опция, специфическая для ICMP, позволяет посылать неверную контрольную сумму ICMP-сообщения, которая должна делать полученный пакет недействительным. Во всем остальном, утилита icmpsic генерирует случайные значения для типа и кода сообщения. Эхо-ответ ICMP (echo reply), например, имеет тип 0. Ответ метки времени ICMP (timestamp reply) имеет тип 14. RFC 792 перечисляет большинство типов ICMP-сообщений. Мы настолько педантичны в ICMP-протоколе из-за того, что его часто игнорируют, и он может использоваться как потайной канал (covert channel) (см. лекцию "Черный ход и средства удаленного доступа") или даже в идентификации операционной системы, что основывается на снятии "отпечатков пальцев" стека (stack fingerprinting) (http://www.sys-security.com/archive/papers/ICMP_Scanning_v2.5.pdf).
Iptest
Утилита Iptest формализует типы тестов, которые комплект isic выполняет свободно. У нее много различных опций, которые вы можете использовать, чтобы сгенерировать результаты очень узкоспециализированного тестирования, типа случайных значений TTL в заголовке IP или TCP-пакетах с порядковыми номерами пакетов, попадающих на определенные разрядные границы. Это тестирование выросло из проекта Unix IP Filter (http://coombs.anu.edu.au/ipfilter/). Фильтр IP является брандмауэром и программным обеспечением NAT для ядра BSD и Linux 2.0.x (плюс версии для Solaris, HP-UX и QNX). Его первоначальная цель заключалась в проверке на устойчивость брандмауэра к ошибкам в критических сетевых условиях.
Isic
Утилита ISIC имеет дело с тестами IP-уровня, включая IP-адреса отправителя и получателя, номер версии IP и длину заголовка. Когда вы запускаете программу ISIC, она действует как пакетная пушка, выбрасывая IP-пакеты в сеть с максимальной скоростью. Некоторые из этих пакетов преднамеренно искажены. Используйте процентные опции, чтобы изменить соотношение между дефектными и хорошими пакетами.
Использование:
isic [-v] [-D] -s <ip отправителя> -d <ip получателя> [-p <количество генерируемых пакетов>] [-k <пропущенные пакеты>] [-x <посылать пакет X раз>] [-r <случайное начальное число>] [-m <максимальная скорость генерации (КБ/с)>] Процентные опции: [-F фрагментирование] [-V <Плохая версия IP>] [-I <Случайная длина заголовка IP>]
Например, вы можете посмотреть, как шлюз обрабатывает большое количество искаженных пакетов, чтобы определить влияние DoS-атак на пропускную способность сети. Следующая команда посылает пустые IP-пакеты с адреса 192.168.0.12 на адрес 192.168.0.1. В процессе генерации трафика 10% от общего количества пакетов будут содержать неверный номер версии IP (версия, отличная от "4"); не будут генерироваться пакеты, содержащие неподходящую длину заголовка и 50% пакетов будут разделены на фрагменты.
# isic -s 192.168.0.12 -d 192.168.0.1 -F50 -V10 -I0 Compiled against Libnet 1.0.2a Installing Signal Handlers. Seeding with 13584 No Maximum traffic limiter Bad IP Version = 10% Odd IP Header Length = 0% Frag'd Pcnt = 50% 1000 @ 6192.1 pkts/sec and 3036.2 k/s 2000 @ 5175.3 pkts/sec and 2109.4 k/s 3000 @ 6040.3 pkts/sec and 2208.7 k/s 4000 @ 6009.8 pkts/sec and 2329.2 k/s 5000 @ 6072.4 pkts/sec and 2335.6 k/s 6000 @ 5325.1 pkts/sec and 2018.3 k/s 7000 @ 6170.7 pkts/sec and 2327.2 k/s
Статистические данные пакетов выводятся для групп в тысячу пакетов. В предыдущем примере ISIC генерирует приблизительно 6000 пакетов в секунду, что грубо соответствует производительности в 2-3 Мбит/с. Помните, 50% от всех этих пакетов фрагментированы и требуют, чтобы брандмауэр (или принимающее устройство) восстанавливал пакеты, что может быть слишком интенсивной нагрузкой на процессор или память, или даже привести к обходу системы обнаружения вторжений.
Другие 10% от общего количества пакетов имеют неправильный номер версии IP. К счастью, стек принимающей сети опускает эти пакеты с минимальным влиянием на систему.
Если вы хотите ограничить производительность утилиты ISIC, сожмите ее с помощью опции -m. Это ограничит скорость генерации пакетов определенным количеством килобайт в секунду. Это можно сделать иначе, используя опцию -p, ограничивая отправку определенным числом пакетов.
Никакое тестирование не пойдет впрок, если вы не сможете повторить ввод или сделать запись результатов. Опция -D позволяет регистрировать содержание каждого пакета по мере его выхода в сеть.
192.168.0.12 -> 192.168.0.1 tos [27] id [0] ver [4] frag [0] 192.168.0.12 -> 192.168.0.1 tos [250] id [1] ver [4] frag [56006] 192.168.0.12 -> 192.168.0.1 tos [34] id [2] ver [4] frag [0] 192.168.0.12 -> 192.168.0.1 tos [213] id [3] ver [4] frag [39249] 192.168.0.12 -> 192.168.0.1 tos [249] id [4] ver [4] frag [0] 192.168.0.12 -> 192.168.0.1 tos [91] id [5] ver [4] frag [0] 192.168.0.12 -> 192.168.0.1 tos [26] id [6] ver [4] frag [0]
На первый взгляд, это может показаться не очень полезным, но взгляните на поле IPID. Каждый последующий пакет увеличивает это значение на единицу. Следовательно, вы можете просмотреть файл регистрации, например брандмауэра, чтобы увидеть, какой именно пакет вызвал ошибку. Посмотрите раздел "Советы и уловки" далее в этой лекции, чтобы познакомиться с множеством примеров того, как отслеживать ошибки.
Совет. Добавьте опцию -D, чтобы получить список, содержащий информацию об отладке (содержание пакета) для любого из пакетов *sic.
ISIC: инструмент для проверки работоспособности IP-стека
Проверка IP-стека своей системы Windows, Linux, Mac или BSD могла бы выглядеть чисто академическим занятием. В конце концов, не так легко делать отладку сетевого кода операционной системы, независимо от того, имеете ли вы исходный текст. С другой стороны, выполнение нескольких тестов в отношении брандмауэров, маршрутизаторов или других хостов, являющихся оплотом защиты вашей сети, дают некоторое полезное представление о том, как каждое устройство реагирует на разнообразный трафик. Это важно при тестировании списков управления доступом, мер защиты от надувательства (anti-spoofing) и сопротивления некоторым типам атак, вызывающим отказ в обслуживания (Denial-of-Service).
Инструмент nemesis предназначен для создания
Инструмент nemesis предназначен для создания собственных IP-пакетов. В отличие от утилит isic и Iptest, которые автоматически генерируют хорошие и вредные пакеты, nemesis может изменять любую часть пакета. Утилита основана на библиотеке libnet, но ее легче использовать, чем libnet или libpcap, потому что она не требует никакой манипуляции на уровне сокета. Вместо написания и отладки программ на языке C, вы можете быстро настроить сценарий командного интерпретатора. Вам надо только определить содержимое данных в командной строке; nemesis сам создает и посылает пакет.
Реализация
Комплект ISIC постоянно находится в каталоге /security дистрибутива BSD или может быть загружен с сайта http://www.packetfactory.net/Projects/ISIC/. Он основан на использовании библиотеки создания пакетов libnet, которая должна быть установлена на вашей системе. Приложение ISIC представляет собой комплект из пяти программ: ISIC, tcpsic, udpsic, icmpsic и esic. Каждая из этих программ генерирует различные типы допустимых и недопустимых пакетов для протоколов IP, TCP, UDP, ICMP и ARP. Это дает возможность тестировать не только общие сетевые протоколы (IP), но также и более специфические.
Все тесты требуют четырех опций для определения отправителя и получателя каждого пакета. IP-адрес отправителя определяется опцией -s; получатель всегда задается последним аргументом (без флага опции).
# iptest -s 172.16.34.213 192.168.12.84
Если IP-адрес отправителя не принадлежит физической сетевой карте (NIC), использующейся для генерации трафика, вам может понадобиться определить также сетевой интерфейс (-d) и шлюз (-g) в командной строке.
# iptest -s 10.87.34.213 -d le0 -g 192.168.12.1 192.168.12.84
Затем вы можете позволить инструменту Iptest пройти весь список встроенных тестов, или выбрать более узко направленные тесты с помощью опций -n и -pt, где n - число в интервале от одного до семи, а t - номер "точечного теста" (point test) для соответствующего n. Другими словами, вы выбираете опцию между единицей и семеркой. Например, опция пять (-5) содержит большинство TCP-тестов. В пределах пятой опции есть восемь точечных тестов (-p). Окончательно команда, предназначенная для выполнения пятой опции с ее первым точечным тестом, будет выглядеть следующим образом:
# iptest -s 10.87.34.213-d le0-g 192.168.12.1 -5 -p1 192.168.12.84
В этом примере будут проверены все комбинации флагов TCP. В таблице 17.3 описаны более полезные опции меню.
Опции iptest | ||
-1 | 7 | Генерирует пакеты с фрагментами нулевой длины. |
-1 | 8 | Создает пакеты длиной более 64 килобайт после сборки. Это могло бы вызвать переполнение буфера в плохих сетевых стеках. |
-2 | 1 | Создает пакеты с длиной опции IP, которая больше, чем длина пакета. |
-6 | n/a | Генерирует фрагменты пакета, которые перекрываются при реконструкции. Это может наносить ущерб менее устойчивым стекам TCP/IP. Если вы используете этот тест, выполняйте его отдельно от других. |
-7 | n/a | Генерирует 1024 случайных IP-пакета. Поля IP-уровня будут правильны, но данные пакета - случайны. |
Опции UDP теста | ||
-4 | 1,2 | Создает длину полезной нагрузки UDP протокола, которая меньше (1) или больше (2), чем длина пакета. |
-4 | 3,4 | Создает UDP-пакет, в котором номер порта отправителя (3) или получателя (4) попадает на границу байта: например, 0, 1, 32767, 32768, 65535. Этот тест может обнаружить граничные (off-by-one) ошибки. |
Опции ICMP теста | ||
-3 | с 1 по 7 | Генерирует различные нестандартные ICMP-типы и коды. Может выявить ошибки в списке контроля доступа ACL, которые, как предполагается, блокируют ICMP-сообщения. |
Опции TCP теста | ||
-5 | 1 | Генерирует все возможные комбинации флагов опций TCP. Этот тест может выявить логические проблемы в способах, которыми стек TCP/IP обрабатывает или игнорирует пакеты. |
-5 | 2,3 | Создает пакеты, в которых номера пакетов (2) и номера подтверждения (3) попадают на границы байта. Этот тест может выявить граничные (off-by-one) ошибки. |
-5 | 4 | Создает SYN-пакеты различных размеров. SYN-пакет с нулевым размером является повсеместным пакетом сканирования порта. Система обнаружения вторжений или брандмауэр должны отслеживать все виды SYN-пакетов, соответствующих подозрительной деятельности. |
-5 | 7,8 | Создает пакеты, в которых номер порта отправителя (7) или порта получателя (8) попадает на границу байта. Например, 0, 1, 32767, 32768, 65535. Может выявить граничные ошибки (off-by-one). |
Комплект nemesis содержит утилиты, предназначенные для создания пакетов и пакетных данных для протоколов ARP, DNS, ICMP, IGMP, OSPF, RIP, TCP и UDP. Каждая утилита называется соответственно nemesis-<протокол>, где <протокол> - один из восьми поддерживаемых типов протокола. Например, nemesis-dns имеет дело с созданием DNS-пакетов, в то время как nemesis-tcp создает пакеты для TCP-трафика. Вы можете выполнить общую отладку сети и тестирование с помощью инструментальных средств nemesis-udp и nemesis-tcp. Другие инструментальные средства приспособлены для тестирования более специализированных протоколов или служб.
Требуется некоторое время, чтобы начать создание пакетов с помощью nemesis, но как только вы создадите каркас, в нем будет просто производить небольшие изменения. Каждое из инструментальных средств комплекта nemesis требует основных IP-опций. Каждое из инструментальных средств поддерживает следующие опции.
Опции IP:
-S <IP адрес отправителя> -D <IP адрес получателя> -I <IP ID (идентификатор)> -T <IP TTL (время жизни дейтаграммы)> -t <IP tos (тип сервиса)> -F <IP frag (смещение фрагмента)> -O <Опции IP>
Опции Data Link:
-d <Устройство Ethernet> -H <MAC-адрес отправителя> -M <MAC-адрес получателя>
Утилита nemesis-tcp может быть особенно полезна при составлении общей картины атак, называемых "reply attacks", за счет анализа пакетов, которые вы перехватили в сети. Например, чтобы подделать сеанс TCP, вам нужно знать не только одноранговый (peer) IP-адрес и номер порта, но также и порядковый номер пакета (SEQ) и номер подтверждения (ACK). Таким образом, вы можете обрабатывать любую часть трехэтапного квитирования при установлении связи по TCP. Утилита nemesis-tcp поддерживает следующие специфические для TCP опции.
Опции TCP:
[-x <порт отправителя>] [-y <порт получателя>] -f <Опции флагов TCP> -fS SYN,-fA ACK,-fR RST,-fP PSH,-fF FIN,-fU URG -w < Размер окна> -s <номер SEQ> -a <номер ACK> -u <TCP urgent pointer (указатель срочности)> -P <Файл полезной нагрузки (двоичный или ASCII)> -v VERBOSE (Подробный - вывод структуры пакета на стандартное устройство stdout) Совет. Помещайте опции TCP флага (-f) перед опциями порта (-x, -y).
Советы и уловки
Комплект инструментов ISIC предназначен не для эзотерических сетевых тестов. Каждому инструменту соответствуют определенные сценарии, для которых он полезен. В таблице 17.1 перечислен каждый инструмент и некоторые примеры сценариев тестирования.
ISIC | Брандмауэры. Маршрутизаторы. Хосты защитного бастиона (Web-серверы, DNS-серверы, почтовые серверы). |
tcpsic | Брандмауэры (особенно, интерфейс администрирования). Маршрутизаторы (особенно, интерфейс администрирования). Важные службы (22: SSH, 25: SMTP, 80: HTTP, 443: HTTP, 8080: proxies). |
udpsic | Важные службы (53: DNS). |
icmpsic | Маршрутизаторы. Брандмауэры. |
esic | Брандмауэры. Маршрутизаторы. Коммутаторы (включая атаки трафика повышенной интенсивности, которые могут дать возможность прослушивания сети). |
Tcpsic
Приставка TCP в названии утилиты указывает на то, что она предназначена для генерации случайных TCP-пакетов и данных. Ее использование подобно использованию программы ISIC, но вы можете также указывать порты получателя и отправителя. Это дает вам возможность тестировать службы Web (порт 80), почты (порт 25) или VPN (несколько портов) в дополнение к тестированию системы. Обратите внимание, что у tcpsic добавлены другие процентные опции для хорошего и плохого трафика, который она генерирует.
Использование:
tcpsic [-v] [-D] -s <ip отправителя> [, порт] -d <ip получателя> [, порт] [-r начальное случайное число] [-m <максимальная скорость генерации (КБ/с)>] [-p <количество генерируемых пакетов>] [-k <пропускаемые пакеты>] [-x <посылать пакет X раз>] Процентные опции: [-F фрагментирование] [-V <Плохая версия IP>] [-I <Опции IP>] [-T <Опции TCP>] [-u <срочные данные>] [-t <контрольная сумма TCP>]
Не забудьте ставить запятую между номером порта и IP-адресом. Если вы опускаете номер порта, то tcpsic выбирает случайный порт для каждого пакета.
# tcpsic -s 192.168.0.12,1212 -d 192.168.0.1,80
Udpsic
Утилита udpsic также позволяет определять порты наряду с IP-адресами отправителя и получателя. У протокола UDP нет таких возможностей, как у TCP, и меньше процентных опций, которые нужно определять.
Использование:
udpsic [-v] [-D]-s <ip отправителя> [,порт]-d <ip получателя> [,порт] [-r начальное случайное число] [-m <максимальная скорость генерации (КБ/с)>] [-p <число генерируемых пакетов>] [-k < пропускаемые пакеты >] [-x <посылать пакет X раз>] Процентные опции: [-F фрагментирование] [-V <Плохая версия IP>] [-I <Опции IP>] [-U <Контрольная сумма UDP>]
UDP составляет меньшую часть IP-трафика. Обычно он относится к DNS-трафику.
# udpsic -s 192.168.0.12,1212 -d 192.168.0.1,53
Однако этот инструмент может также использоваться для тестирования серверов, выполняющих протоколы поточной передачи (streaming) типа протоколов, использующихся в медиа-серверах (media servers) и в сетевых играх.
Управление пакетами
Каждый инструмент поддерживает опции -m, -p, -k и -x, чтобы управлять созданием пакета и пропускной способностью. Используйте опцию -m, чтобы ограничить максимальную пропускную способность, которую пробует использовать инструмент ISIC. Эта опция может быть полезна для установления базовой нагрузки против сервера (например, маршрутизатора) или службы (например, HTTP). Например, по следующей команде никаких вредных пакетов не генерируется, но посылается устойчивый трафик в 1000 Кбит/с к Web-серверу.
# tcpsic -s rand -d 192.168.0.37,80 -m 1000 -F0 -V0 -I0 -t0
Этот тест может также показать, как брандмауэр регистрирует трафик при тяжелых нагрузках. Если бы это была атака, вызывающая отказ в обслуживании, но полная информация была зафиксирована только для первых нескольких подключений, то вы не можете быть уверены, что очевидное нападение не прикрывает сфокусированную атаку на Web-сервер. Также удостоверьтесь, что у брандмауэра достаточно пространства на диске для хранения файлов регистрации.
Опция -p предписывает ISIC посылать установленное число пакетов и затем останавливаться. Опция -k заставляет isic пропускать заданное число пакетов. Например, следующая команда генерирует 100000 пакетов, но опускает первые 50000.
# icmpsic -s rand -d 192.168.0.12 -p100000 -k50000
За пределами командной строки
Инструменты isic и nemesis обеспечивают полный набор функциональных возможностей, которые могут быть быстро вставлены в сценарии командного интерпретатора (shell), программы Perl или отдельные командные строки. Они также снимают проблемы отладки собственных C или C++ программ, так как переменные, указатели памяти и сетевая адресация обрабатываются без участия пользователя. С другой стороны, у вас также появляется возможность покопаться во внутренностях этих программ и написать свои собственные программы генерации пакетов, основываясь на библиотеках libnet или libpcap.
<
ARP
Таблица протокола ARP (Address Resolution Protocol) показывает взаимное соответствие между физическими MAC-адресами машин (Media Access Control), то есть адресом Ethernet-карты и IP-адресами в подсети. Поскольку большинство сетей не защищают местную подсеть путем связывания определенного MAC-адреса с IP-адресом с помощью коммутатора, то любой может изменить ARP-таблицу или IP-адрес и вызвать разрушение. Это происходит, например, когда один служащий выдает себя за другого во внутренней сети. Используя команду ARP, вы увидите, каким IP-адресам соответствовали определенные MAC-адреса, и это может помочь вам выследить пользователя-жулика.
Инструмент ARP устанавливается с операционными системами Windows NT и 2000 и расположен в каталоге C:\winnt\system32\arp.exe.
Auditpol
Команда Auditpol является одной из тех команд, которые могут определять последующие команды, выполняющиеся в системе. Auditpol перечисляет политику аудита локальной системы, если ее выполняют без каких-либо параметров. Если политика аудита не включена или установлена неправильно, то следующие команды не дадут ничего полезного для расследования. Утилиту Auditpol можно найти в комплекте ресурсов (Resource Kits) систем Windows NT и 2000, распространяемых компанией Microsoft.
У Auditpol много функций, таких как изменение политики, которые не обсуждаются в этом разделе, но они могут быть полезны для системного администратора. Здесь мы покажем способность этой команды просматривать политику аудита.
Совет. Убедитесь, что у вас правильная версия утилиты Auditpol, предназначенная для операционной системы машины-жертвы. Утилита Auditpol системы Windows NT не подходит в точности для машины с системой Windows 2000, потому что различные операционные системы имеют различные характеристики аудита.
CMD.EXE
Встаньте на время на место взломщика. Вы хотите скрыть свой несанкционированный доступ к учетной записи системного администратора. Если вы поместите измененную версию командной оболочки на взломанном сервере, которая скрывает сетевые подключения, происходящие с вашего атакующего компьютера, вы сможете развить свою атаку дальше.
Теперь поставьте себя снова в положение человека, отвечающего на атаку. Поскольку командная оболочка может быть изменена (так обычно случается после того, как учетная запись администратора была взломана), то человек, отвечающий на атаку, не может доверять ее выводу. Поэтому, при расследовании инцидента мы должны принести свою собственную оболочку.
Надежная командная оболочка - это файл cmd.exe, который расположен в каждой системе Windows NT или 2000 в каталоге C:\winnt\system32\cmd.exe.
DIR
Команда каталогов (dir) не является настоящей программой, которую вы можете скопировать на свой компакт диск, содержащий инструменты для "живого ответа". Это команда интерпретируется в программе командной оболочки (cmd.exe). В этом разделе приведены опции командной строки, которые вам потребуются для сбора информации, касающейся последних обращений к системе, последних изменений и времени создания или модификации файлов на машине-жертве.
Поскольку вы захотите фиксировать информацию о машине-жертве в таком порядке, когда в первую очередь собираются наиболее "коротко живущие" данные, то сначала вы получите сведения о самом последнем обращении к системе. Затем вы зафиксируете временные метки последних модифицированных файлов, а затем метки последних созданных файлов. Мы рекомендуем выполнить эту команду где-то в начале вашего расследования так, чтобы вы имели хороший набор временных меток в случае, если они будут изменены в процессе вашего ответа на атаку взломщика.
Совет. Необходимо фиксировать временные метки как можно раньше, потому что это может оказаться единственной хорошей копией, которую вы сможете получить. Например, если в процессе расследования происходит непреднамеренное обращение к файлу, вы можете всегда вернуться к данным с временными метками, которые вы зафиксировали в начале.
Dump Event Log (dumpel)
Инструмент Event Viewer является единственным инструментом, устанавливающимся вместе с основной частью систем Windows NT или 2000, и предназначен для просмотра журнала системных событий. Он имеет графический пользовательский интерфейс (GUI), а инструмент GUI не должен выполняться во время расследования, потому что инструментальные средства GUI затрагивают многочисленные системные файлы жесткого диска машины-жертвы, изменяя метки даты и времени.
Возможно, наилучший метод поиска регистрации системных событий состоит в использовании инструмента Dump Event Log, выполняющегося из командной строки. Этот инструмент делает дамп зарегистрированных событий в удобочитаемом формате для автономного анализа. Этот формат может быть далее импортирован в электронную таблицу и рассортирован по определенным событиям. Инструмент Dumpel поставляется с комплектом ресурсов систем Windows NT и 2000, или его можно загрузить отдельно с сайта http://www.microsoft.com/windows2000/techinfo/reskit/tools/existing/dumpel-o.asp.
Fport
Команда fport - одна из первых команд, которые мы обычно выполняем на взломанном сервере в процессе ответных действий. fport - это бесплатный инструмент, распространяемый компанией Foundstone, Inc, сайт www.foundstone.com. Этот инструмент устанавливает соответствие между каждым открытым TCP- и UDP-портом на машине-жертве и исполняемым файлом, запущенным в системе. Утилиту fport полезно использовать для поиска различных лазеек (backdoor-утилиты скрытого удаленного администрирования), которые могут открыть взломщику более легкий вход в вашу систему.
KILL
Если мы хотим уничтожить процесс с номером 1464, потому что обнаружили взломщика, связанного с этим процессом (из вывода Netstat), то это легко сделать с помощью команды kill. Команда kill поставляется в пакете с комплектом ресурсов (Resource Kit) операционных систем Windows NT или 2000, распространяемых компанией Microsoft.
Loggedon
Всегда полезно знать, кто в настоящее время вошел в систему машины-жертвы. Возможно, вход был сделан не через Web-сервер, а, скорее всего, по NetBIOS. Инструмент Loggedon обеспечит эту информацию. Утилиту Loggedon можно получить на сайте www.sysinternals.com.
Md5sum
После того как информация была передана на компьютер, ведущий судебное расследование, неплохо получить контрольные суммы MD5-результатов. Утилита Md5sum поставляется вместе с пакетом Cygwin, и может быть загружена с сайта www.cygwin.com. Детальное обсуждения пакета Cygwin см. в лекции "Cygwin".
Nbtstat
Nbtstat является инструментом NetBIOS, который также устанавливается с операционной системой Windows. Nbtstat.exe, подобно Netstat, может располагаться в каталоге C:\winnt\system32\nbtstat.exe. Хотя Nbtstat обеспечивает много функциональных возможностей, нас интересует его использование только для перечисления кэша имен NetBIOS в пределах компьютера-жертвы. Кэш имен NetBIOS дает список компьютеров, которые имели соединения по протоколу NetBIOS, то есть через Microsoft Windows File and Print Sharing (Служба совместного использования файлов и печати) в пределах короткого времени, обычно, менее 10 минут. Если в этом списке вы видите машины, которые не ожидали увидеть, вы, возможно, захотите провести дальнейшее расследование, в зависимости от того, расположены ли машины внутри или вне вашей сети.
Netstat
Инструмент Netstat отображает информацию о прослушивании и о текущих сетевых подключениях для машины-жертвы. Эта команда дает информацию о текущих подключениях и прослушивающих приложениях, которая помогает обнаружить подпольную деятельность и черный ход (backdoor) на машине-жертве. Инструмент Netstat может располагаться в каталоге C:\winnt\system32\netstat.exe на надежной машине с системой Windows NT или 2000.
NTLast
Конечно, хорошо бы знать, кто в настоящее время имеет доступ к системе, но если преступник в данный момент не активен, а вошел в систему ранее, эту информацию нельзя получить, используя только Loggedon. Чтобы получить такую информацию, мы можем использовать инструмент с NTLast, написанный Дж. Д. Глазером (J.D. Glaser) из компании Foundstone, Inc. Утилиту NTLast можно свободно загрузить с сайта www.foundstone.com.
Примечание. Этот инструмент контролирует события входа в систему и выхода из нее, и сообщает, когда они выполняются. Следовательно, эти события должны регистрироваться в журнале событий, и именно поэтому мы проверяли их в начале с помощью инструмента Auditpol.
Pslist
Распечатка таблицы процессов - это еще одна часть временно хранящейся информации, которую мы хотим зафиксировать. Мы можем сделать это с помощью инструмента Pslist. Распечатка таблицы процессов покажет нам любую деятельность мошенника, например, программы-лазейки (backdoor), анализаторы сетевых потоков (sniffer) и взломщики паролей (password cracker), которые атакующий, возможно, запустил после взлома.
Утилита Pslist обладает многочисленными функциями, которые полезны для системного администратора или разработчика программ, но нужные нам функциональные возможности этого инструмента ограничены простой распечаткой процессов, выполняющихся в системе. Поэтому здесь мы обсуждаем только этот аспект. Утилиту Pslist можно найти на сайте www.sysinternals.com, где она бесплатно доступна для загрузки. Пожалуйста, посмотрите в лекции "Средства ревизии Windows" более детальное обсуждение комплекта PsTools, который содержит Pslist.
Реализация
Первым инструментом, который необходим в вашем комплекте средств "живого ответа", будет надежная командная оболочка. После того как вы вошли на машину-жертву, выберите Start/Run, а затем наберите следующую команду:
D:\cmd.exe
Новая командная оболочка появится на диске D:. Все другие команды, обсуждаемые в этой лекции, будут выполнены внутри этой надежной командной оболочки. Любые команды, используемые здесь, будут считаться надежными, потому что они не выполняются через ненадежную командную оболочку (расположенную в C:\winnt\system32\cmd.exe) взломанного сервера.
Утилиту fport легко использовать из командной строки:
D:\> fport
fport возвращает информацию, подобную следующей (эта специфическая информация получена из машины, которая обсуждается в разделе "Пример из жизни" в конце этой лекции).
FPort v1.31 - TCP/IP Process to Port Mapper Copyright 2000 by Foundstone, Inc. http://www.foundstone.com Securing the dot com world Pid Process Port Proto Path 600 tcpsvcs -> 7 TCP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 9 TCP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 13 TCP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs- -> 17 TCP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 19 TCP C:\WINNT\System32\tcpsvcs.exe 1076 inetinfo -> 21 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 1076 inetinfo -> 25 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 972 wins -> 42 TCP C:\WINNT\System32\wins.exe 1036 dns -> 53 TCP C:\WINNT\System32\dns.exe 1076 inetinfo -> 80 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 440 svchost -> 135 TCP C:\WINNT\system32\svchost.exe 8 System -> 139 TCP 1076 inetinfo -> 443 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8 System -> 445 TCP 600 tcpsvcs -> 515 TCP C:\WINNT\System32\tcpsvcs.exe 8 System -> 548 TCP 492 msdtc -> 1025 TCP C:\WINNT\System32\msdtc.exe 808 MSTask -> 1026 TCP C:\WINNT\system32\MSTask.exe 600 tcpsvcs -> 1029 TCP C:\WINNT\System32\tcpsvcs.exe 1036 dns -> 1034 TCP C:\WINNT\System32\dns.exe 972 wins -> 1036 TCP C:\WINNT\System32\wins.exe 1076 inetinfo -> 1038 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 8 System -> 1041 TCP 8 System -> 1044 TCP 492 msdtc -> 3372 TCP C:\WINNT\System32\msdtc.exe 924 termsrv -> 3389 TCP C:\WINNT\System32\termsrv.exe 1076 inetinfo -> 3940 TCP C:\WINNT\System32\inetsrv\inetinfo.exe 1464 NC -> 62875 TCP C:\InetPub\Scripts\NC.EXE 600 tcpsvcs -> 7 UDP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 9 UDP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 13 UDP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 17 UDP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 19 UDP C:\WINNT\System32\tcpsvcs.exe 972 wins -> 42 UDP C:\WINNT\System32\wins.exe 1036 dns -> 53 UDP C:\WINNT\System32\dns.exe 600 tcpsvcs -> 67 UDP C:\WINNT\System32\tcpsvcs.exe 600 tcpsvcs -> 68 UDP C:\WINNT\System32\tcpsvcs.exe 440 svchost -> 135 UDP C:\WINNT\system32\svchost.exe 8 System -> 137 UDP 8 System -> 138 UDP 868 snmp -> 161 UDP C:\WINNT\System32\snmp.exe 8 System -> 445 UDP 248 lsass -> 500 UDP C:\WINNT\system32\lsass.exe 616 svchost -> 1030 UDP C:\WINNT\System32\svchost.exe 616 svchost -> 1031 UDP C:\WINNT\System32\svchost.exe 1036 dns -> 1032 UDP C:\WINNT\System32\dns.exe 1036 dns -> 1033 UDP C:\WINNT\System32\dns.exe 972 wins -> 1035 UDP C:\WINNT\System32\wins.exe 236 services -> 1037 UDP C:\WINNT\system32\services.exe 1076 inetinfo -> 1039 UDP C:\WINNT\System32\inetsrv\inetinfo.exe 616 svchost -> 1645 UDP C:\WINNT\System32\svchost.exe 616 svchost -> 1646 UDP C:\WINNT\System32\svchost.exe 616 svchost -> 1812 UDP C:\WINNT\System32\svchost.exe 616 svchost -> 1813 UDP C:\WINNT\System32\svchost.exe 600 tcpsvcs -> 2535 UDP C:\WINNT\System32\tcpsvcs.exe 1076 inetinfo -> 3456 UDP C:\WINNT\System32\inetsrv\inetinfo.exe
Просматривая данные вывода утилиты fport, мы видим, что TCP-порт 62875 открыт, и это подозрительно, потому что он был открыт из исполняемого файла с именем C:\inetpub\scripts\nc.exe. Кроме того, мы видим, что идентификатор ID этого процесса равен 1464. Это нечто такое, что обычно не устанавливается на новой системе, так что процесс заслуживает дальнейшего анализа. Хотя это и очевидно, но все же стоит заметить: путь и имя файла для сервисной программы с PID 1464, в данном случае, выглядят подозрительно, однако взломщик мог бы назвать программу и каким-нибудь более безобидным именем.
Совет. Если вы хотите делать сортировку по портам, используйте ключ, который задан по умолчанию. Если вы хотите, чтобы вывод был рассортирован по приложениям, можно использовать ключ /a. Вы также можете использовать ключ /ap, чтобы сортировать вывод по путям приложения. Ключ /i сортирует по идентификаторам процессов PID.
Использовать этот инструмент довольно просто. Наберите следующую команду, чтобы отыскать подключенные IP-адреса и всю информацию, касающуюся открытых портов взломанной системы:
D:\netstat -an
По флагу -a отображается вся сетевая информация, а флаг -n позволяет DNS-системе не выполнять обратный поиск внешних IP-адресов, перечисленных в выводе.
Следующий вывод был перехвачен после того, как инструмент Netstat был запущен на машине-жертве (в примере, приведенном в разделе "Пример из жизни" (в конце лекции)).
Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:7 0.0.0.0:0 LISTENING TCP 0.0.0.0:9 0.0.0.0:0 LISTENING TCP 0.0.0.0:13 0.0.0.0:0 LISTENING TCP 0.0.0.0:17 0.0.0.0:0 LISTENING TCP 0.0.0.0:19 0.0.0.0:0 LISTENING TCP 0.0.0.0:21 0.0.0.0:0 LISTENING TCP 0.0.0.0:25 0.0.0.0:0 LISTENING TCP 0.0.0.0:42 0.0.0.0:0 LISTENING TCP 0.0.0.0:53 0.0.0.0:0 LISTENING TCP 0.0.0.0:80 0.0.0.0:0 LISTENING TCP 0.0.0.0:135 0.0.0.0:0 LISTENING TCP 0.0.0.0:443 0.0.0.0:0 LISTENING TCP 0.0.0.0:445 0.0.0.0:0 LISTENING TCP 0.0.0.0:515 0.0.0.0:0 LISTENING TCP 0.0.0.0:548 0.0.0.0:0 LISTENING TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING TCP 0.0.0.0:1029 0.0.0.0:0 LISTENING TCP 0.0.0.0:1034 0.0.0.0:0 LISTENING TCP 0.0.0.0:1036 0.0.0.0:0 LISTENING TCP 0.0.0.0:1038 0.0.0.0:0 LISTENING TCP 0.0.0.0:1044 0.0.0.0:0 LISTENING TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING TCP 0.0.0.0:3940 0.0.0.0:0 LISTENING TCP 192.168.1.103:139 0.0.0.0:0 LISTENING TCP 192.168.1.103:1041 0.0.0.0:0 LISTENING TCP 192.168.1.103:1041 192.168.1.1:139 ESTABLISHED TCP 192.168.1.103:62875 0.0.0.0:0 LISTENING TCP 192.168.1.103:62875 192.168.1.1:2953 ESTABLISHED UDP 0.0.0.0:7 *:* UDP 0.0.0.0:9 *:* UDP 0.0.0.0:13 *:* UDP 0.0.0.0:17 *:* UDP 0.0.0.0:19 *:* UDP 0.0.0.0:42 *:* UDP 0.0.0.0:68 *:* UDP 0.0.0.0:135 *:* UDP 0.0.0.0:161 *:* UDP 0.0.0.0:445 *:* UDP 0.0.0.0:1033 *:* UDP 0.0.0.0:1035 *:* UDP 0.0.0.0:1037 *:* UDP 0.0.0.0:1039 *:* UDP 0.0.0.0:1645 *:* UDP 0.0.0.0:1646 *:* UDP 0.0.0.0:1812 *:* UDP 0.0.0.0:1813 *:* UDP 0.0.0.0:3456 *:* UDP 127.0.0.1:53 *:* UDP 127.0.0.1:1030 *:* UDP 127.0.0.1:1031 *:* UDP 127.0.0.1:1032 *:* UDP 192.168.1.103:53 *:* UDP 192.168.1.103:67 *:* UDP 192.168.1.103:68 *:* UDP 192.168.1.103:137 *:* UDP 192.168.1.103:138 *:* UDP 192.168.1.103:500 *:* UDP 192.168.1.103:2535 *:*
Имея эту информацию, мы видим, что открыт порт TCP 62875, так же, как мы увидели это с помощью fport. Кроме того, мы видим, что IP-адрес 192.168.1.1 в настоящее время связан с этим портом. Это говорит о том, что кто-то все еще может находиться на нашей машине!
Можно заметить, что оба IP-адреса находятся в пределах одной и той же сети. На основе этой информации можно сделать два заключения: либо взломщик является "посвященным лицом", либо он взломал другую машину в пределах вашей сети и атакует с этой машины. В обоих случаях, этот сценарий - не из лучших!
Совет. Используйте с инструментом Netstat ключ -r, позволяющий выводить текущую таблицу маршрутизации, которая определяет, как пакеты направляются через машину-жертву. Находчивый взломщик мог бы изменить поток трафика в пределах вашей сети после того, как была взломана одна из машин, и ключ -r засвидетельствовал бы вам этот факт.
Для нашего живого ответа утилита Nbtstat выполняется со следующими опциями:
D:\> nbtstat -c
Ключ -c перечисляет все имена NetBIOS, имеющиеся в настоящее время в кэше машины-жертвы. Поэтому, если какие-либо NetBIOS-подключения были сделаны между какой-либо машиной и машиной-жертвой во время деятельности хакера, они могут быть замечены в выводе утилиты Nbtstat, если они произошли недавно.
Следующий вывод демонстрирует результаты действия этой команды на машине-жертве.
Local Area Connection: Node IpAddress: [192.168.1.103] Scope Id: [] NetBIOS Remote Cache Name Table Name Type Host Address Life [sec] ---------------------------------------------------------------- FREEBSD 20 UNIQUE 192.168.1.1 190
Мы не можем идентифицировать здесь никакой подозрительной деятельности, поскольку IP-адрес 192.168.1.1 является другой надежной системой в пределах той же сети. Однако если этот сервер был действительно взломан, то это может расширить рамки расследования, если между дисками компьютеров, перечисленных в выводе, был разрешен общий доступ.
Инструмент ARP выведет содержание ARP-таблицы, если выполнить следующую команду:
D:\> arp -a
Следующий вывод показывает результаты действий этой команды на машине-жертве:
Interface: 192.168.1.103 on Interface 2 Internet Address Physical Address Type 192.168.1.1 00-bd-e1-f1-01-03 dynamic
Обнаружено, что для IP-адреса 192.168.1.1 физический адрес должен быть 00-bd-e1-f1-01-03. Мы можем использовать эти дополнительные факты для нашего расследования. Если бы мы хотели разыскать IP-адрес 192.168.1.1 в нашей сети, мы бы искали машину с MAC-адресом 00-bd-e1-f1-01-03.
Внимание. Пользователь с достаточными привилегиями может изменять свой собственный MAC- и IP-адрес во многих операционных системах. Это возможно сделать на машинах с любыми системами Windows или Unix.
Утилита Pslist проста в использовании, и вызывается следующей командой:
D:\> pslist
Следующий вывод получен в результате выполнения этой команды на машине-жертве.
PsList v1.12 - Process Information Lister Copyright (C) 1999-2000 Mark Russinovich Systems Internals - http://www.sysinternals.com Process information for VICTIM2K: Name Pid Pri Thd Hnd Mem User Time Kernel Time Elapsed Time Idle 0 0 1 0 16 0:00:00.000 1:51:37.250 1:58:26.698 System 8 8 41 162 136 0:00:00.000 0:00:38.795 1:58:26.698 Smss 156 11 6 36 144 0:00:00.050 0:00:01.361 1:58:26.698 Csrss 184 13 12 453 1352 0:00:05.818 0:00:39.516 1:58:15.633 winlogon 20 13 15 365 2056 0:00:00.831 0:00:05.898 1:58:13.870 services 236 9 32 555 3420 0:00:01.371 0:00:10.004 1:58:10.956 Lsass 248 13 19 304 2252 0:00:00.650 0:00:03.755 1:58:10.816 svchost 440 8 6 230 1328 0:00:00.410 0:00:01.151 1:58:04.156 SPOOLSV 464 8 13 120 1348 0:00:00.330 0:00:01.291 1:58:02.574 Msdtc 492 8 20 152 636 0:00:00.130 0:00:01.351 1:58:01.933 tcpsvcs 600 8 18 276 1144 0:00:00.370 0:00:02.423 1:57:59.039 svchost 616 8 20 427 1236 0:00:01.301 0:00:03.695 1:57:58.838 llssrv 640 9 9 97 720 0:00:00.090 0:00:00.510 1:57:58.308 sfmprint 668 8 2 46 600 0:00:00.080 0:00:00.350 1:57:55.554 regsvc 776 8 2 30 456 0:00:00.010 0:00:00.210 1:57:50.526 mstask 808 8 6 89 700 0:00:00.070 0:00:00.410 1:57:48.053 snmp 868 8 6 247 704 0:00:00.260 0:00:01.832 1:57:46.120 termsrv 924 10 12 118 504 0:00:00.080 0:00:00.560 1:57:43.947 wins 972 8 18 260 1096 0:00:00.170 0:00:01.141 1:57:40.502 dfssvc 996 8 2 36 252 0:00:00.050 0:00:00.120 1:57:39.911 dns 1036 8 12 147 552 0:00:00.060 0:00:00.650 1:57:39.140 inetinfo 1076 8 34 697 7584 0:00:02.733 0:00:14.080 1:57:37.898 sfmsvc 1128 8 7 69 164 0:00:00.060 0:00:00.240 1:57:32.831 explorer 1188 8 11 298 2372 0:00:04.296 0:00:33.968 1:56:15.169 VMTBox 1552 8 2 26 520 0:00:05.417 0:00:00.590 1:56:08.299 mdm 1560 8 3 75 1248 0:00:00.090 0:00:00.460 1:55:50.123 dllhost 948 8 25 307 5500 0:00:02.453 0:00:02.293 1:55:24.947 dllhost 1612 8 10 127 1440 0:00:00.791 0:00:02.082 1:55:23.876 cmd 1712 8 1 24 1132 0:00:04.246 0:01:17.892 1:35:34.786 NC 1464 8 3 158 1364 0:00:00.030 0:00:00.300 0:13:14.352 сmd 352 8 1 136 940 0:00:00.020 0:00:00.110 0:07:01.235 PSLIST 1788 8 2 98 1264 0:00:00.020 0:00:00.210 0:00:00.330
Из этой распечатки мы видим, что NC выполнялся как процесс с номером 1464. Поскольку ранее в выводе утилиты fport мы видели путь, то этот процесс вызывает подозрение. Системный администратор, обычно, не размещает Netcat в каталоге, который доступен с Web-сервера (C:\inetpub\scripts). Поэтому такой процесс служит основанием для проведения дальнейшего расследования. Возможно также, что мы захотим уничтожить все подозрительные процессы за один раз. В данном случае, процесс NC оказался единственным подозрительным в выводе утилиты Pslist.
Команда kill выполняется следующим образом:
D:\> kill <pid>
Мы не рекомендуем уничтожать подозрительный процесс на этой стадии, поскольку вы, возможно, захотите выполнить сетевую слежку с помощью инструментальных средств типа tcpdump, WinDump или Ethereal. (Подробное обсуждение этих сетевых средств мониторинга см. в лекции "Анализаторы сетевых потоков".) Однако иногда обстоятельства требуют, чтобы система была "починена" немедленно. Поэтому вам выбирать, надо ли выполнять эту команду и уничтожать подозрительный процесс.
Последние метки даты и времени, связанные с обращениями к файлам, могут быть найдены с помощью следующей команды, которая сортирует метки даты и времени, а также выполняет рекурсивную распечатку каталога, обращаясь ко всем файлам в системе. Разумно выполнять эту распечатку с правами администратора так, чтобы вы были уверены, что имеете доступ ко всем файлам жесткого диска.
D:\> dir /a /t:a /o:d /s c:\
С ключом /a будут перечислены все файлы, даже скрытые. Ключ /t указывает команде dir, какие временные метки вы хотите видеть. В этом случае параметр a обозначает время последнего обращения. Ключ /o:d сообщает команде, что вы хотите, чтобы вывод сортировался по времени. По ключу /s выполняется рекурсивная распечатка списка файлов, включая подкаталоги (то есть "прочесывается" файловая система). Команда, показанная выше, фиксирует только временные метки с диска C:. Если на вашей машине имеется несколько дисков, вы захотите выполнить несколько таких команд, соответственно изменяя имя диска.
Ниже приведен фрагмент таких временных меток машины-жертвы, соответствующих последним обращениям к файлам:
Directory of c:\Inetpub\scripts
03/21/2002 01:20p 471 upload.asp 03/21/2002 01:20p 5,683 upload.inc 03/21/2002 01:21p 35,600 KILL.EXE 03/21/2002 01:22p 61,440 1.exe 03/21/2002 01:23p DIR .. 03/21/2002 01:23p DIR . 03/21/2002 01:24p 120,320 NC.EXE 5 File(s) 223,514 bytes
Точно так же метки даты и времени, соответствующие последним изменениям файлов, могут быть найдены с помощью следующей команды:
D:\> dir /a /t:w /o:d /s c:\
Ниже приведен еще один фрагмент временных меток машины-жертвы, соответствующих последним измененным файлам:
Directory of c:\Inetpub\scripts
03/21/2002 01:20p 471 upload.asp 03/21/2002 01:20p 5,683 upload.inc 03/21/2002 01:21p 120,320 NC.EXE 03/21/2002 01:21p 35,600 KILL.EXE 03/21/2002 01:22p DIR .. 03/21/2002 01:22p DIR . 03/21/2002 01:22p 61,440 1.exe 5 File(s) 223,514 bytes
И, наконец, метки даты и времени, соответствующие созданию файлов, могут быть получены с помощью следующей команды:
D:\> dir /a /t:c/o:d /s c:\
Ниже приведен фрагмент временных меток машины-жертвы, соответствующих созданию файлов:
Directory of c:\Inetpub\scripts
03/21/2002 10:19a DIR .. 03/21/2002 10:19a DIR . 03/21/2002 01:20p 471 upload.asp 03/21/2002 01:20p 5,683 upload.inc 03/21/2002 01:21p 120,320 NC.EXE 03/21/2002 01:21p 35,600 KILL.EXE 03/21/2002 01:22p 61,440 1.exe 5 File(s) 223,514 bytes
Обратите внимание на новые программы из каталога C:\inetpub\scripts\, которые, по-видимому, ранее там отсутствовали. Эти файлы могут быть переданы на компьютер, использующийся для судебного расследования, а затем их можно анализировать с помощью специальных инструментов, чтобы определить их функциональные возможности.
Чтобы запустить Auditpol, напечатайте следующую команду:
D:\> auditpol
Следующий вывод показывает результаты выполнения команды Auditpol на машине-жертве:
Running ...
(X) Audit Enabled
System = No Logon = Success and Failure Object Access = No Privilege Use = Success and Failure Process Tracking = No Policy Change = Success and Failure Account Management = Success and Failure Directory Service Access = No Account Logon = Success and Failure
Обратите внимание, что аудит был включен. Кроме того, машина-жертва отслеживает отдельные элементы. Так как регистрация входов/выходов в систему работала, то мы сможем выполнить несколько следующих команд (Loggedon и NTLast), чтобы определить, не вернется ли какая-либо интересная информация. Если бы мы обнаружили, что аудит заблокирован, то было бы бесполезно выполнять команду Dumpel для просмотра файла журнала безопасности (security log).
Утилита Loggedon проста в использовании. Чтобы применить ее в сценарии живого ответа, наберите следующую команду:
D:\> loggedon
Следующий скрипт выдает информацию, полученную в инциденте, описанном в разделе "Пример из жизни". Заметьте, что единственный человек, вошедший в систему локально или удаленно - это администратор. В нашем примере, VICTIM2K - это имя NetBIOS нашей системы.
LoggedOn v1.1 - Logon Session Displayer Copyright (C) 1999-2000 Mark Russinovich SysInternals - www.sysinternals.com
Users logged on locally: VICTIM2K\Administrator
No one is logged on via resource shares. Примечание. Хотя при помощи этого инструмента вы не видите других пользователей, вошедших в систему, это не означает, что никто другой не обращается в этот момент к вашей системе. Loggedon указывает только на те входы в систему, которые сделаны в надлежащей последовательности. Если кто-то пробрался в систему через "черный ход" (backdoor), этот инструмент об этом не сообщит.
Чтобы посмотреть наличие успешных входов в систему, инструмент NTLast выполняется с ключом -s, как показано ниже:
D:\> ntlast -s
Чтобы посмотреть наличие неудавшихся входов в систему, используйте ключ -f.
D:\> ntlast -f
Инструмент сообщает время, дату, название учетной записи и начальное имя NetBIOS для успешных или неудавшихся входов в систему, в зависимости от ключа, который вы используете.
В разделе "Пример из жизни" мы выполняли эту команду и получили следующую информацию об успешных входах в систему.
Administrator VICTIM2K VICTIM2K Thu Mar 21 08:20:33pm 2002 Administrator VICTIM2K VICTIM2K Thu Mar 21 12:03:46pm 2002 Administrator VICTIM2K VICTIM2K Thu Mar 21 11:03:12am 2002 Administrator VICTIM2K VICTIM2K Thu Mar 21 10:12:55am 2002
Здесь нет никакой информации, имеющей отношение к случаю, рассмотренному в разделе "Пример из жизни" в конце этой лекции.
В операционных системах Windows 2000 и NT поддерживаются три файла регистрации системных событий.
Файл регистрации системных событий (System Event Log).Файл регистрации событий приложений (Application Event Log).Файл регистрации событий, связанных с безопасностью (Security Event Log).
Эти файлы регистрации системных событий сохраняются в закрытом формате и поэтому не могут легко читаться (если вообще могут), когда машина-жертва автономна. Однако вы можете использовать инструмент Dumpel, чтобы отыскать все три файла регистрации на живой системе. Следующая команда найдет системный файл регистрации:
D:\> dumpel -l system
Следующая команда сделает дамп файла регистрации событий приложений:
D:\> dumpel -l application
Следующая команда сделает дамп файла регистрации событий, связанных с безопасностью:
D:\> dumpel -l security
В нашем примере из жизни файлы регистрации, показанные на рисунках с 18.1 по 18.3, были получены с помощью утилиты Dumpel. После рассмотрения трех файлов регистрации, мы решили, что никакая информация, имеющая отношение к примеру нашего инцидента, не появилась.
увеличить изображение
Рис. 18.1. Файл регистрации системных событий (System Event Log), полученный инструментом dumpel
увеличить изображение
Рис. 18.2. Файл регистрации событий приложений (Application Event Log), полученный инструментом dumpel
увеличить изображение
Рис. 18.3. Файл регистрации событий, связанных с безопасностью (System Event Log), полученный инструментом dumpel
Следующая команда выполнит дамп полного содержимого реестра локальной системы:
D:\> regdmp
В нашем примере, рассмотренном в разделе "Пример из жизни", с помощью Regdmp был сделан дамп системного реестра, который затем был передан на компьютер, выполняющий судебное расследование. Следующий вывод показывает фрагмент системного реестра, извлеченный инструментом Regdmp.
\Registry Machine [17 1 8] HARDWARE [17 1 8] DESCRIPTION [17 1 8] System [17 1 8] Component Information = REG_BINARY 0x00000010 0x00000000 0x00000000 0x00000000 0x00000000 Identifier = AT/AT COMPATIBLE Configuration Data = REG_FULL_RESOURCE_DESCRIPTOR 0x00000054 0xffffffff 0xffffffff 0x00000000 0x00000002 0x00000005 0x0000000c 0x00000000 0x00000000 0x03f50080 0x003f0000 0x0002001f 0x00000005 0x00000018 0x00000000 \ 0x00000000 0x000c0000 0x00008000 0x000e0000 0x00010000 0x000f0000 0x00010000
; Partial List number 0 ; INTERFACE_TYPE Undefined ; BUS_NUMBER -1 ; Descriptor number 0 ; Share Disposition CmResourceShareUndetermined ; TYPE DEVICE SPECIFIC
Как видно, содержание представлено в открытом (plain) тексте, так что информацию в нем можно искать с помощью любого инструмента подходящего типа.
Совет. Для поиска в системном реестре удобно использовать WordPad. Нужно удостовериться, что поиск всех ключевых слов делается в режиме, нечувствительном к регистру.
В результате следующей команды будут найдены <потоковые> файлы на диске C::
D:\> sfind c:\
Если какой-либо <потоковый> файл обнаружится, то будут выведены сообщения. Как правило, мы не посылаем эти сообщения на компьютер, ведущий судебное расследование. Однако если потоковые файлы найдены, то на компьютер, ведущий расследование, мы передаем сами файлы для их дальнейшего анализа.
Следующая команда вычислит контрольную сумму MD5-файлов вывода и сохранит их в файле с именем md5sums.txt на компьютере адресата (компьютер, ведущий расследование):
C:\incident1\> md5sum -b * > md5sums.txt Примечание. Файл md5sums.txt не будет иметь правильную контрольную сумму MD5, которую он объявляет внутри себя, и никогда не будет совпадать с ней. Это происходит потому, что файл записывается в тот момент, когда Md5sum вычисляет контрольную сумму.
Пример из жизни. Сценарий взлома системы Windows
Давайте рассмотрим пример Web-сервера Windows 2000, который был оставлен незащищенным в интернете. Это типичный Web-сервер с некоторым статическим содержанием, оставленный системным администратором без должного обслуживания до тех пор, пока сообщение, содержащее шантаж, не обнаружилось в электронной почте web-мастера. И, как в большинстве случаев всех сегодняшних атак, было сделано предположение, что данная атака произошла через TCP-порт 80 (HTTP), потому что порт 80 был единственным входящим портом, не заблокированным брандмауэром.
Конечно, главный менеджер не верит, что ваша компания была атакована хакерами, и хочет, чтобы вы помогли проверить, что связано с письмом, содержащим шантаж, прежде, чем надлежащие ресурсы будут задействованы в полномасштабном расследовании. (Имейте в виду, что в полномасштабном расследовании вам надо было бы выполнить судебное дублирование процессов, как описано в последующих лекциях.) Короче говоря, вы должны будете выполнить внутреннее расследование, прежде чем контактировать с юридическими органами охраны правопорядка. Поскольку ваша компания решила, что она войдет в контакт с юридическими органами, если атака будет найдена, вы должны быть уверены, что собираете данные в такой манере, которая имеет вес в глазах юридических органов.
Обладая здравым смыслом, вы приступите к делу, вооружившись своим набором инструментов "живого ответа", который находится на заранее приготовленном компакт диске. Большинство программ из вашего набора инструментов "живого ответа" являются инструментами, которые управляются из командной строки. Следовательно, поскольку вы хотите провести расследование на должном юридическом уровне (ведь оно может в дальнейшем получить более серьезное развитие!), вы сохраняете вывод этих команд где-нибудь на другой машине, а не на той, которая была взломана. Сохраняя данные на внешних носителях или на другой машине, вы сводите к минимуму изменения, произведенные на жестком диске машины-жертвы. Таким способом вы сможете потенциально извлечь больше данных в процессе судебного дублирования. Чтобы сохранить эту информацию на другой машине, используйте инструменты Netcat/Cryptcat для передачи информации по сети. Для выполнения этой задачи на компьютере-адресате сначала наберите следующее:
C:\> nc -l -p <Порт компьютера-адресата> > <команда>.txt
Вы знаете, что существуют две возможности для соединения вашего компьютера-адресата с исходной машиной: через "живую" сеть или через перекрестный кабель. Если вы выбираете "живую" сеть, то вы понимаете, что взломщик может попытаться напасть на ваш компьютер-адресат. Следует принять надлежащие меры для обеспечения безопасности компьютера, выполняющего судебное расследование, прежде чем присоединить его к живой сети.
На исходной машине после запуска надежной командной оболочки вы набираете следующее:
D:\> <команда>/nc <IP-адрес компьютера-адресата> <Порт компьютера-адресата>
После того как информация передана, кажется, что обе стороны подключения "зависли". Когда вы будете уверены, что на исходной машине процесс завершен (заголовок окна надежной оболочки cmd.exe возвращается к "CMD"), нажмите CTRL-C.
В результате вывод команды <команда> будет передан по сети, а результаты сохранены в текущем каталоге на судебном компьютере в файле <команда>.txt.
Вы решаете записать сценарий своих действий, потому что видите, что вам придется много раз ходить взад-вперед между машинами. Для выполнения всех необходимых команд и для вывода их на компьютер-адресат вы используете следующий командный файл, с именем response.bat:
@@echo off echo ********************** echo ***** Start Date ***** echo ********************** echo./date echo ********************** echo ***** Start Time ***** echo ********************** echo./time echo *********************** echo ***** netstat -an ***** echo *********************** netstat -an echo ****************** echo ***** arp -a ***** echo ****************** arp -a echo ***************** echo ***** fport ***** echo ***************** fport echo ****************** echo ***** pslist ***** echo ****************** pslist echo ********************** echo ***** nbtstat -c ***** echo ********************** nbtstat -c echo ******************** echo ***** loggedon ***** echo ******************** loggedon echo ****************** echo ***** ntlast ***** echo ****************** ntlast echo ******************************* echo ***** Last Accessed Times ***** echo ******************************* dir /t:a /o:d /s c:\ echo ******************************* echo ***** Last Modified Times ***** echo ******************************* dir /t:w /o:d /s c:\ echo ************************** echo ***** Creation Times ***** echo ************************** dir /t:c /o:d /s c:\ echo ****************************** echo ***** Security Event Log ***** echo ****************************** dumpel -l security echo ********************************* echo ***** Application Event Log ***** echo ********************************* dumpel -l application echo **************************** echo ***** System Event Log ***** echo **************************** dumpel -l system echo ******************** echo ***** ipconfig ***** echo ******************** ipconfig /all echo ******************** echo ***** End Time ***** echo ******************** echo./time echo ******************** echo ***** End Date ***** echo ******************** echo./date
Исходная машина (жертва) в этом сценарии имеет IP-адрес 192.168.1.103, а машина-адресат (судебная) - 192.168.1.10. Чтобы использовать этот сценарий, вы набираете следующую команду на исходной машине.
D:\> response.bat/D:\nc 192.168.1.10 2222
Чтобы получить данные, вы выполняете следующую команду на компьютере-адресате:
C:\> nc -l -p 2222 > response.txt
(Авторы использовали вывод с машины-жертвы в качестве примеров повсюду в этой лекции. Поэтому следующие разделы просто напоминают значение каждого инструмента, примененного в этом сценарии.)
Fport. fport был первым использованным инструментом, который показал, что программа C:\inetpub\scripts\nc.exe прослушивала TCP-порт 62875. Отсюда вы получили путь, порт и идентификатор процесса PID (1464) черного хода (backdoor), который установил взломщик.
Netstat. Инструмент Netstat обеспечил вас информацией о сетевом подключении и возможным IP-адресом взломщика - 192.168.1.103. Вы видели, что взломщик находился в системе в то время, когда вы выполняли свое ответное расследование.
dir. Использование команды dir показало, что файлы 1.exe, upload.asp, upload.inc, kill.exe и nc.exe были загружены в систему в каталог C:\inetpub\scripts. Читая список файлов, имеющих недавние временные метки создания, вы видите, что эти файлы были созданы 21 марта 2002 г., приблизительно в 13:20. Временные метки создания файлов говорят вам о том, когда, предположительно, система была успешно атакована. Это подходящее время и дата для их сверки с вашими журналами регистрации IDS и брандмауэра. Временные метки последних обращений к файлам сообщают вам, когда в последний раз эти файлы были выполнены, или, возможно, когда в последний раз взломщик был в системе.
Теперь вы составляете заключение о своем расследовании. Поскольку с помощью "живого ответа" вы нашли подходящую информацию, вы предполагаете, что взломщик имеет точку опоры в вашей сети. Поэтому, вы докладываете своему главному менеджеру, что факты свидетельствуют о том, что взломщик получил несанкционированный доступ к Web-серверу Windows 2000 и к сети вашей компании. Пришло время обратиться к властям!
<
Regdmp
Вы можете рассматривать системный реестр как большое единое средство регистрации, потому что он содержит всю информацию о конкретной инсталляции Windows и других установленных программах. Эта информация может быть полезна для расследования, и дать дополнительные намеки:
несколько последних адресов, по которым машина связывалась с клиентом telnet;несколько последних использовавшихся документов каждой программы;исполняемые файлы, запускающиеся в момент загрузки машины (обычно программы типа "троянских коней" изменяют системный реестр).
Системный реестр хранится в закрытом (являющемся предметом собственности) формате на жестком диске, и его трудно отыскать, когда система не выполняется, или пока не будут применены коммерческие инструментальные средства, предназначенные для судебного расследования. Однако вы можете использовать инструмент Regdmp, чтобы сделать дамп содержимого системного реестра в удобочитаемой форме. Инструмент Regdmp поставляется с комплектом ресурсов Windows NT и 2000.
SFind
Взломщики могут скрывать свои инструментальные средства на NTFS через механизм, известный как потоковая передача файлов (file streaming). Когда инструментальные средства скрыты таким способом, то файлы, в которых они спрятаны, не изменяются в размерах. Поэтому, если судебное дублирование данных машины-жертвы не выполнено, то инструмент SFind нужно выполнять на этой машине после того, как будут выполнены команды каталога, которые выдают информацию о файлах с тремя типами временных меток. SFind находит все <потоковые> файлы и сообщает о них на пульт. Инструмент SFind бесплатно распространяется компанией Foundstone, и может быть загружен с сайта www.foundstone.com.
Внимание. Инструмент SFind может приводить к непредсказуемым результатам при работе в системе Windows 2000. Исполняемый файл может не прекращать работу и не обнаруживать <потоковые> файлы.
ARP
Таблица ARP (Address Resolution Protocol - Протокол определения адресов) устанавливает соответствие между физическим машинным MAC-адресом Ethernet-карты и соответствующим IP-адресом в подсети. Поскольку большинство сетей не обеспечивают безопасность локальной подсети, связывая определенный MAC-адрес с IP-адресом, используя коммутаторы, то любой может изменить свою ARP-таблицу или IP-адрес и вызвать смуту. Это происходит, например, когда один из служащих маскируется под другого служащего во внутренней сети. Используя команду ARP, вы можете видеть, какой MAC-адрес соответствовал определенному IP-адресу в течение последних нескольких минут, и это поможет вам выследить жулика.
Программа ARP обычно расположена в каталоге /sbin или /usr/sbin, в зависимости от версии Unix, которую вы используете.
Bash
Представьте себе на минуту, что вы взломщик, и хотите поддерживать доступ к системе, которую вы только что взломали. Вы хотите изменить некоторые из системных команд, например, командную оболочку (shell), чтобы скрыть свое присутствие в системе. Если вы сможете модифицировать командную оболочку, чтобы сделать то, что задумали, то поместите ее на взломанной системе.
Теперь вернитесь назад в положение человека, расследующего инцидент. Выполняя ответ на атаку, вы должны точно знать, что не пользуетесь этой поддельной оболочкой; поэтому вам нужно загрузить такую оболочку, которую вы сами скомпилировали и которой доверяете. На большинстве систем Unix-оболочки обычно находятся в каталоге /bin.
Carbonite
Инструмент Carbonite был разработан Кейтом Джонсом (Keith J. Jones) и Кевином Мандиа (Kevin Mandia) в компании Foundstone, Inc. в качестве ответа на комплекты привилегированного доступа к ядру системы -LKM root (loadable kernel module root kit), а конкретнее - на комплект Knark (см. лекцию "Черный ход и средства удаленного доступа"). Его можно загрузить с сайта www.foundstone.com и выполнять на большинстве систем с ядром Linux v2.2 (хотя он был разработан на RedHat и наилучшие результаты показал на подобной системе).
Поскольку процессы могут выполняться без связанных с ними двоичных файлов в файловой системе, традиционное силовое выключение машины уничтожило бы улики. Следовательно, процессы, скрытые с помощью команды kill -31 инструмента Knark, могли бы быть найдены, если бы было возможно проникнуть в ядро и исследовать таблицу процессов. Поэтому один из возможных способов бороться с комплектами LKM root состоит в использовании LKM-решений, в связи с чем и был создан инструмент Carbonite.
Execve_Sniffer
Этот инструмент еще не выпущен публично; его дебют состоится в этой книге. Написанный Кейтом Джонсом (Keith J. Jones) инструмент execve_sniffer в большей степени является программой "доказательства-концепции", чем инструментом, "пригодным для часа пик", но его можно изменить так, чтобы удовлетворить определенные потребности. Инструмент execve_sniffer загружается как модуль ядра. Он "обертывает" системный вызов execve. После того как системный вызов запакован, все запросы к этой функции будут полностью зарегистрированы в виде сообщений ядра.
Чтобы понять, почему это действие важно, вы должны понять системный вызов execve. Каждый раз, когда в системе выполняется команда, командная строка передается в системный вызов execve для выполнения. Когда мы обертываем этот системный вызов, то можем сделать с информацией, которая передается в этот вызов, что захотим (подобно тому, что делает инструмент Knark, описанный в лекции "Черный ход и средства удаленного доступа"). Поскольку мы ребята хорошие, то хотим лишь сообщать о том, какая команда была выполнена, а затем передавать саму команду оригинальному системному вызову execve.
Вся эта работа может показаться неважной, если вы можете поместить в сеть анализатор сетевых потоков (sniffer) и видеть ту же самую информацию, но этот инструмент был разработан в ответ на все увеличивающееся использование Secure Shell (SSH) для шифрования связи. Поэтому запись каждой команды, выполненной в системе, может быть единственной возможностью справиться с шифрованием. Кроме того, мы рекомендуем после установления execve_sniffer скрыть его с помощью инструмента modhide.o, имеющегося в Knark, чтобы преступник его не обнаружил и не попытался выгрузить.
Следующий текст дает пример вывода инструмента execve_sniffer из системы RedHat v6.2 Linux.
Execve Sniffer Inserted execve - user: 0 pid: 769 filename: /sbin/lsmod args: lsmod execve - user: 0 pid: 770 filename: /usr/bin/w args: w execve - user: 0 pid: 771 filename: /usr/sbin/tcpdump args: tcpdump -s 65535 -n -w /tmp/.net execve - user: 0 pid: 772 filename: /bin/dmesg args: dmesg
Как уже упоминалось, этот инструмент борется против команд взломщика, выполняющихся по зашифрованному каналу. Даже если взломщик выполняет команды, и нам не видно, что он набирает (через контроль сети), теперь мы можем видеть полное содержание того, что он выполняет.
Пример из жизни. Сценарий взлома системы Unix
В этом примере мы анализируем систему RedHat v6.2 Linux. На хосте установлена стандартная система RedHat без ненужных служб, которые были заблокированы и удалены.
Взломщик получил доступ через службу rpc.statd, которая распространялась несколько лет назад. Как только взломщик получил доступ в систему, он добавил новых пользователей так, чтобы он мог воспользоваться утилитой telnet в любое время, когда захочет. Этот метод взлома оставляет "отпечатки пальцев" в живом ответе, который мы здесь выполним.
Системный администратор вошел в систему утром и заметил, что файл дневных сообщений (файл /etc/motd) был изменен, и содержит следующее:
"Ваш сайт парализован. Я взломал его. Я планирую удалить файлы, если вы не заплатите мне $4000. Это не шутка. Я крутой парень! Your momma wears combat boots! Подписано, Владимир Дорохов"
Администратор, конечно, покачал головой, решив, что слишком ретивый ребенок решил позабавиться с его системой.
И снова начальство хотело бы иметь подтверждение серьезности этого электронного сообщения прежде, чем они задействуют ресурсы, необходимые для расследования. Вооруженный своим диском, содержащим средства ответа на инциденты, системный администратор начинает "живой ответ".
Примеры, представленные в этой лекции были зафиксированы при использовании данной машины-жертвы. Вернитесь к этим примерам, чтобы освежить в памяти результаты, которые мы получили.
lsof. С помощью команды lsof обнаруживаются два подозрительных процесса: процесс 1, который записывает в файл и открыл "сырой" сокет, и процессы inetd, которые открыли TCP-порт 4375. После дальнейшего анализа файла inetd.conf мы видим, что демон открыл TCP-порт, который связан с привилегированной оболочкой (root shell). Короче говоря, это обеспечивает приглашение к вводу команд, которое не нуждается ни в каких мандатах для входа в систему с привилегированным доступом (поэтому они не обнаруживаются в выводе команд last или w). Для такого входа в систему никогда не должно быть никаких законных причин. Ниже приведена строка из файла inetd.conf:
4375 stream tcp nowait root /bin/sh -h
ls. Команда ls дает нам новую учетную запись пользователя (kjohnson), которая отсутствовала в системе перед тем, как машина была взломана. Каталог содержит исполняемый файл 1, и мы можем видеть, когда он, вероятно, был создан (из последних модифицированных файлов) и выполнен (из файлов, к которым последний раз обращались).
last. Команда last дает нам последнюю ключевую часть информации, потому что мы никогда не видели вход в систему пользователя с именем kjohnson (kjohnson был владельцем процесса 1 и изменил файл /etc/motd). Если файлы регистрации не были изменены, то мы можем предположить, что учетная запись пользователя mpepe использовалась, как черный ход в систему, после того как она была взломана, и пользователь был переключен на kjohnson с помощью команды su.
<
Kill
Если начальство просит нас немедленно исправить ситуацию, мы можем уничтожить подозрительный процесс, запущенный взломщиком (ID 721). Это можно сделать с помощью команды kill. Команда kill установлена по умолчанию в операционных системах Unix и может быть найдена в каталоге /bin.
Last и lastb
Чтобы посмотреть последние входы пользователей в систему на определенной системе Unix, используются команды last и lastb. Команды last и lastb отображают последние, успешные или неудавшиеся, входы в систему, соответственно. Команда last помогает получить свидетельства о фактах неправомочного использования учетной записи в нашей системе, в то время как команда lastb может обнаружить свидетельства использования грубой силы против нашей машины.
Команды last и lastb обычно расположены в каталоге /usr/bin.
Примечание. Большинство версий Unix не предоставляет средство lastb по умолчанию. В частности, в системе Linux для того, чтобы работала команда lastb, нужно предварительно создать файл /var/log/btm командой touch.
Ls
Использование команды ls в Unix подобно использованию команды dir при выполнении живого ответа в Windows. Мы можем использовать ее, чтобы собрать те файлы системы, к которым недавно обращались или которые недавно изменялись. Неплохо выполнить эту команду, чтобы ни одна временная метка в системе не была потеряна на случай, если в процессе живого ответа будет сделана ошибка. Команда ls обычно находится в каталоге /bin.
Совет. По тем же причинам, которые мы приводили в предыдущей лекции, в начале вашего расследования выполните команду ls для получения меток времени и даты.
Lsof
Поскольку для большинства разновидностей систем Unix отсутствует версия netstat, которая поддерживает флаг -p, то для отображения сетевых сокетов, открытых в файловой системе для исполняемых файлов, мы используем инструмент, который называется lsof. В этом отношении, lsof подобен инструменту fport, который был описан в предыдущей лекции. Кроме того, lsof покажет нам все открытые файлы в системе. Инструмент lsof распространяется бесплатно и перенесен почти на все разновидности системы Unix. Хотя lsof имеет множество опций, полезных для обычного системного администратора, в этой лекции обсуждаются только те опции, которые полезны для сценария "живого ответа". Если вам интересно использование других опций, с помощью команды man посмотрите страницы, посвященные утилите lsof. На них этот инструмент широко обсуждается.
lsof доступен на следующих FTP-сайтах:
ftp://vic.cc.purdue.edu/pub/tools/unix/lsof/ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/ftp://ftp.auscert.org.au/pub/mirrors/vic.cc.purdue.edu/lsof/ftp://ftp.web.ad.jp/pub/UNIX/tools/lsof/ftp://ftp.sunet.se/pub/unix/admin/lsof/
Md5sum
После того как вся информация была передана на компьютер, используемый для расследования (судебный), неплохо получить контрольную сумму MD5-вывода. Поскольку на судебном компьютере может быть установлена система Unix (вместо системы Windows, которая демонстрируется в лекции "Компоновка и использование набора инструментов для расследования хакерских атак, то есть для "живого ответа" в системе Windows"), то в этом разделе мы предлагаем правильную нотацию команд для Unix.
Версия Md5sum распространяется с основной операционной системой Linux, и подобная ей версия, md5, распространяется с системой FreeBSD. Инструментальные средства вычисления контрольной суммы MD5 будут обсуждаться снова в лекции "Некоммерческие наборы инструментов, предназначенные для судебного дублирования".
Примечание. Файл "md5sums.txt" не будет иметь правильную контрольную сумму MD5, объявленную в нем самом, и всегда будет давать контрольную сумму MD5, отличную от истинной. Это происходит потому, что в этот файл ведется запись в то время, когда Md5sum вычисляет контрольную сумму.
Netstat
Команда netstat в системе Unix подобна аналогичной команде в системе Windows. Она перечисляет все сетевые подключения, прослушивающие TCP/UDP-порты в системе. Этот инструмент обеспечивает вас данными, которые будут полезны при поиске черных ходов и конечных точек сетевых подключений, связанных с системой жертвы. Netstat обычно находится в каталоге /bin или /usr/bin/, в зависимости от типа системы Unix, которую вы используете.
Ps
Чтобы получить список процессов, в настоящее время выполняющихся в системе, используется команда ps. Эта команда подобна программе Pslist, которую мы обсуждали в лекции "Компоновка и использование набора инструментов для расследования хакерских атак, то есть для "живого ответа" в системе Windows". Мы используем команду ps, чтобы увидеть процессы, запущенные взломщиком, такие как анализаторы сетевых потоков (sniffers), черные ходы для скрытого удаленного администрирования, зомби, вызывающие распределенный отказ в обслуживании, а также взломщики паролей (password cracker), выполняющиеся на машине-жертве.
Команда ps обычно расположена в каталоге /bin.
Реализация
Для запуска надежной оболочки наберите следующую команду:
victim# ./bash Примечание. Оболочка bash - это одна из любимых командных оболочек автора, но можно использовать sh, tsh, csh, или другие оболочки в качестве альтернативы, если они были скопированы с надежной системы.
Следующая команда используется в живом ответе. Обратите внимание, что она выглядит точно так же, как соответствующая команда в Windows:
victim# ./netstat -an
Следующий вывод является результатом команды netstat. Предполагается, что взломанная система имеет IP-адрес 192.168.1.104.
Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:4375 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:98 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:79 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:513 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:514 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:23 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:515 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:113 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:1024 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:518 0.0.0.0:* udp 0 0 0.0.0.0:517 0.0.0.0:* udp 0 0 0.0.0.0:513 0.0.0.0:* udp 0 0 0.0.0.0:1026 0.0.0.0:* udp 0 0 0.0.0.0:1025 0.0.0.0:* udp 0 0 0.0.0.0:704 0.0.0.0:* udp 0 0 0.0.0.0:689 0.0.0.0:* udp 0 0 0.0.0.0:1024 0.0.0.0:* udp 0 0 0.0.0.0:111 0.0.0.0:* raw 0 0 0.0.0.0:1 0.0.0.0:* 7 raw 0 0 0.0.0.0:6 0.0.0.0:* 7 Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 0 [ ACC ] STREAM LISTENING 517 /dev/printer unix 7 [ ] DGRAM 422 /dev/log unix 0 [ ACC ] STREAM LISTENING 682 /tmp/.font-unix/fs-1 unix 0 [ ACC ] STREAM LISTENING 652 /dev/gpmctl unix 0 [ ] STREAM CONNECTED 169 @00000014 unix 0 [ ] DGRAM 853 unix 0 [ ] DGRAM 720 unix 0 [ ] DGRAM 685 unix 0 [ ] DGRAM 636 unix 0 [ ] DGRAM 511 unix 0 [ ] DGRAM 446 unix 0 [ ] DGRAM 434
Здесь мы видим, что порт 4375 открыт и прослушивает подключения. Я знаю, что раньше этот порт не был открыт (потому что являюсь системным администратором), и это необходимо расследовать! Никакие другие порты, упомянутые в результатах netstat, не требуют нашего внимания.
Версия netstat, работающая в системе Linux, позволяет использовать ключ -p, по которому порты прослушивания будут отображены в двоичные файлы, расположенные на диске, который их открывает. Команда выглядит следующим образом:
victim#./netstat -anp
Поскольку большинство разновидностей Unix не поддерживают флаг -p, мы не будем его использовать. Вместо этого в следующем разделе мы используем инструмент lsof, чтобы найти соответствие между открытыми портами и их "родительскими" процессами.
Совет. Если вы заинтересованы в получении таблицы маршрутизации хоста, можете получить ее, добавив ключ -r к утилите netstat.
Команда используется для просмотра ARP-таблицы машины-жертвы. Очень похожа на команду, которая используется при живом ответе в Windows:
victim# ./arp -an
С системы-жертвы возвращается следующая таблица ARP:
? (192.168.1.1) at 00:BD:81:43:07:03 [ether] on eth0
Результаты показывают, что машина с IP-адресом 192.168.1.1 имеет MAC-адрес 00:BD:81:43:07:03. Эта дополнительная часть информации помогает нам при отслеживании адреса 192.168.1.1 из нашей сети, когда мы не регулируем IP-адреса сами. Мы можем проверять каждую машину, пока не найдем MAC-адрес 00:BD:81:43:07:03.
Внимание. Пользователь с достаточными привилегиями может изменять свой собственный MAC- и IP-адрес во многих операционных системах, работая в системах Windows или Unix.
Чтобы собрать файлы, к которым кто-либо обращался в последнее время, выполните следующую команду:
victim# ls-alR --time=atime/
Соответствующие файлы, возвращенные в результате этой команды, показаны в следующем фрагменте. Сначала, мы видим файлы из каталога /etc.
-rw-r--r-- 1 root root 7470 Mar 21 06:32 mime.types -rw-r--r-- 1 root root 1048 Mar 7 2000 minicom.users -rw-r--r-- 1 root kjohnson 196 Mar 22 00:17 motd -rw-r--r-- 1 root root 90 Mar 22 00:23 mtab -rw-r--r-- 1 root root 1925 Feb 9 2000 mtools.conf
Затем мы видим файлы в подкаталоге home каталога /kjohnson:
/home/kjohnson: total 240 drwx------ 2 root kjohnson 4096 Mar 22 00:30 . drwxr-xr-x 7 root root 4096 Mar 22 00:30 .. -rw------- 1 root kjohnson 216 Mar 22 00:18 .bash_history -rw-r--r-- 1 root kjohnson 24 Mar 22 00:18 .bash_logout -rw-r--r-- 1 root kjohnson 230 Mar 21 23:40 .bash_profile -rw-r--r-- 1 root kjohnson 124 Mar 21 23:40 .bashrc -rw-r--r-- 1 root kjohnson 3394 Mar 21 23:39 .screenrc -rwxr-xr-x 1 root kjohnson 210096 Mar 22 00:13 1
Чтобы собрать файлы, которые в последнее время модифицировались, выполняем следующую команду:
victim# ls-alR - time=mtime/
Если команда не сработала, это может означать, что модифицированные файлы уже были отображены по умолчанию (так обстоит дело в системе Linux).
Если файлы, модифицированные в ближайшее время, были показаны по умолчанию, то вместо предыдущей команды можно использовать следующую:
victim# ls-alR/
В результате этой команды были отображены следующие файлы. Сначала видим подозрительные файлы в каталоге /etc.
-rw-r--r-- 1 root root 7470 Mar 21 06:32 mime.types -rw-r--r-- 1 root root 1048 Mar 7 2000 minicom.users -rw-r--r-- 1 root kjohnson 196 Mar 22 00:17 motd -rw-r--r-- 1 root root 90 Mar 22 00:23 mtab -rw-r--r-- 1 root root 1925 Feb 9 2000 mtools.conf
Затем смотрим файлы из подкаталога home каталога /kjohnson.
/home/kjohnson: total 240 drwx------ 2 root kjohnson 4096 Mar 22 00:18 . drwxr-xr-x 7 root root 4096 Mar 21 23:39 .. -rw------- 1 root kjohnson 216 Mar 22 00:18 .bash_history -rw-r--r-- 1 root kjohnson 24 Mar 21 23:39 .bash_logout -rw-r--r-- 1 root kjohnson 230 Mar 21 23:39 .bash_profile -rw-r--r-- 1 root kjohnson 124 Mar 21 23:39 .bashrc -rw-r--r-- 1 root kjohnson 3394 Mar 21 23:39 .screenrc -rwxr-xr-x 1 root kjohnson 210096 Mar 21 23:43 1
Чтобы собрать данные о том, когда изменялась какая-либо информация в пределах inode (структура данных, содержащая разрешения файла; место на диске, где может быть найдена остальная часть файла, а также метки даты и времени), выполняется следующая команда:
victim# ls -alR --time=ctime /
Эта команда даст почти такие же результаты как та, которую мы использовали для получения последних модифицированных файлов в начале этого раздела. Другие результаты могут получиться только в том случае, если были изменены свойства файла без изменения содержимого самого файла.
В подкаталоге home каталога /kjohnson мы видим подозрительный файл с именем 1. Сейчас он может не иметь для нас большого значения, но он будет играть важную роль позже в разделе "Пример из жизни".
Примечание. ctime часто путают с "Creation Time" (Время создания). Не забывайте правильного значения этой команды при расследовании в системе Unix.
Чтобы использовать команду w, наберите следующее:
victim# w
Вывод команды w на нашей машине-жертве выглядит следующим образом:
12:24am up 1:38, 1 user, load average: 0.02, 0.02, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT Root tty1 - 10:44pm 0.00s 0.71s 0.03s w
Поскольку мы вошли в систему в качестве привилегированного (root) пользователя с консоли (обозначено символом "-" в столбце FROM), мы не видим никакой подозрительной деятельности.
Внимание. Хотя в выводе команды w не видно никаких неправомочных учетных записей, мы не можем быть уверены, что взломщик в настоящее время не находится в системе. Пользователь должен завершить процесс правильного входа в систему, а файлы регистрации в системе должны быть неповрежденными, чтобы информация из них показывалась в этом выводе. Обычно черные ходы не пользуются средствами входа в систему, и поэтому в этом выводе их нельзя обнаружить.
В сценарии своего расследования вам нужно сделать дамп всех попыток входа в систему. Это должно выполняться следующей командой (при использовании команды lastb, замените last на lastb):
victim# last
Команда выведет следующие результаты с нашей машины-жертвы:
mpepe pts/0 192.168.1.1 Thu Mar 21 23:37 - 00:24 (00:46) root tty1 Thu Mar 21 22:44 still logged in reboot system boot 2.2.14-5.0 Fri Mar 22 03:42 (-3:-6) root tty1 Fri Mar 22 03:39 - down (00:00) reboot system boot 2.2.14-5.0 Fri Mar 22 03:09 (00:30) reboot system boot 2.2.14-5.0 Thu Mar 21 09:04 (18:36)
wtmp begins Thu Mar 21 09:04:17 2002
Как видим, регистрация входа в систему пользователя kjohnson отсутствует. Мы можем сделать еще несколько заключений: или файлы регистрации были испорчены взломщиком, или он взломал учетную запись mpepe и переключил пользователя, используя команду su, на учетную запись kjohnson.
Используйте следующую команду, чтобы получить список всех открытых сокетов и файлов в системе:
victim# ./lsof -n
Опция -n используется в команде lsof, чтобы не выполнять обратный поиск имен DNS для всех IP-адресов, перечисленных в результатах. В целях нашего расследования, мы стараемся не полагаться на полностью квалифицированные имена доменов, потому что они могут меняться; лучше использовать действующие IP-адреса. Ниже показан вывод этой команды.
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME inetd 721 root cwd DIR 3,2 4096 2 / inetd 721 root rtd DIR 3,2 4096 2 / inetd 721 root txt REG 3,2 21552 35319 /usr/sbin/inetd inetd 721 root mem REG 3,2 340663 146606 /lib/ld-2.1.3.so inetd 721 root mem REG 3,2 4101324 146613 /lib/libc-2.1.3.so inetd 721 root mem REG 3,2 246652 146644 /lib/libnss_files-2.1.3.so inetd 721 root 0u CHR 1,3 65387 /dev/null inetd 721 root 1u CHR 1,3 65387 /dev/null inetd 721 root 2u CHR 1, 65387 /dev/null inetd 721 root 3u IPv4 745 TCP *:39168 (LISTEN) inetd 721 root 4u IPv4 746 TCP 192.168.1.104:39168-192.168.1.1:2028 (CLOSE_WAIT) inetd 721 root 5u unix 0xc2a99980 853 socket inetd 721 root 6u IPv4 748 TCP *:ftp (LISTEN) inetd 721 root 7u IPv4 749 TCP *:telnet (LISTEN) inetd 721 root 8u IPv4 750 TCP *:shell (LISTEN) inetd 721 root 9u IPv4 751 TCP *:login (LISTEN) inetd 721 root 10u IPv4 752 UDP *:talk inetd 721 root 11u IPv4 753 UDP *:ntalk inetd 721 root 12u IPv4 754 TCP *:finger (LISTEN) inetd 721 root 13u IPv4 755 TCP *:linuxconf (LISTEN) inetd 721 root 14u IPv4 756 TCP *:4375 (LISTEN) 1 881 root cwd DIR 3,2 4096 83456 /home/kjohnson 1 881 root rtd DIR 3,2 4096 2 / 1 881 root txt REG 3,2 210096 83461 /home/kjohnson/1 1 881 root mem REG 3,2 340663 146606 /lib/ld-2.1.3.so 1 881 root mem REG 3,2 4101324 146613 /lib/libc-2.1.3.so 1 881 root mem REG 3,2 246652 146644 /lib/ /libnss_files-2.1.3.so 1 881 root 0u CHR 136,0 2 /dev/pts/0 1 881 root 1u CHR 136,0 2 /dev/pts/0 1 881 root 2u CHR 136,0 2 /dev/pts/0 1 881 root 3u sock 0,0 954 can't identify protocol 1 881 root 4w REG 3,2 36864 35934 /tmp/.net
Здесь мы видим, что inetd открыл TCP-порт 4375. Следовательно, мы должны исследовать файл /etc/inetd.conf. Далее мы видим, что исполняемый файл 1 открывает файл с именем /tmp/.net, и этот файл также надо исследовать. Исполняемый файл 1 открывает также "сырой" (необработанный) сокет, как видно из следующей строки:
1 881 root 3u sock 0,0 954 can't identify protocol
Если мы убеждаемся, что этот исполняемый файл открывает "сырой" сокет и обычный файл, то можно предполагать, что исполняемый файл 1 может быть анализатором сетевого трафика (sniffer) (анализаторы сетевого трафика обсуждались в лекции "Анализаторы сетевых потоков").
Когда мы собираем информацию о процессах, мы хотим видеть все процессы, которые в настоящее время выполняются в системе, и какие пользователи ими управляют. Это можно сделать с помощью следующей команды:
victim# ./ps-aux
Ниже показан список процессов нашей машины-жертвы. Обратите внимание, что мы можем видеть время начала каждого процесса, то есть, можем узнать, какие процессы были выполнены вскоре после того, как система была взломана.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.1 0.7 1120 476 ? S Mar21 0:06 init [3] root 2 0.0 0.0 0 0 ? SW Mar21 0:00 [kflushd] root 3 0.0 0.0 0 0 ? SW Mar21 0:01 [kupdate] root 4 0.0 0.0 0 0 ? SW Mar21 0:00 [kpiod] root 5 0.0 0.0 0 0 ? SW Mar21 0:00 [kswapd] root 6 0.0 0.0 0 0 ? SW Mar21 0:00 [mdrecoveryd] bin 319 0.0 0.7 1212 496 ? S Mar21 0:00 portmap root 334 0.0 0.0 0 0 ? SW Mar21 0:00 [lockd] root 335 0.0 0.0 0 0 ? SW Mar21 0:00 [rpciod] root 358 0.0 0.7 1104 480 ? S Mar21 0:00 /usr/sbin/apmd -p root 409 0.0 0.8 1172 552 ? S Mar21 0:00 syslogd -m 0 root 418 0.0 1.2 1440 768 ? S Mar21 0:00 klogd nobody 432 0.0 0.9 1292 628 ? S Mar21 0:00 identd -e -o nobody 435 0.0 0.9 1292 628 ? S Mar21 0:00 identd -e -o nobody 436 0.0 0.9 1292 628 ? S Mar21 0:00 identd -e -o nobody 438 0.0 0.9 1292 628 ? S Mar21 0:00 identd -e -o nobody 439 0.0 0.9 1292 628 ? S Mar21 0:00 identd -e -o daemon 450 0.0 0.7 1144 496 ? S Mar21 0:00 /usr/sbin/atd root 464 0.0 0.9 1328 620 ? S Mar21 0:00 crond root 496 0.0 0.8 1204 532 ? S Mar21 0:00 lpd root 510 0.0 0.8 1156 532 ? S Mar21 0:00 rpc.rstatd root 526 0.0 0.6 1140 408 ? S Mar21 0:00 rpc.rusersd nobody 540 0.0 0.9 1316 612 ? S Mar21 0:00 rpc.rwalld root root 554 0.0 0.8 1132 552 ? S Mar21 0:00 rwhod root 598 0.0 1.7 2128 1124 ? S Mar21 0:00 sendmail: accepti root 613 0.0 0.7 1144 456 ? S Mar21 0:00 gpm -t ps/2 xfs 647 0.0 1.2 1728 808 ? S Mar21 0:00 xfs -droppriv -da root 685 0.0 1.6 2224 1040 tty1 S Mar21 0:00 login - root root 686 0.0 0.6 1092 408 tty2 S Mar21 0:00 /sbin/mingetty tt root 687 0.0 0.6 1092 408 tty3 S Mar21 0:00 /sbin/mingetty tt root 688 0.0 0.6 1092 408 tty4 S Mar21 0:00 /sbin/mingetty tt root 689 0.0 0.6 1092 408 tty5 S Mar21 0:00 /sbin/mingetty tt root 690 0.0 0.6 1092 408 tty6 S Mar21 0:00 /sbin/mingetty tt root 693 0.0 1.5 1716 976 tty1 S Mar21 0:00 -bash root 721 0.0 0.8 1156 520 ? S Mar21 0:00 /usr/sbin/inetd root 881 0.0 1.2 1964 776 ? S 00:14 0:00 ./1 -s 65535 -n - root 975 0.0 1.1 2332 700 tty1 R 00:34 0:00 ps aux
Следующая команда уничтожит процесс с идентификатором <PID>:
victim# ./kill-9 <PID> Примечание. Мы вовсе не рекомендуем исправлять возникшую ситуацию таким способом. Мы упоминаем его только потому, что это вполне возможный вариант, и он успешно применялся в прошлом.
Следующая команда вычислит контрольную сумму MD5-файлов вывода и сохранит их в файле с именем md5sums.txt.
forensic# md5sum-b * > md5sums.txt
В любой момент утилита Md5sum может проверять контрольные суммы MD5 любых файлов, если вы снабдите ее списком этих файлов. Следующая команда проверит контрольные суммы MD5 для списка файлов и сообщит о любом изменении в их содержании.
forensic# md5sum-c md5sums.txt Примечание. В системах *BSD используется команда не md5sum, а md5, и она не требует ключа -b.
Инструмент Carbonite должен компилироваться на системе, имеющей то же ядро, что и машина-жертва. Версию ядра можно, обычно, посмотреть с помощью следующей команды:
victim# uname-a
После того как надежная машина с такой же самой версией ядра, как у вашей машины-жертвы, найдена, разархивируйте содержимое пакета Carbonite и измените каталог в ней. Введите следующую команду, чтобы создать пакет:
forensic# make
Пакет компилируется, и создается файл carbonite.o. Скопируйте этот каталог на машину-жертву надежным способом (через диск или компакт диск). Затем Carbonite нужно установить в ядро, используя команду
victim# ./carbonite.sh Примечание. Возможно, что файл carbonite.sh потребуется отредактировать, чтобы удовлетворить ваши определенные потребности. Например, если вы используете Carbonite в живом ответе, вы захотите указать скрипт в надежной версии загрузчика модуля (insmod) так, чтобы не использовать копию, принадлежащую взломанной машине.
Когда Carbonite внесен в ядро, он временно замораживает систему, пока не выполнит свою миссию. Он создает каталог /tmp/CARBONITE, который будет содержать копию каждого процесса, выполняющегося на машине. Имена копий процессов будут CARBONITE.<Команда><PID>, где <команда> - имя процесса и <PID> - ID процесса.
Создается дополнительный файл, CARBONITE.html, который может быть загружен в Web-браузер. Этот файл подобен файлу, созданному с помощью команды ps (рассматривался ранее), но поскольку он получен в результате прямого входа в ядро, то он более надежен и показывает все процессы, даже если они скрыты с помощью инструмента Knark.
Внимание. Carbonite будет вести запись в среде хоста. Учтите это, если планируете оставить открытой возможность судебного дублирования!
w
Для системы Unix существует команда w, подобная команде loggedon, которую мы использовали с системой Windows. Эта команда отображает всех пользователей, в настоящее время вошедших в систему, и их исходящие IP-адреса. Эта команда полезна при расследовании неправомочного использования учетных записей в системе Unix.
Команда w расположена в каталоге /usr/bin.
Первый инструмент, который мы обсудим
Первый инструмент, который мы обсудим в этой лекции - EnCase - написанный компанией Guidance Software. Этот инструмент широко используется правоохранительными органами и коммерческими предприятиями для судебного дублирования (и, как вы увидите далее, он помогает также на стадии анализа). В этом разделе будет продемонстрирован процесс создания с помощью этого инструмента судебной копии. EnCase можно купить у компании Guidance Software на сайте http://www.encase.com.
Format: создание надежного загрузочного диска
Остальные утилиты, обсуждаемые в этой лекции, требуют надежного загрузочного диска. Для этого вам не нужен специальный инструмент; вместо этого можно использовать системную команду format, имеющуюся в операционных системах Windows. В этом небольшом разделе дается краткий обзор того, как создать загрузочный диск, если вы не сделали это раньше. Если вы уже знаете, как сделать надежный загрузочный диск, то можете перейти к разделам, которые обсуждают другие инструментальные средства судебного дублирования: Safeback и SnapBack.
Инструментальные средства обеспечения безопасности
Для нашего заключительного судебного дублирования мы будем использовать инструмент Norton Ghost 2001, Personal Edition от компании Symantec. Ghost - популярный инструмент, позволяющий быстро и просто клонировать или копировать жесткие диски компьютерной системы. В дополнение к прямым изображениям в локальные файлы, Ghost может клонировать диски непосредственно между двумя компьютерами, использующими сеть, USB или параллельное подключение. Ghost представляет собой относительно недорогое решение для клонирования дисков. Ghost доступен на сайте http://www.symantec.com.
PDBLOCK: блокирование записи на ваши исходные диски
Хотя вы и создали проверенную дискету начальной загрузки, всегда полезно соблюдать дополнительные предосторожности, чтобы гарантировать, что данные не могут быть по неосторожности записаны на жесткий диск, содержащий улики. Обычно это выполняется с помощью утилиты блокирования записи. В EnCase есть такая утилита, встроенная в утилиту сбора данных (acquire utility), но она активна только во время выполнения программы сбора данных.
Совет. В EnCase также есть утилита аппаратного блокирования записи с именем Fast Block, которую можно купить на сайте компании.
Если вы используете инструмент судебного дублирования, который требует загрузочного диска, вы должны защитить исходный диск от записи. Эти меры блокируют попытки записи, которые изменили бы первоначальные улики. Одна такая утилита, PDBLOCK (Физический блокировщик диска) от компании Digital Intelligence, доступна на сайте www.digitalintel.com. В отличие от многих других подобных утилит, она обрабатывает расширения к прерыванию 13 (interrupt 13 extensions), и это позволяет пользователю выбирать, какие физические диски защищать. Простое выполнение утилиты PDBLOCK блокирует запись на все жесткие диски по умолчанию.
Реализация
Первый шаг при выполнении судебного дублирования с помощью EnCase заключается в создании надежного загрузочного диска. Инструментальные средства, обсуждаемые в этой лекции, не имеют столь же простых мастеров, как мастер EnCase. Чтобы создать загрузочный диск и использовать его для получения судебного дублирования исходного жесткого диска с помощью EnCase, выполните следующие действия.
Откройте EnCase и выберите Tools (Сервис), а затем Create Boot Disk (Создание загрузочного диска). Вы увидите следующий экран.
Выберите адресата в группе Target Diskette (Целевая дискета) и щелкните на Next (Далее). Убедитесь, что в дисковод адресата вставлен новый диск.
Выберите опцию Change From A System Diskette To An EnCase Boot Floppy (Сменить системную дискету на загрузочную дискету EnCase) и убедитесь, что отмечен флажок Format Diskette First (Сначала форматировать дискету). Затем щелкните на Next. Обратите внимание, что этот шаг выполняется только в системах Windows 95/98/Me.
Выберите Full (целиком), чтобы полностью отформатировать гибкий диск. Щелкните на Start.
Когда вы закончите форматирование гибкого диска, инструмент сбора данных (acquiring tool) комплекта EnCase нужно будет скопировать снова. После выхода из экрана форматирования появится следующий экран, предназначенный для копирования на гибкий диск инструмента создания изображения (imaging tool) комплекта EnCase. Обычно вам не нужно менять местоположение программы, которая будет скопирована. Щелкните на Finish (Готово) для продолжения.
Когда копия готова, удалите диск и промаркируйте его соответствующим образом. Установите защиту диска от записи, перекинув положение защелки, расположенной в верхнем углу дискеты.Создайте каталог, в котором инструментом EnCase будут созданы файлы, являющиеся уликами. В этом примере мы ввели C:\EVID\ в качестве такого каталога.
Для этого примера удалите исходный жесткий диск из подозреваемого компьютера и поместите его в судебном компьютере, чтобы выполнить дублирование. Убедитесь, что вы установили начальную загрузку судебного компьютера так, чтобы она происходила с дисковода гибких дисков, а не с диска, удаленного из исходной машины.
Чтобы создать загрузочный диск, выполняют следующую команду системы Windows 95/98, которая форматирует и копирует требуемые системные файлы и делает диск самозагружаемым.
C:\>format a:/s
Как отмечалось прежде, одно из основных положений компьютерной судебной экспертизы состоит в том, чтобы никаким способом не изменить первоначальные улики. К сожалению, загрузочный диск DOS, который вы только что создали, содержит файл IO.SYS с жестко закодированными ссылками на C:\DRVSPACE.BIN, C:\ DBLSPACE.BIN и C:/DRVSPACE.INI. Если подозреваемый диск использует сжатие диска DriveSpace или DoubleSpace, ваш загрузочный диск может пытаться загружать драйверы и устанавливать логически несжатую файловую систему, изменяя дату и временные метки на файле уплотненного диска. Чтобы это не случалось, используйте шестнадцатеричный редактор (шестнадцатеричные редакторы обсуждаются в лекции "Средства просмотра файлов и редакторы общего назначения") и перепишите все ссылки на DRVSPACE.BIN, DBLSPACE.BIN и DRVSPACE.INI в файле IO.SYS. Кроме того, измените все ссылки на диск C:\ диском A:\ в файлах IO.SYS, COMMAND.COM и MSDOS.SYS на гибком диске. Вы должны также удалить файл DRVSPACE.BIN с дискеты. Файлы IO.SYS, DRVSPACE.BIN и MSDOS.SYS имеют атрибуты System (Системный), Hidden (Скрытый) и Read-Only (Только для чтения). Поэтому вы должны использовать команду DOS attrib, чтобы просматривать, изменять или удалять эти файлы. Например, C:\>attrib -S -H -R a:\drvspace.bin удалит эти атрибуты, что позволит вам удалить файл командой C:\>del a:\ drvspace.bin.
Как только вы создали загрузочную дискету, управляемую системой DOS, можете добавлять необходимые драйверы, в которых вы, возможно, нуждаетесь для своего судебного компьютера. Например, если вам нужен специальный драйвер SCSI, то это самое подходящее время для его добавления. Возможно, вы захотите также включить обычные утилиты DOS типа fdisk.exe и утилиту блокирования записи.
При использовании дискеты начальной загрузки вы должны всегда проверять установки вашего BIOS, чтобы удостовериться, что гибкий диск является первым устройством, к которому обращаются в процессе начальной загрузки. В противном случае, вы можете по неосторожности загрузиться с подозреваемого жесткого диска.
Совет. Если вы не знаете наверняка, с какого устройства будет загружаться машина, то разъедините кабель жесткого диска, пока это не выясните!
Вы должны скопировать утилиту PDBLOCK на свой надежный загрузочный диск прежде, чем начнете выполнение судебного дублирования, чтобы блокировать исходные диски. Загрузитесь, используя свой надежный диск; утилита PDBLOCK запускается из командной строки:
A:\>pdblock.exe
Использование: " PDBLOCK {drives} {/nomsg} {/nobell} {/fail}" to (re)configure Где: drives: NONE, ALL, или список жестких дисков предназначенных для защиты (0-3) То есть "PDBLOCK 0", "PDBLOCK 013", "PDBLOCK 123", и т.д. (Значение по умолчанию - ALL (Все), если другого не указано) /nomsg: Не отображать сообщение, когда запись блокирована /nobell: Не давать звонка, когда запись блокирована /fail: Возвратить код ошибки в вызывающую программу (Значение по умолчанию должно возвращать в вызывающую программу фальсифицированный успешный результат)
"PDBLOCK" без опций (при загрузке) отобразит справку и текущую конфигурацию
Этот инструмент уникален тем, что он может обеспечивать звуковую и визуальную обратную связь, когда обнаружена и блокирована попытка записи. По желанию эти уведомления можно также подавлять. Вы должны выполнить эту утилиту прежде, чем будете выполнять любое из инструментальных средств судебного дублирования, обсуждаемых в следующих разделах.
Мы будем использовать инструмент Safeback для получения судебного изображения диска подозреваемого лэптопа. Для начала, мы удалили 2,5-дюймовый жесткий диск из подозреваемого лэптопа для выполнения судебного дублирования. В этом конкретном случае диск был предназначен для того, чтобы быть пользовательским сменным диском. Если бы это было не так, мы могли бы воспользоваться для получения изображения опцией порта принтера, которую предлагает Safeback, и использовать специализированный кабель передачи данных через порт принтера, хотя при этом методе значительно пострадала бы скорость передачи, поскольку это эквивалентно высасыванию океана через соломинку.
Далее мы прикрепили диск лэптопа к IDE-цепочке нашего судебного компьютера с 2,5-дюймовым IDE-адаптером, который преобразовывает 2,5-дюймовый IDE-диск к 3,5-дюймовому IDE-интерфейсу. Эти адаптеры свободно продаются в магазинах компьютерных деталей, на торговых выставках и т. д. Адаптер, который мы использовали, был приобретен в Corporate Systems Center на сайте www.corpsys.com.
Когда соответствующие диски подсоединены к нашему судебному компьютеру, мы еще раз проверяем BIOS, чтобы гарантировать, что система загрузится с нашей проверенной загрузочной DOS-дискеты. Затем загружаемся с дискеты. Сначала посмотрим, какие жесткие диски были распознаны.
A:\>fdisk /STATUS
DOS нумерует диски, начиная с 1, а утилита блокировки записи начинает блокировать с нуля. В этом случае, диск 1 - это наш диск-хранилище, а диск 2 - это подозреваемый 3,9-гигобайтный диск портативного компьютера. Подозреваемый диск имеет два логических диска с файловыми системами, которые распознаются загрузочным диском; в данном случае, диск 2 имеет логические диски D: и E:.
Теперь мы должны блокировать запись на подозреваемый жесткий диск, который утилита fdisk распознала как диск 2 (который в действительности был диском 1).
A:\pdblock 1
*************************************************************************** PDBlock Version 2.00: (P)hysical (D)isk Write (BLOCK)er Copyright 1999, 2000 DIGITAL INTELLIGENCE, INC - http://www.digitalintel.com *************************************************************************** Использование: " PDBLOCK {drives} {/nomsg} {/nobell} {/fail}" to (re)configure Где: drives: NONE, ALL, или список жестких дисков предназначенных для защиты (0-3) То есть "PDBLOCK 0", "PDBLOCK 013", "PDBLOCK 123", и т.д. (Значение по умолчанию - ALL (Все), если другого не указано) /nomsg: Не отображать сообщение, когда запись блокирована /nobell: Не давать звонка, когда запись блокирована /fail: Возвратить код ошибки в вызывающую программу (Значение по умолчанию должно возвращать в вызывающую программу фальсифицированный успешный результат)
Мы закончили дублирование диска подозреваемого портативного компьютера с помощью Safeback. Однако в ящике стола, имеющего отношение к подозреваемому компьютеру, мы нашли еще два жестких диска. Один из них был 2,5-дюймовым диском лэптопа с объемом 1.3Гб. Используем инструмент SnapBack, чтобы получить судебное изображение этого диска, и будем обозначать эти улики как Tag3.
SnapBack имеет несколько модулей, которые выполняют различные задачи. Здесь мы воспользуемся файлом snapback.exe, который использует накопитель на магнитной ленте SCSI для хранения судебного изображения.
Как только исходный диск подключен к судебному компьютеру, мы загружаемся со своей контрольной DOS-дискеты, которая имеет необходимые SCSI-драйверы для распознавания накопителя на магнитной ленте и программные файлы инструмента SnapBack.
Чтобы определить, какие диски были распознаны, мы можем еще раз запустить утилиту fdisk с опцией status:
A:\>fdisk /STATUS
Утилита показывает наш диск-хранилище как диск 1, и подозреваемый 1,3-гигабайтный диск портативного компьютера, который мы нашли в ящике стола, как диск 2.
Теперь мы должны блокировать запись на жесткие диски. В этом случае, так как мы собираемся записать изображение на магнитную ленту, мы можем использовать заданные по умолчанию установки утилиты PDBLOCK, при которых блокируются попытки записи на все локальные жесткие диски.
A:\pdblock *************************************************************************** PDBlock Version 2.00: (P)hysical (D)isk Write (BLOCK)er Copyright 1999, 2000 DIGITAL INTELLIGENCE, INC - http://www.digitalintel.com *************************************************************************** Usage: "PDBLOCK {drives} {/nomsg} {/nobell} {/fail}" to (re)configure
Where: drives: NONE, ALL, or list of hard drives to protect (0-3) i.e. "PDBLOCK 0", "PDBLOCK 013", "PDBLOCK 123", etc (Default is ALL if not specified) /nomsg: Do not display message when write is blocked /nobell: Do not ring bell when write is blocked /fail: Return write failure code to calling program (Default is to fake successful write to calling program) "PDBLOCK" with no options (once loaded) will display help and current config A:\>
При клонировании компьютерных систем, Ghost делает предположения о файловых системах, которые он обнаруживает и распознает. Например, в системе Windows для ускорения клонирования он распознает логическую файловую систему, копирует индивидуальные файлы и пропускает определенные файлы, типа файлов подкачки (swap files) Windows. Поскольку для судебных целей мы хотим иметь истинную копию жесткого диска сектор за сектором, то эта утилита могла бы быть не адекватна. Однако у Ghost есть выбираемая пользователем опция "для использования юридическими агентствами, которым требуется судебное изображение".
Хотя Ghost и является приложением DOS, у него есть мастер загрузки с графическим интерфейсом пользователя (GUI), который поможет вам создать загрузочный диск для ваших специфических потребностей. Для этого конкретного примера мы создадим загрузочный диск, который поддерживает пишущее устройство на компакт-диски, позволяющее записывать судебное изображение непосредственно на компакт-диски. Хотя это может занять больше времени, чем запись на ленту, вы должны знать, что такая опция существует.
После установки инструмента Norton Ghost нужно создать загрузочный диск, выбрав мастер Norton Ghost Boot Wizard из группы программ Norton Ghost 2001. Для этого конкретного случая мы создадим загрузочный компакт-диск, который поддерживает наше устройство записи на компакт-диски.
Мастер начальной загрузки запрашивает местоположение файла GhostPE.exe. У него уже должна быть достоверная информацию, поэтому просто нажмите Next (Далее).
Мастер спросит вас относительно дисковода гибких дисков и порекомендует сначала отформатировать диск. Если вы уже отформатировали диск, это не всегда обязательно, но если на этот счет есть какие-либо сомнения, то вы должны полностью отформатировать его повторно.
Обзорное диалоговое окно позволяет вам проверить параметры настройки. Нажмите Next (Далее) для продолжения.
Далее появится стандартное диалоговое окно Windows Format (Форматирование). Щелкните на Start (Пуск), чтобы отформатировать гибкий диск, и закройте окно, как только форматирование будет закончено.
После того как вы отформатируете диск и закроете диалоговое окно Format, требуемые системные файлы будут скопированы на гибкий диск. Обратите внимание, что этот процесс не создает истинный загрузочный диск, управляемый DOS, как говорилось ранее в этой лекции. Вам потребуется исследовать системные файлы, чтобы определить, имеются ли какие-либо жестко закодированные ссылки на утилиты сжатия диска, и сделать соответствующие изменения, а также, добавить любые программы, типа блокировщиков записи, после того как процесс создания загрузочного диска завершится.
После того как требуемые файлы будут скопированы, создание загрузочного диска закончится. Щелкните на Finish (Готово), чтобы выйти из мастера начальной загрузки.
Теперь, когда у вас есть загрузочный диск, завершите работу Windows и подключите 2,5-гигабайтный жесткий диск, найденный в ящике стола подозреваемого компьютера к IDE-цепочке судебного компьютера. Используйте свой недавно созданный загрузочный диск, чтобы запустить Norton Ghost 2001. Нажмите OK для продолжения.
Как упоминалось ранее, заданные по умолчанию опции предназначены для быстрого клонирования систем, которое не подходит для судебных целей. Чтобы задать нужные нам опции, мы должны войти в меню Options (Параметры).
Меню Options содержит несколько вкладок, первая из которых - Span /CRC. Так как мы будем записывать судебное изображение на компакт-диск, предназначенный для одноразовой записи, мы должны разрешить перекрытие (spanning). Мы также хотим разрешить опцию AutoName, чтобы не получать запрос об имени файла каждый раз, когда мы вставляем компакт-диск.
Так как подозреваемый диск может иметь сбойные кластеры, мы должны выбрать Force Cloning (Вынудить клонирование) на вкладке Misc (Разное), чтобы гарантировать, что процесс отображения продолжится, даже если будет обнаружен сбойный кластер.
Мы также хотим включить опции Image Disk (Сделать изображение диска) на вкладке Image/Tape (Изображение/Лента). Эта опция допускает эквивалент судебного изображения. Этот режим можно также включить из командной строки, используя опцию -id.
Сохраните параметры настройки, которые обновят файл GHOST.INI, и щелкните на Accept (Принять), чтобы вернуться к главному окну программы.
В главном окне программы выберите пункты Local/Disk/To Image (Локальный/Диск/Отобразить).
Вас попросят выбрать исходный диск для отображения. Здесь нам нужен диск 1, так что выберите его и щелкните на OK.
Мы хотим копировать файлы на наше устройство CDR, которое распознал загрузочный диск Ghost. Выберите его из раскрывающегося списка.
Это будут улики с именем Tag4, и таким именем мы назовем файл изображения. Здесь мы также вносим описание, которое включает информацию, специфическую для диска и конкретного случая.
В данном случае, мы хотим сделать сильное сжатие. Сжатие данных потребует меньше компакт-дисков и, вероятно, сократит процесс дублирования изображения.
Хорошая опция позволяет нам сделать первый компакт-диск изображения самозагружаемым. Это упростит процесс восстановления, так что мы выберем Yes (Да).
Чтобы сделать компакт-диск самозагружаемым, нужно прочесть загрузочную дискету. Удостоверьтесь, что дискета находится в дисководе A:; затем щелкните на Yes (Да).
Norton сообщает нам, что для создания изображения потребуется приблизительно три компакт-диска. У нас достаточно чистых компакт-дисков, поэтому нажимаем Yes (Да).
Начинается процесс отображения. Окно состояния показывает индикатор хода работ, процент выполненной работы, время, прошедшее от начала процесса, и оставшееся время до его окончания.
увеличить изображение
Когда запись на первый компакт-диск завершится, программы попросит следующий. Вставьте чистый диск и щелкните на OK.
Получив третий компакт-диск, диалоговое окно сообщит, что отображение закончено успешно.
Вы выполнили судебное дублирование, используя инструмент Norton Ghost 2001 Personal Edition.
Пример из жизни. Поиск и захват!
Как самого новичка-полицейского, вас часто выбирают для исполнения обязанностей по захвату и описи имущества в вашем округе. Сегодня вам позвонил один из ваших начальников и сообщил, что во второй половине дня намечается проверка компьютерного магазина, и что в этом событии вам поручается проводить судебное дублирование. Вооружившись программами EnCase, Safeback, SnapBack и Ghost, вы надеваете свой пуленепробиваемый жилет и присоединяетесь к остальной части группы.
Во время осмотра рабочего помещения, были найдены настольный компьютер (~6Гб) и лэптоп (~3,9Гб). Кроме того, в правом верхнем ящике стола подозреваемого находился еще один диск портативного компьютера (~1,3Гб), установленный в каретке дисков для подозреваемого лэптопа. Дополнительный жесткий диск (~2,5Гб) настольного компьютера был найден прилепленным клейкой лентой к днищу стола подозреваемого.
Обычно вы использовали один метод для получения всех судебных изображений. Однако чтобы познакомить вас с разными типами программного обеспечения, предназначенного для судебного дублирования, в этой лекции демонстрируется процесс дублирования с использованием инструментов EnCase, Safeback, SnapBack и Ghost.
EnCase. Инструмент EnCase использовался в этой лекции, чтобы скопировать первый 6-гигабайтный жесткий диск, обнаруженный во время облавы. Файлы улик были сохранены на диске-хранилище судебного компьютера для анализа, описанного в следующей лекции.
Safeback. Инструмент Safeback использовался для дублирования 3,9-гигабайтного диска портативного компьютера, обнаруженного во время описи. Файлы улик были также сохранены на диске-хранилище судебного компьютера для анализа, описанного в следующей лекции.
SnapBack. Инструмент SnapBack использовался для судебного дублирования 1,3Гб жесткого диска портативного компьютера, захваченного во время рейда. Копия диска была сохранена на магнитной ленте резервного копирования с использованием единственной опции хранения этого инструмента.
Ghost. Чтобы проиллюстрировать использование других средств сохранения улик, мы использовали Ghost. Используя Ghost, мы смогли сохранить судебную копию, предназначенную для дальнейшего анализа, на трех компакт-дисках. Исходный жесткий диск, который мы дублировали, имел объем в 2,5Гб, он был захвачен из-под стола подозреваемого во время облавы.
Если бы у нас не было устройства записи на компакт-диски (CDR) в нашем судебном компьютере, то Ghost мог бы послать изображение по сети. У инструмента SnapBack тоже есть такая возможность, а EnCase позволяет делать предварительный просмотр и копирование через перекрестный (crossover) сетевой кабель. Имейте это в виду, если вы не можете установить диск-источник и диск-хранилище в одной и той же машине (такое может быть в некоторых аппаратных конфигурациях RAID!).
<
Safeback
Зайдите почти в любое учреждение правоохранительных органов, занимающееся судебной экспертизой компьютеров, и вы обнаружите, что следователи используют инструмент Safeback для судебного дублирования. Утилита Safeback, написанная для системы DOS, предназначена для резервного копирования, проверки и восстановления жестких дисков. Утилита Safeback была создана Чаком Гузисом (Chuck Guzis) в компании Sydex приблизительно в 1991 г. и была написана с нуля как инструмент обработки улик. Теперь она стала юридическим стандартом. Компания New Technologies приобрела утилиту Safeback в марте 2000 г., и теперь инструмент доступен на сайте http://www.forensics-intl.com.
SnapBack
Еще одна утилита, используемая при выполнении судебного дублирования - это SnapBack DatArrest, которая доступна на сайте http://www.snapback.com. Утилита SnapBack первоначально была разработана как сетевая утилита резервного копирования, предназначенная для системных администраторов; однако, теперь она продается, как инструмент судебного дублирования. Фактически, приблизительно до октября 2001 г., комплект судебных инструментов Forensic ToolKit компании AccessData поставлялся с утилитой SnapBack.