三、DNS Beacon
DNS隧道简介
利用DNS隧道进行攻击的现象已存在多年,将数据封装在DNS协议中传输,大部分防火墙和入侵检测设备很少会过滤DNS流量,僵尸网络和入侵攻击可几乎无限制地加以利用,实现诸如远控、文件传输等操作
DNS隐蔽隧道建立通讯并盗取数据,可轻易绕过传统安全产品,使用特征技术难以检测。广为人知的渗透商业软件Cobalt Strike和开源软件iodine、DNScat2等亦提供了现成模块,可被快速轻易地利用。
DNS Beacon通信过程
-
目标主机要对域名
123456.c1.henry666.xyz
进行解析, 首先查询本地的hosts文件, 若没有返回则从本地DNS服务器查询 -
本地DNS服务器首先查询自己的本地缓存, 若没有则进行迭代查询, 会向根域名服务器发起询问, 问你知道
123456.c1.henry666.xyz
吗, 然而根域名服务器说"我不知道,但是.com
服务器可能会知道" -
本地DNS服务器去问
.com
服务器,.com
服务器说:"我也不知道,henry666.xyz
服务器知道" -
本地DNS服务器去问
henry666.xyz
服务器, 它的回答是:"不知道,你去问c1.henry666.xyz
服务器" -
最终本地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记录进行数据通信
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客户端查看其键盘记录
若想关闭查看键盘记录,可使用jobs
和jobkill
命令进行关闭, 先使用jobs
命令查看beacon任务列表, 然后用jobkill
命令关闭对应JID的任务
文件管理
对受害机的文件进行相应操作, 不过有些特殊文件可能需要更高级别的权限才能操作
查看系统进程
端口扫描
选择要扫描的端口、ip网段、扫描模式
远程桌面
远程VNC即查看受害机的远程桌面
关 注 有 礼
欢迎关注公众号:网络安全者
本文内容来自网络,如有侵权请联系删除
原文始发于微信公众号(网络安全者):Cobalt Strike的使用(二)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论