AD枚举(含简单脚本)

利用net命令查询用户及组信息

net user    #查询本地用户

net user /domian    #查询域用户

net user USERNAME /domain    #指定查询某域用户

net group /domain    #查询域用户组

利用powershell查询用户及组信息

利用powershell脚本,查询域控信息。

LDAP路径格式:LDAP://HostName[:PortNumber][/DistinguishedName]

第一部分:先获取LDAP路径信息。

利用System.DirectoryServices.ActiveDirectory.Domain类中的GetCurrentDomain()方法,获取域名信息,即HostName。

$domainObj = [System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

取PdcRoleOwner属性中的内容。

$PDC = ($domainObj.PdcRoleOwner).Name

拼接LDAP路径。

$SearchString = "LDAP://"

$SearchString += $PDC + "/"

将域名格式替换为DN格式。例:b10d9.com 变成 DC=b10d9,DC=com

$DistinguishedName = "DC=$($domainObj.Name.Replace('.', ',DC='))"

拼接完成LDAP路径。例:LDAP://DC.b10d9.com/DC=b10d9,DC=com

$SearchString += $DistinguishedName

第二部分:设置搜索的根路劲

利用DirectorySearcher类,搜索对象为前面脚本获取的LDAP路径。

$Searcher = New-Object System.DirectoryServices.DirectorySearcher([ADSI]$SearchString)

利用DirectoryEntry,确定域控根路劲。

$objDomain = New-Object System.DirectoryServices.DirectoryEntry

设置Searcher类的SearchRoot参数为当前域控根路劲。

$Searcher.SearchRoot = $objDomain

第三部分:创建过滤器

根据不同查询需求,设置不同的过滤条件。

$Searcher.filter="samAccountType=805306368"

$Result = $Searcher.FindAll()

以下加入循环,将结果以容易阅读的方式输出所有用户每个属性的 。

Foreach($obj in $Result)

{

    Foreach($prop in $obj.Properties)

    {

        $prop

    }

    Write-Host "------------------------------------------------"

}

枚举已登录用户信息和会话

用到的API接口:NetWkstaUserEnum和NetSessionEnum

用到的脚本:PowerView.ps1

github:https://github.com/PowerShellMafia/PowerSploit/blob/master/Recon/PowerView.ps1

命令说明:https://book.hacktricks.xyz/windows/basic-powershell-for-pentesters/powerview

枚举服务账户

SPN:即Service Principal Name。AD账户除了用户账户外,还有服务账户。应用程序也会有与之关联的服务账户,便于应用程序访问服务器资源,如exchange、SQL、IIS等。SPN则用于将应用程序启用的服务与AD中服务账户关联起来的一项服务。

通过枚举所有SPN,进一步获取服务器运行的所有服务的IP及端口。

备注:微软并未公开SPN,息但网上可以找到一些SPN清单。

修改脚本中过滤条件:

$Searcher.filter="serviceprincipalname=*http*"

完整脚本

$domainObj=[System.DirectoryServices.ActiveDirectory.Domain]::GetCurrentDomain()

$PDC= ($domainObj.PdcRoleOwner).Name

$SearchString="LDAP://"

$SearchString+=$PDC+"/"

$DistinguishedName="DC=$($domainObj.Name.Replace('.', ',DC='))"

$SearchString+=$DistinguishedName

$Searcher=New-ObjectSystem.DirectoryServices.DirectorySearcher([ADSI]$SearchString)

$objDomain=New-ObjectSystem.DirectoryServices.DirectoryEntry

$Searcher.SearchRoot =$objDomain



# 根据需要设置不同的过滤条件

$Searcher.filter="samAccountType=805306368"

# 查询所有用户

$Searcher.filter="serviceprincipalname=*http*"

# 查询SPN

$Searcher.filter="(name=Nested_Group)"

# 查询用户组

$Result=$Searcher.FindAll()



# 循环条件,输出查询内容

Foreach($objin$Result)

{

    Foreach($propin$obj.Properties)

    {

        $prop

    }

    Write-Host"------------------------"

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值