Опубликован: 20.02.2007 | Доступ: свободный | Студентов: 3480 / 785 | Оценка: 4.42 / 4.03 | Длительность: 40:03:00
Лекция 18:

Компоновка и использование набора инструментов для расследования хакерских атак, то есть для "живого ответа" в системе Windows

< Лекция 17 || Лекция 18: 12345 || Лекция 19 >
Аннотация: "Живой ответ" позволяет собрать кратковременно живущие данные, которые теряются, когда машина-жертва выключается. Живой ответ может быть вашим единственный шансом, если не зависящие от вас обстоятельства не позволят вам выключить сервер. О том, какие средства могут вами использоваться в Windows читайте в этой лекции

"Живой ответ" (live response) позволяет собрать кратковременно живущие данные, которые теряются, когда машина-жертва выключается. Живой ответ может быть вашим единственный шансом, если не зависящие от вас обстоятельства не позволят вам выключить сервер. Эта ситуация случается, когда сервер не имеет резервного копирования. (Да, мы видели, что такое случается!) В этой лекции обсуждаются инструментальные средства, которые вы можете использовать, чтобы выполнить "живой ответ" для операционных систем 2000 или Windows NT.

Из инструментальных средств, обсуждаемых в этой лекции, вы сгенерируете набор инструментов для "живого ответа" и запишите его на компакт-диск или на дискету, чтобы затем их можно было перенести на машину-жертву, поскольку у большинства машин должен быть CD-ROM или привод гибких дисков (либо и то и другое). В дальнейшем мы будем ссылаться на этот CD-ROM или дискету, как на "носитель ответа" (response media). Вы должны скопировать каждое из инструментальных средств, перечисленных в этой лекции, из его источника (приведенного в каждом разделе) на "носитель ответа". Кроме того, чтобы не затрагивать файлы на исходной машине (машине, которая, возможно, подверглась атаке хакера), вы должны скопировать все сопутствующие динамически загружаемые библиотеки (DLL) и вспомогательные файлы, необходимые для работы каждого исполняемого файла. Например, любые программы, которые мы хотели бы использовать из дистрибутива Cygwin (см. лекцию "Cygwin" ), должны быть связаны с библиотекой cygwin1.dll. Хотя это только один инструмент из набора, обычно использующегося для выполнения живого ответа, любой инструмент может быть включен в набор, если он тщательно исследован, и все файлы его поддержки (такие как DLL) включены в набор.

Примечание. В этой лекции буква D: будет указывать диск на исходной машине, на котором находится носитель ответа. Она может отличаться от используемой в вашем собственном сценарии "живого ответа".

Чтобы использовать набор инструментов "живого ответа", войдите в систему, как истинный администратор (или, по крайней мере, с привилегиями администратора). Большинство этих команд не смогут сделать вывод, если у вас нет доступа администратора к объектам, для анализа которых они были разработаны.

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

C:\ > nc -l -p <destination port> > <command>.txt

Маркер <command> означает каждую из команд, выполненных на исходной машине-жертве.

На исходной машине напечатайте следующую команду, чтобы выполнить <command> и передать информацию на рабочую станцию по нужному адресу <destination IP> через TCP-порт адресата <destination port>:

D:\> <command> |D:\nc <destination IP> <destination port>
Примечание. Последняя часть этой команды ( |D:\nc <destination IP> <destination port> ) должна быть вставлена во все команды, представленные в этой лекции, даже если они не напечатаны в примерах. Это сделано в надежде избежать путаницы и сохранить простоту, поскольку вы, скорее, изучаете концепции инструментальных средств, а не определенный синтаксис сетевой передачи.

CMD.EXE

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

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

Надежная командная оболочка - это файл cmd.exe, который расположен в каждой системе Windows NT или 2000 в каталоге C:\winnt\system32\cmd.exe.

Реализация

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

D:\cmd.exe

Новая командная оболочка появится на диске D:. Все другие команды, обсуждаемые в этой лекции, будут выполнены внутри этой надежной командной оболочки. Любые команды, используемые здесь, будут считаться надежными, потому что они не выполняются через ненадежную командную оболочку (расположенную в C:\winnt\system32\cmd.exe) взломанного сервера.

Fport

Команда fport - одна из первых команд, которые мы обычно выполняем на взломанном сервере в процессе ответных действий. fport - это бесплатный инструмент, распространяемый компанией Foundstone, Inc, сайт http://www.foundstone.com. Этот инструмент устанавливает соответствие между каждым открытым TCP- и UDP-портом на машине-жертве и исполняемым файлом, запущенным в системе. Утилиту fport полезно использовать для поиска различных лазеек (backdoor-утилиты скрытого удаленного администрирования), которые могут открыть взломщику более легкий вход в вашу систему.

Реализация

Утилиту 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
18.1.

Просматривая данные вывода утилиты fport, мы видим, что TCP-порт 62875 открыт, и это подозрительно, потому что он был открыт из исполняемого файла с именем C:\inetpub\scripts\nc.exe. Кроме того, мы видим, что идентификатор ID этого процесса равен 1464. Это нечто такое, что обычно не устанавливается на новой системе, так что процесс заслуживает дальнейшего анализа. Хотя это и очевидно, но все же стоит заметить: путь и имя файла для сервисной программы с PID 1464, в данном случае, выглядят подозрительно, однако взломщик мог бы назвать программу и каким-нибудь более безобидным именем.

Совет. Если вы хотите делать сортировку по портам, используйте ключ, который задан по умолчанию. Если вы хотите, чтобы вывод был рассортирован по приложениям, можно использовать ключ /a. Вы также можете использовать ключ /ap, чтобы сортировать вывод по путям приложения. Ключ /i сортирует по идентификаторам процессов PID.
< Лекция 17 || Лекция 18: 12345 || Лекция 19 >