定位内网中毒主机IP经历小记
一、事件起因
客户向公司反映使用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经历小记的更多相关文章
- 简单的内网存活主机ip扫描
@echo offset /a ti = 1:startif %ti% == 10 goto endping 192.168.1.%ti% -n 1 -w 20set /a ti = ti + 1go ...
- NAT ------ 内网的主机如何通过路由器与外网的主机通信
内网主机A,路由器B,外网主机C 使用了两个协议: 路由:位于网络层,为数据包提供一个寻径的算法,不改变数据包的源IP和目的IP,但是会修改源MAC和目的MAC,只在同个网段的进行数据的转发 NAT: ...
- hadoop hdfs 有内网、公网ip后,本地调试访问不了集群解决
问题背景: 使用云上的虚拟环境搭建测试集群,导入一些数据,在本地idea做些debug调试,但是发现本地idea连接不上测试环境 集群内部配置hosts映射是内网映射(内网ip与主机名映射),本地只能 ...
- 公司内网搭建代理DNS使用内网域名代替ip地址
企业场景 一般在企业内部,开发.测试以及预生产都会有一套供开发以及测试人员使用的网络环境.运维人员会为每套环境的相关项目配置单独的Tomcat,然后开放一个端口,以 IP+Port 的形式访问.然而随 ...
- 【docker】【Gitlab】gitlab中clone项目时,IP地址是一串数字(内网Gitlab的IP地址不正确)的问题解决
首次在内网搭建Gitlab环境,在成功后在Gitlab上新建了一个项目. 然而在IDEA上clone项目时发现,项目地址如下: git@0096ce63c43f:root/jump.git 或者这样 ...
- 扫描内网活跃的ip
网段内活跃的ip:nmap -sP 10.10.30.0/24|grep for|awk '{print $5}'
- 查看局域网内在线的主机ip和mac地址
]# nmap -sP Starting Nmap 5.51 ( http://nmap.org ) at 2016-12-12 22:43 CST Nmap scan report for 192. ...
- [源码]K8 Cscan模块 C#获取内网主机IP/机器名/Banner/网页标题源码
[原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...
- 解决内网主机ping不通网关能ping内网
有一台笔记本电脑可以自动获取IP,可以和内网其他主机互相PING通,就是PING 不通网关,只能上内网,不能上外网,IP换到其他主机上也可以上外网,说明路由器上没什么限制.路由器也查了,电脑也重装了, ...
随机推荐
- Real mode & Protected mode
[转] https://objectkuan.gitbooks.io/ucore-docs/content/lab1/lab1_3_2_1_protection_mode.html 为何要了解Int ...
- CF848E Days of Floral Colours——DP+多项式求逆/分治NTT
官方题解:http://codeforces.com/blog/entry/54233 就是由简入繁 1.序列处理,只考虑一个半圆 2.环形处理(其实这个就是多了旋转同构) 然后基于分割线邻居的跨越与 ...
- 运行vb写的程序,有些电脑上会弹出一个与office相关的窗口
到网上搜索了一下,找了几个解决方案,不过我的电脑上没出现过,所以先收藏一下,或许以后能用上. 来自:http://bbs.csdn.net/topics/380204412 今天将注册表的项一个个删除 ...
- OpenCv练习
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream&g ...
- Linux替换指定列的字符串(awk 命令)
假设有文件test.txt,想把test.txt文件第三列含有的good替换为bye,并把替换后的文件保存为test_bye.txt,只需要如下命令. test.txt go go good go m ...
- hdu 1097 A hard puzzle 快速幂取模
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1097 分析:简单题,快速幂取模, 由于只要求输出最后一位,所以开始就可以直接mod10. /*A ha ...
- springboot集成druid连接池
使用druid连接池主要有几步: 1.添加jar和依赖 <groupId>org.mybatis.spring.boot</groupId> <artifactId> ...
- LVS管理工具ipvsadm详解与LVS-NAT模式演示
ipvsadm命令是工作在用户空间的LVS集群管理工具,原理是调用ipvs的API,在内核中生成ipvs的规则,主要用来管理集群服务和集群服务中的RealServer,使用方法类似iptables命令 ...
- Docker:使用Jenkins构建Docker镜像
Docker 彭东稳 1年前 (2016-12-27) 10709次浏览 已收录 0个评论 一.介绍Jenkins Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从 ...
- C# 多窗体之间方法调用
看似一个简单的功能需求,其实很多初学者处理不好的,很多朋友会这么写: //父窗体是是frmParent,子窗体是frmChildA //在父窗体中打开子窗体 frmChildA child = new ...