WSL2 で Reverse Shell

Reverse Shell がうまくいかない人向け。

動機

日頃 TryHackMe で問題を解いていると時々 Reverse Shell を扱った問題に出くわす。ターゲットにコードをアップロードして手元で listen、あとはターゲットにコードを実行させるだけで攻撃成功!

……と思わせておいて手元でコマンドが実行できない。しかし AttackBox を使うと成功する。これは何かおかしい。ぜひとも解決したい。

環境

手元の環境は

結論

結論としては Windows 側でなく WSL 側で VPN を張るようにして、WSL の GUI 上のブラウザから試すとよい。つまり WSL 側でだいたい完結できるようにすればよいということである。

解説

まず WSL 側で OpenVPN を起動する。OpenVPN についてはこの Room にあるので参照するとよい。

これで WSL 側から VPN が張られた状態となる。

次に WSL 上で GUI を扱えるようにする。方法はネット上にいろいろ転がっているが自分は Windows10 を 11 にアップグレードした。実は(たぶん)これだけで GUI が使えるようになる。Windows11 へアップグレードについて検索するとなにやらファイルが消えるだのいろいろ噂が聞こえてくるので一応バックアップなどを取ることを推奨する。その他もろもろ自己責任でお願いします。

GUI を扱えるようになったら次はブラウザである。自分は Firefox をインストールした。Linux でのインストール方法は以下のサイトの「Mozilla による Firefox のビルドをインストールする (上級者向け)」を参考にした。文字化けが怖いのでダウンロードする Firefox は英語版推奨。

support.mozilla.org

ターミナル上で firefox とコマンドを打てば Firefox が起動するのであとは Reverse Shell を試すのみである。

所感

失敗する原因については Windows と WSL のネットワークの境目(?)あたりがまだうまくいってないんじゃないかなぁと(下図赤バツ箇所)。これは WSL の今後に期待しよう。

注意点として、今回の手法では WSL 側からしVPN を張れていないので当然 Windows 側のブラウザからはターゲットマシンのウェブにアクセスはできない。また、通信に関しての諸々が WSL 側からするしかないので Burp Suite や Wireshark なんかも WSL にインストールする必要がある。個人的には Firefox で検索すると文字化けサイトだらけなので調べ物は Windows 側のブラウザで行う必要があり、結局2つ Firefox を開く形になるのがなんともスタイリッシュ性に欠けるなぁと……。

ただ、なんとか動くようにはなったのでこれであのもっさり AttackBox ともおさらばできるというわけである。あとはこの環境で Metasploit やマウント周りもうまく動くようになってればなぁと(まだ試してない)。

Metasploit はいけそう!でも次は SSH が怪しい……(2023/01/02)

やっぱり Metasploit ダメじゃねーか!(2023/01/06)

Metasploit いけました(2023/01/28、以下追記)

それでもダメじゃん、という方へ

tun0 の MTU を 1500 から 1200 に変更してみるとだいたいうまくいく模様。Metasploit なんかは再起動の必要があるかも。

sudo ip link set tun0 mtu 1200