Cobalt Strike的使用(二)

admin 2023年8月1日11:55:25评论10 views字数 3682阅读12分16秒阅读模式

三、DNS Beacon

DNS隧道简介

利用DNS隧道进行攻击的现象已存在多年,将数据封装在DNS协议中传输,大部分防火墙和入侵检测设备很少会过滤DNS流量,僵尸网络和入侵攻击可几乎无限制地加以利用,实现诸如远控、文件传输等操作

DNS隐蔽隧道建立通讯并盗取数据,可轻易绕过传统安全产品,使用特征技术难以检测。广为人知的渗透商业软件Cobalt Strike和开源软件iodine、DNScat2等亦提供了现成模块,可被快速轻易地利用。

DNS Beacon通信过程

Cobalt Strike的使用(二)

  1. 目标主机要对域名123456.c1.henry666.xyz进行解析, 首先查询本地的hosts文件, 若没有返回则从本地DNS服务器查询

  2. 本地DNS服务器首先查询自己的本地缓存, 若没有则进行迭代查询, 会向根域名服务器发起询问, 问你知道123456.c1.henry666.xyz吗, 然而根域名服务器说"我不知道,但是.com服务器可能会知道"

  3. 本地DNS服务器去问.com服务器, .com服务器说:"我也不知道, henry666.xyz服务器知道"

  4. 本地DNS服务器去问henry666.xyz服务器, 它的回答是:"不知道,你去问c1.henry666.xyz服务器"

  5. 最终本地DNS服务器访问了c1.henry666.xyz的DNS服务器cs.henry666.xyz , 并查询到了123456.c1.henry666.xyz的响应值, 随后c1.henry666.xyz服务器将响应值返回给本地DNS服务器, 本地DNS服务器再返回给目标主机

DNS Beacon的类型

1.dns(传输数据小)

使用==DNS的A记录==作为通信通道,这种方式的通信速度会比较慢, 且传输数据也有限制

可在beacon命令行输入: mode dns 进行切换

2.dns_txt(传输数据大)

使用==DNS的TXT记录==作为通信通道, 这种传输方式的优点在于传输的数据量更加庞大, 在CS4.0及未来版本都只有DNS TXT记录这一选项

可在beacon命令行输入: mode dns-txt 进行切换

3.dns6

使用==DNS的AAAA记录==作为通信通道

可在beacon命令行输入: mode dns6 进行切换

操作步骤

1.设置域名解析

此处我的域名是在godaddy上购买的, 为henry666.xyz, 在DNS解析管理处设置域名解析, 新增一条A记录和NS记录

  • A记录: cs.henry666.xyz指向180.76.55.245

  • NS记录: c1.henry666.xyz指向cs.henry666.xyz

2.vps开放udp协议的53端口

在云服务VPS的安全组的入站和出站都添加一组规则, 开放UDP协议的53端口, 这步骤十分重要

查看云服务器的53端口是否被占用: lsof -i:53, 发现被一个叫systemd-resolve的系统服务所占用, 关闭此服务: systemctl stop systemd-resolved

3.CS创建监听

在CS客户端新建一个监听, Payload选择Beacon Dns, DNS Hosts和DNS Host(Stager)填写NS记录的域名, 至于DNS端口绑定处填不填都行, 这里我就没填了

很多文章喜欢在DNS Hosts(Stager)处填写A记录域名, 实际上这里只需在上面的DNS Hosts里随便挑一个填写就可以了

还有一点是, CS里的DNS Beacon默认类型是DNS-txt

接下来验证一下新建的ns记录是否生效: nslookup c1.henry666.xyz, 有非权威应答代表ns记录生效

4.CS创建后门

点击菜单栏的Attacks->Web-Drive-by->Scripted Web Delivery(S), 监听器选择刚刚创建的DNS, 生成带有执行后门程序的powershell代码, 并将此代码放到目标主机中执行

后门代码在目标主机执行成功后, CS会接收到反弹的Shell, 但默认情况下, 此主机图标显示是黑色的, 且无任何信息

这时就要在beacon命令行输入: checkin, 强制让目标主机回连CS服务器, 随后主机信息就会显现出来

在beacon命令行输入: mode dns , 切换使用dns的a记录进行数据通信

Cobalt Strike的使用(二)

5.派生HTTP Beacon

