Solución:
Shikata Ga Nai es un codificador incluido en el marco Metasploit para la arquitectura x86. Del código fuente disponible:
Este codificador implementa un codificador de retroalimentación aditivo XOR polimórfico. El código auxiliar del decodificador se genera en función de la sustitución de instrucciones dinámicas y la ordenación dinámica de bloques. Los registros también se seleccionan dinámicamente.
Un artículo académico que describe técnicas para extraer cargas útiles codificadas ofrece la siguiente explicación:
Este codificador ofrece tres características que brindan protección avanzada cuando se combinan.
- En primer lugar, el generador de códigos auxiliares del decodificador utiliza técnicas metamórficas, a través del reordenamiento y sustitución del código, para producir una salida diferente cada vez que se utiliza, en un esfuerzo por evitar el reconocimiento de firmas.
- En segundo lugar, utiliza una tecla de modificación automática encadenada mediante retroalimentación aditiva. Esto significa que si la entrada de decodificación o las claves son incorrectas en cualquier iteración, todas las salidas posteriores serán incorrectas.
- En tercer lugar, el código auxiliar del decodificador está en sí mismo parcialmente ofuscado mediante la auto-modificación del bloque básico actual, así como blindado contra la emulación usando instrucciones FPU.
Shikata Ga Nai no es una carga útil, sino un codificador. La carga útil es el caparazón inverso.
Metasploit ofrece varios codificadores, Shikata Ga Nai es uno de ellos. Un codificador intenta superar la detección por AV, la detección de intrusiones en la red y mantener los caracteres que pueden causar un bloqueo de la víctima fuera de la carga útil, como bytes nulos.