Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2020-25265-25266 | Kitploit
Инструменты/GitHubGitHub/refi64/cve-2020-25265-25266
Повышение привилегийАнализ уязвимостейЭксплуатацияЛатеральное перемещениеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubrefi64/cve-2020-25265-25266

CVE-2020-25265-25266

Репозиторий
215 лет назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2020-25265 / CVE-2020-25266

  • CVE-2020-25265
  • CVE-2020-25266

Это PoC-эксплойт для libappimage и appimaged.

Используя комбинацию двух CVE, можно создать файл, который не выглядит как AppImage, но при этом автоматически подхватывается и устанавливается appimaged, переопределяя установленную в системе версию того же приложения.

В данном случае в качестве полезной нагрузки использовался MP3-файл, а переопределённым приложением был Nautilus.

Затронутые версии

Уязвимость затрагивает все версии appimaged и все версии libappimage старше 1.0.3.

Что происходит

  • У кодека MP3 нет заголовка файла, поэтому медиапрограммы вынуждены сканировать файл в поисках заголовка кадра. Это означает, что мы можем поместить заголовки ELF и AppImage типа 2 в начало файла, и MP3 при этом останется воспроизводимым. Это делает MP3 идеальной целью для данного PoC.

  • MP3-файл модифицируется так, чтобы после воспроизводимой медиачасти содержать бинарный файл с полезной нагрузкой; при этом Dart-скрипт используется для размещения MP3-данных между исполняемым файлом полезной нагрузки и заголовком ELF. (Обратите внимание: я не корректировал расположение символов в таблице символов, так как это потребовало бы больше усилий и не было нужно для данного PoC.) Бинарный файл полезной нагрузки занимает менее 1 МБ, поэтому заметного увеличения размера файла не происходит. В самом конце файла добавляется файловая система squashfs, содержащая поддельный desktop-файл Nautilus и иконку.

    Обратите внимание: хотя добавление MP3 в конец squashfs технически тоже сработало бы, это с большей вероятностью сбило бы с толку медиаплееры из-за его появления так поздно в файле, тогда как данные сразу после заголовка ELF находятся всего в нескольких десятках байт от начала файла.

  • appimaged сканирует все файлы во всех отслеживаемых каталогах, независимо от расширения файла. Когда он обнаруживает MP3, он распознаёт заголовки ELF и AppImage и извлекает содержащийся внутри desktop-файл.

  • Вредоносный desktop-файл теперь записан и указывает на вредоносный MP3. Когда пользователь в следующий раз запустит «Файлы» (Files), будет запущен встроенный в MP3 ELF-исполняемый файл вместо системной установки.

  • Обычно desktop-файл назывался бы «appimagekit_...desktop», поэтому он не смог бы полностью переопределить системные приложения. Однако Integrator.cpp в libappimage берёт поле Name без проверки или экранирования, поэтому во вредоносный desktop-файл можно добавить следующее:

    root@kitploit:~
    Name=/../org.gnome.Nautilus
    Name[en]=Files
    

    и файл будет записан в ~/.local/share/applications/org.gnome.Nautilus.desktop, маскируя установленный в системе Nautilus.

Меры противодействия

Убедитесь, что установленная у вас версия libappimage не ниже 1.0.3, в которой исправлена проверка поля Name. Важно отметить, что на данный момент это не относится к libappimage в Debian, которая довольно устарела.

Все версии appimaged уязвимы, а проект был объявлен устаревшим. go-appimage обходит проблему с именами файлов, подхватывая только AppImage-файлы с именем *.AppImage. AppImageLauncher обходит проблему с именами файлов, запрашивая у пользователя разрешение на установку до её начала.

Тестирование

Поместите произвольный аудиофайл в audio.mp3 и выполните dart bin/write_mp3.dart, чтобы собрать полезную нагрузку и записать модифицированный MP3-файл. Для работы потребуются установленные Dart SDK и FreePascal.

Заметки по реализации

Для бинарного файла использовался Pascal, поскольку при использовании возможностей подпроцессов он давал наименьший размер статически слинкованных файлов среди протестированных языков (C со статической линковкой через musl, Go).

При тестировании в качестве аудиофайла использовался world.execute(me), поскольку это казалось уместным.

Скачать инструмент