pyLDAPGui是我在过去几个月里一直在开发的一个应用程序,直到最近才决定以概念验证的形式发布,供大家试用。这个想法的诞生源于我在开发"无恶意软件对抗模拟"课程时,需要寻找能够在不同操作系统中有效进行"就地取材"的工具,这让我开始深入研究可移植的可用选项。
如果你曾经进行过任何形式的渗透测试、红队行动或专注于Active Directory环境的审计,很可能使用过Active Directory Explorer。这是一个在Windows主机上连接LDAP服务器(通常是域控制器)并查看AD环境的优秀工具。但它的最大限制是只能在Windows上使用,如果你希望在Linux虚拟机或Mac上操作,就无法使用它。
在寻找具有用户界面的替代LDAP浏览器时,我发现了一些有用的系统管理工具:
但这些工具要么缺乏图形界面,要么仍然依赖Windows平台。
在创建GUI应用程序时,我考虑过多种语言:
评估了多个Python GUI库后,我选择了PyQt:
选择PyQt主要是因为其易用性、可扩展性和跨平台支持。
工具的核心设计目标是与ADExplorer类似的功能:
在Python中设计GUI比我想象的要复杂,特别是在确定导出文件的结构方面。
实现SOCKs功能比最初预期的要困难,通过大量谷歌搜索和试错最终解决了问题。
在开发过程中考虑了节流和操作安全问题:
self.attribute_variations = {
'samaccountname': ['sAMAccountName', 'samAccountName', 'SAMACCOUNTNAME', 'sAmAcCoUnTnAmE'],
'objectclass': ['objectClass', 'OBJECTCLASS', 'ObjectClass', 'oBjEcTcLaSs'],
# ... 更多属性变体
}
工具执行以下类型的LDAP查询:
为了增强隐蔽性,在查询之间添加了随机延迟(0.5-2秒),并且每次运行时都会打乱查询顺序。
使用GitHub Actions进行CI/CD时遇到挑战,需要正确设置权限:
permissions:
contents: write
packages: write
经过26多次尝试才成功实现清理提交历史和工作流提交的功能。
完成后的GUI工具具有以下核心功能:
计划进一步改进代码并添加更多功能,包括:
这个PoC工具是我过去几个月开发工作的成果,希望能对大家有所帮助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。