由于DNS隧道不适合传输过大的数据且传输速率慢,因此我们可以派生一个HTTP Beacon, 这样做的好处是加快了数据的传输速率, 即使http后门进程被目标系统关闭了, 也可以通过dns beacon继续创建后门进程

抓包分析

首先查看目标主机的本地DNS服务器及IP, 在cmd命令行输入: ipconfig /all

在目标主机打开wireshark进行抓包, 可发现本机向本地DNS服务器发送DNS协议A记录的数据包, 从上述的DNS Beacon通信过程中可知, 该数据包内容是目标主机向本地DNS服务器查询c1.henry666.xyz, 最终经过层层的迭代查询, 数据流向cs服务器

  • https://www.yisu.com/zixun/501167.html

  • https://www.codenong.com/cs106885517/

四、Beacon常用操作

Beacon的种类

HTTP Beacon

这是一种“低延迟”载荷,它利用HTTP协议进行通信,能够发送命令、上传文件和下载输出。其特点是能够在不同的环境中进行自定义,包括URI路径、请求间隔、请求方式(GET或POST)、数据编码方式等。HTTP Beacon的通信数据并不加密,而是通过数据编码方式(如base64)进行隐藏

HTTPS Beacon

TTPS Beacon与HTTP Beacon相似,不过它使用的是HTTPS协议,也就是说,它的通信数据是加密的。HTTPS Beacon在网络流量的可视性方面比HTTP Beacon更加隐蔽

TCP Beacon

自CS4.0版本之后只有反向的TCP Beacon可用, 基于TCP协议的通信方式

SMB Beacon

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

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

在CS会话列表选择一个beacon作为父beacon, 然后派生一个SMB Beacon作为子Beacon: Beacon>目标主机>右键> spawn as>选中对应的Listener, 随后会话列表显示SMB Beacon

若想将两个beacon断开链接, 可在父级Beacon执行unlink 目标IP命令, 随后在CS视图界面可以发现两个beacon已经断开链接

若想重新链接可在父级Beacon执行link 目标IP命令

DNS Beacon

DNS Beacon是实用性最强的Beacon, 隐蔽性高, 后续我会单独出一篇文章来详解它的原理和使用

beacon常用命令

beacon命令 描述
cancel 取消正在进行的下载
cd 切换目录
clear 清空beacon的任务
connect beacon会话连接
cp 复制文件
desktop 远程VNC(桌面)
download 下载文件
downloads 列出正在下载的文件
elevate 尝试提权
exit 退出beacon
getsystem 尝试获取system权限
getuid 获取用户id
hashdump 转储密码哈希值
help 查询帮助
jobkill 删除一个beacon任务
jobs 列出beacon任务
keylogger 键盘记录
kill 结束进程
ls 列出当前目录的所有文件
mimikatz 运行mimikatz
mkdir 创建一个目录
mode dns 使用Dns A作为通信通道(仅限 DNS Beacon)
mode dns-txt 使用DNS TXT作为通信通道(仅限 DNS Beacon)
mode dns6 使用DNS 6作为通信通道(仅限 DNS Beacon)
mv 移动文件
portscan 端口扫描
ps 列出进程列表
powershell 执行powershell命令
powershell-import 导入powershell脚本
net 执行net命令
pwd

列出当

常用攻击模块

设置通信延时

例如此处设置CS服务器与受害机每隔30秒进行一次通信

键盘记录

在受害机的beacon命令行输入: keylogger

在受害机随便敲下键盘, 返回CS客户端查看其键盘记录

若想关闭查看键盘记录,可使用jobsjobkill命令进行关闭, 先使用jobs命令查看beacon任务列表, 然后用jobkill命令关闭对应JID的任务

文件管理

对受害机的文件进行相应操作, 不过有些特殊文件可能需要更高级别的权限才能操作

查看系统进程

端口扫描

选择要扫描的端口、ip网段、扫描模式

远程桌面

远程VNC即查看受害机的远程桌面

Cobalt Strike的使用(二)



关 注 有 礼



欢迎关注公众号:网络安全者

Cobalt Strike的使用(二)

1、送书规则
2、今日送书《Qt 6.x从入门到精通》

Cobalt Strike的使用(二)

本文内容来自网络,如有侵权请联系删除



原文始发于微信公众号(网络安全者):Cobalt Strike的使用(二)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月1日11:55:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobalt Strike的使用(二)https://cn-sec.com/archives/1924617.html

发表评论

匿名网友 填写信息