
morphHTA - Transformando el evil.HTA de Cobalt Strike
Como de costumbre, este código y herramienta no deben utilizarse con fines maliciosos.
Escrito por Vincent Yiu del equipo ActiveBreach de MDSec Consulting. Se permite la modificación del código con créditos al autor.
La investigación sobre monikers COM de Explorer y SWBemLocator es de @enigma0x3
Uso:
usage: morph-hta.py [-h] [--in <input_file>] [--out <output_file>]
[--maxstrlen <default: 1000>] [--maxvarlen <default: 40>]
[--maxnumsplit <default: 10>]
optional arguments:
-h, --help show this help message and exit
--in <input_file> File to input Cobalt Strike PowerShell HTA
--out <output_file> File to output the morphed HTA to
--maxstrlen <default: 1000>
Max length of randomly generated strings
--maxvarlen <default: 40>
Max length of randomly generated variable names
--maxnumsplit <default: 10>
Max number of times values should be split in chr
obfuscation
/morphHTA# python morph-hta.py
███╗ ███╗ ██████╗ ██████╗ ██████╗ ██╗ ██╗ ██╗ ██╗████████╗ █████╗
████╗ ████║██╔═══██╗██╔══██╗██╔══██╗██║ ██║ ██║ ██║╚══██╔══╝██╔══██╗
██╔████╔██║██║ ██║██████╔╝██████╔╝███████║█████╗███████║ ██║ ███████║
██║╚██╔╝██║██║ ██║██╔══██╗██╔═══╝ ██╔══██║╚════╝██╔══██║ ██║ ██╔══██║
██║ ╚═╝ ██║╚██████╔╝██║ ██║██║ ██║ ██║ ██║ ██║ ██║ ██║ ██║
╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝
Transformando Evil.HTA de Cobalt Strike
Autor: Vincent Yiu (@vysec, @vysecurity)
[*] morphHTA iniciado
[+] Escribiendo payload a morph.hta
[+] Payload escrito
Longitud máxima de nombre de variable y longitud de cadena generada aleatoriamente reducidas para disminuir el tamaño total de la salida HTA:
/morphHTA# python morph-hta.py --maxstrlen 4 --maxvarlen 4
División máxima en ofuscación chr(), esto reduce el número de sumas que hacemos para acortar la longitud:
/morphHTA# python morph-hta.py --maxnumsplit 4
Cambiar archivos de entrada y salida:
/morphHTA# python morph-hta.py --in advert.hta --out advert-morph.hta
Sugiero no subirlo a VT:

