Перейти к содержанию
Цели урока:
- Научиться настраивать виртуальную экспериментальную среду для анализа вредоносного программного обеспечения.
- Приобрести базовые навыки мониторинга сетевой активности.
Вопрос дня:
Можете ли вы, запустив вредоносное программное обеспечение Max++ описать его сетевую активность?
ССЫКА ДЛЯ ЗАГРУЗКИ:
Образец вредоноса можно взять либо из вложения (внизу этого урока), либо по по этой ссылке, либо следуя инструкциям загрузки из урока Бонфы (Bonfa) [1]. Урок Бонфы является прекрасным введением в анализ Max++.
1. Введение
Этот tutorial предназначен для тех, кто заинтересован в анализе вредоносного программного обеспечения. В нем мы шаг за шагом будем производить анализ вредоноса ZeroAccess. Джузеппе Бонфа (Giuseppe Bonfa) предоставил превосходный анализ [1] этого зловреда. Эта мини-серия уроков поможет вам получить практический опыт по его анализу. Мы предполагаем, что вы имеете базовое представление о: x86 ассемблере, отладке, операционных системах и принципах программирования.
Цель этого урока установить виртуальную экспериментальную среду для анализа вредоносного программного обеспечения. Прежде чем засучить рукава, пожалуйста, убедитесь, что вы имеете все необходимое:
- Установочный диск Windows XP SP2 (Обратите внимание: это должен быть диск со «вторым сервис паком»).
- Установочный диск Linux Ubuntu (в этом туториале мы используем версию Ubuntu 10.04 lucid LTS. Версия не имеет значения).
- Компьютер, загружаемый с Windows XP, на котором имеется, по крайней мере, 50GB свободного дискового пространства (позже, мы будем ссылаться на этот компьютер как «host XP»).
- Высокоскоростной Интернет.
2. Установка программного обеспечения
Нам нужно загрузить и установить несколько различных инструментов. Все они будут бесплатными. Процесс установки довольно прост, поэтому мы опустим здесь большинство деталей. Процесс установки может занять около 5-ти часов.
- Установите Oracle Virtual Box v4.04 на вашу основную систему «host XP» (http://www.virtualbox.org/).
- Создайте виртуальную машину для Windows XP (используйте для этого ваш установочный диск с SP2. Виртуальной машине выделите, как минимум, 256MB ОЗУ и 10GB дискового пространства) с помощью менеджера VBox (позже мы будем ссылаться на эту виртуальную машину, как «guest XP») и установите следующее программное обеспечение:
- Python 2.7.
- Immunity Debugger
- IDA Pro Debugger Free Version (Примечание: используйте бесплатную, а не пробную версию, поскольку пробная не позволяет сохранять базы данных dbg)
- HxD (двоичный редактор)
- Загрузите экземпляр вредоносного программного обеспечения Max++ из прилагаемого к статье архива, либо следуйте инструкциям от сюда [1]. Вам нужно загрузить архив "Max++ downloader install_2010.zip". Не вздумайте запускать его содержимое!!! Мы это сделаем позже!)
- После того как все выше перечисленное было сделано, сделайте снимок (snapshot) «guest XP» в VBox. Этот снимок позволит быстро восстанавливать оригинальное состояние системы.
Примечание: Если разрешение экрана у виртуальной машины будет слишком маленьким, то решить эту проблему можно следующим образом: запустите «XP Guest», затем нажмите «Install Guest Additions», перезагрузите «XP Guest», а затем просто настройте «настройки экрана» (кликните правой кнопкой мыши на «Рабочем столе» => Свойства => Настройки).- На «XP Host» установите WinDbg. Если хотите, то можете загрузить отладочные символы для вашей «XP Host» (это может позволить немного ускорить отладку).
- Создайте виртуальную машину для Linux Ubuntu (используйте для этого ваш установочный диск с Ubuntu 10.04. Этой виртуальной машине выделите, как минимум, 512MB ОЗУ и 10GB дискового пространства) в VBox и установите в ней следующее программное обеспечение (можете использовать для этого apt-get или «System =>Administration => Synaptic Package Manager», который имеет графическую оболочку):
- Wireshark (для установки можно использовать команду: "sudo apt-get install wireshark")
- GDB (GNU debugger)
- g++ (c++ compiler)
- Python
Примечание: В данный момент разрешение экрана в гостевой Linux-системе слишком маленькое… Для решения этой проблемы, следуйте инструкциям описанным на форуме «Linux Format» [2].
3. Настройка
К этому моменту, обе виртуальные машины должны иметь доступ к Интернету. Следующее, что мы сделаем – это настроим их таким образом, чтобы весь трафик от «XP Guest» проходил через «Linux Guest». На виртуальной машине с «Linux Guest» мы воспользуемся Wireshark, чтобы мониторить трафик от виртуальной машины с «XP Guest», когда на ней будет выполняться зловред. Реализация этого решения описана ниже.
3.1 XP Guest
Сейчас выключите «XP Guest» в менеджере VBox, нажмите правой кнопкой мыши на «XP Guest» и выберите «Select».
В «Network => вкладка “Adapter 1”»:
- Нажмите на флажок «Enable network adapter».
- И выберите для «Attached To» тип сети «Internal Network».
Примечание: пожалуйста, убедитесь, что используется сетевое имя «intnet» назначаемое по умолчанию менеджером VBox.
Данный шаг оградит «XP Guest» от внешнего мира и позволит соединяться с внутренней сетью управляемой менеджером VBox.
На следующем шаге нужно включить последовательный порт (serial port) для работы с WinDbg. Установите настройки так, как показано на рисунке ниже. Обратите внимание, что важно установить Порт и Путь к файлу «\\.\pipe\com_11», чтобы имитировать «Host Pipe» порт.
VT-x – это специальная технология процессора, которая используется для поддержки виртуализации. Вам нужно включить ее в Virtual Box, в противном случае аппаратные брэйкпойнты не будут работать. Позже вы увидите, что Max++ полагается на аппаратные брэйкпойнты, интенсивно используя их для перехвата системных вызовов. На рисунке ниже показано, как можно включить поддержку VT-x.
3.2 Linux Guest
Теперь давайте настроим «Linux Guest» в качестве шлюза внутренней сети. Прежде чем начать, убедитесь в том, что виртуальная машина выключена. Наш «Linux Guest» будет иметь два адаптера: один для соединения с внутренней сетью, а другой для соединения с внешним миром. На рисунке ниже показаны настройки для первого адаптера, отвечающего за внутреннюю сеть (Internal Network). Для 2-го адаптера установите тип сети «NAT». Как вы знаете, NAT расшифровывается как Network Address Translation (трансляция сетевых адресов). Он обеспечивает дополнительный уровень защиты для ваших виртуальных машин.
Примечание: Убедитесь, что для каждого из адаптеров в «Adapter Type» установлено «Intel Pro/1000». Это можно сделать, нажав на вкладку «Advanced». На этой же вкладке, для каждого из адаптеров, измените последние цифры MAC-адреса, но таким образом, чтобы MAC-адрес 1-го адаптера оканчивался на «01», а второй на «02». Если вы используете VBox 4.1.0 или более позднюю версию, там же во вкладке «Advanced» имеется дополнительное поле «Promiscuous mode», выберите в нем «allow for all» (это позволит перехватить весь трафик).
Теперь перезагрузите «Linux Guest». Нам нужно настроить эту виртуальную машину в качестве шлюза, для этого следуйте следующим инструкциям:
- Запустите терминал и введите «ifconfig» для получения информации о всех доступных адаптерах. Вы должны увидеть три адаптера, например, в моем случае это «eth1», «eth2» и «lo» (the local loophole interface). Если вы посмотрите на их MAC-адреса, то увидите, что они соответствуют именно тем адресам, которые мы ранее установили в менеджере VBox. Давайте предположим, что «eth1» соответствует адаптеру «xx…:01», а «eth2» соответствует адаптеру «xx…:02».
- Перейдите в «System -> Preference -> Network Connections» и удалите все существующие сетевые соединения. Затем создайте первое проводное соединение, как показано на рисунке ниже (используйте 169.254.236.100 в качестве статического IP). Обратите внимание, что для получения Шлюза нужно установить «0.0.0.0» (убедитесь в том, что вы нажали Enter, когда закончили вводить 0.0.0.0 в третьей ячейке – в Ubuntu есть некоторые проблемы с GUI – если вы не введете Enter, то операционная система может забыть добавить вашу запись), потому что это ссылка на внутреннюю сеть (the local internal network) и сам компьютер, который собственно и является шлюзом. Точно так же, установите второе проводное соединение (для NAT), но на этот раз, используйте DHCP для назначения IP-адресов. Если вы лентяй или вам лень использовать Ubuntu GUI, то для достижения тех же результатов можно воспользоваться эквивалентными командами ifconfig (знакомство с ними оставим в качестве домашнего упражнения).
3. Теперь настроим IP forwarding. Создайте файл «network.sh» и установите для него «chmod 755 network.sh». Этот скрипт содержит три команды, которые представлены ниже:
Первая команда должна включить опцию ip_forward стэка IPv4 в ядре Linux. Вторая настраивает фаервол «iptables», чтобы тот позволил пересылку пакетов. Третья же добавляет post routing tool и перенаправляет все пакеты на интерфейс eth2 (примечание: eth2 является внешней сслыкой на 2-ой адаптер. На вашей системе у нее может быть другое имя).Code:sudo sysctl -w net.ipv4.ip_forward=1 sudo iptables -P FORWARD ACCEPT sudo iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
3.3 Донастройка «XP Guest»
Теперь давайте вернемся к нашей «XP Guest» и перенастроим ее так, чтобы доступ к Интернету она получала через «Ubuntu Guest». Выполните в Убунте команду «nslookup www.google.com» и определите используемый DNS-сервер. Затем перейдите в «XP Guest => Control Panel => Network Connections => Right Click (Properties) => TCP/IP (Properties) => установите статический IP-адрес 169.254.236.200, адрес Шлюза 169.254.236.100 и адрес DNS-сервера. Затем запустите браузер и убедитесь, что у него нет доступа к Интернету, да-да вы не ослышались, нужно убедиться в том, что у браузера нет доступа к Интернету. Доступ появится, когда мы выполним ранее созданный скрип «network.sh» на нашем Шлюзе с Убунтой.
Давайте вернемся в «Ubuntu Guest» и выполним команду «sudo ./network.sh». У «XP Guest» должен появился доступ к Интернету (можете проверить). Если сейчас ввести команду «sudo wireshark», то вы сможете перехватить весь трафик от «XP Guest» (примечание: во время запуска Wireshark нужно нажать на кнопку OK в сплывающем диалоге, иначе, он будет заморжен)
4. Заключение
Мы успешно создали простую среду для анализа Max++. Используя Linux «Ubuntu Guest», мы можем перехватывать все пакеты вредоноса. Технология виртуальной машины предоставляет нам большие преимущества быстрого восстановления состояния системы в случаях повреждения системы.
Сейчас вам нужно сделать снимки обоих виртуальных машин «XP и Ubuntu Guest».
Ну и наконец, дайте ответ на вопрос, поставленный в самом начале урока:
Можете ли вы, запустив вредоносное программное обеспечение Max++ описать его сетевую активность?
© Translated by Prosper-H from r0 Crew
Ссылки
[1] Guiseppe Bonfa, "Step-by-Step Reverse Engineering Malware: ZeroAccess / Max++ / Smiscer Crimeware Rootkit"
[2] udroomla , "How To Increase Screen Resolution with VirtualBox and Ubuntu"







Reply With Quote
Thanks

