よーでんのブログ

One for All,All for わんわんお!

Windows で Hack The Box を楽しむ

この記事は IPFactory Advent Calendar 2022 の 3 日目の記事です。

qiita.com


WSLgの恩恵でHTB攻略が案外快適だった話

こんにちは。y0d3nです。
最近、WSL2 で割と快適に Hack The Box(以降HTB) をプレイできることに気付いてチマチマやってたらランクがHackerになりました🙌

Advent Calendar の 12/3 の分を 12/3 に書いています。
せっかくなら Writeup まで書きたいですが、マシンがリタイアするまで待っていたら Advent Calendar に間に合わないため Writeup とかは無しで取り組み方のみを書きます。
ということで、HTB をやってみたい方というのが主なターゲットになります。

また、WSL2の話なのでホストOSが Windows な人を対象としています。
僕は正直なところホストを Windows にしているポジティブな理由はあまりないのですが、同様にわざわざ UNIX 系とかにする理由もないので Windows を使っているという状況です。
WSL2 の登場によりWindows派に偏りましたが、やはりWSLであることが原因で疲弊することも多いので難しいですね。

WSLg

learn.microsoft.com

WSLg を使用すると、WSL で Linux GUI アプリを実行できるようになります。
最初は「ふーん」程度で面白半分にセットアップしていましたが、後々便利さに気付くことになりました。

xeyes

Precious

今回は最近追加された Easy マシンの Precious をチョイスしました。
調査以上の事は書かないので解法等は載せていません。あくまで取り組み方について書いています。

Join を押すとIPアドレスが表示されます。今回は 10.10.11.189 でした。

Machine IP

VPN

HTBをやるにあたり、Windows 勢のほとんどが躓くと思われるのがVPN接続です。
僕は前は WindowsOpenVPN GUI for Windows とかを利用していましたが、これ結構めんどくさいんですよね。
全部の通信がVPNに行ってしまうのもちょっと気持ち悪いです。

Kali で openvpn コマンドを利用すれば VPN の接続もシンプルに済みますし、 WSL の通信のみを VPN 経由にできます。
ファイル名はちょっと編集してますが、気にしないでください

openvpn

参考までに、僕は VPN server は US Free1 で、PROTOCOL は UDP 1337 を利用しています。
この辺は結構いくつもパターンを試しながら接続を試してた覚えがあります。うまく接続できなかったらいろいろ変えながら様子を見ましょう。

上手く接続できていれば、ip a を実行した際に tun で 10.10.~IPアドレスが生えてるはずです。

ip a

ポートスキャン

今回のマシンのIPアドレス10.10.11.189 です。
まずはポートスキャンをすると、22 と 80 が空いてることがわかります。

mynmap

mynmap は以下のようにしています。これは確かHTBチュートリアルで拾ってきたやつを alias 用に改変したやつなはずです。

mynmap ()
{
        ports=$(sudo nmap -p- --min-rate=1000 -T4 $@ | grep ^[0-9] | cut -d '/' -f 1 | tr '\n' ',' | sed s/,$//)
        echo $ports
        sudo nmap -sC -sV -p$ports $@
}
alias mynmap="mynmap"

結局 nmap はどういうオプションが良いのかわかりません。誰か教えてください。

Port 80

先ほど、80 番ポートが空いていることがわかりましたね。
nmap の出力からちょっと察せますが、一応 curl で様子を見てみます。

curl -I

Location: http://precious.htb/ とありますが、このパターンはホスト名がIPアドレスのままでは開けないWebページということです。
が、http://precious.htb/ にアクセスしようとしても名前解決できなくてアクセスできません。

could not resolve

/etc/hostsで以下のように記述すれば名前解決できます。

10.10.11.189    precious.htb

名前解決の設定ができたら curl してみるとちゃんと Web ページが返ってくることがわかります。

curl precious.htb

ただ、このままでは使いにくいにもほどがありますね。
ここで WSL2 の本領発揮です。

Firefox

Kali に firefox-esr を入れているため、firefox コマンドで FirefoxGUI で起動できます。

firefox

この Firefox は WSL2 上で動いているため、当然 VPN を経由しますし /etc/hosts で設定したホスト名を利用できます。
http://precious.htb にアクセスすれば Web ページにアクセスできます。

firefox precious.htb

OpenVPN GUI for Windows でやっていると、hosts ファイルも C:\Windows\System32\drivers\etc\hosts とか言う覚えにくいパスのファイルを管理者権限で編集しないといけません。

Burp

普通に Burp とかも GUI で起動できます。他にもいろいろできますね。
ここまで GUI が整うとめちゃめちゃ快適に解けます。

burp

その他嬉しい事

そして、一番うれしいのがリバースシェルとかHTTPサーバ立てたりとかがめちゃめちゃやりやすい事です。
これ、OpenVPN GUI for Windows を使っているとめちゃめちゃ困ります。

リバースシェル

HTTPサーバ

これが嬉しくてHTBを継続できてるまであります。リバースシェルからしか得られない栄養素があります。

がんばる

GUIアプリの起動ができて、サーバを立てたりとかも不自由なくできることがわかりました。

では、あとは解くだけですね。
解法は書きませんので、チャレンジする場合は頑張ってください。


最後までご覧いただきありがとうございました。

この記事は IPFactory Advent Calendar 2022 の 3 日目の記事です。

qiita.com

昨日は n01e0 による「花金」でした。

feneshi.co

明日はなんと 1 年生である piza さんが枠をとってくれています。
たのしみですね。