この記事は IPFactory Advent Calendar 2022 の 3 日目の記事です。
WSLgの恩恵でHTB攻略が案外快適だった話
こんにちは。y0d3nです。
最近、WSL2 で割と快適に Hack The Box(以降HTB) をプレイできることに気付いてチマチマやってたらランクがHackerになりました🙌
お、HTBちまちまやってたらHackerなった pic.twitter.com/8t0ARBJa5E
— よーでん (@y0d3n) 2022年11月29日
Advent Calendar の 12/3 の分を 12/3 に書いています。
せっかくなら Writeup まで書きたいですが、マシンがリタイアするまで待っていたら Advent Calendar に間に合わないため Writeup とかは無しで取り組み方のみを書きます。
ということで、HTB をやってみたい方というのが主なターゲットになります。
また、WSL2の話なのでホストOSが Windows な人を対象としています。
僕は正直なところホストを Windows にしているポジティブな理由はあまりないのですが、同様にわざわざ UNIX 系とかにする理由もないので Windows を使っているという状況です。
WSL2 の登場によりWindows派に偏りましたが、やはりWSLであることが原因で疲弊することも多いので難しいですね。
WSLg
WSLg を使用すると、WSL で Linux GUI アプリを実行できるようになります。
最初は「ふーん」程度で面白半分にセットアップしていましたが、後々便利さに気付くことになりました。
Precious
今回は最近追加された Easy マシンの Precious をチョイスしました。
調査以上の事は書かないので解法等は載せていません。あくまで取り組み方について書いています。
Join を押すとIPアドレスが表示されます。今回は 10.10.11.189
でした。
VPN
HTBをやるにあたり、Windows 勢のほとんどが躓くと思われるのがVPN接続です。
僕は前は Windows で OpenVPN GUI for Windows とかを利用していましたが、これ結構めんどくさいんですよね。
全部の通信がVPNに行ってしまうのもちょっと気持ち悪いです。
Kali で openvpn
コマンドを利用すれば VPN の接続もシンプルに済みますし、 WSL の通信のみを VPN 経由にできます。
ファイル名はちょっと編集してますが、気にしないでください
参考までに、僕は VPN server は US Free1 で、PROTOCOL は UDP 1337 を利用しています。
この辺は結構いくつもパターンを試しながら接続を試してた覚えがあります。うまく接続できなかったらいろいろ変えながら様子を見ましょう。
上手く接続できていれば、ip a
を実行した際に tun で 10.10.~
のIPアドレスが生えてるはずです。
ポートスキャン
今回のマシンのIPアドレスは 10.10.11.189
です。
まずはポートスキャンをすると、22 と 80 が空いてることがわかります。
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
で様子を見てみます。
Location: http://precious.htb/
とありますが、このパターンはホスト名がIPアドレスのままでは開けないWebページということです。
が、http://precious.htb/
にアクセスしようとしても名前解決できなくてアクセスできません。
/etc/hosts
で以下のように記述すれば名前解決できます。
10.10.11.189 precious.htb
名前解決の設定ができたら curl
してみるとちゃんと Web ページが返ってくることがわかります。
ただ、このままでは使いにくいにもほどがありますね。
ここで WSL2 の本領発揮です。
Firefox
Kali に firefox-esr を入れているため、firefox
コマンドで Firefox が GUI で起動できます。
この Firefox は WSL2 上で動いているため、当然 VPN を経由しますし /etc/hosts
で設定したホスト名を利用できます。
http://precious.htb
にアクセスすれば Web ページにアクセスできます。
OpenVPN GUI for Windows でやっていると、hosts ファイルも C:\Windows\System32\drivers\etc\hosts
とか言う覚えにくいパスのファイルを管理者権限で編集しないといけません。
Burp
普通に Burp とかも GUI で起動できます。他にもいろいろできますね。
ここまで GUI が整うとめちゃめちゃ快適に解けます。
その他嬉しい事
そして、一番うれしいのがリバースシェルとかHTTPサーバ立てたりとかがめちゃめちゃやりやすい事です。
これ、OpenVPN GUI for Windows を使っているとめちゃめちゃ困ります。
これが嬉しくてHTBを継続できてるまであります。リバースシェルからしか得られない栄養素があります。
がんばる
GUIアプリの起動ができて、サーバを立てたりとかも不自由なくできることがわかりました。
では、あとは解くだけですね。
解法は書きませんので、チャレンジする場合は頑張ってください。
最後までご覧いただきありがとうございました。
この記事は IPFactory Advent Calendar 2022 の 3 日目の記事です。
昨日は n01e0 による「花金」でした。
明日はなんと 1 年生である piza さんが枠をとってくれています。
たのしみですね。