8

渗透基础——活动目录信息的获取2:Bypass AV

 3 years ago
source link: https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-%E6%B4%BB%E5%8A%A8%E7%9B%AE%E5%BD%95%E4%BF%A1%E6%81%AF%E7%9A%84%E8%8E%B7%E5%8F%962_Bypass-AV
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

渗透基础——活动目录信息的获取2:Bypass AV

11 Jan 2021

0x00 前言


在之前的文章《渗透基础——活动目录信息的获取》以获取活动目录中所有用户、所有计算机和所有组为例,介绍常用的信息获取方法。

但是在实际使用过程中,一些工具会被杀毒软件拦截。

所以本文将要对获取方法进行补充,同时绕过杀毒软件的拦截。

0x01 简介


本文将要介绍以下内容:

  • 使用csvde获取活动目录信息
  • 使用ldifde获取活动目录信息
  • 使用AdFind获取活动目录信息
  • 使用C#开发的轻量级获取工具

0x02 使用csvde获取活动目录信息


说明文档:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc732101(v=ws.11)

使用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获取活动目录信息


说明文档:

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/cc731033(v=ws.11)

使用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添加其他功能。


LEAVE A REPLY


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK