1) Introducción a C#
1.1) Qué es C#
1.2) C# vs .NET
1.3) C# siendo pentester
2) Introducción a Visual Studio
2.1) Visual Studio
2.2) CSC
2.3) Nuget
2.4) Nuget – Ejemplo
3) Básicos de C#
3.1) Tipos de datos
3.2) Variables y Operadores
3.3) Espacio de nombres, Clases y Métodos
3.4) Modificadores de Acceso
4) C# y Windows
4.1) Windows APIs
4.2) P/Invoke
4.3) Ejemplo: MessageBox
5) PowerShell
5.1) PowerShell y su relación con .Net
5.2) Add-Type
5.3) Ejemplo: MessageBox
6) Taller práctico donde poner en contexto todo lo que se ha tratado durante el taller. Se centrará en mostrar cómo crear un ejecutable en C# que ejecute comandos en cmd y PowerShell de manera nativa, explicando qué hace cada parte y las diferentes maneras de realizar dicha carga maliciosa (cargar el payload en local o cargarlo de manera externa).
7) Bonus – C# ofensivo
7.1) D/Invoke
7.2) Syscalls

En este taller introductorio, los alumnos obtendrán unas nociones básicas de qué es C# y cómo programar en este lenguaje, las diferencias entre .NET y C#, la relación con PowerShell y el motivo por el que C# se está usando tanto en la actualidad desde un punto de vista ofensivo. Se trataran temas como API Calls, P/Invoke, D/Invoke y Syscalls a alto nivel y los puntos básicos de C#. Además, se tratará la relación entre PowerShell y C# a nivel de usabilidad (cargar en memoria o tocar disco). Por último, en la parte práctica, los alumnos realizarán su primer binario ofensivo paso a paso, pudiendo ver la potencia de este lenguaje tanto ofensivamente como defensivamente. Al finalizar el taller, se facilitará a los alumnos todo el contenido del mismo para que puedan continuar o revisar el conocimiento adquirido.

El taller esta orientado a:
Profesionales del sector de la Ciberseguridad con ligeros conocimientos de C#
Administradores de sistemas y/o redes especializados en Directorio Activo.
Estudiantes.
Docentes.
Cuerpos y Fuerzas de Seguridad.
Cualquiera que esté interesado en aprender sobre C# desde un punto de vista ofensivo.

Los requisitos para el taller son:

1) Máquina virtual Windows 10/11 con permisos de administrador con Visual Studio instalado
2) Kali Linux

Ambas máquinas deben estar en la misma red local y tener visibilidad entre sí.