Анализ бэкдора Godlua

NullX

Участник
Клуб
Студент
Регистрация
30.06.18
Сообщения
141
Лучшие ответы
0
Реакции
320
Баллы
12
Godlua Backdoor имеет резервный механизм связи для соединения C2, комбинация жестко закодированного имени DNS, Pastebin.com, GitHub.com, а также DNS TXT используются для хранения адреса C2, что не часто встречается. В то же время он использует HTTPS для загрузки файлов байт-кода Lua и использует DNS поверх HTTPS для получения имени C2, чтобы обеспечить безопасную связь между ботами, веб-сервером и C2.

Мы заметили, что уже есть 2 версии Godlua Backdoor и продолжаются обновления. Мы также заметили, что злоумышленники используют команду Lua для динамического запуска кода Lua и инициирования атак HTTP Flood, направленных на некоторые веб-сайты.

Обзор
В настоящее время мы видим, что существует две версии Godlua. Версия 201811051556 получена путем обхода серверов загрузки Godlua, и на ней не было обновлений. Версия 20190415103713 ~ 2019062117473 активна и активно обновляется. Все они написаны на C, но активный поддерживает больше компьютерных платформ и больше функций. Ниже приведено сравнение.


image15.png



Godlua Backdoor. Обратный анализ
Версия 201811051556

Это версия, которую мы нашли ранее (201811051556). Он ориентирован на платформу Linux и поддерживает два вида инструкций C2 для выполнения системных команд Linux и для запуска пользовательских файлов.

Пример информации
  • MD5: 870319967dba4bd02c7a7f8be8ece94f
ELF 32-битный исполняемый LSB, Intel 80386, версия 1 (SYSV), для GNU / Linux 2.6.32, динамически связанный (использует общие библиотеки), для GNU / Linux 2.6.32.

С2 резервный механизм
В этой версии связь C2 осуществляется двумя способами: жестко закодированным доменным именем и ссылкой Github.


image13.png



Его домен: d.heheda.tk


image29.png



У этого также есть страница Github, и реальный адрес C2 находится в описании проекта.


image19.png



Инструкция C2
cmd_call, выполнять системные команды Linux


image3.png



cmd_shell, выполнить пользовательский файл


image8.png



Анализ протокола C2
Формат пакета


LENGTHTYPEDATA
Little endian,2 bytes1 bytes(Length -3) bytes

Алгоритм шифрования
Ключ XOR генерируется случайным образом из 16 байтов данных, алгоритм выглядит следующим образом:


image20.png



Обзор пакетов
cmd_handshake


image28.png



cmd_heartbeat

image24.png



Версия 20190415103713 ~ 20190621174731
Эта активная версия работает как в Windows, так и в Linux.
Модуль управления реализован на Lua и поддерживается пять команд C2

Пример информации
версия 20190415103713

  • MD5: c9b712f6c347edde22836fb43b927633
Исполняемый файл ELF 64-битный LSB, AMD x86-64, версия 1 (SYSV), статически связанный, разделенный

Версия 20190621174731
  • MD5: 75902cf93397d2e2d1797cd115f8347a
ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), statically linked, stripped
Избыточный механизм С2


image13.png



Этап-1 URL
Бэкдор использует 3 различных способа хранения URL-адреса Stage-1. Зашифрованный зашифрованный текст, описание проекта Github и Pastebin text.

После получения и дешифрования URL-адреса Stage-1 будет загружен файл start.png, который фактически является байт-кодом Lua.

Затем бот загружает его в память и выполняет, чтобы получить URL-адрес этапа 2.

Алгоритм шифрования
  • AES,CBC Mode
  • key:13 21 02 00 31 21 94 E2 F2 F1 35 61 93 4C 4D 6A
  • iv:2B 7E 15 16 28 AE D2 01 AB F7 15 02 00 CF 4F 3C
Сильно зашифрованный текст
Версия 20190415103713

  • AES ciphertext:03 13 84 29 CC 8B A5 CA AB 05 9E 2F CB AF 5E E6 02 5A 5F 17 74 34 64 EA 5B F1 38 5B 8D B9 A5 3E
  • Открытый код URL-адреса этапа 1:https://d.heheda.tk/%s.png
Версия 20190621174731
  • AES ciphertext:F1 40 DB B4 E1 29 D9 DC 8D 78 45 B9 37 2F 83 47 F1 32 3A 11 01 41 07 CD DB A3 7B 1F 44 A7 DE 6C 2C 81 0E 10 E9 D8 E1 03 38 68 FC 51 81 62 11 DD
  • Открытый код URL-адреса этапа 1:https://img0.cloudappconfig.com/%s.png
Описание проекта Github
  • AES ciphertext:EC 76 44 29 59 3D F7 EE B3 01 90 A9 9C 47 C8 96 53 DE 86 CB DF 36 68 41 60 5C FA F5 64 60 5A E4 AE 95 C3 F5 A6 04 47 CB 26 47 A2 23 80 C6 5F 92
  • Github URL:https://api.github.com/repos/helegedada/heihei
  • Процесс дешифрования:
image2.png


  • Зашифрованный текст описания проекта: oTre1RVbmjqRn2kRrv4SF / l2WfMRn2gEHpqJz77btaDPlO0R9CdQtMM82uAes + Fb
  • Открытый код URL-адреса этапа 1:https://img1.cloudappconfig.com/%s.png
