trustedsec/Titanis
GitHub: trustedsec/Titanis
一款用 C# 编写的跨平台 Windows 协议实现库,从规范层面覆盖 SMB、Kerberos、NTLM、RPC、LDAP 等核心协议,面向安全研究、渗透测试和系统管理场景。
Stars: 789 | Forks: 81
# 简介
Titanis 是一个用 C# 编写的协议实现和命令行工具库,用于与 Windows 环境进行交互。它使用 .NET 8 并且是跨平台的(Windows 和 Linux)。已实现的部分协议包括:
* SMB2 ([MS-SMB2](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-SMB2/%5bMS-SMB2%5d.pdf))
* SMB 2.x 和 3.x,最高至 3.1.1
* 消息安全特性,例如签名和加密
* 包含对文件系统控制代码 ([MS-FSCC](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-FSCC/%5bMS-FSCC%5d.pdf)) 的支持
* DFS 链接 ([MS-DFSC](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-DFSC/%5bMS-DFSC%5d.pdf))
* MSRPC ([MS-RPCE](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-RPCE/%5bMS-RPCE%5d.pdf))
* 端点映射器 (Endpoint mapper)
* DCOM ([MS-DCOM](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-DCOM/%5bMS-DCOM%5d.pdf))
* EFS ([MS-EFSR](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-EFSR/%5bMS-EFSR%5d.pdf))
* LSA ([MS-LSAD](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-LSAD/%5bMS-LSAD%5d.pdf) 和 [MS-LSAT](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-LSAT/%5bMS-LSAT%5d.pdf))
* 远程注册表 (Remote Registry) ([MS-RRP](https://winprotocoldoc.z19.web.core.windows.net/MS-RRP/%5bMS-RRP%5d.pdf))
* 包含对备份语义的支持
* 包含 SAM 转储功能
* 安全账户管理器 (Security Accounts Manager) ([MS-SAMR](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-SAMR/%5bMS-SAMR%5d.pdf))
* 服务控制管理器 (Service Control Manager) ([MS-SCMR](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-SCMR/%5bMS-SCMR%5d.pdf))
* 服务器服务 (Server service) ([MS-SRVS](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-SRVS/%5bMS-SRVS%5d.pdf))
* WMI ([MS-WMI](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-WMI/%5bMS-WMI%5d.pdf) 和 [MS-WMIO](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-WMIO/%5bMS-WMIO%5d.pdf))
* 目录复制 (Directory replication) ([MS-DRSR]https://winprotocoldoc.z19.web.core.windows.net/MS-DRSR/%5bMS-DRSR%5d.pdf))
* LDAP ([RFC 4511](https://datatracker.ietf.org/doc/html/rfc4511) 和部分 [MS-ADTS](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-ADTS/%5bMS-ADTS%5d.pdf))
* 安全
* NTLM ([MS-NLMP](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-NLMP/%5bMS-NLMP%5d.pdf))
* Kerberos ([RFC4120](https://datatracker.ietf.org/doc/html/rfc4120) 和 [MS-KILE](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-KILE/%5bMS-KILE%5d.pdf))
* 跨领域引用 (Inter-realm referrals)
* PKINIT ([MS-PKCA](https://winprotocoldoc.z19.web.core.windows.net/MS-PKCA/%5bMS-PKCA%5d.pdf) 和 [RFC 4556](https://datatracker.ietf.org/doc/html/rfc4556))
* S4U ([MS-SFU](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-WMI/%5bMS-WMI%5d.pdf))
* S4U2self
* S4U2proxy
* 加密配置文件
* DES CBC MD5 ([RFC3961](https://datatracker.ietf.org/doc/html/rfc3961)) (仅限 AS)
* RC4-HMAC ([RFC4757](https://datatracker.ietf.org/doc/html/rfc4757))
* AES 128/256 ([RFC3962](https://datatracker.ietf.org/doc/html/rfc3962))
* 支持 .kirbi 和 [ccache](https://web.mit.edu/kerberos/krb5-1.21/doc/formats/ccache_file_format.html) 文件
* 支持 [keytab](https://web.mit.edu/kerberos/krb5-devel/doc/formats/keytab_file_format.html) 文件
* 更改/设置密码 ([RFC3244](https://datatracker.ietf.org/doc/html/rfc3244))
* SP-NEGO ([MS-SPNG](https://winprotocoldocs-bhdugrdyduf5h2e4.b02.azurefd.net/MS-SPNG/%5bMS-SPNG%5d.pdf))
* 集成 SOCKS 5 支持 (`-Socks5` 参数) ([RFC1928](https://datatracker.ietf.org/doc/html/rfc1928))
有关最近的更改,请参见[更新日志](CHANGELOG.md)
有关支持的身份验证场景的概述,请参见[身份验证](doc/UserGuide/syntax-auth.md) - 描述如何使用参数控制身份验证
该工具集实现了回调和日志记录功能,以便集成到您的操作环境中。
有关命令行工具及您可以使用它们执行的任务列表,请查阅[工具索引](doc/UserGuide/tools/index.md)
# 目标受众
* **安全研究人员** - 研究 Windows 如何对各种类型的请求做出反应
* **渗透测试人员** - 执行操作并测试缓解措施是否已启用且正常运行
* **系统管理员** - 执行管理任务
# 入门指南
[构建说明](BUILD.md)
如果您是用户,请参阅[用户指南](doc/UserGuide/index.md)以获取命令行实用程序列表及其使用方法。
如果您是开发人员,请参阅[开发人员指南](doc/DevGuide/index.md)以获取有关如何增强代码库的信息。
# 计划中的增强功能
* 任务计划程序支持 (Task Scheduler support) ([MS-TSCH](https://winprotocoldoc.z19.web.core.windows.net/MS-TSCH/[MS-TSCH].pdf))
* 简化的凭据管理
* 集成 SOCKS 4a
# 项目组织
* **doc/** - 项目文档
* **src/** - 协议实现的源代码
* **test/** - 单元测试
* **tools/** - 独立的命令行工具
* **samples/** - 演示如何使用这些库的示例代码
在 Titanis.sln 中,项目被分组到以下几个功能区域:
* **Base** - 其他组件使用的实用工具
* **Crypto** - 加密算法的实现
* **Formats** - 用于读取和写入各种格式(例如 ASN.1)的实现
* **Protocols** - 网络协议实现
* **Security** - 安全协议实现,例如 NTLM 和 Kerberos
* **Test** - 单元测试
* **Tools** - 独立的命令行工具
* **_Build** - 与构建过程相关的文件。
有几个项目包含一个名为 `References.txt` 的文件,该文件引用了在开发期间参考的规范。源代码中包含对这些规范的引用,通常还附有相关的章节号。
标签:Checkov, DCOM, DFS, DRSR, EFS, HTTP, HTTP工具, LSA, MSRPC, .NET 8, RPC, SAMR, SAM转储, SMB, SMB2, SMB3, Windows协议库, WMI, 二进制发布, 凭证转储, 协议实现, 域渗透, 安全账户管理器, 开源工具, 开源软件, 数据展示, 服务控制管理器, 活动目录, 电子数据取证, 目录复制, 红队, 网络安全, 远程注册表, 错误配置检测, 隐私保护