域渗透-windows活动目录信息搜集

作者: H0r2yC 分类: 内网渗透 发布时间: 2020-01-31 15:40

0x01 前言

内网渗透中,信息搜集是非常重要的。

本文主要说一下域环境中使用LDAP协议对活动目录的信息搜集。在讲信息搜集方法之前,先提一下windows活动目录、LDAP协议等基本概念 。

0x02 windows活动目录

活动目录服务是Windows 2000 Server最重要的新功能之一,它可将网络中各种对象组合起来进行管理,方便了网络对象的查找,加强了网络的安全性,并有利于用户对网络的管理。活动目录是一种目录服务,它存储有关网络对象的信息,例如用户、组、计算机、共享资源、打印机和联系人等信息,并使管理员和用户可以方便的查找和使用这些网络信息。通过Windows 2000 Server的活动目录,用户可以对用户与计算机、域、信任关系,以及站点与服务进行管理。活动目录具有可扩展性与可调整性。 –百度百科

简单的说,可以把活动目录理解成一个动态可扩展的,专门为了查询、浏览、搜索优化的特殊数据库,就像windows文件目录的结构一样。目录数据库与mysql这种关系型数据库相比,目录数据库具有特别优异的读性能,但是写性能很差,而且没有备份还原这样的功能。

0x03 LDAP协议

LDAP(Light Directory Access Portocol)是一个基于X.500标准的轻量级目录访问协议,是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。

windows Active Directory就是一个支持LDAP的微软产品。

0x04 信息搜集方式

在获取信息之前,我们需要确保能访问域控的389端口,且已经知道一个域内账户的账号密码。假设我们已经知道用户h0r2yc的密码为Asdfqwer..,域控ip为192.168.17.129

看一下到DC的389端口状态

4.1域外机器获取信息(可访问DC主机)

4.1.1 ldapsearch获取信息

参数说明

  • -x 进行简单认证
  • -H 服务器地址
  • -D 用来绑定服务器的DN
  • -w 绑定DN的密码
  • -b 指定要查询的根节点
ldapsearch.exe -x -H ldap://192.168.17.129:389 -D "CN=h0r2yc,CN=Users,DC=h0r2yc,DC=cn" -w Asdfqwer.. -b "DC=h0r2yc,DC=cn"

这样查询出的结果太多,而我们想要的只是域内所有用户,可以添加搜索条件来查询

4.1.1.1 查询域内用户

搜索条件语句:”(&(objectClass=user)(objectCategory=person))”

ldapsearch.exe -x -H ldap://192.168.17.129:389 -D "CN=h0r2yc,CN=Users,DC=h0r2yc,DC=cn" -w Asdfqwer.. -b "DC=h0r2yc,DC=cn" "(&(objectClass=user)(objectCategory=person))"

返回结果还是比较繁杂,可以使用管道符来筛一下

ldapsearch.exe -x -H ldap://192.168.17.129:389 -D "CN=h0r2yc,CN=Users,DC=h0r2yc,DC=cn" -w Asdfqwer.. -b "DC=h0r2yc,DC=cn" "(&(objectClass=user)(objectCategory=person))" | grep ^cn

4.1.1.2 查询所有计算机名搜索条件语句:”(&(objectCategory=computer)(objectClass=computer))”

ldapsearch.exe -x -H ldap://192.168.17.129:389 -D "CN=h0r2yc,CN=Users,DC=h0r2yc,DC=cn" -w Asdfqwer.. -b "DC=h0r2yc,DC=cn" "(&(objectCategory=computer)(objectClass=computer))" | grep ^cn

4.1.1.3 查询所有组

搜索条件语句:”(&(objectCategory=group))”

ldapsearch.exe -x -H ldap://192.168.17.129:389 -D "CN=h0r2yc,CN=Users,DC=h0r2yc,DC=cn" -w Asdfqwer.. -b "DC=h0r2yc,DC=cn" "(&(objectCategory=group))" | grep ^cn

4.1.2 powersploit获取信息

地址:https://github.com/PowerShellMafia/PowerSploit

先把powerview模块加载到powershell中

执行Import-Module PowerSploit加载模块,powershell默认策略不允许执行脚本,更改策略即可。

set-executionpolicy remotesigned

4.1.2.1 查询所有用户

$uname="h0r2yc"
$pwd=ConvertTo-SecureString "Asdfqwer.." -AsPlainText -Force
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)
Get-NetUser -Domain h0r2yc.cn -DomainController 192.168.17.129 -ADSpath "LDAP://DC=h0r2yc,DC=cn" -Credential $cred

使用fl筛选

Get-NetUser -Domain h0r2yc.cn -DomainController 192.168.17.129 -ADSpath "LDAP://DC=h0r2yc,DC=cn" -Credential $cred | fl cn

4.1.2.2 查询所有计算机

$uname="h0r2yc"
$pwd=ConvertTo-SecureString "Asdfqwer.." -AsPlainText -Force
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)
Get-NetComputer -Domain h0r2yc.cn -DomainController 192.168.17.129 -ADSpath "LDAP://DC=h0r2yc,DC=cn" -Credential $cred | fl cn

4.1.2.3 查询所有组

$uname="h0r2yc"
$pwd=ConvertTo-SecureString "Asdfqwer.." -AsPlainText -Force
$cred=New-Object System.Management.Automation.PSCredential($uname,$pwd)
Get-NetGroup -Domain h0r2yc.cn -DomainController 192.168.17.129 -ADSpath "LDAP://DC=h0r2yc,DC=cn" -Credential $cred | fl cn

4.1.3 sharpview获取信息

工具地址:https://github.com/tevora-threat/SharpView

查询所有用户

SharpView.exe Get-NetUser -Domain h0r2yc.cn -Server 192.168.17.129 -Credential h0r2yc@h0r2yc.cn/Asdfqwer.. | findstr cn

其他功能不再一一列举,可查看README支持的模块

4.2 域内机器获取信息

所有域外获取信息的方法域内获取信息均可使用

4.2.1 QueryADObject工具

工具地址:https://github.com/3gstudent/Homework-of-C-Language,可能由于搭建的域环境问题,我使用QueryADObject工具过程中,ADsOpenObject函数无法获取到域内信息,工具使用命令可以移步3gstudent大佬文章

0x05 总结

主要讲解了活动目录、LDAP概念,以及域内用户、主机等搜集方式。

参考文章:

https://3gstudent.github.io/3gstudent.github.io/渗透基础-活动目录信息的获取/

https://www.cnblogs.com/wilburxu/p/9174353.html

     

如果觉得我的文章对您有用,欢迎关注我的公众号:网安成长笔记