DNS协议上线CS
一、前言
在我们从外网拿到webshell后,发现目标主机只有dns出网,这时候就需要通过DNS协议执行上线操作。
DNS上线优点
• 通道隐蔽
• 只有DNS协议出网时可以利用
DNS上线缺点
• 通信速度较慢
• 通信数据包过大可能导致无法回显等问题
二、实现方法
前期准备:

  1. 免备案域名
    地址:www.freenom.com/
    在这个网站可以免费注册一个不需要备案的域名(需要全程扶墙)

  2. Cloudflare
    在https://dash.cloudflare.com/ 注册并登录设置CDN
    具体操作:

  3. 添加站点-->创建A记录对应IP为VPS的IP-->创建NS记录-->解析地址为A记录的域名-->设置完成后ping一下,查看效果
    PS:ns记录如图即可,名称为ns1、ns2,内容为cs.XXXX.XX

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

点击manager domain


选择nameservers


在nameserver里填入cloudflare中提供的nameserver


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

上线CS:

  1. 首先查看53端口占用情况
    lsof -i:53
    如果被占用,停用53端口占用
    systemctl stop systemd-resolved

  2. 设置cs监听
    DNS Hosts分别设置为刚才设置的ns1、ns2
    下面的DNS HOST(stager)设置为ns2的配置,端口默认53,不需要填

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

DNS没法使用64位payload,所以不要勾选使用64位payload选项
在目标主机运行后等待上线即可,过程有点慢,亲测使用exe上线比powershell上线稍微快一点

  1. 上线后操作
    上线后我们只能看到一个电脑的黑框,选择进入这个beacon

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

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

说点什么吧...