渗透基础——活动目录信息的获取2_Bypass AV
layout: post title: 渗透基础——活动目录信息的获取 2:Bypass AV
0x00 前言
在之前的文章 《渗透基础——活动目录信息的获取》 以获取活动目录中所有用户、所有计算机和所有组为例,介绍常用的信息获取方法。
但是在实际使用过程中,一些工具会被杀毒软件拦截。
所以本文将要对获取方法进行补充,同时绕过杀毒软件的拦截。
0x01 简介
本文将要介绍以下内容:
- 使用 csvde 获取活动目录信息
- 使用 ldifde 获取活动目录信息
- 使用 AdFind 获取活动目录信息
- 使用 C#开发的轻量级获取工具
0x02 使用 csvde 获取活动目录信息
使用 csvde 导出的文件格式为 csv,可以使用 Microsoft Excel 查看
默认只能在以下系统使用,例如:
- Windows Server 2003
- Windows Server 2008
- Windows Server 2003 R2
- Windows Server 2008 R2
- Windows Server 2012,
- Windows Server 2003 with SP1
- Windows 8
- ...
1.导出当前域内活动目录信息示例
导出当前域内所有信息:
csvde -f all.csv
导出当前域内所有用户信息:
csvde -f user.csv -r "(&(objectCategory=person))"
导出当前域内所有机器信息:
csvde -f machine.csv -r "(&(objectCategory=computer))"
导出当前域内所有组信息:
csvde -f group.csv -r "(&(objectCategory=group))"
导出当前域内所有管理员组的用户信息:
csvde -f admin.csv -r "(&(objectCategory=group)(name=Domain Admins))"
导出当前域内所有 OU 信息:
csvde -f ou.csv -r "(&(objectCategory=organizationalUnit))"
导出当前域内所有的域用户名:
csvde -f username.csv -r "(&(objectCategory=person))" -l SamAccountName
导出当前域内所有的计算机名:
csvde -f machinename.csv -r "(&(objectCategory=computer))" -l name
2.从域外远程导出活动目录信息示例
导出远程域内所有信息:
csvde -s 192.168.1.1 -a test\admin Password -f all.csv
0x03 使用 ldifde 获取活动目录信息
使用 ldifde 导出的文件格式为 LDIF,可以使用 notepad.exe 查看
1.导出当前域内活动目录信息示例
导出当前域内所有信息:
ldifde -f all.txt
导出当前域内所有用户信息:
ldifde -r "(&(objectCategory=person))" -f user.txt
导出当前域内所有机器信息:
ldifde -r "(&(objectCategory=computer))" -f machine.txt
导出当前域内所有组信息:
ldifde -r "(&(objectCategory=group))" -f group.txt
导出当前域内所有管理员组的用户信息:
ldifde -r "(&(objectCategory=group)(name=Domain Admins))" -f admin.txt
导出当前域内所有 OU 信息:
ldifde -r "(&(objectCategory=organizationalUnit))" -f ou.txt
导出当前域内所有的域用户名:
ldifde -r "(&(objectCategory=person))" -l SamAccountName -f username.txt
导出当前域内所有的计算机名:
ldifde -r "(&(objectCategory=computer))" -l name -f machinename.txt
2.从域外远程导出活动目录信息示例
导出远程域内所有信息:
ldifde -s 192.168.1.1 -a test\admin Password -f all.txt
0x04 使用 AdFind 获取活动目录信息
下载地址:https://www.joeware.net/freetools/tools/adfind/
1.导出当前域内活动目录信息示例
导出当前域内所有信息:
adfind.exe -h 127.0.0.1>all.txt
导出当前域内所有用户信息:
adfind.exe -h 127.0.0.1 -f objectcategory=person>user.txt
导出当前域内所有机器信息:
adfind.exe -h 127.0.0.1 -f objectcategory=computer>machine.txt
导出当前域内所有组信息:
adfind.exe -h 127.0.0.1 -f objectcategory=group>group.txt
导出当前域内所有管理员组的用户信息:
adfind.exe -h 127.0.0.1 -f "(&(objectCategory=group)(name=Domain Admins))">admin.txt
导出当前域内所有 OU 信息:
adfind.exe -h 127.0.0.1 -f objectcategory=organizationalUnit>ou.txt
导出当前域内所有的域用户名:
adfind.exe -h 127.0.0.1 -f objectcategory=person SamAccountName>username.txt
导出当前域内所有的计算机名:
adfind.exe -h 127.0.0.1 -f objectcategory=computer name>machinename.txt
2.从域外远程导出活动目录信息示例
导出远程域内所有信息:
adfind.exe -h 192.168.1.1 -u test\admin -up Password>all.txt
0x05 使用 C#开发的轻量级获取工具
SharpView 通过.Net 实现了 PowerView 中关于获取活动目录信息的功能,功能很完整,但是会被杀毒软件拦截。
而我们通过调用命名空间 System.DirectoryServices
,能够很容易实现简单的功能,满足基本需求,并且通常情况下不会被杀毒软件拦截。
这里可以使用之前的代码 ListUserMailbyLDAP.cs 作为模板,修改查询语句即可。
我以 AdFind 的基础功能作为参照,实现了一个轻量级的工具,完整的代码已上传 github,地址如下:https://github.com/3gstudent/Homework-of-C-Sharp/blob/master/SharpADFindDemo.cs
SharpADFindDemo 可以在.Net3.5 或.Net4 的 Windows 系统下直接编译
编译方法如下:
C:\Windows\Microsoft.NET\Framework64\v3.5\csc.exe SharpADFindDemo.cs /r:System.DirectoryServices.dll
or
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe SharpADFindDemo.cs /r:System.DirectoryServices.dll
支持导出以下 AD 信息:
- user,所有域用户信息
- machine,所有域计算机信息
- group,所有域组信息
- ou,所有域 OU 信息
- username,只导出域用户名
- machinename,只导出域计算机名
- groupname,只导出域组名
- ouname,只导出域 OU 名
这里需要注意的是默认导出的最大数目为 1000 个
0x06 小结
本文对活动目录信息的获取方法进行了补充,介绍了 3 个常用工具,使用 C#开发了一个轻量级获取工具 SharpADFindDemo,后续可以此为模板,结合 SharpView 添加其他功能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: 域渗透——使用 MachineAccount 实现 DCSync
下一篇: Jvm 常量池
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论