Offensive Golang (II)

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.

package main

import “github.com/MrTuxx/OffensiveGolang/pkg/encryption”

func main() {
      encryption.GetEncryption(“<SHELLCODE>”)
}
[Read more…]

Offensive Golang (I)

Offensive Golang

Dentro de la seguridad Ofensiva en general, así como en el desarrollo de malware en particular, se requiere salirse de lo convencional para explorar nuevas ideas o herramientas que puedan permitir lograr los objetivos.

Un buen reflejo de este pensamiento podría ser el uso del lenguaje de programación menos común Go (Golang) en el desarrollo de malware. Golang es un lenguaje de programación que ha sido desarrollado por Google y tiene más de una década de antigüedad, pero desde hace unos años se han identificado diferentes ransomwares y artefactos que intentan aprovecharse de las ventajas que posee este lenguaje. Esto ha propiciado una mayor popularidad de Golang en este campo y han aparecido nuevas herramientas y técnicas.

En este artículo se pretende explicar los diferentes componentes y funcionalidades básicas que componen el repositorio OffensiveGolang que he desarrollado, tomando como inspiración la charla en la DEFCON 29 de Ben Kurtz y el repositorio de Michael Long.

Pero antes de comenzar se debe resolver la pregunta principal, ¿Por qué Golang?:

[Read more…]