一、事件起因

客户向公司反映使用IDS设备捕获到木马上线域名需要处理,虽然是逆向岗但还是有预感未来应急响应的工作只会越来越多。所以作为新人的我选择了跟带头BOSS去现场学习,并且将自己参与应急响应中的工作和思路进行记录。

二、前置知识

  • 1)动态域名解析

    用户每一次上网时运营商都会随机分配一个IP地址。安装在用户主机里的动态域名软件会把这个IP地址发送到动态域名解析服务器。Internet上的主机要访问这个域名时动态域名解析服务器会返回当前用户主机IP地址给它。 这就叫动态域名解析。

  • 2)木马类型

    木马控制就是开启一个端口,双方主机建立网络连接成功后,传送控制命令实现控制受害者主机的目的。其中有两个概念:正向连接和反向连接。

正向连接:恶意程序在受害者的主机上监听个端口,而攻击者通过这个端口去连接受害者的主机。这要求受害者IP不变的情况下,才能够连接他。

反向连接:在攻击者主机上监听个端口,然后由受害者主机来访问攻击者主机。就算受害者主机的IP怎么改变,也可以达到控制的目的。

  • 3) 木马上线连接方式

    当前木马为了增加隐蔽性和反追踪能力,上线方式会采用第三方域名进行通信。

    被控制端首先访问动态域名,动态域名中指向控制端的真实IP。使被受害主机与攻击者主机连接,再由控制端发送控制命令。

常见上线方式:HTTP、FTP、DNS、第三方网站(Qzone、csdn等)、IP

上线的流程是被控端访问动态域名获取控制端主机真实IP,建立连接后控制端可向被控端发送控制命令。(被控端指的是受害者的主机,控制端指的是攻击者主机)

图1 木马上线简图

三、处理过程

经过与客户单位负责人沟通中得知这几个月IDS断断续续的时间里捕获到f33**88.3322.org这个域名,而这个域名被IDS设备报为木马动态域名。

但由于受攻击单位的主机是统一配置DNS服务器(10.0.0.13)进行解析上网的,所以IDS抓到的发包主机IP其实是DNS服务器的IP(10.0.0.13)。

期间因为攻击者的木马动态域名一直没有解析过,所以IDS无法查出到底是哪台主机中了木马。

图2 木马动态域名无法解析

客户单位负责人希望我们能够定位到内网中毒的主机IP,还有对木马的行为做分析,确定业务受影响的情况。

经过交流后我们决定采用两种方式对中毒主机的IP进行定位。

  • 1.导出IDS设备的回显日志,定位中毒主机位置

  • 2.在单位中的DNS服务器抓取数据包

2.1 导出IDS设备的回显日志,定位中毒主机位置

因为中毒主机向外发送数据一定会经过DNS服务器,流程如下:

中毒主机向外发送请求 ---> DNS服务器  ---> 域名所在服务器
中毒主机向外发送请求 <--- DNS服务器 <--- 域名所在服务器

这里遇到的麻烦就是IDS设备捕获的数据包日志过大时查询功能很慢,由于f33**88.3322.org这个域名一直没有解析成功,通过IDS设备只能根据回显数据包才可以查询到通讯成功的内网主机IP。

所以我们借助了ThreatBook、VirusTotal这两个网站。首先查询ThreatBook上关于这个域名的网络。

图3 ThreatBook 查询动态域名

然后查询这两条HASH值对应的网络活动,查看是否有其他的上线域名。

图4 ThreatBook 网络活动

取出【b35878a825daceeb2de5602fb6268da80c32a908ec646bcf035b0bce792b7747】

、【4dc695732112e2552f6bc67a38aefa406ac7201de6994a48f134c96301dbf8ef】这两条hash值在virustotal.com这个网站上查询得到另外一个通讯的域名。【ilo.br*nz.pl】



图5 ilo.br*nz.pl

这一次的难点在于 ilo.br*nz.pl这个域名的确是与内网主机成功进行过通讯,可是在取样后进行分析时却发现取出来的病毒跟我们预计的行为不符合,说明我们误打误撞又发现了新的病毒。

于是我们就又回到f33**88.3322.org这个域名无法被正常解析的问题上。

通过思考然后我们又决定借助内网的上网行为管理、流量控制、IPS等设备进行捕获。增加一条TCP访问策略监控访问f33**88.3322.org这个域名任意端口的内网主机IP。而管理上网行为管理的运维人员此时告诉我们如果域名解析不到IP是无法增加策略的。

最后通过在出口DNS服务器上增加解析策略,将f3322**.3322.org木马动态域名解析到我们公司官网的IP,解决了这个上网行为管理设备增加策略的问题。在后续的分析中找到中毒的主机。

2.2 在单位中的DNS服务器抓取数据包

考虑过可以使用Wireshark、TCPdump这两类抓包工具在DNS服务器上进行数据包的捕获,但是全单位的上网访问都是通过这台DNS服务器的情况下。抓包数据有可能很庞大不利于查看就没有采取这样的方式。

四、个人总结

重心点:在这次的事件中感受到应急响应中,很多情况都是WEB方面的日志查询。但对于内网中了木马病毒,我们需要做的工作会始终重点围绕着定位、取样、分析。

全局观:而应急响应工作也非常需要建立全局观。了解网络拓扑并结合业务,知道出了问题的主机中存在什么应用。这个应用涉及多少台主机,采用何种方式进行管理(域控或是工作组)是否为主机群。中毒主机属于哪块网络区域。

影响度:判断业务受损状态,检查应用是否存在安全隐患,网络区域内的主机是否被横向入侵或是被种植了远程控制。网络影响程度。

定位内网中毒主机IP经历小记的更多相关文章

  1. 简单的内网存活主机ip扫描

    @echo offset /a ti = 1:startif %ti% == 10 goto endping 192.168.1.%ti% -n 1 -w 20set /a ti = ti + 1go ...

  2. NAT ------ 内网的主机如何通过路由器与外网的主机通信

    内网主机A,路由器B,外网主机C 使用了两个协议: 路由:位于网络层,为数据包提供一个寻径的算法,不改变数据包的源IP和目的IP,但是会修改源MAC和目的MAC,只在同个网段的进行数据的转发 NAT: ...

  3. hadoop hdfs 有内网、公网ip后,本地调试访问不了集群解决

    问题背景: 使用云上的虚拟环境搭建测试集群,导入一些数据,在本地idea做些debug调试,但是发现本地idea连接不上测试环境 集群内部配置hosts映射是内网映射(内网ip与主机名映射),本地只能 ...

  4. 公司内网搭建代理DNS使用内网域名代替ip地址

    企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随 ...

  5. 【docker】【Gitlab】gitlab中clone项目时,IP地址是一串数字(内网Gitlab的IP地址不正确)的问题解决

    首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目. 然而在IDEA上clone项目时发现,项目地址如下: git@0096ce63c43f:root/jump.git 或者这样 ...

  6. 扫描内网活跃的ip

    网段内活跃的ip:nmap -sP 10.10.30.0/24|grep for|awk '{print $5}'

  7. 查看局域网内在线的主机ip和mac地址

    ]# nmap -sP Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-12 22:43 CST Nmap scan report for 192. ...

  8. [源码]K8 Cscan模块 C#获取内网主机IP/机器名/Banner/网页标题源码

    [原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...

  9. 解决内网主机ping不通网关能ping内网

    有一台笔记本电脑可以自动获取IP,可以和内网其他主机互相PING通,就是PING 不通网关,只能上内网,不能上外网,IP换到其他主机上也可以上外网,说明路由器上没什么限制.路由器也查了,电脑也重装了, ...

随机推荐

  1. MT【37】二次函数与整系数有关的题

    解析: 评:两根式是不错的考虑方向,一方面二次函数两根式之前有相应的经验,另一方面这里$\sqrt{\frac{b^2}{4}-c}$正好和两个根有关系.

  2. BZOJ 4556: [Tjoi2016&Heoi2016]字符串(后缀数组 + 二分答案 + 主席树 + ST表 or 后缀数组 + 暴力)

    题意 一个长为 \(n\) 的字符串 \(s\),和 \(m\) 个询问.每次询问有 \(4\) 个参数分别为 \(a,b,c,d\). 要你告诉它 \(s[a...b]\) 中的所有子串 和 \(s ...

  3. mod(%)之规律(除数与被除数的正负分析)

    首先注意“-9 % 4”,根据运算符优先级,负号运算符优先级大于余数(取模),所以执行的是“(-9) % 4”. 其次 % = mod ,只是在不同地方表示方法不同而已. 被除数无论是正数和负数结果都 ...

  4. MATLAB:图像二值化、互补图(反运算)(im2bw,imcomplement函数)

    图像二值化.反运算过程涉及到im2bw,imcomplement函数,反运算可以这么理解:原本黑的区域变为白的区域,白的区域变为黑的区域. 实现过程如下: close all; %关闭当前所有图形窗口 ...

  5. Mysq中的流程控制语句的用法

    这篇博客主要是总结一下Mysq中的流程控制语句的用法,主要是:CASE,IF,IFNULL,NULLIF 1.case CASE value WHEN [compare-value] THEN res ...

  6. Solr7.1---Getting Start

    目前最新版的Solr是7.1.0 有个我还不清楚的地方是,为何5.5.X或者6.6.X版本还在更新,给我的感觉好像每一个大版本都有自己的维护团队.不管了. 首先-系统要求 JDK1.8+ 解压Solr ...

  7. iptables限制同一IP连接数,防防CC/DDOS攻击

    启动sftp本机的iptables防火墙功能,限制每个ip连接22端口(sftp连接端口即是ssh端口)最大为50个,当超过50后的连接数的流量就会被DROP掉! 同时iptables需要开放5000 ...

  8. 获取CPU序列号、网卡MAC地址、硬盘序列号

    <pre name="code" class="csharp"> using System; using System.Collections; u ...

  9. C# Dictionary序列化/反序列化

    [Serializable] public class SerializableDictionary<TKey, TValue> : Dictionary<TKey, TValue& ...

  10. go通过swig封装、调用c++共享库的技术总结

    go通过swig封装.调用c++共享库的技术总结 @(知识记录) 1 简介 最近在研究golang,希望能对目前既有的python服务做一些优化,这些服务目前已经占用了6-7台机器.选择golang的 ...