
Generate malicious files using recently published homoglyphic-attack (CVE-2021-42694)
Genera archivos maliciosos utilizando la vulnerabilidad de ataque homoglifo publicada recientemente, que fue descubierta al menos en C, C++, C#, Go, Python, Rust, JS, ...
Citado de cve.mitre.org
Se descubrió un problema en las definiciones de caracteres de la especificación Unicode hasta la versión 14.0. La especificación permite que un adversario produzca identificadores de código fuente, como nombres de función, mediante homoglifos que se representan visualmente idénticos a un identificador objetivo. Los adversarios pueden aprovechar esto para inyectar código mediante definiciones de identificadores adversarios en dependencias de software upstream invocadas de forma engañosa en software downstream.
Los datos sin procesar de los homoglifos (homoglyphs.txt) se tomaron de aquí y se limpiaron los datos para descartar caracteres en cursiva y disímiles.
Consulta la fuente original de la Universidad de Cambridge:
https://www.trojansource.codes/trojan-source.pdf
python3 codegen.py [-h] [-i INFILE] [-o OUTFILE] [-r] [-a]
| arg | arg largo | parámetro | descripción |
|---|---|---|---|
| -h | --help | none | muestra este mensaje de ayuda y sale |
| -i | --infile | INFILE | Archivo de entrada que contiene placeholders de homoglifos |
| -o | --outfile | OUTFILE | Archivo de salida para almacenar el código final |
| -r | --random | none | Establece la marca para elegir un homoglifo aleatorio; toma el primero si no se establece |
| -a | --about | none | Imprime el texto de información |
Los ejemplos fueron creados por mí o están tomados del PDF referenciado. Para ejecutar estos ejemplos, ejecuta codegen.py con los argumentos requeridos:
python3 codegen.py -i infile.xyz -o outfile.xyz y ejecuta/compila outfile.xyz.
Actualmente, solo se admiten dígitos [0-9], así como caracteres en minúsculas y mayúsculas [a-zA-Z]. Para reemplazar un carácter admitido dentro de tu plantilla con un homoglifo (aleatorio), simplemente encierra el carácter con signos de dólar $. Consulta los ejemplos para tener una primera impresión de cómo podría verse una plantilla.