Инструментальные средства обеспечения безопасности

Реализация


Первым инструментом, который необходим в вашем комплекте средств "живого ответа", будет надежная командная оболочка. После того как вы вошли на машину-жертву, выберите 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 и к сети вашей компании. Пришло время обратиться к властям!

<

Содержание раздела