
Explore the basics of the C-sharp language, including interacting with Windows Active Directory and the Windows API, and learn memory management with the .NET framework.
Set up the development environment by installing the community edition and creating a dot net framework project, then write a hello world program using the console to verify setup.
Explore variables and operators in offensive c#, learn how memory stores values, use breakpoints and debugger to inspect memory, and perform arithmetic with types like byte, int, string, and boolean.
Learn how to read user input and use it to drive program behavior, including printing prompts, concatenating strings, formatting output, and converting input to integers for dynamic interaction.
Master for and while loops in offensive C#, learn loop syntax from i=0 to i<=100, increment, and print outcomes while handling basic if conditions.
Explore arrays in C#: store data in area, use zero-based indices, and access elements by index. Loop to print values and avoid index out of range with sizing and clearing.
Learn how to declare and call functions in C#, use static methods, pass parameters, and distinguish call by value and call by reference to produce and return values.
Create a multithreaded socket server that accepts client connections, spawns a thread per client, and transmits data by sending and receiving messages over bound sockets.
explore Flask basics, a Python web framework, and learn to set up routes with decorators, handle get and post requests, use forms for validation, and render templates with dynamic variables.
Link a Flask web interface to a server socket using threading to manage trades and thread indexes, and render dynamic agent pages with execute routes for commands.
Enable bidirectional file transfer between server and client by parsing download commands, sending the file name, and transmitting binary contents with transfer confirmations.
Explore multithreaded keylogger implementation in offensive C#, detailing client-server command flow, key press handling, and runtime control of logging.
Learn to code a reverse shell in C# by building a server socket and client, binding IP addresses and endpoints, exchanging messages, and integrating PowerShell execution within a C# program.
Use ldapsearch to enumerate active directory objects, bind with credentials, query users, computers, and groups with filters, and fetch attributes via distinguished names.
Discover how to find unquoted service paths by enumerating services with the service controller, reading registry keys under CurrentControlSet\Services, filtering out system services, and validating image paths.
Explore enumerating directories and retrieving files in C#, using get current directory, search patterns, and write-access checks; handle errors to identify writable files and permissions on the system.
Write a C# script to query Active Directory for ASREP roastable users by filtering user account control and Kerberos indicators across domains, returning domain and username details.
Learn to fetch nested groups and their members in a domain by using group principal, get members, and recursion, exploring domain admins, nested groups, and user membership with Sheesha.
Find dc sync capable users by examining domain object security and access control entries, enumerating forest domains and domain controllers to locate hashes and replication permissions.
Explore Kerberos consent delegation and unconstrained delegation, showing how a web server impersonates users to access resources, fetches tickets, and identifies delegation settings with administrator privileges.
Explore constrained delegation in Kerberos with a practical walkthrough of delegating access to specific services, testing with service principals, and impersonating an administrator.
Explore resource based constrained delegation and impersonation in Windows domains, demonstrating how a workstation can impersonate other identities by configuring computer objects, seed values, and access rights.
Learn to load and execute .NET assemblies with reflection, build a simple loader, manage threads, and fetch a payload via web client for remote execution.
Demonstrates how AdminSDHolder persistence replicates access control entries every 60 minutes, configures domain admin rights, and propagates changes through AD security objects using PowerShell and manual triggers.
Learn to call the Windows API message box with MessageBoxW and to obtain the current user name with GetUserNameW in C#, using marshaling, string builders, and Unicode handling.
Explore structures and unions in C#, detailing value types, memory size, and dot access to members. See how public and private members, constructors, and field offsets shape usage, layout.
Learn to enumerate network shares using NetShareEnumW in C#, retrieving shared resources, handling levels and structures, and marshaling pointers to access nickname, type, and permissions.
Explore how to obtain a process handle, open the process, and use GetTokenInformation to determine token elevation and privileges (normal user vs admin) for privilege checking.
This lecture demonstrates how to list all privileges in a process token by opening the process token, querying token information for token privileges, and enumerating and printing each privilege.
Discover how to enable or disable token privileges by looping through privileges, configuring privilege structures, and calling the adjust function, with a PowerShell workflow to test and debug.
Offensive C# demonstrates running shared code by reserving a memory region, committing and loading code generated from an Amazon rental offer, and executing it via delegates as function pointers.
Demonstrates shellcode injection into a remote process by allocating a memory region, writing a payload, and creating a remote thread to execute the function.
Learn how to store shellcode in the resources section of a program, differentiate the data and resources sections in the file format, and add and use a resource in code.
Explore dll injection by opening a target process, allocating memory, writing the payload, locating LoadLibrary, and creating a remote thread to execute the injected code.
Learn to locate loaded dlls in a running process by taking a snapshot, reading the first module, and iterating with next to capture each module’s name and base address.
Learn to detect if a process runs under a debugger using the is debugger present check, print the boolean result, and observe how malware may exit when detected.
Learn to detach a debugger from a running process using NtRemoveProcessDebug, obtaining the process handle and debugger information, and verify successful detachment.
Explore the journey of continuous learning and knowledge in offensive C# as you study backdooring PE files.
Capture screenshots from Fuchsia by enabling a DP aware function, obtain screen resolution, create a bitmap, convert to base64, and transmit the image via socket with a timestamped filename.
Obfuscate function names by using delegates to call the same function under different identifiers, and invoke the message box via its address with marshaled parameters.
This course teaches you all the way from fundamentals of C# to invoke WinAPI with C#. C# is Microsoft developed language which can be used for multiple purposes. C# gives almost all access to windows components including WinAPI via PInvoke. This course also teaches how to build your own C2 Server with Python Flask as backend and C2 agent. Features include Client connection manager, File explorer, Registry Explorer, etc. More features of C2 will be added from time to time. We will see how to code a traditional reverse shell with C2 which by default bypasses Constrained Language Mode. Next we will see some privilege escalation techniques. Next we will enumerate Active Directory with C# and build our own automation tools. We will write tools that automate Kerberoasting, DCSync capable users, Delegation Attacks and much more. We will write a simple loader that loads .NET executables in memory and executes them. Next we will see how to use WinAPI functions in C# and write tools for Shellcode Injection, DLL Injection, Debugging checks, Backdooring of PE Files and much more. We will also see the structure of PE File format.
No programming or Activedirectory experience required.
This course explains all the theory necessary to get started into building your own tools.