Skip to content

trustedsec/Titanis

Repository files navigation

Introduction

Titanis is a library of protocol implementations and command line utilities, written in C#, for interacting with Windows environments. It uses .NET 8 and is cross-platform (Windows and Linux). Some of the protocols implemented:

For recent changes, see the change log

The toolset implements callbacks and logging features to integrate into your operational environment.

For a list of command line tools and tasks you can perform with them, check the Tool Index

Target Audience

  • Security researchers - Research how Windows reacts to various types of requests
  • Pentesters - Perform actions and test whether mitigations are enabled and functioning properly
  • System administrators - Perform administrative tasks

Getting Started

Build Instructions

If you are a user, see the User Guide for a list of command line utilities and how to use them.

If you are a developer, see the Developer Guide for information on how to enhance the code base.

Planned Enhancements

  • Task Scheduler support (MS-TSCH)
  • LDAP and LDAP-based tooling (RFC4511, portions of MS-ADTS)
  • Simplified credential management
  • DCSync and secret-dumping functionality (MS-DRSR)
  • Integrated SOCKS 4a

Project Organization

  • doc/ - Project documentation
  • src/ - Source code for protocol implementations
  • test/ - Unit tests
  • tools/ - Standalone command line tools
  • samples/ - Sample code that demonstrates how to use the libraries

Within Titanis.sln, the projects are grouped into the following functional areas:

  • Base - Utilities used by other components
  • Crypto - Implementation of cryptographic algorithms
  • Formats - Implementations for reading and writing various formats, such as ASN.1
  • Protocols - Network protocol implementations
  • Security - Security protocol implementations, such as NTLM and Kerberos
  • Test - Unit tests
  • Tools - Standalone command line tools
  • _Build - Files relevant to the build process.

Several of the projects contain a file named References.txt that references the specifications consulted during development. The source code contains references to these specifications, usually along with the relevant section number.