总结一些域枚举的艺术,希望能对大家有用,文中用到的工具为powerview与powershell AD模块。全文共41张图,阅读时间约为10-15分钟。
域的查看可以使用下面的powershell去进行查看
$ADClass = [System.DirectoryServices.ActiveDirectory.Domain]
$ADClass::GetCurrentDomain()
一句话操作
powershell "$ADClass = [System.DirectoryServices.ActiveDirectory.Domain];$ADClass::GetComputerDomain()"
详细的操作可以使用PowerSploit中的PowerView进行操作,如果缺少AD powershell模块,可以去msdn前去下载(github ADMoudle)。
查看当前域的信息,可以使用下面的命令
Get-NetDomain --> powerview
Get-ADDomain --> ADMoudle
查看域对象信息
Get-NetDomain -Domain Domain Name --> powerview
Get-ADDomain -Identity Domain Name --> ADMoudle
查看域的SID
Get-DomainSID --> powerview
(Get-ADDomain).DomainSID --> ADMoudle
查看组策略
Get-DomainPolicy
(Get-DomainPolicy)."systemaccess"
(Get-DomainPolicy)."kerberospolicy"
查看域控制器
Get-NetDomainController
Get-ADDomainController
查看域内的用户
Get-NetUser
Get-ADUser -Filter * -Properties *
查看用户信息
Get-UserProperty
这里就包含了所有用户相关信息。可以使用-Properties查看具体的某一项,比如查看最后的密码设置时间。
Get-UserProperty -Properties pwdlastset
枚举计算机信息
powerview
Get-NetComputer Get-NetComputer -OperatingSystem "*2012*" //系统为2012
Get-NetComputer -Ping //ping操作
Get-NetComputer -FullData //详细数据
AD模块
Get-ADComputer -Filter *
Get-ADComputer -Filter * -Properties *
获取组信息
Get-NetGroup
Get-NetGroup -Domain contoso.com
Get-ADGroup -Filter *
查看组内成员
Get-NetGroupMember -GroupName "Domain Admins" -Recurse
Get-ADGroupMember -Identity "Domain Admins" -Recursive
查看一个用户所属的组
Get-NetGroup -UserName "bypass"
Get-ADPrincipalGroupMembership -Identity bypass
列出指定机器的本地组(需要管理员权限)
Get-NetLocalGroup -ComputerName WIN-2TRELPSBMUD.contoso.com -ListGroups
查看指定机器的登录活动信息(需要目标的本地管理权限)
Get-NetLoggedon -ComputerName WIN-2TRELPSBMUD.contoso.com
查看当前域的共享信息
Invoke-ShareFinder -Verbose
查看当前域的敏感文件
Invoke-FileFinder -Verbose
GPO相关
Get-NetGPO
Get-GPO -All //使用GPO模块
将GPO导出成html
PS C:UsersAdministratorDesktop> Get-GPResultantSetOfPolicy -ReportType Html -Path C:UsersAdministratorDesktoprepo rt.html
gpo信息查看
Find-GPOComputerAdmin -ComputerName WIN-2TRELPSBMUD.contoso.com
Find-GPOLocation -UserName bypass
查看容器信息
Get-NetOU -FullData
Get-ADOrganizationalUnit -Filter * -Properties *
查看指定对象的ACL
Get-ObjectAcl -SamAccountName bypass -ResolveGUIDs
查找指定前缀对象的ACL
Get-ObjectAcl -ADSprefix 'CN=administrator,CN=users' -Verbose
使用自带的AD模块来枚举ACL
(Get-ACL 'AD:cn=administrator,cn=users,dc=contoso,dc=com').access
查找有趣的ACE
Invoke-ACLScanner -ResolveGUIDs
查看指定路径的ACL
Get-PathAcl -Path "C:Users"
域信任
获取域信任
Get-NetDomainTrust
获取当前林信息
Get-NetForest
Get-ADForest
获取当前林的所有域
Get-NetForestDomain
(Get-ADForest).Domains
获取当前林的全局编录
Get-NetForestCatalog
user hunting
查找当前用户可作为管理员进行登录的域内机器
Find-LocalAdminAccess -Verbose
攻击利用链如下:
Get-NetComputer --> Invoke-CheckLocalAdminAccess
注:具有同样功能的还有Find-WMILocalAdminAcccess.ps1
查找域内所有机器的本地管理
Invoke-EnumerateLocalAdmin -Verbose
查找用户session
Invoke-UserHunter
Get-NetSession
Get-NetLoggedon
以上便是总结的一些域枚举的手法,如有错误,还望指出以免误人子弟,如有帮助,希望点个转发,点个再看。
本文始发于微信公众号(鸿鹄实验室):Domain Enumeration
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论