让木马 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 条评论
登录 后参与评论

相关文章

来自专栏数据和云

我明明 immediate 关库的,怎么就打不开了?!

五一放假期间,某客户的数据库出现故障,据说对方找了一些工程师折腾了一天,都无法将数据库open,其中参考了网络上的很多文章,也使用了一系列隐含参数,均无法将数据...

3485
来自专栏Young Dreamer

前端自动化测试漫长路之——Selenium初探

引言 最近想解决前端开发或测试中的两个问题:一是界面UI的布局适配,能否在测试的过程中,通过命令操作真机打开相应页面然后截屏,通过对图片识别分类,发现有问题的图...

1907
来自专栏about云

Apache Hadoop 3.0.0-alpha1版发布做了哪些改进

问题导读 1.hadoop3.x必须使用哪个版本的jdk? 2.hadoop3.x是否可以配置5个namenode? 3.hadoop除了可以使用swift,还...

3438
来自专栏情情说

推荐2个工具

2888
来自专栏跟着阿笨一起玩NET

WinForm通用自动更新器AutoUpdater项目实战

3.3、问:WinForm通用自动更新器AutoUpdater是以什么方式进行文件下载的呢?

682
来自专栏FreeBuf

Makednslog:让我们来看一看这款能够伪造DNS日志的工具

写在前面的话 2016年8月1日,我曾发表过一篇文章【点击文末的阅读原文查看】并介绍了如何使用哈希算法来提升大型DNS日志文件的搜索效率。但是这篇文章中还存在一...

2016
来自专栏Netkiller

怎样入住IDC机房或迁移IDC机房

4.3. 机房迁移 总结一下5年前的工作,在不写下来自己都快忘光了,工作关系现在已经不涉及运维这块的工作。 4.3.1. 拓扑确立 首先制定服务器拓扑图,拓扑...

3095
来自专栏大数据智能实战

Cassandra 3.7.0集群在ubuntu上的安装

最近想着测试各种NOSQL数据库的性能,于是把cassandra也装一下试验一下性能。 Cassandra是一套开源分布式NoSQL数据库系统。它最初由Face...

18310
来自专栏恰同学骚年

Hadoop学习笔记—21.Hadoop2的改进内容简介

Hadoop2相比较于Hadoop1.x来说,HDFS的架构与MapReduce的都有较大的变化,且速度上和可用性上都有了很大的提高,Hadoop2中有两个重要...

642
来自专栏EAWorld

有状态容器实践:k8s集成ceph分布式存储

? 大家好,今天由我为大家介绍一下我们对于k8s与ceph集成的预研成果。对于k8s与ceph,我们也了解有限,有些理解不对的地方,还请大家指正。 ? 今天将...

4946

扫码关注云+社区