渗透
春秋云镜-ThermalPower
flag01
评估暴露在公网的服务的安全性,尝试建立通向生产区的立足点。
fscan扫一下
1 | fscan -h 39.98.125.195 -nobr |
又有heapdump,再看看8080端口
看的这个Remember Me和刚刚fscan扫出来的heapdump就感觉又是shiro了
访问actuator/heapdump拿到heapdump,再用工具梭一下。
1 | java -jar .\JDumpSpider-1.1-SNAPSHOT-full.jar heapdump |
这次成功注入了,好像是我之前用的java版本的问题
连接后直接在根目录读到flag
flag01: flag{b2b78a85-a487-4afe-85c0-ed0493640810}
flag03
尝试接管 SCADA 工程师站,并启动锅炉。
扫一下内网
1 | ./fscan -h 172.22.17.213/24 |
一共两台机子
172.22.17.6 WORKGROUP\WIN-ENGINEER
172.22.17.213 外网(已拿下)
发现172.22.17.6开了ftp,可以直接连或者访问80端口来下载这些文件
发现内部资料里面有些好东西
1 | WIN-SCADA: 172.22.26.xx |
发现还有一个网段,我们再扫一下看看
1 | ./fscan -h 172.22.26.1/24 |
直接用刚刚那个管理员账号rdp上去,点开锅炉就有了
flag03: flag{bcd080d5-2cf1-4095-ac15-fa4bef9ca1c0}
flag04
尝试获取 SCADA 工程师站中的数据库备份,并分析备份文件是否泄漏了敏感数据。
win+D返回桌面,发现我们的文件都被锁定了
在桌面找到数据库加密后的文件,ScadaDB.sql.locky
然后在C盘底下找到Lockyou.exe,这个是.net写的,可以使用dotpeek来逆向分析。,可以看到这里使用了PRIVATE_KEY来解密AES_KEY_ENC,最后使用AES_KEY来加密文件。
然后题目给的网盘连接里面有encryptedAesKey和privateKey。那么思路很清晰了,先用私钥解密encryptedAesKey,然后用解密后的key来解密文件。
把xml格式的privateKey转换成pem格式
1 | -----BEGIN PRIVATE KEY----- |
然后进行aes解密,这里的iv随便填16位就行,因为逆向可以发现,这个加密过程先写了16位的IV到加密文件中,而解密时,错误的 iv 只影响明文块的第一个 16 字节 block,也就是加密时写入的iv,所以不会影响解密结果。
像我这里iv全0并不会影响解密结果。
flag04: flag{63cd8cd5-151f-4f29-bdc7-f80312888158}
flag02
尝试接管 SCADA 工程师的个人 PC,并通过滥用 Windows 特权组提升至系统权限。
我们再回过来看第二个题,在ftp服务里面的内部资料里面说了密码规则和谁能登录
直接用第一个SCADA工程师的账号登录
1 | chenhua/chenhua@0813 |
发现chenhua是Backup Operators组内成员,默认情况下会授予该组 SeBackup 和 SeRestore 权限。
但是我们查看权限,发现SeBackup权限并没有开,用这个开一下:PSBits/Misc/EnableSeBackupPrivilege.ps1
1 | Import-Module .\EnableSeBackupPrivilege.ps1 |
现在有这个权限了,可以选择用Privilege靶机的卷影拷贝的方法直接复制flag文件。
法二:
这个题不需要特权也可以直接转储 sam&system 注册表:
1 | PS C:\tmp> reg save hklm\sam sam.hive |
1 | proxychains crackmapexec smb 172.22.17.6 -u administrator -Hf82292b7ac79b05d5b0e3d302bd0d279 -d xiaorang.lab -x "type Users\Administrator\flag\flag02.txt" |
flag02: flag{5a7d0356-e27c-43a8-9da5-d507d7ba4bc3}
参考文章: