Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonyN0P authored Nov 10, 2024
1 parent ef23a47 commit f27ecb2
Showing 1 changed file with 111 additions and 0 deletions.
111 changes: 111 additions & 0 deletions _posts/2022-09-06-Loki-Maldoc.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
---
title: "Ресерч свежего Excel документа с Loki malware внутри"
date: 2022-09-06 08:43:45 +0600
toc: true
header:
teaser: "" ####->teaser
tags:
- Phishing
- DFIR
- malware
- RE
- maldoc
---


# Ресерч свежего Excel документа с Loki malware внутри

Решил немного изучить свежий сэмпл малваря Loki (31.08), который содержится в Excel документе и используется для фишинговой рассылки. В этой небольшой статье основное внимание уделено практической части поиска, извлечения и небольшого разбора поведения вредоноса. Надеюсь, что данная статья будет полезной с теоретической и практической точек зрения.

Утилиты и скрипты:

* file;
* msoffcrypto-crack.py;
* oletools;
* scdbg;
* Detect It Easy (diec);
* InetSim;
* FakeNet;
* PoweShell;
* strings.

Свежий Анализ malicious Excel document с вредоносным вложением Loki malware (sha256: 4973d12a201434d409e66ebbb6568eb38fbb379181e166a1eca399df1f24682b) от 31.08.2022г. Вложения используются в фишинговых атаках и имеют определенную динамику поступления, за последний месяц (рисунок 1) на сайте https://bazaar.abuse.ch/.

![1](/assets/images/loki_malware/1.png){:class="img-responsive"}

Перед изучением, давайте убедимся, что содержимое файла не было зашифровано.

![2](/assets/images/loki_malware/2.png){:class="img-responsive"}

Так как файл зашифрован (Рисунок 2). Нам необходимо найти пароль и расшифровать.

Далеко ходить не будем, поищем пароль в .xlsx файле. После недолгих поисков, мы получаем дешифрованный файл, т.к. пароль был внутри, после запуска файла, данный пароль использовался для дешфировки и выполнения вредоносного кода(рисунок 3).

![3](/assets/images/loki_malware/3.png){:class="img-responsive"}

Теперь можно начинать анализ файла, воспользуемся утилитами oletools by DidierStevens.

Использование Oleid, не показало наличие вложенных VBA & XLM макросов и ссылок внутри документа.

![4](/assets/images/loki_malware/4.png){:class="img-responsive"}

Останавливаться не будем, взглянем на вывод oledump.py, он показывает наличие исполняемого файла binary в xlsx. Что ж, давайте экспортируем содержимое A2 в отдельный файл для дальнейшего анализа (Рисунок 5).

![5](/assets/images/loki_malware/5.png){:class="img-responsive"}

Итак, давайте запустим утилиту эмулирующую среду для запуска shellcode’а: scdbg. Установим findsc, ReportMode, CreateDump и.т.д (рисунок 6).


![6](/assets/images/loki_malware/6.png){:class="img-responsive"}

После эмуляции, в scdbg видно функции, которые вызваются (Рисунок 7):

1. Функция GetProcAddress для получения адреса функции ExpandEnvironmentStringsW для расширения переменной среды.
2. Вызов этой функции для последующего сохранения по корректному пути вредоносного файла.
3. Получение адреса функции загрузки файла, с последующим вызовом её и сохранения вредоносного файла Cloud2.exe в %public%regasm_avch.exe.
4. Исполнение загруженного файла.

![7](/assets/images/loki_malware/7.png){:class="img-responsive"}

Теперь, когда у нас есть адрес, загрузим файл. После загрузки, проанализируем содержимое. В первую очередь, на наличие пакера/протектора и языка, на котором написан код. Как мы видим на рисунке 8, исполняемый файл написан на C# и защищен при помощи протектора.

![8](/assets/images/loki_malware/8.png){:class="img-responsive"}

Перед анализом снимем протектор с файла (Рисунок 9).

![9](/assets/images/loki_malware/9.png){:class="img-responsive"}

Теперь можно приступать к статическому анализу файла, с использованием dnSpy (бесплатная утилита), IDA Pro или на худой конец пройтись strings, чтобы найти читаемые строки. Также можно посмотреть функции в сэмпле вредоноса. Вредонос взаимодействует со следующими ресурсами (следует из кода исполняемого файла Cloud2.exe.1):

http://can-sat.netai[.]net/livestream/

Загружает файлы:

http://tempuri[.]org/_CAN_SATDataSet.xsd
http://tempuri[.]org/_CAN_SATDataSet1.xsd
http://tempuri[.]org/_CAN_SATDataSet2.xsd

Содержит алгоритм шифрования AES (работает с ключами 128, 192 или 256 бит). И много других интересных функций, полный список можете посмотреть сами.

На этом небольшой статический анализ завершается и начинается динамический=)
Динамический анализ при помощи FakeNet (Рисунок 10 и 11) и InetSim, показывает нам куда обращается вредонос во время запуска:

![10](/assets/images/loki_malware/10.png){:class="img-responsive"}

![11](/assets/images/loki_malware/11.png){:class="img-responsive"}

Выше и в TCPViewer мы видим C2 Server 208.67.105[.]162 (месторасположение USA, City: Middleton), с которым взаимодействует вредонос (выше на рисунке 11, до копирования и переименования себя, а на рисунке 12, уже после копирования и переименования с атрибутами h – hidden & s – system, для скрытия).

![12](/assets/images/loki_malware/12.png){:class="img-responsive"}

Cloud2.exe копирует себя с атрибутами h (hidden) & s (system) в директорию C:\Users\<Username>\AppData\Roaming\585711\127DE7.exe (с другим именем), чтобы визуально его невозможно было найти, даже после включения отображения скрытых файлов(Рисунок 13 и 14). К слову, hash файла также меняется.

![13](/assets/images/loki_malware/13.png){:class="img-responsive"}

![14](/assets/images/loki_malware/14.png){:class="img-responsive"}

Однако мы можем изменить атрибуты, чтобы файл стал нам вновь доступен (Рисунок 15).

![15](/assets/images/loki_malware/15.png){:class="img-responsive"}

Собственно, на этом небольшой разбор заканчивается. Описал некоторые техники и IoCи (индикаторы компрометации) в ходе выполнения анализа. При желании можно пойти дальше и выполнить более глубокий статический и динамический анализы.

0 comments on commit f27ecb2

Please sign in to comment.