Cobaltstrike系列教程(三)beacon详解

admin 2022年3月26日08:27:33评论759 views字数 5133阅读17分6秒阅读模式

Cobaltstrike系列教程(三)beacon详解

0x000--前文

Cobaltstrike系列教程(一)简介与安装。

Cobaltstrike系列教程(二)Listner与Payload生成。

0x001-Beacon详解

1.Beacon命令

大家通过系列教程(二)的学习,配置好Listner,让目标机执行我们的Payload/后门程序后,即可发现目标机已经上线。


Cobaltstrike系列教程(三)beacon详解


右键目标interact来使用Beacon,我们用它来执行各种命令。


Cobaltstrike系列教程(三)beacon详解


在Cobalt Strike中它的心跳默认是60s(即sleep时间为60s,每一分钟目标主机与teamserver通信一次)  这会让我们执行命令或进行其他操作响应很慢。。。



我刚开始没设置sleep时间甚至以为是cobaltstrike坏了。

如果sleep时间过长,在下载文件面前更为明显,所以在测试时会把时间降低一点 。

所以拿到beacon我一般先执行sleep 5,大家可以根据实战环境来调节,建议不要太快,不然流量会很明显。



Cobaltstrike系列教程(三)beacon详解


注意:beacon中不能直接输入cmd命令,比如要让目标机执行ipconfig这条cmd命令,对应的beacon命令是shell ipconfig,新人不要在这里踩坑哈
其他的beacon命令,大家可以在beacon中输入help来获取~
我在这贴出一部分汉化的命令。

Beacon Commands
    Command                   Description
    -------                   -----------
    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                   尝试提权
    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       从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                        显示进程列表
    p**ec                    Use a service to spawn a session on a host
    p**ec_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在主机上生成会话
    argue                      进程参数欺骗

2.多种beacon

以下beacon使用前均需要开启对应的ListenerListener如何开启请看上一节

①http beacon&tcp beacon

这两种beacon都是比较普通的,个人感觉讲解的意义不是很大。只不过是主机与teamserver的通信协议不同而已。


Cobaltstrike系列教程(三)beacon详解


②SMB beacon

1.简介

官网介绍:SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。
因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
这张图很好的诠释了SMB beacon的工作流程。


Cobaltstrike系列教程(三)beacon详解


②smb beacon使用

这种beacon要求具有SMB Beacon的主机必须接受端口445上的连接
派生一个SMB Beacon方法:在Listner生成SMB Beacon>目标主机>右键> spawn as>选中对应的Listener>上线
或在beacon中使用命令spawn smb(smb为我的smb listener名字)。


Cobaltstrike系列教程(三)beacon详解

Cobaltstrike系列教程(三)beacon详解


运行成功后外部可以看到∞∞这个字符,这就是派生的SMB Beacon。
当前是连接状态,你可以Beacon上用link <ip>命令链接他或者unlink <ip>命令断开它。


Cobaltstrike系列教程(三)beacon详解


这种beacon在内网横向渗透中运用的很多,横向渗透留到日后再讲。在内网环境中可以使用ipc $生成的SMB Beacon上传到目标主机执行,但是目标主机并不会直接上线的,需要我们自己用链接命令(link <ip>)去连接他。

③DNS Beacon

DNS Beacon 在绕过防火墙 权限维持上非常有效,DNS beacon 可谓是是最受欢迎的Cobalt Strike功能之一。官网给出的原理示意图如下。


Cobaltstrike系列教程(三)beacon详解


使用DNS Beacon首先的有一个域名,域名建议用国外的,省去一些不必要的麻烦,也防止被查水表。。。域名使用一些通用平常的即可,整个配置过程配置非常简单一条A记录和几条NS记录即可

首先进入到域名管理界面(自己的域名过期了,用一下404师傅的图)
配置A记录指向服务器ip -->ns记录都指向A记录域名。


Cobaltstrike系列教程(三)beacon详解


配置好了我们可以用 nslookup 或者 dig +trace 来测试下 是否成功。


Cobaltstrike系列教程(三)beacon详解

如果返回的IP地址与你的服务器ip地址对应是正确的,那我们就可以开始配置dns beacon的监听器了。


Cobaltstrike系列教程(三)beacon详解


Host那里最好填域名(A记录解析那个),不要填服务器的ip地址。


Cobaltstrike系列教程(三)beacon详解

然后确定填上ns记录 英文逗号隔开 ,然后生成后门测试效果。


Cobaltstrike系列教程(三)beacon详解


这是主机栏上出现了一个黑屏的logo经过一段时间的等待目标主机即可上线

④SSH beacon

当内网有Linux时Cobalt Strike也是考虑到的提供了ssh连接大家可以通过metasploit爆破内网的ssh账号密码然后用目标机的beacon去连接就可以了
目前有两种SSH Beacon连接方法
1.密码直接连接
Beacon命令: ssh [target:port] [user] [pass]
2.ssh密匙连接
ssh [target:port] [user] [/path/to/key.pem]
链接成功后,如图会出现一个子beacon


Cobaltstrike系列教程(三)beacon详解

0x002小福利



Cobaltstrike系列教程(三)beacon详解


以后每次发文都会给大家附带一些好用的小工具~
今天给大家带来的是一个免杀的PHP小马,是一个变量函数后门,回复即可阅读code。


链接https://pan.baidu.com/s/1jsILuRBuaDGzA33E6zoRoQ
提取码:az9j

Cobaltstrike系列教程(三)beacon详解


本文始发于微信公众号(疯猫网络):Cobaltstrike系列教程(三)beacon详解

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月26日08:27:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobaltstrike系列教程(三)beacon详解http://cn-sec.com/archives/507048.html

发表评论

匿名网友 填写信息