介绍
内网渗透测试域常规的渗透测试是截然不同的。内网渗透测试的需求是,获取内网中特定用户后机器的权限,进而获得特定的资源,对内网的安全性进行评估。
1 域管理员定位概述
在内网中,通常会部署大量的网络安全系统和设备,例如:IDS、IPS、日志审计、安全网关、反病毒软件等。在域网路攻击测试中,获取域内的一个支点后,需要获取域管理员权限。
在一个域中,当计算机加入域后,会默认给域管理员组赋予本地系统管理员权限,也就是说,当计算机被添加到域中,成为域的成员主机后,系统会自动将域管理员组添加到本地系统管理员组中。因此,域管理员的组成员均可访问本地计算机,且具备完全控制的权限。
定位域内管理员的常规渠道,一是日志,二是会话。日志是本地机器的管理员日志,可以使用脚本或Wevtutil工具导出查看。会话是指域内每台机器登录的会话,可以使用netsess.exe或PowerView等工具查询(可以匿名查询,不需要权限)。
2 常用域管理员定位工具
假设已经取得普通用户权限,希望在域内横向移动,需要知道域内用户登录的位置、他是否是任何系统的本地管理员、他所属的组、他是否有权访问文件共享等。枚举主句、用户和组,有助于更好地了解域的布局。###
2.1 psloggendon.exe
windows上可以用net session
查看谁在使用本机资源,但不能查看谁在使用远程计算机资源、谁登录了本地或远程计算机
psloggendon.exe工具可以实现
如果指定的是用户名,而不是计算机名,工具就会搜索网上邻居中的计算机,并显示该用户当前是否已经登录用户。
器原理是通过检查注册表HKEY_USERS项的key值来查询谁登录过(需要调用NetSessionEnum API),但某些功能需要管理员权限才能使用。
下载地址:
https://www.pconlife.com/download/otherfile/143535/08dadac8c7a951cbec90c10026ba74b3/
PsLoggedon.exe [-] [-l] [-x] [\\computername|username]
-
:显示支持的选项和用于输出值得单位
-l
:仅显示本地登录,不显示本地和网络资源登录
-x
:不显示登录时间
\\computername
:指定要列出登录信息的计算机名
username
:指定用户名,在网络中搜索该用户登录的计算机
案例给的这个:
PsLoggedon.exe \\DC
我这win7测试失败了:Unbale to query resorce logons
2.2 PVEFindADUser.exe
PVEFindADUser.exe 可用于查找活动目录登录的位置、枚举域用户,以及查找特定计算机上的登录的用户,包括本地用户、通过RDP登录的用户、用于运行服务和计划任务等用户。
环境:
-
.NET Framework 2.0
-
需要管理员权限
2.2.1 下载地址
https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
2.2.2 帮助 -h
PVEFindADUser -h
2.2.3 检查程序是否有新版本 -u
PVEFindADUser -u
2.2.4 -current[“username”]
如果制定了 -current参数,将获取当前登录的所有用户。
将获取目标计算机的最后一个登录用户。
如果指定了用户名(Domain\Username),则显示该用户登录的计算机。
2.2.5 -last[“username”]
如果近指定了 -last 参数,将获取目标计算机的最后一个登录用户。
如果指定了用户名(“Domain\Username”),怎显示用户上次登录的计算机。
根据网络的安全策略,可能会隐藏最后一个登录的用户名,此时使用该工具可能无法得到该用户名。
2.2.6 -noping
阻止该工具在尝试获取用户登录信息之前对目标计算机进行执行ping命令。
2.2.7 -target
可选参数,用于指定要查询的主机。如果未指定此参数,将查询当前域中的所有主机。
如果指定了此参数,则后跟一个有逗号分割的主机名列表
2.3 netview.exe
https://github.com/mubix/netview
https://pingmaoer.github.io/2020/03/31/%E5%86%85%E7%BD%91%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E4%BA%8C/
2.4 Nmap的NSE脚本
https://nmap.org/nsedoc/scripts/smb-enum-sessions.html
smb-enum-session.nse
2.5 PowerView脚本
PowerView是一款PowerShell脚本,提供了辅助定位关键用户的功能。
Invoke-StealthUserHunter
:只需要一次查询,就可以获取域里面的所有用户。
Invoke-UserHunter
:找到域内特定的用户群,接收用户名、用户列表和域组查询,接收一个主机列表或查询可用的主机域名。可以使用Get-NetSessions和Get-NetLoggdon(调用NetSessionEnum和NetWkstaUserEnum API)扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,在使用时不需要管理员权限。在本地执行脚本
下载地址:
https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon
<h2><a id="_0"></a>介绍</h2>
<p>内网渗透测试域常规的渗透测试是截然不同的。内网渗透测试的需求是,获取内网中特定用户后机器的权限,进而获得特定的资源,对内网的安全性进行评估。</p>
<h2><a id="1__4"></a>1 域管理员定位概述</h2>
<p>在内网中,通常会部署大量的网络安全系统和设备,例如:IDS、IPS、日志审计、安全网关、反病毒软件等。在域网路攻击测试中,获取域内的一个支点后,需要获取域管理员权限。</p>
<p>在一个域中,当计算机加入域后,会默认给域管理员组赋予本地系统管理员权限,也就是说,当计算机被添加到域中,成为域的成员主机后,系统会自动将域管理员组添加到本地系统管理员组中。因此,域管理员的组成员均可访问本地计算机,且具备完全控制的权限。</p>
<p>定位域内管理员的常规渠道,一是日志,二是会话。日志是本地机器的管理员日志,可以使用脚本或Wevtutil工具导出查看。会话是指域内每台机器登录的会话,可以使用netsess.exe或PowerView等工具查询(可以匿名查询,不需要权限)。</p>
<h2><a id="2__14"></a>2 常用域管理员定位工具</h2>
<p>假设已经取得普通用户权限,希望在域内横向移动,需要知道域内用户登录的位置、他是否是任何系统的本地管理员、他所属的组、他是否有权访问文件共享等。枚举主句、用户和组,有助于更好地了解域的布局。###</p>
<h3><a id="21_psloggendonexe_18"></a>2.1 psloggendon.exe</h3>
<p>windows上可以用<code>net session</code>查看谁在使用本机资源,但不能查看谁在使用远程计算机资源、谁登录了本地或远程计算机</p>
<p>psloggendon.exe工具可以实现</p>
<p>如果指定的是用户名,而不是计算机名,工具就会搜索网上邻居中的计算机,并显示该用户当前是否已经登录用户。</p>
<p>器原理是通过检查注册表HKEY_USERS项的key值来查询谁登录过(需要调用NetSessionEnum API),但某些功能需要管理员权限才能使用。</p>
<p>下载地址:</p>
<pre><div class="hljs"><code class="lang-shell">https://www.pconlife.com/download/otherfile/143535/08dadac8c7a951cbec90c10026ba74b3/
</code></div></pre>
<pre><div class="hljs"><code class="lang-shell">PsLoggedon.exe [-] [-l] [-x] [\\computername|username]
</code></div></pre>
<p><code>-</code>:显示支持的选项和用于输出值得单位</p>
<p><code>-l</code>:仅显示本地登录,不显示本地和网络资源登录</p>
<p><code>-x</code>:不显示登录时间</p>
<p><code>\\computername</code>:指定要列出登录信息的计算机名</p>
<p><code>username</code>:指定用户名,在网络中搜索该用户登录的计算机</p>
<p>案例给的这个:</p>
<pre><div class="hljs"><code class="lang-shell">PsLoggedon.exe \\DC
</code></div></pre>
<p>我这win7测试失败了:Unbale to query resorce logons</p>
<h3><a id="22_PVEFindADUserexe_64"></a>2.2 PVEFindADUser.exe</h3>
<p>PVEFindADUser.exe 可用于查找活动目录登录的位置、枚举域用户,以及查找特定计算机上的登录的用户,包括本地用户、通过RDP登录的用户、用于运行服务和计划任务等用户。</p>
<p>环境:</p>
<ul>
<li>
<p>.NET Framework 2.0</p>
</li>
<li>
<p>需要管理员权限</p>
</li>
</ul>
<h4><a id="221__76"></a>2.2.1 下载地址</h4>
<pre><div class="hljs"><code class="lang-shell">https://github.com/chrisdee/Tools/tree/master/AD/ADFindUsersLoggedOn
</code></div></pre>
<h4><a id="222__h_84"></a>2.2.2 帮助 -h</h4>
<pre><div class="hljs"><code class="lang-shell">PVEFindADUser -h
</code></div></pre>
<h4><a id="223__u_92"></a>2.2.3 检查程序是否有新版本 -u</h4>
<pre><div class="hljs"><code class="lang-shell">PVEFindADUser -u
</code></div></pre>
<h4><a id="224_currentusername_100"></a>2.2.4 -current[“username”]</h4>
<p>如果制定了 -current参数,将获取当前登录的所有用户。</p>
<p>将获取目标计算机的最后一个登录用户。</p>
<p>如果指定了用户名(Domain\Username),则显示该用户登录的计算机。</p>
<h4><a id="225_lastusername_110"></a>2.2.5 -last[“username”]</h4>
<p>如果近指定了 -last 参数,将获取目标计算机的最后一个登录用户。</p>
<p>如果指定了用户名(“Domain\Username”),怎显示用户上次登录的计算机。</p>
<p>根据网络的安全策略,可能会隐藏最后一个登录的用户名,此时使用该工具可能无法得到该用户名。</p>
<h4><a id="226_noping_120"></a>2.2.6 -noping</h4>
<p>阻止该工具在尝试获取用户登录信息之前对目标计算机进行执行ping命令。</p>
<h4><a id="227_target_126"></a>2.2.7 -target</h4>
<p>可选参数,用于指定要查询的主机。如果未指定此参数,将查询当前域中的所有主机。</p>
<p>如果指定了此参数,则后跟一个有逗号分割的主机名列表</p>
<h3><a id="23_netviewexe_134"></a>2.3 netview.exe</h3>
<pre><div class="hljs"><code class="lang-shell">https://github.com/mubix/netview
https://pingmaoer.github.io/2020/03/31/%E5%86%85%E7%BD%91%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86%E4%BA%8C/
</code></div></pre>
<h4><a id="24_NmapNSE_143"></a>2.4 Nmap的NSE脚本</h4>
<pre><div class="hljs"><code class="lang-shell">https://nmap.org/nsedoc/scripts/smb-enum-sessions.html
</code></div></pre>
<p>smb-enum-session.nse</p>
<h4><a id="25_PowerView_153"></a>2.5 PowerView脚本</h4>
<p>PowerView是一款PowerShell脚本,提供了辅助定位关键用户的功能。</p>
<p><code>Invoke-StealthUserHunter</code>:只需要一次查询,就可以获取域里面的所有用户。</p>
<p><code>Invoke-UserHunter</code>:找到域内特定的用户群,接收用户名、用户列表和域组查询,接收一个主机列表或查询可用的主机域名。可以使用Get-NetSessions和Get-NetLoggdon(调用NetSessionEnum和NetWkstaUserEnum API)扫描每台服务器并对扫描结果进行比较,从而找出目标用户集,在使用时不需要管理员权限。在本地执行脚本</p>
<pre><div class="hljs"><code class="lang-shell">下载地址:
https://github.com/PowerShellMafia/PowerSploit/tree/master/Recon
</code></div></pre>
留言