пятница, 13 мая 2016 г.

Решаем задание от Yandex

Приветствую, уважаемый читатель!


На просторах интернета наткнулся на вакансию от яндекса - https://yandex.ru/jobs/vacancies/maintenance/infrstrsec_spec/ специалиста по инфраструктурной безопасности. Сама вакансия не особо интересовала, а вот тестовые задания меня заинтересовали, особенно 2-е задание, которое заключается в анализе pcap-файла с трафиком, сгенерированным каким-то эксплойт-паком. Мне оно показалось интересным, и я постарался ответить на поставленные вопросы.





Итак, перечень поставленных вопросов.

Базовые:
Дата и время активности
IP-адрес зараженной Windows-машины
MAC-адрес зараженной Windows-машины
Имя зараженной Windows-машины
Доменное имя скомпрометированного сайта 
IP-адрес скомпрометированного сайта
Доменное имя сайта, откуда загружены exploit kit и полезная нагрузка
IP-адрес сайта, откуда загружены exploit kit и полезная нагрузка

Расширенные:
Какой exploit kit был загружен (Nuclear, Neutrino и т.п.)?
Какой redirect URL ведет на landing-страницу exploit-kit?
Сколько раз полезная нагрузка была передана?
Какие HTTP-запросы (GET или POST) выполнены после заражения?

Трафик, естественно, будем анализировать Wireshark’ом. Обобщенный алгоритм атаки с использованием эксплойт-паков следующий: пользователь ходит по разным сайтам и натыкается на сайт, который содержит ссылку (редирект) на сайт подконтрольный злоумышленнику. Автоматически перейдя по ссылке, в браузер пользователя загружается скрипт или объект (обычно javascript), который определяет наличие в браузере и его компонентах уязвимостей. Если потенциальные уязвимости найдены, осуществляется попытка их эксплуатации.     

Начнем с определения зараженной Windows-машины. Характерным признаком вредоносной активности являются http-запросы от клиентов на адреса страниц, которые состоят из бессмысленного набора букв и цифр. Поэтому первое что делаем, фильтруем все HTTP-GET запросы:

http.request.method == "GET"



Как видно, наибольшее подозрение вызывает серый IP-адрес – 192.168.204.137, который шлёт get-запросы на страницы, которые в здравом уме ты вводить не будешь, а следовательно, запросы выполняются скриптом автоматически.
Исходя из этого, я предполагаю, что IP-адрес зараженной Windows-машины – 192.168.204.137.

MAC-адрес определяем из любого пакета отправленного с IP-адреса 192.168.204.137, а именно – 00:0c:29:9d:b8:6d.



Осталось выяснить  имя зараженной Windows-машины.
Долго думал как его достать, пока не вспомнил про DHCP. Данный протокол нужен для динамического конфигурирования сетевых интерфейсов рабочих станций, при настройке клиент и сервер DHCP обмениваются различными сообщениями, которые могут содержать имя Windows-машины запросившей в аренду IP-адрес. Вбиваем в Wireshark следующий фильтр:

bootp

и видим сообщение DHCPINFORM, в котором клиент сообщает, что ему назначен статический IP-адрес. Среди прочего видим параметр Host Name - 38NTRGDFQKR-PC. Имя зараженной Windows-машины - 38NTRGDFQKR-PC.



Так, с зараженной машиной закончили.

Приступаем к определению доменного имени сайта, откуда загружены exploit kit и полезная нагрузка, и его IP-адреса.

Тут всё просто. Выясняя IP-адрес зараженной машины, мы определили адрес назначения кучи подозрительных get-запросов, а именно - 205.234.186.111. В ответ на все запросы, данный адрес отвечает нам различными объектами в поиске рабочего эксплойта. 

Первый get-запрос следующий (запрос landing page):
GET /6ktpi5xo/PoHWLGZwrjXeGDG3P-I5 HTTP/1.1
Accept: image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Referer: http://www.excelforum.com/
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
Accept-Encoding: gzip, deflate
Host: digiwebname.in
Connection: Keep-Alive

Как вы видите, из заголовка Host, можно легко определить доменное имя сайта с эксплойт-паком - digiwebname.in (если посмотреть трафик до первого get-запроса, то можно увидеть DNS-запрос на определение IP digiwebname.in), а из заголовка Referer, определить доменное имя скомпрометированного сайта - www.excelforum.com.

Смотрим остальные get-запросы (с заголовком Host - excelforum.com) и определяем IP-адрес скомпрометированного сайта – 69.167.155.134



Осталось определить дату и время активности. Я не придумал ничего лучшего, чем посмотреть время, проставляемое web-сервером эксплойт-пака в ответе на первый get-запрос:

HTTP/1.1 200 OK
Server: nginx/1.4.4
Date: Mon, 08 Dec 2014 23:20:09 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: close
Cache-Control: no-store, no-cache, must-revalidate
Expires: Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified: Mon, 08 Dec 2014 23:20:09 GMT
Pragma: no-cache

Таким образом, время - 08 Dec 2014 23:20:09 (8 декабря 2014, 23:20).

И список ответов целиком:
  • Дата и время активности

8 декабря 2014, 23:20

  • IP-адрес зараженной Windows-машины

192.168.204.137

  • MAC-адрес зараженной Windows-машины

00:0c:29:9d:b8:6d

  • Имя зараженной Windows-машины

38NTRGDFQKR-PC

  • Доменное имя скомпрометированного сайта

www.excelforum.com

  • IP-адрес скомпрометированного сайта

69.167.155.134

  • Доменное имя сайта, откуда загружены exploit kit и полезная нагрузка

digiwebname.in

  • IP-адрес сайта, откуда загружены exploit kit и полезная нагрузка

205.234.186.111


Доп. вопросы:

Какой exploit kit был загружен (Nuclear, Neutrino и т.п.)?
-

Какой redirect URL ведет на landing-страницу exploit-kit?
-

Сколько раз полезная нагрузка была передана?
Насчитал 14 различных переданных payloads от эксплойт-пака.

Какие HTTP-запросы (GET или POST) выполнены после заражения?
Вроде был передан только 1 http-POST запрос:
27.417099       192.168.204.137        209.239.112.229        49288  80        HTTP  186      POST / HTTP/1.1  


Вот как-то так)



Комментариев нет:

Отправить комментарий