В конце третьего сезона сериала «Мистер Робот» Эллиот полон решимости помешать Тёмной Армии причинить ещё больше вреда. Тёмная Армия, возглавляемая Белой Розой, уже взорвала 71 здание. Как вы помните, система Эллиота была взломана, и он хочет отследить источник вредоносного ПО и взломать Тёмную Армию, чтобы получить контроль над её операциями.
Эллиот использует инструменты криминалистики памяти для обратного проектирования вредоносного ПО «Тёмной армии» и отправки вредоносного документа на их командный сервер, чтобы захватить контроль над одним из их клиентов. Как и практически всё в этом замечательном сериале, технические детали точны и реалистичны. Эллиот использует Volatility, инструмент анализа памяти с открытым исходным кодом, чтобы найти вредоносное ПО и свою систему, а затем отследить её до командного сервера (подробнее о Volatility см. в моей статье «Цифровая криминалистика, часть 2: Получение и анализ оперативной памяти», а также в нашем готовящемся онлайн-курсе по цифровой криминалистике ).
Затем Эллиотт создал вредоносный PDF-файл (ecoin_vuln_notes.pdf), который дал ему доступ к интерфейсу управления Тёмной Армии. Там он смог увидеть всё – все цели DA на карте.
В этом уроке мы рассмотрим, как Эллиоту удалось отследить командный сервер Темной Армии с помощью Volatility.
Шаг №1: Поиск ключевого файла
Volatilty — это скрипт на Python, который вызывается в каждой из следующих команд с помощью vol.py. Затем используется опция -f для извлечения памяти в файл, который Эллиот называет соответствующим образом — out.mem . Кроме того, каждая команда должна включать профиль памяти операционной системы (каждая операционная система использует оперативную память по-разному), в данном случае —profile=kali.
На первом этапе Эллиоту необходимо найти файл ключа. Он вводит следующую команду.
vol.py -f out.mem –profile=kali linux_find_file -f /etc/ld.so.preload
Здесь Эллиот использует плагин Volatility, linux_find_file для поиска файла (-f) /etc/ld.so.preload .
Volatility отвечает местоположением (0xffff880028c740c0) файла в памяти, как вы можете видеть в нижнем центре.
Шаг №2: Эллиот отправляет файл из памяти в новый файл
Затем Эллиот вводит местоположение файла в памяти, который он нашел в предыдущей команде, и отправляет его (-O) в файл с именем ld.so.preload.
vol.py out.mem –profile=kali linux_find_file -i 0xffff880028c740c0 -O ld.so.preload
Здесь он просто извлекает файл из работающей активной памяти и копирует его в новый файл, чтобы можно было изучить его содержимое.
Шаг №3: Отобразите содержимое файла, извлеченного из памяти.
Здесь Эллиот просто отображает содержимое этого файла, которое он извлек из памяти с помощью команды cat .
cat ldso.preload
Содержимое файла: /usr/local/lib/libhd.so
Шаг №4: Найдите libhd.so в списке запущенных процессов.
На этом этапе Эллиот использует другой плагин Volatility, linux_proc_maps, для отображения всех процессов, запущенных в его системе, а затем передает (|) их в grep для фильтрации процесса с именем libhd.so.
vol.py -f out.mem –profile=kali linux_proc_maps | grep libhd.so
Как видите, он нашел процесс с PID 39238 .
Шаг №5: Отображение процесса с PID 39238
Эти выходные данные показывают, что процесс, который ищет Эллиот, имеет PID (идентификатор процесса) 39238. Затем Эллиот использует эту информацию для поиска PID 39238 и отображает его с помощью плагина Volatilty, linux_psaux.
vol.py -f out.mem –profile=kali =–pid=39328 linux_psaux
Когда Эллиот запускает эту команду, он видит процесс с PID 39238. Он видит, что это скрипт Python, и он открывает URL по адресу 192.251.68.228.
Эллиот нашел URL-адрес сервера управления Темной Армии!
Теперь ему необходимо отправить документ (ecoin_vuln_notes.pdf) со своим руткитом на сервер управления и контроля, чтобы взять под контроль его интерфейс и помешать осуществлению злонамеренных планов Темной армии.
Этот эпизод «Мистера Робота» прекрасно демонстрирует возможности криминалистики живой памяти с помощью Volatility и поднимает юридический и этический вопрос о том, можем ли мы « взломать хакера ».
Эллиот использует инструменты криминалистики памяти для обратного проектирования вредоносного ПО «Тёмной армии» и отправки вредоносного документа на их командный сервер, чтобы захватить контроль над одним из их клиентов. Как и практически всё в этом замечательном сериале, технические детали точны и реалистичны. Эллиот использует Volatility, инструмент анализа памяти с открытым исходным кодом, чтобы найти вредоносное ПО и свою систему, а затем отследить её до командного сервера (подробнее о Volatility см. в моей статье «Цифровая криминалистика, часть 2: Получение и анализ оперативной памяти», а также в нашем готовящемся онлайн-курсе по цифровой криминалистике ).
Затем Эллиотт создал вредоносный PDF-файл (ecoin_vuln_notes.pdf), который дал ему доступ к интерфейсу управления Тёмной Армии. Там он смог увидеть всё – все цели DA на карте.
В этом уроке мы рассмотрим, как Эллиоту удалось отследить командный сервер Темной Армии с помощью Volatility.
Шаг №1: Поиск ключевого файла
Volatilty — это скрипт на Python, который вызывается в каждой из следующих команд с помощью vol.py. Затем используется опция -f для извлечения памяти в файл, который Эллиот называет соответствующим образом — out.mem . Кроме того, каждая команда должна включать профиль памяти операционной системы (каждая операционная система использует оперативную память по-разному), в данном случае —profile=kali.
На первом этапе Эллиоту необходимо найти файл ключа. Он вводит следующую команду.
vol.py -f out.mem –profile=kali linux_find_file -f /etc/ld.so.preload
Здесь Эллиот использует плагин Volatility, linux_find_file для поиска файла (-f) /etc/ld.so.preload .
Volatility отвечает местоположением (0xffff880028c740c0) файла в памяти, как вы можете видеть в нижнем центре.
Шаг №2: Эллиот отправляет файл из памяти в новый файл
Затем Эллиот вводит местоположение файла в памяти, который он нашел в предыдущей команде, и отправляет его (-O) в файл с именем ld.so.preload.
vol.py out.mem –profile=kali linux_find_file -i 0xffff880028c740c0 -O ld.so.preload
Здесь он просто извлекает файл из работающей активной памяти и копирует его в новый файл, чтобы можно было изучить его содержимое.
Шаг №3: Отобразите содержимое файла, извлеченного из памяти.
Здесь Эллиот просто отображает содержимое этого файла, которое он извлек из памяти с помощью команды cat .
cat ldso.preload
Содержимое файла: /usr/local/lib/libhd.so
Шаг №4: Найдите libhd.so в списке запущенных процессов.
На этом этапе Эллиот использует другой плагин Volatility, linux_proc_maps, для отображения всех процессов, запущенных в его системе, а затем передает (|) их в grep для фильтрации процесса с именем libhd.so.
vol.py -f out.mem –profile=kali linux_proc_maps | grep libhd.so
Как видите, он нашел процесс с PID 39238 .
Шаг №5: Отображение процесса с PID 39238
Эти выходные данные показывают, что процесс, который ищет Эллиот, имеет PID (идентификатор процесса) 39238. Затем Эллиот использует эту информацию для поиска PID 39238 и отображает его с помощью плагина Volatilty, linux_psaux.
vol.py -f out.mem –profile=kali =–pid=39328 linux_psaux
Когда Эллиот запускает эту команду, он видит процесс с PID 39238. Он видит, что это скрипт Python, и он открывает URL по адресу 192.251.68.228.
Эллиот нашел URL-адрес сервера управления Темной Армии!
Теперь ему необходимо отправить документ (ecoin_vuln_notes.pdf) со своим руткитом на сервер управления и контроля, чтобы взять под контроль его интерфейс и помешать осуществлению злонамеренных планов Темной армии.
Этот эпизод «Мистера Робота» прекрасно демонстрирует возможности криминалистики живой памяти с помощью Volatility и поднимает юридический и этический вопрос о том, можем ли мы « взломать хакера ».