SwagShop 日本語でウォークスルー Hack The Box Machine:

HTB htb-easy

Hack The BoxのSwagShopのウォークスルー・ライトアップ(walkthrough/writeup)です。難易度はeasyとなっています。
※本記事はサイバー犯罪を助長するものではありません。ハッキングやクラック等の悪用は厳禁です。

HTB SwagShop ウォークスルー・ライトアップ Hack The Box

Summary

local shell取得まで

ターゲットポート:TCP 80(http)
脆弱性:ターゲットのwebサイトは「Magento eCommerce Platforms」を使用していた。これにはMagento eCommerce – Remote Code Execution(CVE2015-1397)
Magento CE < 1.9.0.1 - (Authenticated) Remote Code Execution
の脆弱性が内在していた。この脆弱性を利用して、local-shellを入手した。
local権限を取得したユーザ:「haris」

privilege Escalation取得まで

脆弱性:「haris」ユーザはviをsudoで利用できるようになっていた。viのコマンドモードからroot権限を取得した。
root権限を取得したユーザ:root

Information Gathering

ポートスキャン

それでははじめます。まずはターゲット上で動作しているTCPポートをnmapで探します。nmapについてはこちらを参照ください。

nmapの結果、上画像の通り、TCPポート番号22(ssh),80(http)が開いていることが分かりました。
まずはhttpサービスから調査していくことにしました。

ターゲットのhttpサービス調査

上記の初期nmapの結果、「http-title」からターゲットのドメインが以下であることが分かりました。

http://swagshop.htb

そのため、まず、自分のマシンの「etc/hosts」にこのドメインを追加しました。

sudo vim /etc/hosts

まずは、httpでfirefoxにアクセスしました。その結果、以下サイトに接続しました。
何かのECサイト(ネット通販サイト)のような印象を受けました。また、「Magento」というキーワードを得ました。
どうやらこのサイトはMagento eCommerce Platformsを使って作られているようでした。

そのため、「Magento eCommerce Platforms」の脆弱性を調査していくことにしました。

「Magento eCommerce Platforms」の脆弱性調査

「Magento eCommerce Platforms」の脆弱性を調査した結果、Magento eCommerce – Remote Code Execution(CVE2015-1397)を見つけました。

どうやらこの脆弱性は「Magento eCommerce Platforms」の管理パネルのアカウントを追加できるようでした。
Magento eCommerce – Remote Code Execution(CVE2015-1397)から攻撃コードを「37977.py」としてダウンロードし、「//////(コメント部分)」を以下の通り削除しました。
また、今回はユーザ名「forme」、パスワード「forme」を管理パネルのアカウントとして追加するスクリプトとなっています。

編集した攻撃コードを以下の通り実行しました。

管理パネルでユーザ名「forme」、パスワード「forme」を入力した所、ログインすることができました。

続いてlocal-shellを取得する方法を検討しました。新しく見つけた
Magento CE < 1.9.0.1 - (Authenticated) Remote Code Execution
の脆弱性を利用することにしました。

まず以下のように、「test.png」というファイル名でreverse-shellコードを作成しました。

続いて管理パネルの「System」→「Configuration」タブをクリックしました。
すると、「Configuration」のページに切り替わるため、左バーにある「developer」をクリックします。
「developer」の「Template Settings」→「Allow Symlinks」が「No」になっているため、「Yes」に切り替えます。
「Save Config」をクリックします。

続いてページ上の「Category」→「Manage Category」をクリックします。
すると以下の様に新しい「Category」が作成できるようになります。「Is Active」を「Yes」とし、「Browse」から先ほど作成した「test.png」をアップロードしました。「Save Category」で作成したカテゴリーを保存しました。

続いてページ上部の「Newsletter」タブから「Newsletter Template」→「Add New Template」を選択します。

{{block type='core/template' template='../../../../../../media/catalog/category/test.png'}}

上記のような形で入力しました。(先ほどアップロードした「test.png」を実行するように仕向けます。)

入力後、「Save Template」→「Preview Template」で実行しました。

すると、以下の通り、「www-data」のshellを入手することができました。

Privilege Escalation

Privilege Escalationのための脆弱性調査

取得した「www-data」ユーザで、ターゲット内を調査していきました。
その結果、「sudo」で以下が実行できることが分かりました。

sudo /usr/bin/vi /var/www/html/*

そのため、「/var/www/html/test.txt」をviで編集してみました。

すると、viの画面に切り替わりました。viのコマンドモードから以下を入力した所、root権限を取得することができました。

:!/bin/bash

flagを探す

user.txtは「/home/haris」にありました。
root.txtは「/root」直下にありました。

以上で、SwagShopのウォークスルーは終了です。