Vulnstack红日靶场(2)

环境搭建

外网打点

ms17-010

先对192.168.139.80ip进行信息收集

端口扫描:

1
nmap -sV 192.168.139.80

扫描结果如下,注意到开放了80,3389,7001这些端口

照例拿nmap先粗跑一下

1
nmap -script=vuln -p80,135,139,445,1433,3389,7001 192.168.139.80

扫到了ms17-010,可能存在永恒之蓝利用

msf开启进行尝试(其实这里并不建议直接从永恒之蓝开始,永恒之蓝存在把目标主机打宕机的风险,因此最好在最后进行)

1
search ms17_010

1
2
3
4
5
6
use 0
set rhosts 192.168.139.80
set rport 445
set payload windows/x64/meterpreter/bind_tcp
options
run

ms17-010并不是万无一失的,这回便攻击失败了,于是尝试其他切入口

weblogic

注意到开放了7001端口,这是Weblogic服务跑的端口,可能存在Weblogic反序列化漏洞,

拿scanner扫一下

1
python ws.py -t 192.168.139.80:7001

是可以扫到比较多的可能存在漏洞的

使用DeserializeExploit.jar来直接跑exp,成功跑通

用另外一个工具上马会更便利一些,在不熟悉weblogic目录结构的情况下方便直接传马,上传冰蝎的初始马,不知道为什么使用加密后的jsp马全都没法连上(哭

上冰蝎连,这里我把默认密码修改过了,要是没做改动的话应该是rebeyond

冰蝎成功连上了,

生成一个CS反向马传上去,不过好像因为我的CS是4.9的,靶场内的360版本比较古早了,所以直接给原先的360绕过去了?并没有触发360的拦截

在冰蝎运行木马文件

成功上线CS,并且拿到的是管理员的权限,又省了一步提权了

内网渗透

信息收集

我是谁我在哪?

拿到了其中一台主机的权限后,先进行信息收集

ipconfig /all先收集一波当前主机的网络情况,可以拿到内网ip:10.10.10.80,以及当前所在域名de1ay

除了我还有谁?

进行端口扫描一下,portscan一个很好的地方就在于它会将嗅探到的主机记录在目标列表中

最终拿到的结果,内网网段下存有三台主机,三台主机对应的开放端口如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
10.10.10.10:5985
10.10.10.10:3389
10.10.10.10:636
10.10.10.10:593
10.10.10.10:464
10.10.10.10:445
10.10.10.10:389
10.10.10.10:139
10.10.10.10:135
10.10.10.10:88
10.10.10.10:53

10.10.10.80:3389
10.10.10.80:445
10.10.10.80:139
10.10.10.80:135
10.10.10.80:80

10.10.10.201:3389
10.10.10.201:445
10.10.10.201:139
10.10.10.201:135

并且在target上能够看到这几台同网段下的主机

net view收集域内的主机,一共有三台,DC,PC还有WEB,WEB是我们当前所在的主机

net view /domain收集域的信息,一共存在一个DE1AY域,

既然只有一个域,那就进一步收集当前域下的其他信息

尝试net group "domain computers" /domain来获取域主机,但是却出现如下情况

同样使用net group "domain controllers" /domain也是出现上面的问题,

分析原因:可能是因为administrator用户并不在域内,尝试net time /domain,结果不出所料也是出问题了,不过直接在虚拟机内打开cmd执行,发现可行,可行的用户身份是mssql

猜测就是Administrator不在域用户组里,我的weblogic服务是用管理员运行的,但是域用户实际上是mssql

去网上寻找原因似乎大家都没碰到这个问题,别人的Administrator是一开始就是域用户的,于是开始尝试自己解决

先跟着红日2的流程看看哪里有疏忽的地方,红日2的流程里有一项是Access Token的利用,在学习了一番之后,

Access Token伪造

令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,以令牌的身份来访问网络和系统资源

令牌有两种,一种是授权令牌(Delegation Token),这种令牌这种令牌通常用于支持交互式会话登录,例如本地用户直接登录计算机或者远程桌面登录访问,当用户通过交互式方式登录操作系统时,系统会为其创建一个授权令牌,其中包含了用户的身份信息以及所拥有的权限。这个令牌允许用户在系统中执行各种操作,包括访问文件、运行程序等,交互式登录的用户通常拥有较高的权限,可以执行各种系统操作,并且可以通过交互方式与系统进行交互。简单地说,这种令牌在登陆的过程中授予用户

另一种令牌是模拟令牌(Impersonation Token),当一个进程(通常是服务或应用程序)需要代表另一个用户或进程执行操作时,系统会为其创建一个模拟令牌。这个令牌允许进程在系统中以另一个用户的身份执行操作,而无需用户交互,模拟令牌通常用于服务进程执行后台任务,以及在系统中执行各种自动化操作,如访问网络共享文件夹、执行系统任务等,从作用上来看,我们需要的正是一张令牌,让我们的administrator以mssql的身份运行命令

因此如果能拿到mssql用户的access token就能成功伪造,我们就可以用mssql的身份去获取到域控对net user /domain等命令的执行结果了,

AccessToken的窃取与利用需要administrator管理员权限,恰巧此时我们的bacon身份刚好是administrator,

CS给我们集成好了一个令牌窃取利用的工具

创建令牌,在这之前需要先用logonpasswords抓取一些用户信息如密码以及哈希等

成功后user会携带着你刚刚创建的令牌用户

并也成功拿到了Impersonation Token

再次查看域控,顺利得到域控主机名DC

这里通过CS伪造Access Token其实还有两种方法,进程注入和token窃取(都需要Administrator或system权限)

打开当前用户的进程列表,很容易就看到右侧user列有几种不同的用户,分别代表这些进程在以哪些用户的身份运行着

进程注入,选中一个进程,这个进程的用户身份是我们希望以某身份运行指令的身份,比如此处mssql可能是域成员,因此我们就需要将进程注入到dwm.exe中

成功在新的bacon中执行与域控的交互,并且可以注意到这里whoami得到的用户身份是mssql

另外一种方法是token窃取,这种方法需要system的权限而不只是administrator

可以先使用ms14-058提权为system身份

拿到system的bacon,然后选中要窃取的进程,选steal token

也是能够顺利执行和域控的联系了,注意到的是inject是新起了个会话,而steal token使用当前会话窃取进程,不会创建新的会话

恢复到system的身份只需要在bacon执行rev2self即可

横向渗透

实战中拿到一台机子的权限后先不急着打DC,多看看其他的

直接上psexec打pth了

成功上线DC

权限维持

黄金票据

白银票据

补充部分

踩过的坑

最开始环境搭建好了之后在三台虚拟机上却都无法执行net view,提示发生系统错误 6118

是的,是三台主机上都无法执行,意思是这个域环境压根就没弄好(为什么大家的红日都能一帆风顺而我把坑都踩了个遍啊QAQ

解决方案:使用管理员权限运行cmd,然后输入services.msc

然后打开三个服务:Computer Browser、Server、Workstation。这里是我三台主机的Computer Browser全都是关着的状态所以会gg,打开就好了

https://blog.csdn.net/m0_53579570/article/details/117282644

computer server

access token

1

关于信息收集参考:https://www.freebuf.com/articles/network/318148.html

作者

Potat0w0

发布于

2024-04-13

更新于

2024-05-06

许可协议


评论