
Generate malicious files using recently published homoglyphic-attack (CVE-2021-42694)
Создавайте вредоносные файлы, используя недавно опубликованную уязвимость атаки с использованием гомоглифов, которая была обнаружена как минимум в C, C++, C#, Go, Python, Rust, JS, ...
Цитата из cve.mitre.org
Проблема была обнаружена в определениях символов спецификации Unicode вплоть до версии 14.0. Спецификация позволяет злоумышленнику создавать идентификаторы исходного кода, такие как имена функций, используя гомоглифы, которые визуально неотличимы от целевого идентификатора. Злоумышленники могут использовать это для внедрения кода через вредоносные определения идентификаторов в вышестоящих программных зависимостях, обманным образом задействуемых в нижестоящем программном обеспечении.
Исходные данные для гомоглифов (homoglyphs.txt) взяты отсюда, данные были очищены, чтобы отсеять курсивные и несхожие символы.
См. оригинальный источник Кембриджского университета:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-i INFILE] [-o OUTFILE] [-r] [-a]
| аргумент | длинный аргумент | параметр | описание |
|---|---|---|---|
| -h | --help | нет | показать это справочное сообщение и выйти |
| -i | --infile | INFILE | Входной файл, содержащий заполнители гомоглифов |
| -o | --outfile | OUTFILE | Выходной файл для сохранения итогового кода |
| -r | --random | нет | Установите флаг для выбора случайного гомоглифа; если флаг не установлен, берётся первый |
| -a | --about | нет | Вывести информационный текст |
Примеры созданы мной или взяты из указанного PDF-файла. Чтобы запустить эти примеры, выполните codegen.py с необходимыми аргументами:
python3 codegen.py -i infile.xyz -o outfile.xyz и запустите/скомпилируйте outfile.xyz.
В настоящее время поддерживаются только цифры [0-9], а также символы нижнего и верхнего регистра [a-zA-Z]. Чтобы заменить поддерживаемый символ в вашем шаблоне на (случайный) гомоглиф, просто заключите символ в знаки доллара $. Посмотрите примеры, чтобы получить первое представление о том, как может выглядеть шаблон.