Анализ атаки (часть 1)
Анализ атаки (часть 2)
Дон Паркер
Во второй части этой серии мы оставили всю необходимую информацию, необходимую для атаки на сеть жертвы. Имея это в виду, давайте перейдем к реальной атаке. Эта атака подразумевает передачу нескольких программ-запросов для возможности дальнейшего использования атаки.
Было бы бессмысленно просто атаковать компьютер, а затем отступить, поэтому мы проведем мощную атаку. Обычно целью злоумышленника является не только расширение своего присутствия в компьютерной сети, но и его поддержание. Это значит, что злоумышленник по-прежнему хочет продолжать скрывать свое присутствие и выполнять какие-то другие действия.
Интересные вопросы
Теперь мы воспользуемся Metasploit Framework для проведения настоящей атаки. Этот рабочий механизм действительно интересен, поскольку он предоставляет вам множество различных типов майнинга, а также множество различных вариантов выбора полезных нагрузок. Возможно, вам не нужна утилита обратного доступа или VNC-инъекция. Полезная нагрузка часто зависит от вашей предстоящей цели, сетевой архитектуры и конечной цели. В данном случае мы сделаем это с помощью обратной утилиты. Зачастую это более выгодный подход, особенно в случаях, когда наша цель находится за маршрутизатором и недоступна напрямую. Например, вы «нажимаете» на веб-сервер, но нагрузка все еще сбалансирована. Нет никакой гарантии, что к нему можно будет подключиться с помощью прямой утилиты, поэтому вам нужно, чтобы ваш компьютер сгенерировал обратную утилиту. Мы не будем рассматривать, как использовать Metasploit Framework, так как это, возможно, уже было описано в другой статье. Давайте сосредоточимся на таких вещах, как уровни пакетов.
На этот раз вместо использования метода представления каждого шага атаки с помощью кратких изображений и фрагментов кода мы представим другую атаку. Что будет сделано, так это воссоздание атаки с помощью Snort. Мы воспользуемся двоичным журналом выполненной нами атаки, а затем проанализируем его с помощью Snort. В идеале это должно было бы выглядеть так же, как и все, что мы сделали. Фактически, будет реализован пакет доказательств. Цель здесь — посмотреть, насколько точно мы сможем восстановить картину произошедшего. Имея это в виду, мы воспользуемся двоичным журналом пакетов, в котором записано все, что было выполнено, и проанализируем его с помощью Snort, используя некоторые из его правил по умолчанию.
Вывод Snort
Синтаксис, используемый для вызова Snort, следующий:
C:\snort\bin\snort.exe –r c:\article_binary –dv –c snort.conf –A full
Этот синтаксис заставляет Snort анализировать двоичный пакет с именем article_binary, результат показан ниже. Мы сократили вывод Snort, чтобы иметь возможность подробно рассмотреть каждый раздел.
==============================================================
Snort processed 1345 packets.
==============================================================
Breakdown by protocol:
TCP: 524 (38.959%)
UDP: 810 (60.223%)
ICMP: 11 (0.818%)
ARP: 0 (0.000%)
EAPOL: 0 (0.000%)
IPv6: 0 (0.000%)
ETHLOOP: 0 (0.000%)
IPX: 0 (0.000%)
FRAG: 0 (0.000%)
OTHER: 0 (0.000%)
DISCARD: 0 (0.000%)
==============================================================
Action Stats:
ALERTS: 63
LOGGED: 63
PASSED: 0
Этот раздел интересен тем, что в результате одного действия атаки было сгенерировано 63 оповещения. Мы рассмотрим файл alert.ids, который может предоставить много подробностей о произошедшем. Итак, если вы помните, первым делом злоумышленник использовал Nmap для сканирования сети, что также создало первое оповещение, которое было вызвано Snort.
[**] [1:469:3] ICMP PING NMAP [**]
[Classification: Attempted Information Leak] [Priority: 2]
08/09-15:37:07.296875 192.168.111.17 -> 192.168.111.23
ICMP TTL:54 TOS:0x0 ID:3562 IpLen:20 DgmLen:28
Type:8 Code:0 ID:30208 Seq:54825 ECHO
[Xref => http://www.whitehats.com/info/IDS162]
Таким образом, злоумышленник использовал netcat для перечисления веб-сервера, чтобы выяснить, к какому типу он относится. Это действие не вызвало никаких оповещений Snort. Мы также хотим выяснить, что произошло, поэтому давайте подробнее рассмотрим журнал пакета. После соблюдения обычной процедуры установления связи TCP/IP мы увидим пакет, показанный ниже.
15:04:51.546875 IP (tos 0x0, ttl 128, id 9588, offset 0, flags [DF], proto: TCP (6), length: 51) 192.168.111.17.1347 > 192.168.111.23.80: P, cksum 0x5b06 (correct), 3389462932:3389462943(11) ack 2975555611 win 64240
0x0000: 4500 0033 2574 4000 8006 75d7 c0a8 6f11 E..3%[email protected].
0x0010: c0a8 6f17 0543 0050 ca07 1994 b15b 601b ..o..C.P.....[`.
0x0020: 5018 faf0 5b06 0000 4745 5420 736c 736c P...[...GET.slsl
0x0030: 736c 0a sl.
В этом пакете нет ничего примечательного, кроме того, что в нем есть запрос GET с некоторыми внутренними проблемами, следующими за ним, например, slslsl. Так что на самом деле Snort'у делать нечего. Поэтому очень сложно создать эффективную сигнатуру (или подпись) IDS для запуска такого типа попытки перечисления. Вот почему таких подписей нет. В следующем пакете указан веб-сервер сети жертвы.
После завершения перечисления злоумышленник немедленно отправляет код для выполнения эксплойта на веб-сервер. Этот код затем выдаст некоторые результаты с включенными сигнатурами Snort. Конкретно для эксплойта, показанного ниже, мы можем видеть эту сигнатуру Snort.
[**] [1:1248:13] WEB-FRONTPAGE rad fp30reg.dll access [**]
[Classification: access to a potentially vulnerable web application] [Priority:
2]08/09-15:39:23.000000 192.168.111.17:1454 -> 192.168.111.23:80
TCP TTL:128 TOS:0x0 ID:15851 IpLen:20 DgmLen:1500 DF
***A**** Seq: 0x7779253A Ack: 0xAA1FBC5B Win: 0xFAF0 TcpLen: 20
[Xref => http://www.microsoft.com/technet/security/bulletin/MS01-035.mspx][Xref
=> http://cve.mitre.org/cgi-bin/cvename.cgi?name=2001-0341][Xref => http://www.s
ecurityfocus.com/bid/2906][Xref => http://www.whitehats.com/info/IDS555]
Получив доступ к веб-серверу, злоумышленник начнет использовать TFTP-клиент для передачи 4 файлов: nc.exe, ipeye.exe, fu.exe, msdirectx.exe. После передачи этих файлов злоумышленник использует netcat для отправки утилиты обратно на свой компьютер. Оттуда он может отключить другую утилиту, которая появилась в результате первоначальной атаки, и выполнить всю оставшуюся работу в утилите netcat. Интересно, что ни одно из действий, выполненных злоумышленником с помощью обратной утилиты, не было зафиксировано Snort. Однако, несмотря на это, злоумышленник использовал руткит, который передал по TFTP, чтобы скрыть информацию о процессе для netcat.
Заключение
В третьей части этой серии мы увидели демонстрационную атаку с использованием Snort. Мы можем полностью воссоздать одну из тех вещей, которые были сделаны, за исключением использования руткита. Несмотря на то, что IDS является весьма полезной технологией и частью системы защиты вашей сети, она не всегда идеальна. Системы обнаружения вторжений могут оповещать вас только о том трафике, который они могут обнаружить. Имея это в виду, в заключительной части этой серии мы научимся создавать сигнатуры Snort. Наряду с этим мы также научимся тестировать цифровую подпись (ЭЦП) для оценки ее эффективности.