PassTheCert开发指南:C与Python版本的代码结构与扩展方法
PassTheCert开发指南C#与Python版本的代码结构与扩展方法【免费下载链接】PassTheCertProof-of-Concept tool to authenticate to an LDAP/S server with a certificate through Schannel项目地址: https://gitcode.com/gh_mirrors/pa/PassTheCertPassTheCert 是一款通过 Schannel 实现证书认证到 LDAP/S 服务器的 Proof-of-Concept 工具支持 C# 和 Python 两种版本。本文将深入解析其代码结构设计与扩展方法帮助开发者快速理解项目架构并进行功能扩展。项目整体架构PassTheCert 采用多语言实现策略核心功能在 C# 和 Python 中分别独立实现满足不同场景下的使用需求。项目目录结构清晰主要包含以下部分C# 版本位于C#/目录下包含完整的 Visual Studio 解决方案实现了证书认证、LDAP 操作及多种攻击功能。Python 版本位于Python/目录下基于 impacket 库实现提供轻量级的证书认证与 LDAP 操作接口。核心功能定位两种版本均围绕以下核心功能展开通过 Schannel 使用证书进行 LDAP/S 认证支持多种 Active Directory 操作如添加计算机、修改权限等提供命令行接口方便用户直接使用或集成到其他工具链C# 版本代码结构解析C# 版本是 PassTheCert 的主要实现代码组织遵循面向对象设计原则核心逻辑集中在PassTheCert.cs文件中。核心类与方法Program 类Program类是程序入口点包含以下关键组件Main 方法解析命令行参数初始化 LDAP 连接根据攻击类型调用相应方法。关键代码位于 C#/PassTheCert/PassTheCert.cs。证书认证逻辑通过X509Certificate2加载证书配置LdapConnection使用 Schannel 认证X509Certificate2 certificate new X509Certificate2(cert_path, cert_password, X509KeyStorageFlags.Exportable); LdapConnection connection new LdapConnection(server); connection.ClientCertificates.Add(certificate); connection.SessionOptions.VerifyServerCertificate (conn, cert) { return true; };攻击功能实现C# 版本实现了多种攻击功能每种功能对应独立的方法ElevateUserAttack提升用户权限授予 DCSync 所需的复制权限代码位于 C#/PassTheCert/PassTheCert.cs。RbcdAttack修改msDS-AllowedToActOnBehalfOfOtherIdentity属性实现资源委派攻击代码位于 C#/PassTheCert/PassTheCert.cs。AddComputerAttack添加新计算机账户到域用于后续攻击代码位于 C#/PassTheCert/PassTheCert.cs。安全描述符操作工具通过IADsSecurityDescriptor和IADsAccessControlList接口操作安全描述符实现权限修改。关键方法包括GetSecurityDescriptor获取目标对象的安全描述符SecurityDescriptorToByteArray将安全描述符转换为字节数组CreateElevateUserAce和CreateRbcdAce创建访问控制项 (ACE)Python 版本代码结构解析Python 版本基于 impacket 和 ldap3 库实现代码更加轻量主要包含passthecert.py文件。核心类设计RBCD 类RBCD类专门处理资源委派攻击提供以下方法read()读取目标计算机的委派权限write(delegate_from)添加委派权限remove(delegate_from)移除委派权限flush()清空委派权限关键代码位于 Python/passthecert.py。ManageComputer 类ManageComputer类处理计算机账户管理支持添加、删除和修改计算机账户def add_computer(self, constrained_delegations None): # 创建计算机账户逻辑 # 设置 SPN 和 unicodePwd 等属性证书认证实现Python 版本通过 ldap3 的 TLS 配置实现证书认证tls ldap3.Tls(local_private_key_fileoptions.key, local_certificate_fileoptions.crt, validatessl.CERT_NONE) ldapServer ldap3.Server(target, use_ssloptions.port 636, portoptions.port, get_infoldap3.ALL, tlstls) ldapConn ldap3.Connection(ldapServer, authenticationldap3.SASL, sasl_mechanismldap3.EXTERNAL)功能扩展方法无论是 C# 还是 Python 版本都可以通过以下方式进行功能扩展添加新攻击类型C# 版本在Main方法的参数解析部分添加新的攻击类型标识实现对应的攻击方法如NewAttackMethod在switch (attack_type)中添加新的 case 分支Python 版本在命令行参数解析中添加新的-action选项实现对应的处理类或方法在主逻辑中添加新 action 的处理分支扩展 LDAP 操作如需添加新的 LDAP 操作如修改特定属性可参考现有代码C#使用ModifyRequest和DirectoryAttributeModification类Python使用 ldap3 的modify方法集成新的认证方式虽然工具当前专注于证书认证但可通过扩展认证模块支持其他方式C#扩展LdapConnection的配置逻辑Python修改ldap3.Connection的初始化参数编译与使用C# 版本编译使用 Visual Studio 打开C#/PassTheCert.sln解决方案直接构建即可生成可执行文件。Python 版本使用直接运行 Python 脚本需安装依赖库pip install ldap3 impacket基本使用示例添加计算机账户python passthecert.py -action add_computer -domain contoso.com -dc-ip 192.168.1.100 -crt user.crt -key user.key -computer-name DESKTOP-1337$总结PassTheCert 提供了 C# 和 Python 两种版本的证书认证 LDAP 工具代码结构清晰功能模块化。开发者可根据需求选择合适的版本进行使用或扩展。通过本文介绍的代码结构解析和扩展方法能够快速上手项目并进行二次开发添加新的攻击类型或 LDAP 操作功能。项目的设计遵循了 Proof-of-Concept 工具的特点注重功能实现和易用性同时保留了足够的扩展性适合作为学习 Active Directory 证书认证和 LDAP 操作的参考项目。【免费下载链接】PassTheCertProof-of-Concept tool to authenticate to an LDAP/S server with a certificate through Schannel项目地址: https://gitcode.com/gh_mirrors/pa/PassTheCert创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

深入解析TMS320C6452 PSC与PLLC:嵌入式系统电源与时钟管理实战

深入解析TMS320C6452 PSC与PLLC:嵌入式系统电源与时钟管理实战

1. 项目概述:嵌入式系统的“心脏”与“脉搏”在嵌入式系统开发,尤其是高性能数字信号处理(DSP)或微控制器(MCU)领域,我们常常醉心于算法的精妙、代码的优化,却容易忽略两个更为基础、…

2026/10/10 20:13:53 阅读更多 →
Git 在团队中的最佳实践--如何正确使用Git Flow

Git 在团队中的最佳实践--如何正确使用Git Flow

Git 在团队中的最佳实践–如何正确使用Git Flow 一、为什么团队需要Git Flow?在软件开发中,版本控制是团队协作的基石。Git作为最流行的分布式版本控制系统,提供了强大的分支管理能力。然而,如果没有一个规范的工作流程&#xff…

2026/10/9 18:14:51 阅读更多 →
原神抽卡数据分析终极指南:用可视化工具洞察你的抽卡规律

原神抽卡数据分析终极指南:用可视化工具洞察你的抽卡规律

原神抽卡数据分析终极指南:用可视化工具洞察你的抽卡规律 【免费下载链接】genshin-wish-export Easily export the Genshin Impact wish record. 项目地址: https://gitcode.com/GitHub_Trending/ge/genshin-wish-export 你是否曾好奇自己的抽卡运气到底如何…

2026/10/10 3:33:28 阅读更多 →

最新新闻

深度学习驱动的虚假新闻检测系统:Python实战项目全流程

深度学习驱动的虚假新闻检测系统:Python实战项目全流程

简介:这套基于深度学习的虚假新闻检测系统Python项目,主要面向高校毕业设计、课程设计及自然语言处理方向的技术实践者。项目以Python为核心,通过TensorFlow/PyTorch搭建模型,综合应用RNN、LSTM、BERT等文本特征提取方法&#xff…

2026/10/11 22:12:58 阅读更多 →
fabric.js 添加圆形完整指南:从对象模型到交互实现

fabric.js 添加圆形完整指南:从对象模型到交互实现

想给 web 页面画一个交互式的圆?原生 Canvas 能画圆,但画完就“丢”了——拿不到、改不了、拖不动。fabric.js 最直观的价值就在这里:它把圆变成了一个对象。你画的每个圆,都有坐标、尺寸、样式属性,随时能改&#xff…

2026/10/11 22:12:58 阅读更多 →
2026足底压力测试实验室建设方案:矫形鞋垫验证环节的落地路径

2026足底压力测试实验室建设方案:矫形鞋垫验证环节的落地路径

摘要2026 年生物力学检测、康复评估与功能鞋履行业加速标准化、数据化,传统人工主观的矫形鞋垫适配核验方式精度不足,足底压力测试实验室成为量化验证、方案优化与成果转化的核心设施。本文结合落地经验,梳理标准化实验室建设思路与矫形鞋垫全流程验证方案,借助足底压力及柔性传…

2026/10/11 22:12:58 阅读更多 →
IEEE 33节点潮流计算:从数据加载到Ybus构建与NR求解的完整实践

IEEE 33节点潮流计算:从数据加载到Ybus构建与NR求解的完整实践

简介:本资源是一套基于MATLAB实现的IEEE 33节点与69节点配电网潮流计算完整代码包,面向电力系统专业本科生、研究生及工程技术人员,用于教学实践、算法验证与课程设计。内容涵盖牛顿-拉夫森法等主流潮流求解方法,包含节点数据建模…

2026/10/11 22:12:58 阅读更多 →
基于CNN的文字语种识别算法:原理、实现与避坑实战

基于CNN的文字语种识别算法:原理、实现与避坑实战

简介:在OCR系统中,识别准确率不仅取决于检测和识别模型,还取决于前置的语种分类环节。不同语言文字的笔画密度、连通域形态、纹理方向等视觉特征存在显著差异,这正是图像分类与特征提取技术可以发挥作用的地方。基于卷积神经网络&…

2026/10/11 22:12:58 阅读更多 →
手把手教你用Ollama玩转本地大模型:部署+微调+应用全攻略(TaoToken统一Key接入篇)

手把手教你用Ollama玩转本地大模型:部署+微调+应用全攻略(TaoToken统一Key接入篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 22:11:57 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →