
Repositorio público para mejoras del exploit EXTRABACON
Repositorio público de mejoras para el exploit EXTRABACON, una ejecución remota de código para Cisco ASA escrito por Equation Group (NSA) y filtrado por Shadow Brokers.
Hay shellcode mejorado, un script para encontrar offsets de LINA, un módulo de Metasploit y extrabacon-2.0.
Estamos añadiendo parches para la mayoría de las versiones de 8.x y 9.x en un futuro cercano después de probar todas las versiones en hardware real.
Esto utiliza shellcode mejorado, tiene menos etapas que la versión de Equation Group, lo que lo hace más confiable. Esto hace que el paquete de carga útil SNMP sea ~150 bytes más pequeño. Además, la versión filtrada solo soporta 8.x, nosotros lo tenemos funcionando en versiones 9.x.
Usando el script de búsqueda de offsets de Lina, debería ser trivial soportar todas las versiones x86 vulnerables. Estamos trabajando en eso. NOTA: x64 (9.6+?) introduce DEP y ASLR. El buscador de offsets y el payload genérico no funcionarán. Aún así debería ser posible hacer DoS fácilmente a estas versiones.
Abre un issue si deseas que soportemos una versión específica. Se moverá al frente de la cola.
8.x
****** ********9.x
******** soporte de nueva versión no incluido en la filtración original de Shadow Brokers
** Actualmente no podemos distinguir entre versiones normales y NPE a partir de las cadenas SNMP. Hemos comentado los offsets de NPE, ya que NPE es muy raro (es para exportar a lugares donde el cifrado es deficiente), pero en el futuro, nos gustaría incorporar estas versiones. ¿Quizás como una opción booleana?
use auxiliary/admin/cisco/cisco_asa_extrabacon
https://github.com/rapid7/metasploit-framework/pull/7359
Nuestra solicitud de pull inicial fue fusionada en la rama master de Metasploit. Seguiremos contribuyendo con más offsets, que pueden estar disponibles aquí antes dependiendo de la latencia de futuras solicitudes de pull.
Si puedes probar versiones de ASA, considera hacer un fork de este proyecto y generar payloads. Podríamos generar los payloads en masa, pero queremos probar para asegurarnos de que cada payload salga limpiamente.
Puedes añadir nuevos payloads a la carpeta extrabacon-2.0/improved/ después de usar lina-offsets.py para generar el archivo. Los módulos se nombran shellcode_verstring.py, donde verstring es la cadena de versión devuelta por el ASA, con los puntos . reemplazados por guiones bajos _
También envía solicitudes de pull eliminando cualquier Python innecesario del código ExtraBacon 2.0.
python2 ./lina-offsets.py asa_lina_XXX.elf
Generará automáticamente los offsets necesarios para portar el exploit a otras versiones de ASA.
Ahora mismo, nos lleva más tiempo cargar una versión del firmware de ASA y probarla, que generar offsets para una versión específica.
Lo único que el script no calcula es FIX_EBP, que suele ser 0x48 (72) o 0x58 (88). Parece que 8.4(1) y superiores usan 0x48.
Puedes extraer Lina así:
binwalk -e asaXXX-k8.bin
cd _asaXXX-extracted
cpio -idv < rootfs.img
cp asa/bin/lina /tmp/linaXXX