Россия, Москва, Московский Государственный Открытый Университет, 2007 |
Компоновка и использование набора инструментов для расследования хакерских атак, то есть для "живого ответа" в системе Windows
Regdmp
Вы можете рассматривать системный реестр как большое единое средство регистрации, потому что он содержит всю информацию о конкретной инсталляции Windows и других установленных программах. Эта информация может быть полезна для расследования, и дать дополнительные намеки:
- несколько последних адресов, по которым машина связывалась с клиентом telnet;
- несколько последних использовавшихся документов каждой программы;
- исполняемые файлы, запускающиеся в момент загрузки машины (обычно программы типа "троянских коней" изменяют системный реестр).
Системный реестр хранится в закрытом (являющемся предметом собственности) формате на жестком диске, и его трудно отыскать, когда система не выполняется, или пока не будут применены коммерческие инструментальные средства, предназначенные для судебного расследования. Однако вы можете использовать инструмент Regdmp, чтобы сделать дамп содержимого системного реестра в удобочитаемой форме. Инструмент Regdmp поставляется с комплектом ресурсов Windows NT и 2000.
Реализация
Следующая команда выполнит дамп полного содержимого реестра локальной системы:
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 SPECIFIC18.4.
Как видно, содержание представлено в открытом (plain) тексте, так что информацию в нем можно искать с помощью любого инструмента подходящего типа.
SFind
Взломщики могут скрывать свои инструментальные средства на NTFS через механизм, известный как потоковая передача файлов (file streaming). Когда инструментальные средства скрыты таким способом, то файлы, в которых они спрятаны, не изменяются в размерах. Поэтому, если судебное дублирование данных машины-жертвы не выполнено, то инструмент SFind нужно выполнять на этой машине после того, как будут выполнены команды каталога, которые выдают информацию о файлах с тремя типами временных меток. SFind находит все <потоковые> файлы и сообщает о них на пульт. Инструмент SFind бесплатно распространяется компанией Foundstone, и может быть загружен с сайта http://www.foundstone.com.
Реализация
В результате следующей команды будут найдены <потоковые> файлы на диске C::
D:\> sfind c:\
Если какой-либо <потоковый> файл обнаружится, то будут выведены сообщения. Как правило, мы не посылаем эти сообщения на компьютер, ведущий судебное расследование. Однако если потоковые файлы найдены, то на компьютер, ведущий расследование, мы передаем сами файлы для их дальнейшего анализа.
Md5sum
После того как информация была передана на компьютер, ведущий судебное расследование, неплохо получить контрольные суммы MD5-результатов. Утилита Md5sum поставляется вместе с пакетом Cygwin, и может быть загружена с сайта http://www.cygwin.com. Детальное обсуждения пакета Cygwin см. в лекции "Cygwin" .
Реализация
Следующая команда вычислит контрольную сумму MD5-файлов вывода и сохранит их в файле с именем md5sums.txt на компьютере адресата (компьютер, ведущий расследование):
C:\incident1\> md5sum -b * > md5sums.txt
Пример из жизни. Сценарий взлома системы 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./date18.5.
Исходная машина (жертва) в этом сценарии имеет 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 и к сети вашей компании. Пришло время обратиться к властям!