让木马病毒DNS数据传输成为历史:看我如何让XShell病毒失效

基础词汇解释:

DnsA记录传输:

利用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) 一台内网终端,win7x64系统

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. 使用条件转发不允许解析白名单以外域名

l 清空根提示(防止无法控制的递归)

l 确认,不可禁止递归(否则无法实现条件转发)

l 如果允许解析,则配置到代理专用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服务器的解析

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-09-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏社区的朋友们

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

笔者提出基于全 web 代理的 dns 恶意传输屏蔽方案,通过禁止终端做 dns 解析,仅允许代理做dns,完全屏蔽 pc 的恶意 dns 传输的同时,保障终端...

3760
来自专栏程序员八阿哥

XShell上传、下载本地文件到linux服务器

Xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz。 首先你的Linux上需要安装安装lrzs...

1K1
来自专栏五毛程序员

wamp+thinkphp环境配置

3415
来自专栏ascii0x03的安全笔记

小记Linux下对mac80211内核模块修改

mac80211内核模块实现了对802.11协议的处理过程。其中mlme.c文件中的内容实现了对Deauth管理帧的处理。考虑到Deauth攻击至今仍没有好的防...

2756
来自专栏小狼的世界

Linux下SVN的一些使用方法总结

近期的一个项目不方便 Check 到本地,需要在测试服务器上进行编写和测试,所以就研究了一下如何在 Linux 命令行下使用 SVN。

1094
来自专栏Java后端技术

Centos7安装docker-compse踩过的坑

​   本文,我们介绍如何在centos7环境下安装docker-compose, 记录下安装过程步骤以及遇到的问题还有解决办法。

931
来自专栏cloudskyme

vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)

环境准备 软件:vmware workstation 9.0      ubuntu-12.04.2-server-amd64(官方下载) 硬件:确认CPU支持...

3235
来自专栏WindCoder

CentOS安装LNMPA

网上这类教程太多了,此处仅作为一个常用命令的记录,详细教程会在参考资料中给出地址,有兴趣的可以去看一下。

1321
来自专栏容器云生态

红帽子RHCS套件安装与配置(二)

系统环境: RHEL6.4     iptables 关闭     selinux is disabled https://access.redhat.com/...

25910
来自专栏醒者呆

虚拟化明星——深挖轻量级容器docker

docker是一个轻量级容器,属于操作系统层面的虚拟化技术,封装了文件系统(AUFS)以及网络互联,进程隔离等特性。 传统虚拟化架构: ? docker虚拟化架...

3198

扫码关注云+社区

领取腾讯云代金券