Pentesting con GO

Pentesting con GO

Tiempo de lectura estimado: 5 minutos


Esta conferencia magistral pertenece al Módulo 9 “Pentesting” de C1b3rWall Academy 2021/2022. El objetivo de la misma es mostrar las bondades del programa GO frente a otros para hacer pentesting

Por qué usar GO

GO Es un programa multipropósito de fácil sintaxis y tiene una eficiencia comparable con C.  Cuenta con una gran librería estándar y una fuerte concurrencia y multiprocesos desde su concepción, además de compilación cruzada.

Cuando estamos haciendo pentesting, a veces necesitamos performance y pensar en grande. Buscamos un equilibrio entre scripting y aplicaciones más grandes, así como cross-compiling. Además, su librería estándar permite bases de datos, protocolos de redes, criptografía y codificación de datos (JSON, XML, hex, Base64…) 

Reverse shell

Los puntos clave a analizar en este código son la compilación cruzada y la sintaxis expresiva. A la hora de compilar lo único que hay que hacer es añadir el sistema operativo de destino. 

En líneas generales, lo que hacemos es establecer una conexión con un tiempo de espera máximo bajo el protocolo TCP a una IP y un puerto concretos. Puedes obtener el código de esta herramienta aquí.

Reverse DNS lookup

Vamos a poner la velocidad a prueba utilizando goroutines haciendo uso de la librería estándar. Al ejecutarlo podemos observar que su velocidad es superior a la de un .batch, por ejemplo. Puedes obtener el código aquí.

Port scanner

El objetivo es comparar el tiempo de ejecución de goroutines con respecto a la ejecución lineal (ir probando cada puerto de manera secuencial). Observamos la diferencia entre 22 segundos y 500 milisegundos a partir de una sintaxis muy sencilla. Puedes obtener el código aquí.

HTTP directory fuzzer

Una de las mejores herramientas para hacer directory fuzzer en sitios web es gobuster, por su rapidez y eficacia. Crearemos tipos de datos (struct) y veremos cómo se leen los archivos. Esta vez utilizaremos una librería externa que nos permitirá imprimir en color el resultado de las funciones. Puedes obtener el código aquí.

Conclusiones

  • Go es fácil de codificar y nos proporciona soluciones escalables.
  • Es rápido en su ejecución.
  • Muchas herramientas de pentesting se están construyendo en este lenguaje

Todas las herramientas están explicadas con detalle en la versión en vídeo de esta masterclass.


¿Todavía no formas parte de C1b3rWall Academy? El contenido es gratuito, únete a otras 30.000 personas desde este enlace.

                   

Si te interesa este tema, puedes consultar la información y cursar el Máster en Ciberseguridad o ver la oferta de másteres desde aquí.


Ponente: Carlos Azúa

Consultor de ciberseguridad en Dreamlab Technologies especializado en pentesting y desarrollo de software. Cuenta con algunas certificaciones y cursos como eWAPTX, PACSP, eCPPT, CEH o Penetration testing with golang.

¿Cuál es tu reacción?

like

dislike

love

funny

angry

sad

wow

Acción formativa gratuita en ciberseguridad. Web: https://c1b3rwallacademy.usal.es/