
Armor es un script Bash simple diseñado para crear payloads de macOS cifrados capaces de evadir escáneres antivirus.
Armor es un script Bash simple diseñado para crear payloads cifrados de macOS capaces de evadir escáneres antivirus. A continuación, se muestra un ejemplo en gif de Armor siendo utilizado con un payload Netcat simple.

Se inicia un listener Netcat en el puerto 4444. El archivo "payload.txt" se lee y se muestra que contiene un simple one-liner de Bash que, al ejecutarse, creará una conexión TCP entre la MacBook objetivo y el listener Netcat del atacante. Armor se utiliza para cifrar el one-liner de Bash. Ncat se utiliza para alojar la clave de descifrado en el servidor del atacante. Cuando el stager se ejecuta en la MacBook objetivo (no se muestra en el gif), el one-liner de Bash se descifra y se ejecuta sin escribir ningún dato en el disco duro. Ncat termina inmediatamente el listener después de que la clave haya sido utilizada. Cuando se establece la conexión Netcat, el atacante tiene acceso remoto a la MacBook objetivo.
Es cierto que cifrar la mayoría de los payloads específicos de macOS es excesivo. Este one-liner de Bash en particular es capaz de evadir el antivirus sin la ayuda de Armor. Pero esto es solo un ejemplo. El mismo grado de ofuscación se puede aplicar a scripts sofisticados de Python, Ruby y Shell diseñados para ejecutar una variedad de ataques avanzados.
Armor depende de LibreSSL para cifrar el archivo de entrada y crear el certificado SSL. Si LibreSSL no se encuentra en su sistema, Armor intentará instalarlo. La función para esto se puede encontrar en el archivo armor.sh. Ncat también es una dependencia y se puede instalar en Kali usando $ apt-get update && apt-get install nmap.
Armor se puede clonar y ejecutar usando los siguientes comandos.
git clone https://github.com/tokyoneon/Armor
cd Armor/
chmod +x armor.sh
./armor.sh /path/to/payload.txt 1.2.3.4 443
La dirección 1.2.3.4 es la dirección IP del atacante donde se alojará la clave de descifrado. Puede ser una dirección IP local o VPS. El número de puerto (443) es arbitrario y se puede cambiar según sea necesario.
Preguntas e inquietudes: