pyLDAPGui开发历程:跨平台LDAP图形化工具诞生记

news/2025/10/9 14:19:10/文章来源:https://www.cnblogs.com/qife122/p/19131029

pyLDAPGui - 开发历程

背景起源

pyLDAPGui是我在过去几个月里一直在开发的一个应用程序,直到最近才决定以概念验证的形式发布,供大家试用。这个想法的诞生源于我在开发"无恶意软件对抗模拟"课程时,需要寻找能够在不同操作系统中有效进行"就地取材"的工具,这让我开始深入研究可移植的可用选项。

如果你曾经进行过任何形式的渗透测试、红队行动或专注于Active Directory环境的审计,很可能使用过Active Directory Explorer。这是一个在Windows主机上连接LDAP服务器(通常是域控制器)并查看AD环境的优秀工具。但它的最大限制是只能在Windows上使用,如果你希望在Linux虚拟机或Mac上操作,就无法使用它。

寻找替代方案

在寻找具有用户界面的替代LDAP浏览器时,我发现了一些有用的系统管理工具:

  • GoDAP:终端用户界面工具
  • ldap_shell:具有各种功能的优秀终端UI
  • Softerra LDAP浏览器:类似老式C#应用程序的界面

但这些工具要么缺乏图形界面,要么仍然依赖Windows平台。

技术选型

编程语言选择

在创建GUI应用程序时,我考虑过多种语言:

  • Go和Rust:最初尝试但学习曲线较陡峭
  • Python:最终选择,因其多功能性和易用性

GUI库选择

评估了多个Python GUI库后,我选择了PyQt:

  • Tkinter
  • PyQt ✓
  • Kivy

选择PyQt主要是因为其易用性、可扩展性和跨平台支持。

功能设计

工具的核心设计目标是与ADExplorer类似的功能:

  • 通过树状视图连接到LDAP
  • 支持LDAP和LDAPS
  • 能够导出为合理格式(主要是CSV和JSON,支持BloodHound兼容性)
  • 快速搜索功能,支持运行特定的LDAP查询

开发挑战

GUI设计

在Python中设计GUI比我想象的要复杂,特别是在确定导出文件的结构方面。

SOCKs支持

实现SOCKs功能比最初预期的要困难,通过大量谷歌搜索和试错最终解决了问题。

操作安全考虑

在开发过程中考虑了节流和操作安全问题:

self.attribute_variations = {'samaccountname': ['sAMAccountName', 'samAccountName', 'SAMACCOUNTNAME', 'sAmAcCoUnTnAmE'],'objectclass': ['objectClass', 'OBJECTCLASS', 'ObjectClass', 'oBjEcTcLaSs'],# ... 更多属性变体
}

工具执行以下类型的LDAP查询:

  • 树导航(get_children):在展开树节点时触发
  • 条目详情(get_entry):在选择项目时触发
  • 批量导出(get_bloodhound_data):6个大型查询用于BloodHound导出
  • 通用搜索(search):用于CSV导出和浏览

为了增强隐蔽性,在查询之间添加了随机延迟(0.5-2秒),并且每次运行时都会打乱查询顺序。

GitHub Actions集成

使用GitHub Actions进行CI/CD时遇到挑战,需要正确设置权限:

permissions:contents: writepackages: write

经过26多次尝试才成功实现清理提交历史和工作流提交的功能。

最终成果

完成后的GUI工具具有以下核心功能:

  • 连接到LDAP/LDAPS服务器并以树状视图列出
  • 导出为CSV/BloodHound格式
  • 直接导入到Neo4j(支持通过网络连接)

未来计划

计划进一步改进代码并添加更多功能,包括:

  • 使用OpenGraph支持BloodHound CE的导入功能
  • 导出特定详细信息并解析更多数据
  • ADCS分析按钮功能开发

这个PoC工具是我过去几个月开发工作的成果,希望能对大家有所帮助。
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)
对网络安全、黑客技术感兴趣的朋友可以关注我的安全公众号(网络安全技术点滴分享)

公众号二维码

公众号二维码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/932619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Part1 - 轮式小车运动学分析

Part1 - 轮式小车运动学分析一、滑移式车体运动学模型 滑移小车的运动方式为左侧两个轮子速度一致 \(v_l\),右侧两个轮子的速度一致为 \(v_r\),当小车需要向前运动时,\(v=v_l=v_r\) 即可实现小车的前向运动,当…

哪里有营销型网站制作网站模板修改器

目录 一.简介二.效果演示三.源码下载四.猜你喜欢 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 基础 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目录 >> OpenGL ES 转场 零基础 OpenGL (ES) 学习路线推荐 : OpenGL (ES) 学习目…

在QT中使用FFmpeg实现录屏功能 - 教程

在QT中使用FFmpeg实现录屏功能 - 教程2025-10-09 14:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

jekyll做公司网站用.aspx做网站

实验环境:两台MariaDB服务器,IP分别为: 172.16.2.16 和 172.16.2.17MariaDB的版本是5.5.36,使用二进制方式安装。已安装完成。/mydata/data 数据库文件存放目录/mydata/binlog/ 二进制日志文件存放位置/mydata/relaylog/ 中继日志…

DevOps技术演进:混合云时代下的本土化突围与智能化未来

DevOps技术演进:混合云时代下的本土化突围与智能化未来 数字化转型浪潮席卷全球,DevOps作为软件开发和运维的关键技术正在经历前所未有的变革。Gartner最新报告显示,到2025年全球75%的企业将采用混合云DevOps解决方…

2025 年模块电源厂家最新推荐排行榜:dc/dc、ac/dc 及工业级模块电源优质企业全面解析与选购参考

随着工业自动化、新能源储能、轨道交通等领域的高速发展,模块电源作为核心供电组件,其性能与质量直接决定下游设备的运行效率与安全。当前市场上模块电源品牌繁杂,产品质量差距悬殊,部分产品存在功率密度低、抗扰性…

如何建设小说网站大理建设工程信息网站

C语言数据类型和变量 前言1. 数据类型介绍1.1 字符型1.2 整型1.3 浮点型1.4 布尔类型1.5 各种数据类型的长度1.5.1 sizeof操作符1.5.2 数据类型长度1.5.3 sizeof中表达式不计算 2. signed 和 unsigned3. 数据类型的取值范围4. 变量4.1 变量的创建4.2 变量的分类 5. 算术操作符&…

【AI生成】小模型微调技术浅析

针对像 Qwen3-0.6B 这类轻量级大语言模型(LLM)的微调(Fine-tuning),核心目标是在有限算力和数据条件下,高效提升模型在特定任务或领域上的表现。由于模型本身参数量小(约6亿),微调成本远低于大模型,但仍需采…

[iOS] YYModel 初步学习 - 教程

[iOS] YYModel 初步学习 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&quo…

吴恩达深度学习课程一:神经网络和深度学习 第二周:神经网络基础(三)

此分类用于记录吴恩达深度学习课程的学习笔记。 课程相关信息链接如下:原课程视频链接:[双语字幕]吴恩达深度学习deeplearning.ai github课程资料,含课件与笔记:吴恩达深度学习教学资料 课程配套练习(中英)与答案…

qwen3:0.6b模型的基本参数存在的价值应用场景分析

Qwen3:0.6B 是通义千问(Qwen)系列中的一个轻量级语言模型,其名称中的 “0.6B” 表示该模型大约拥有 6亿参数(即 0.6 billion parameters)。作为 Qwen3 系列中参数规模较小的成员,它在性能、资源消耗和部署灵活性…

Gitee Insight领航研发效能工具市场:国产化与智能化双轮驱动下的技术突围

Gitee Insight领航研发效能工具市场:国产化与智能化双轮驱动下的技术突围 在数字化浪潮席卷全球的当下,软件研发效能已成为企业核心竞争力的关键指标。IDC最新报告显示,2024年中国DevOps市场规模已达120亿元,年复合…

【大数据】AI就业影响数据可视化分析系统 计算机毕业设计项目 Anaconda+Django+Spark+Hadoop环境调整 附源码+文档+讲解

【大数据】AI就业影响数据可视化分析系统 计算机毕业设计项目 Anaconda+Django+Spark+Hadoop环境调整 附源码+文档+讲解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !importa…

电商网站建设书在线做初中题网站

一、Tab补全 在shell中输入表达式,按下Tab,会搜索已输入变量(对象、函数等等)的命名空间: 除了补全命名、对象和模块属性,Tab还可以补全其它的。当输入看似文件路径时 (即使是Python字符串&…

做效果图的网站有哪些软件有哪些不花钱做推广的网站

原标题:IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持&a…

2026 航空航天、智能感知与控制国际学术会议

【2026 航空航天、智能感知与控制国际学术会议】 2026 International Conference on Aerospace, Intelligent Perception and Control 🔍会议官网:http://www.icaipc.org/ 🏆 主办:南京信息工程大学 🎤嘉宾报告…

Trae 或 vscode无法在vue文件中自动跳转解决

1.安装插件: 2.软件右下角找到语言模式,选择".vue"的配置文件关联 3.若vue文件中的import 仍然无法跳转,则需要在根目录新建一个文件 jsconfig.json{"compilerOptions": {"baseUrl"…

实用指南:小白也能学会的大模型构建:DeepSeek实战教程+代码解析

实用指南:小白也能学会的大模型构建:DeepSeek实战教程+代码解析pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

酒店网站开发回扣在网站中动态效果怎么做

为文档添加注释 <!--这里是注释--> 或者 <!--这里也是注释 并且可以分为多行-->

​​无源探头与高压差分探头的技术比较与应用选择​​

本文对比了无源探头和高压差分探头在设计原理、性能参数、应用场景等方面的特点,为选择合适探头提供参考。在电子测量领域,电压测量是电路调试、性能评估和故障诊断的基础工作。无源探头和高压差分探头作为两种常用的…