• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Анализ бэкдора Godlua

NokZKH

Переводчик
Забанен
Регистрация
09.02.2019
Сообщения
99
Реакции
121
Пожалуйста, обратите внимание, что пользователь заблокирован
Предыстория
24 апреля 2019 года наша система обнаружения неизвестных угроз выделила подозрительный файл ELF, который был отмечен несколькими поставщиками как троян, связанный с майнингом на VT. Мы не можем подтвердить, что у него есть связанный с майнингом модуль, но мы видим, что он начинает выполнять функцию DDoS.

Сам файл является Backdoor на основе Lua, мы назвали его Godlua Backdoor, так как файл байт-кода Lua, загруженный этим примером, имеет магическое число «Бог».

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
Формат пакета

MVIdx0zYlpGJJBjGl7UMXQyiiVX6qL0y3nohgNv9gQBIVgGeVO2DI9jKsD0iCgPQyK-wpG99uubyVvYwmpwaD3nGpbgbffjUQAPLqMX4UhYNQP041Cwnsrj4l-j8MgdTCc8t2fsD


Обзор пакетов
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
 

Вложения

  • image17.png
    image17.png
    1.6 КБ · Просмотры: 46
  • image23.png
    image23.png
    27.8 КБ · Просмотры: 45
Последнее редактирование:
Переводчик, не лажай) Гугл транслейту тут не место
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Переводчик, не лажай) Гугл транслейту тут не место
Достойно)
Переводил сам. В некоторых моментах не хватало знаний английского из-за сложности данной темы. Не отрицаю, что использовал переводчик, но только для отдельных слов.
 
Переводил сам. В некоторых моментах не хватало знаний английского из-за сложности данной темы. Не отрицаю, что использовал переводчик, но только для отдельных слов.
Не стесняйся создавать темы для перевода отдельны "слэнговых" слов, тут комьюннити доброе, и с радостью поможет тебе Ж)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Не стесняйся создавать темы для перевода отдельны "слэнговых" слов, тут комьюннити доброе, и с радостью поможет тебе Ж)
Спасибо, завтра создам тему, в которую скину несколько словосочетаний, которые не смог понять.
 
Перевод неплохой, но посоветовал бы поработать над окончаниями.В некоторых местах они не сочетаются с предыдущим словом и т.п.А в остальном всё даже отлично
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Перевод неплохой, но посоветовал бы поработать над окончаниями.В некоторых местах они не сочетаются с предыдущим словом и т.п.
Это была единственная провальная статья -_-
 
Мне так стыдно( Даже школьник её захейтил -_-
Это был не хейт, я просто дал совет и хотел бы, чтобы ты процветал как переводчик
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх