让木马 DNS 数据传输成为历史:看我怎么让 xshell 病毒失效

作者:马立伟 本文首发于 FreeBuf.com

基础词汇解释:

Dns A记录、txt记录传输:利用dns解析过程,在请求解析的域名中包含需外传的数据,如xxxxxx.hack.com。则最终hack.com的dns服务器会收到xxxxx这个数据回传。

dns的txt类型回包:一般指为某个主机名或域名设置的说明,可被黑客利用回传数据。终端请求某恶意域名的dns解析,dns返回txt记录,包含黑客需要的回传内容,如模块更新数据、指令等

正文

概述:

随着越来越多的公司安全意识提高,大量公司已封锁socket通信,仅允许员工通过http/https协议外网,同时采取了越来越多针对http协议的检测措施(如数据分析恶意url等)。为逃避检测,Dns传输已逐步成为越来越多的恶意软件隐蔽传输的方法,dns传输利用dns逐级解析过程最终把域名中的恶意内容传输到远端控制器,也利用dns的txt类型回包更新本地木马病毒。

为解决此问题,笔者提出基于全web代理的dns恶意传输屏蔽方案,通过禁止终端做dns解析,仅允许代理做dns,完全屏蔽pc的恶意dns传输的同时,保障终端可以通过web代理访问公网(备:这也是各大公司当前采取的上外网的方式通用方案),有效解决dns恶意传输问题。适用于各大公司彻底解决dns木马病毒传输通道问题。

基本思想与原理

具体原理如下所述:

1、固定pc的dns服务器配置,并禁止修改,防止木马病毒修改绕过安全策略,或用户修改配置无意降低安全标准

2、屏蔽pc外联的53端口访问,防止恶意程序在代码中使用自定义dns服务器

3、收紧pc终端的dns解析,dns服务器仅响应允许的白名单域名解析,其他不返回结果

4、pc通信全web代理,允许web代理自身做dns解析

最终实现完全屏蔽pc的恶意dns传输的同时,保障终端可以通过web代理访问公网,解决dns恶意传输问题。

系统架构

模块功能描述:

内网终端:内网用户使用的访问公网的终端,可包括pc、手机、平板等

Web代理: 提供web协议的代理,终端可通过此代理访问外网数据

Web服务:外网的web服务

内网终端专用dns服务器:给内网终端提供dns服务,仅限白名单域名的解析

白名单:允许被解析的域名,如baidu.com等

代理专用dns服务器:给web代理提供dns服务器,不提供黑名单解析,降低恶意web业务访问

黑名单:提供恶意域名清单,禁止代理专用dns解析,进而禁止代理访问恶意url

公网dns服务:外网dns服务器,包括各个递归服务器

其他dns服务器:内网终端专用服务器外的其他dns服务器,包括公网dns服务器、代理专用dns服务器等

实验环境演示:

1、 实验环境介绍

a) 一台内网终端,win7 x64系统

i. ip :192.168.187.139

ii. 网关:192.168.187.2

iii. dns:192.168.187.141(内网终端专用dns)

b) 一台dns服务器(内网终端专用dns),server 2008

i. ip:192.168.187.141

ii. 网关:192.168.187.2

iii. dns:192.168.187.2

c) 一台squid代理服务器,ubuntu系统

i. ip:192.168.187.136

ii. 网关:192.168.187.2

iii. dns:192.168.187.2(代理专用dns)

d) 防火墙,禁止内网终端非授权访问,仅允许网关、内网终端专用dns、代理访问,或白名单程序的socket连接(不支持web代理,联通需要内网终端专用dns白名单配合)

2、 配置过程:

a) 终端配置

i. 锁定dns配置,防止用户或木马病毒修改:

Xp系统可使用这个

Win7可使用此工具

ii. 配置代理,访问外网:

b) Dns服务器配置

i. 使用条件转发不允许解析白名单以为域名

  • 清空根提示(防止无法控制的递归)
  • 确认,不可禁止递归(否则无法实现条件转发)
  • 如果允许解析,则配置到代理专用dns,可实现递归解析

c) Squid配置

i. 配置黑名单,例如:淘宝、京东,防止员工上班购物,当然从安全角度可配置各种黑域名

ii. 配置代理专用dns(192.168.187.2),可解析任意域名

d) 防火墙配置(允许访问内网专用dns:192.168.187.141,允许访问网关192.168.187.2,允许访问代理192.168.187.141,其他均不允许),防止用户使用其他dns或socket

