Una vez vistas en el artículo anterior las ventajas y limitaciones que existen en el desarrollo de artefactos ofensivos en Golang, en esta segunda parte vamos a explicar más detalladamente de qué trata el repositorio OffensiveGolang, y qué podemos encontrar en él. Vamos allá.
OffensiveGolang cuenta principalmente con cinco módulos que tratan de lo siguiente:
- Encryption: Una forma sencilla de evitar que un análisis estático detecte un payload que se desea ejecutar, es cifrar el shellcode que contiene el artefacto. Este módulo permite utilizar el algoritmo de cifrado simétrico AES mediante una clave de 32 bytes generada aleatoriamente. Además, cuenta con los métodos de descifrado correspondiente para incluirlos en los binarios generados y poder ejecutar el payload.
A continuación se muestra un ejemplo básico del módulo encryption, que devolverá un fichero denominado data.txt con el shellcode cifrado y la clave generada aleatoriamente en la salida estándar de la terminal.
import “github.com/MrTuxx/OffensiveGolang/pkg/encryption”
func main() {
encryption.GetEncryption(“<SHELLCODE>”)
}