DNS协议上线CS
一、前言
在我们从外网拿到webshell后,发现目标主机只有dns出网,这时候就需要通过DNS协议执行上线操作。
DNS上线优点
• 通道隐蔽
• 只有DNS协议出网时可以利用
DNS上线缺点
• 通信速度较慢
• 通信数据包过大可能导致无法回显等问题
二、实现方法
前期准备:
免备案域名
地址:www.freenom.com/
在这个网站可以免费注册一个不需要备案的域名(需要全程扶墙)
Cloudflare
在https://dash.cloudflare.com/ 注册并登录设置CDN
具体操作:
添加站点-->创建A记录对应IP为VPS的IP-->创建NS记录-->解析地址为A记录的域名-->设置完成后ping一下,查看效果
PS:ns记录如图即可,名称为ns1、ns2,内容为cs.XXXX.XX

为了防止溯源,我们需要给自己的IP做一下CDN
登录www.freenom.com
选择service-->myDomains对自己的域名进行管理

点击manager domain

选择nameservers

在nameserver里填入cloudflare中提供的nameserver


最后ping或nslookup一下配置好的域名,看到我们C2的真实IP被完美隐藏

上线CS:
首先查看53端口占用情况
lsof -i:53
如果被占用,停用53端口占用
systemctl stop systemd-resolved
设置cs监听
DNS Hosts分别设置为刚才设置的ns1、ns2
下面的DNS HOST(stager)设置为ns2的配置,端口默认53,不需要填

生成payload
目前测试cs4.2power shellh和beacon是成功的


DNS没法使用64位payload,所以不要勾选使用64位payload选项
在目标主机运行后等待上线即可,过程有点慢,亲测使用exe上线比powershell上线稍微快一点
- 上线后操作
上线后我们只能看到一个电脑的黑框,选择进入这个beacon

使用checkin命令让dns beacon强制回连teamserver,并输入命令 mode dns-txt使传输的数据更多一些。

如图power shell和beacon.exe都可以进行dns的上线