3、 效果展示:

a) 终端无法进行dns请求(除了白名单域名)

b) xshell外联失效(前后对比)

未实施策略前,可外传成功(有返回包)

实施策略后,无法外传(无回包)

c) 终端不配置代理,无法访问web服务器(终端无法进行dns解析,且无法直接访问外网)

d) 终端配置代理可正常上网,但无法访问黑名单网站,保障日常互联网需要,并防止访问恶意域名

原理细节详描

1、 终端使用web代理访问公网web服务,如下图

a) 终端不解析域名,将web请求直接抛给web代理

i. 浏览器可通过pac脚本等方式劫持终端到公网的流量经web代理中转

ii. 其他软件可通过配置web代理地址等方式

b) Web代理向代理专用dns服务器请求域名解析并获取结果,如下图

i. Web代理服务器向代理专用dns服务器请求域名

ii. 代理专用dns查询黑名单,如匹配则返回禁止解析,如不匹配则进一步向公网dns服务请求结果并返回

iii. 代理专用dns服务器返回结果给web代理,如为黑名单则返回默认警示页面地址

c) Web代理根据dns反馈结果访问公网

2、 禁止终端进行dns解析,仅开放白名单域名解析:

a) 屏蔽pc终端的dns解析(仅允许部分白名单域名解析),如下图:

i. 部分未配置http代理的程序请求dns解析,请求发送内网终端专用dns服务器

ii. 终端专用dns服务器查询白名单,如在白名单(例baidu.com等),则进一步向公网dns查询并返回结果,如不是白名单则返回无法解析

b) 固定pc的dns服务器配置并屏蔽pc到其他dns服务器的53端口访问,防止恶意程序自定义dns配置,如下图:

i. 通过防火墙等措施封闭终端出去的53端口(dns专用端口),仅开通到内网终端专用dns服务器的解析

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏TechBox

iOS App 安全测试一、数据存储安全二、 数据通信安全三、 URL protocol handler / IPC四、 UIWebView

1613
来自专栏大魏分享(微信公众号:david-share)

身份验证和权限管理---Openshift3.9学习系列第三篇

OAuth是由Blaine Cook、Chris Messina、Larry Halff 及David Recordon共同发起的,目的在于为API访问授权提供...

2136
来自专栏FreeBuf

DNS Shell初体验

*本文原创作者:ArkTeam 楚子航,本文属FreeBuf原创奖励计划,未经许可禁止转载 背景介绍 我们遇到过各种各样的 Shell,从协议上来看,最开始基于...

1877
来自专栏FreeBuf

Redis未授权访问配合SSH key文件利用分析

1.更新情况 ? 2.漏洞概述 Redis默认情况下,会绑定在0.0.0.0:6379,这样将会将Redis服务暴露到公网上,如果在没有开启认证的情况下,可以导...

2296
来自专栏魏艾斯博客www.vpsss.net

域名所有权怎么验证

域名所有权怎么验证?百度站长工具、谷歌网站管理员工具(Google Webmaster Tools)、百度统计、360 站长工具等这些应用都要先验证域名所有权,...

1132
来自专栏小白安全

分享几个绕过URL跳转限制的思路

大家对URL任意跳转都肯定了解,也知道他的危害,这里我就不细说了,过~ 大家遇到的肯定都是很多基于这样的跳转格式 http://www.xxx.x...

5226
来自专栏岑志军的专栏

iOS逆向-ipa包重签名及非越狱手机安装多个微信

2783
来自专栏阮一峰的网络日志

Torrent Relay:BT下载代理网站

不用安装任何BT下载客户端,只要在浏览器中上传Torrent文件(或者提供网址),它就会代你下载。然后,你通过浏览器将源文件再下载到本地硬盘中,一切就OK。这里...

2163
来自专栏搜云库

简单的java开源图床

Open source Picture bed 出于自用的目的,又找不到Java写的开源的程序,然后使用开源上传组件 bootstrap-fileinput 用...

2017
来自专栏FreeBuf

一项有趣的实验:装了杀软的主机真的安全吗?

我们有的理由怀疑自己的主机早被感染了恶意程序。大部分人都是采用重打包后的镜像来安装的盗版系统;用的不知从哪儿下回来的工具激活的系统;平常在网上下载的工具奉行的都...

673

扫码关注云+社区