PowerView内网搜寻敏感信息

本文介绍几个PowerView非常实用的内网收集敏感信息的几个工具方法

Invoke-ShareFinder
从共享文件中挖掘敏感信息是红队非常常用的收集信息手法,从中或许可以找到密码本、员工目录、薪酬信息、网络架构等信息,这些大多是由于共享文件权限设置不合理导致的。PowerView有些非常实用的功能(Invoke-NetviewInvoke-Sharefinder)可以帮我快速找到我们当前用户可以访问的共享目录。

Invoke-ShareFinder最新的版本可以与Invoke-FileFinder配合使用

PS C:\> Invoke-ShareFinder -Ping -CheckShareAccess -Verbose | Out-File -Encoding ascii found_shares.txt

这个命令会先ping AD所有的机器对象,确定机器可达以后开始枚举,检查所有发现的共享目录的读权限,然后把结果输出到found_shares.txt文件。-Verbose 参数会给输出结果打上一些状态标记,输出类似于这样:

\\WIN2K8.company.com\MSBuild    - test
\\WIN2K8.company.com\NETLOGON   - Logon server share 
\\WIN2K8.company.com\SYSVOL     - Logon server share 
\\WIN2K8.company.com\test   - 
\\WIN2K8.company.com\Users  - User share
\\WINDOWS7.company.com\secret   - don't look here
...snip...

我会把原始输出文件保存一份,然后去到输出文件中把那些不怎么感兴趣的文件名全干掉,然后把剩下的结果直接输入给Invoke-FileFinder

PS C:> Invoke-FileFinder -ShareList .\found_shares.txt -OutFile found_files.csv

这条命令把前一步输出的共享目录位置输入并进行递归查找,过滤那些文件名包含‘pass’, ‘sensitive’, ‘admin’, ‘secret’, ‘login’, ‘unattend.xml’, ‘.vmdk’, ‘creds’, or ‘credential*’的文件,结果会输出到指定文件,包含文件的路径,所有者,最后访问时间,大小,如果想搜索其他字段可以这样

PS C:> Invoke-FileFinder -ShareList .\found_shares.txt -OutFile found_files.csv -Terms payroll,CEO,…

这样会替换掉默认的查找字段。如果你不希望使用枚举的共享目录,而是直接执行Invoke-FileFinder,那么搜索范围会是整个AD域中活跃的机器的所有可达的共享目录,不包含C(可以用过 -IncludeC 和-IncludeAdmin参数包含)。

PS C:> Invoke-FileFinder -OutFile all_files.csv -Verbose

Find-InterestingDomainShareFile
Find-InterestingDomainShareFile使用起来似乎比前面两个命令更方便高效一些,可以指定也可以自动遍历目标主机的共享文件目录,并根据关键字找到感兴趣的文件

Find-InterestingDomainShareFile -Include @('*password*','*login*') -ExcludedShares @('*.png','*.gif','*.html')
PowerView内网搜寻敏感信息_第1张图片
get interesting share file

Get-ADDefaultDomainPasswordPolicy
可以用来查询域密码策略,这在前期信息收集过程中非常有用,可以查看账号密码锁定阈值,密码最小长度等,可以给渗透前的密码破解提供非常有价值的信息

PowerView内网搜寻敏感信息_第2张图片
get domain policy

上图可以看到密码锁定阈值为5,窗口为30分钟,这就告诉我们在用password spray的时候频率要控制在30分钟内失败不能超过5次

Get-DomainUser
获取所有域用户信息
Get-DomainUser -Domain gsc.test.com -Server blrad04-dc

Get-ObjectAcl
查询有DC Replication权限的用户

Get-ObjectAcl "dc=gsc,dc=test,dc=com" -ResolveGUIDs -Server blrad03-dc | ?  {($_.ActiveDirectoryRights -match 'GenericAll') -or ($_.ObjectAceType -match 'Replication-Get')} 

Get-DomainComputer
获取所有域电脑信息 Get-DomainComputer

Get-DomainGroup
获取所有组信息 Get-DomainGroup -GroupScope NotGlobal -Properties name

Get-DomainGPOUserLocalGroupMapping
获取用户可以远程登录的机器Get-DomainGPOUserLocalGroupMapping -Identity -Domain -LocalGroup RDP

= cnb\test , = cnb.test.com

参考
工具作者提供的一些示例:https://gist.github.com/HarmJ0y/184f9822b195c52dd50c379ed3117993

你可能感兴趣的:(PowerView内网搜寻敏感信息)