Вставить текст
  • AES ciphertext:19 31 21 32 BF E8 29 A8 92 F7 7C 0B DF DC 06 8E 8E 49 F0 50 9A 45 6C 53 77 69 2F 68 48
    DC 7F 28 16 EB 86 B3 50 20 D3 01 9D 23 6C A1 33 62 EC 15
  • Вставить открытый текст URL:https://pastebin.com/raw/vSDzq3Md
  • Decryption Process:
image1.png


Этап-2 URL
Здесь, на этапе 2, используются два механизма для хранения URL-адреса этапа 2, файла проекта Github и DNS через HTTPS.
После извлечения и дешифрования URL-адреса этапа 2 будет загружен файл run.png, а также байт-код Lua.
Бот загрузит этот файл в память и запустит его, чтобы получить Stage-3 C2.

Алгоритм шифрования
  • AES,CBC Mode
  • key:22 85 16 13 57 2d 17 90 2f 00 49 18 5f 17 2b 0a
  • iv:0d 43 36 41 86 41 21 d2 41 4e 62 00 41 19 4a 5c
Файл проекта Github
  • URL-адрес Github хранится в файле байт-кода Lua (start.png) в виде открытого текста. Разобрав ее, мы получаем следующую информацию:
image6.png


  • Зашифрованный текст файла проекта Github: kI7xf+Q/fXC0UT6hCUNimtcH45gPgG9i+YbNnuDyHyh2HJqzBFQStPvHGCZH8Yoz9w02njr41wdl5VNlPCq18qTZUVco5WrA1EIg3zVOcY8=
  • Открытый текст URL-адреса этапа 2:{"u":"https:\/\/dd.heheda.tk\/%s.png","c":"dd.heheda.tk::198.204.231.250:"}
DNS TXT
  • DNS TXT хранится в файле байт-кода Lua (start.png) в виде открытого текста. Получив следующую информацию, разобрав ее:
image7.png



DNS через HTTPS-запрос:

image30.png


  • DNS TXT зашифрованный текст: 6TmRMwDw5R/sNSEhjCByEw0Vb44nZhEUyUpUR4LcijfIukjdAv+vqqMuYOFAoOpC7Ktyyr6nUOqO9XnDpudVmbGoTeJD6hYrw72YmiOS9dX5M/sPNmsw/eY/XDYYzx5/
  • Открытый текст URL-адреса этапа 2:{"u":"http:\/\/img1.cloudappconfig.com\/%s.png","c":"img1.cloudappconfig.com::43.224.225.220:"}
Этап-3 C2
Этап 3 C2 жестко закодирован в файле байт-кода Lua (run.png). Мы разобрали его, чтобы получить следующую информацию.

Версия 20190415103713


image21.png



Версия 20190621174731


image4.png



DNS через HTTPS-запрос


image31.png



C2 инструкция
| CMD | Type |
| --------- | ---- |
| HANDSHAKE | 1 |
| HEARTBEAT | 2 |
| LUA | 3 |
| SHELL | 4 |
| UPGRADE | 5 |
| QUIT | 6 |
| SHELL2 | 7 |
| PROXY | 8 |

Анализ протокола C2
Формат пакета




Обзор пакетов
HANDSHAKE



image5.png



image9.png



HEARTBEAT

image11.png




image27.png


  • LUA Payload
image25.png




image16.png



Мы наблюдали, как злоумышленник выполняет атаку HTTP Flood против www.liuxiaobei.com.


image32.png



Анализ сценариев Lua
Пример Bot загружает множество сценариев Lua при выполнении, и сценарии можно разбить на три категории: выполнить, помогать и атаковать.
  • выполнение: start.png,run.png,quit.png,watch.png,upgrade.png,proxy.png
  • помощь: packet.png,curl.png,util.png,utils.png
  • атака: VM.png,CC.png
Алгоритм шифрования
  • AES,CBC Mode
  • key:13 21 02 00 31 21 94 E2 F2 F1 35 61 93 4C 4D 6A
  • iv:2B 7E 15 16 28 AE D2 01 AB F7 15 02 00 CF 4F 3C
Магический номер Lua
Все дешифрованные файлы предварительно скомпилированы, возьмем в качестве примера файл upgrade.png, обратите внимание, что выделенная часть является заголовком файла.


image14.png



Вы можете видеть, что магическое число изменилось с «Lua» на «God».
Автор вредоносного ПО, похоже, также устанавливает ловушку для исследователя, вручную изменяя число LuaVerion в образце на 5.1.4 ($ LuaVersion: God 5.1.4 C $$ LuaAuthors: R. $). Мы считаем, что реальная версия должна быть определенно новее, чем 5.2.

Декомпилировать
Чтобы декомпилировать вышеуказанный скрипт, мы должны знать, какие изменения были внесены в Lua. После некоторого анализа мы пришли к выводу, что модификацию можно разделить на два основных раздела: Lua Header и Lua Opcode.
Декомпилировано Luadec [1]


image10.png



Предложения
Нам еще предстоит увидеть полную картину того, как именно Backdoor Godlua заражает цели, на данный момент мы знаем, что по крайней мере некоторые пользователи Linux были заражены с помощью эксплойта Confluence (CVE-2019-3396), если у наших читателей есть больше информации, чувствуйте свободно связаться с нами.
Мы предлагаем хотя бы отслеживать и блокировать соответствующие IP-адреса, URL-адреса и доменные имена Godlua Backdoor в вашей сети.

Список IoC
MD5

image12.png



URL

image18.png



C2 Domain

image26.png



IP

image22.png
 
Сверху