TGViewer
Coffee cube Coffee cube @coffee_cube · 475 subscribers
Post #79 445
Привет^3🦠

Сегодня покажу вам разбор несложной малвари под Linux.

Реверс-инжиниринг помогает разобраться в том, как работает ВПО(вредоносное программное обеспечение). Более подробно можно почитать туть.

При анализе малвары мне нравится извелкать интересные приемы, которые в ней используются. А далее воспроизводить их для дальнейшего детекта и забавы ради.

Обычно проводится статический и динамический анализ для полного понимания алгоритма работы программы.

В этом посте я проведу статический анализ. Динамический анализ и небольшой интерактивчик будет на следующей неделе:3

▪︎ Первым делом

Обычно я смотрю файл через утилиту Detect It Easy. Вот ее вывод:


Info:
Size: 1028096
File type: ELF32
String: ELF(386)
Extension: elf
Operation system: Red Hat Linux(ABI: 2.6.9)
Architecture: 386
Mode: 32-bit
Type: EXEC
Endianness: LE


Выглядит так, что таблица символов не удалена, поэтому можно сразу найти main. Закидываб бинарь в IDA Pro

▪︎ main

В функции main происходит создание процесса-демона с вызовом chroot() в корневую директорию /. (скриншот 1)

Далее в бесконечном цикле вызывается функция do_heartbeat().

▪︎ do_heartbeat()

Из функции можно извлечь все директории, с которыми малвара взимодействует. (скриншот 2)

/u01, /u02, /u03, /u04 - это часто используемые точки монтирования в Linux при работе с базами данных Oracle.

▪︎ find

Конечно же следом пойду смотреть фунцию find. (скриншот 3)

Алгоритм функции достаточно простой:
1. Открывает директорию и проходится по всем файлам в ней. Если это . или .., то их пропускает;
2. Вызвает функцию CreatRadMe (да-да, это не опечатка). По названию понятно, что создается README файл (скриншот 4);
3. Далее происходит вызов EncrFile, если не находит подстроку C_I_0P в пути до файла. Если же это директория, то рекурсивно вызывается find;

▪︎ CreatRadMe

Ничего особо интересного тут нет. Просто создается файл со следующим содержанием. (скриншот 4)

▪︎ EncrFile

Думаю, что ключевая функция во всем малваре - EncrFile. (скриншот 5)

По сути для файла изменяются права с помощью chmod() на rw-------. Эти же права используются далее для работы с файлами.

Файл шифрутеся с помощью алгоритма rc4. Ключ генерируется для каждого файла отдельно, и, что интересно, записывается в файл рядом с раширением .C_I_0P с помощью функции CreateKey. Это означает, что получится эти файлы расшифровать) При этом шифруется максимум 100000000 байт файла.

▪︎ Итог

Я провел статический анализ не сложного шифровальщика-демона(такие бываю не часто, но об этом напишу позже❤️). Так как ключ хранится рядом с зашифрованным файлом, то мы можем написать дешифровшик. Динамическим анализом и написанием дешифровшика мы займемся в следующий вторник. Так что ожидайте с нетерпением:3

#malware #linux
@coffee_cube
  • 🤝 5
  • 👨‍💻 4
  • ❤ 2
  • 👍 2
  • ✍ 1
  • ❤‍🔥 1
More from @coffee_cube
  1. Sep 16, 2026Привет^3☕️ cron есть почти везде, а оператор @reboot выполняет команду один раз при загруз…
  2. Sep 11, 2026Привет^3☕️ Достаточно богатая на события неделя. Вышла запись моего доклада на OFFZONE 202…
  3. Sep 10, 2026Семечко от Mango. Разбираем и воспроизводим уязвимость в роутере по описанию с NVD 👑 Стат…
  4. Sep 10, 2026Привет^3☕️ А у меня статья вышла. Сам в шоке🫤 ↖️ 📕тг • 🤬чатик • ✏️посты • 📹yt • 💞Twit…
  5. Sep 9, 2026Привет^3☕️ Свершилось😇Наконец я выступлю с докладом в своем городе и мне не нужно собират…
  6. Sep 2, 2026Привет^3☕️ Реликт до-systemd эпохи: скрипты в /etc/init.d/ c обработкой start/stop. На сов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →