Exp3 系统动态监控
1. 实践目标
-
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
-
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
-
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2. 实验原理
2.1 恶意软件会做什么
- 建立连接
- 建立进程
- 创建文件
- 修改内存
- 修改注册表项。。。
2.2 系统动态监控软件
- PEID、ExeinfoPE等查壳工具内先查壳,通过入口特征和区段特征来识别,然后脱壳。
- TCPView、Wireshark等网络工具查看是否存在可疑连接
- Systracer拍摄快照,比对前后区别,分析改变的注册表及文件等信息。
3. 实验步骤
3.1 简单网络监控
- 在Windows下打开powershell,输入一下指令即可查看当前网络连接状态。
netstat -bn
- 该指令需要管理员权限才能运行。
- 下面让我们来使用计划任务来运行这个命令,首先创建批处理文件。具体一点的:创建记事本,输入以下指令:
date /t >> c: etstatlog.txt
time /t >> c: etstatlog.txt
netstat -bn >> c: etstatlog.txt
- 将记事本重命名为***.bat文件并另存到好找的目录下。
- 打开计划任务,设置触发器为每五分钟启动一次,无限循环,设置操作为启动脚本,在对话框打开刚刚创建的.bat文件即可。(PS:可能需要设置以最高权限运行)
- 设置完毕后就是等待啦,过不了多久就会收获满满。
- 然后我们做一个尝试,做一个后门程序反弹连接,可以看到,在捕获的连接状态中清楚的体现了出来。
3.2 sysmon监控日志
- emmmm这玩意装了好久...这里简单介绍一下艰辛的安装历程,首先下载安装程序、创建配置文件,用++管理员身份++(敲黑板!!!)打开命令行,在正确目录下输入
sysmon.exe -i config_file_name
- 一般来说就OK了。装的时候弹出这个窗口。
-
装好之后在运行中输入eventvwr,打开日志,在日志目录中循着Microsoft->Windows->Sysmon->Operational打开日志就可以啦。
-
从右侧“筛选日志”可以输入事件ID筛选事件,可以看出,大多数的网络连接都是360创建的...
-
进程创建如下
- 文件创建如下
- 也有例外
-
svchost.exe是一个属于微软Windows操作系统的系统程序,微软官方对它的解释是:Svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。这个程序对系统的正常运行是非常重要,而且是不能被结束的。许多服务通过注入到该程序中启动,所以会有多个进程。(行吧,你说是啥就是啥)。
-
来源为搜狗的进程不放心,查一查IP
-
貌似没毛病。
-
下面开始模拟检测,还是一样的套路,做一个后门,反向连接,再截个屏。结果如下
- 简单概括一下在我做截屏操作时日志记录下了什么:建立进程->连接主机->创建文件->穿透防火墙!
3.3 wirsharke抓包分析
- wireshark是一个强大的抓包软件,强大到啥包都抓,所以在分析之前需要过滤好IP地址,以下是我推荐使用的过滤条件:
no arp and !(udp.port53) and ip.addr主机1地址 and ip.addr==主机2地址
- 上面这句话的意思就是过滤掉ARP包和DNS重定向包,仅仅留下双方地址为主机1和主机2地址的数据。
- 打开后门,反向连接,可以看到,原本空空的数据栏被瞬间填满,除了一开始建立TCP连接时的SYN请求包外几乎全部是ACK响应包。而且有来有回,个人猜测veil生成的后门程序就是利用这样的ACK响应包传送数据!下面我们来验证试试。
- 做截屏、照相、输出击键这三件事。
-
可以看到,截屏的数据传到攻击机上时,数据从双方的有来有回变成了一方疯狂ACK,而且数据量不小,应该就是在这些ACK包中将一个图片分解传递过去。
-
照相之后也是一样,单边数据流量激增。下面我们来定量测试一下,根据包的数据大小算一算是不是吻合。结果如下:
- 我的天!!!这绝不是个巧合!!!
- 既然确定了信息就藏在这些包中,那我们进一步尝试,看看能不能找出数据的蛛丝马迹来,我们键入12345678901234567890,抓包看看。
- 可惜,数据包里的数据很杂乱,虽然出现了我们想要的通讯流量增加的现象,但是并不能读出什么来。果然低层的数据包很难懂。
- 不过,可以得出一些结论:
- 1 正常的wireshark抓包是不会出现单方面从自己主机上疯狂上传数据的,如果不是本人操作,那么很有可能有问题!
- 2 veil的后门程序一旦建立了tcp连接就不会主动退出连接,反而是在以不断的ACK响应包来维持与受害主机的通讯,如此大的通信流量是很容易发现的,这一点如果可以在感染之初及时注意应该可以减少损失。
- 3 veil的后门程序是将想要盗取的信息拆分成ACK应答包借此躲过杀软和防火墙的围追堵截,还是很隐秘的。
3.4 process explorer监控表
- process explorer是一种详尽的系统进程监控软件,足够把所有的在执行的后门监测出来,这里我们先简单看一看正常状态下的进程情况。
-
接着我们做一个后门进行测试(注意,这里最好使用管理员权限打开后门软件,不然可能会迁移进程的时候出问题),回连成功后,可以看到多出了一个进程。
-
我们继续,迁移进程至搜狗云进程中...迁移成功。
-
然后我们马上回去看监控表,发现空空如也。
-
打开响应的进程,我们发现这个进程下有不少的线程,哪一个使我们迁移过去的呢?
- 有一个方法——结束我们怀疑的线程,如果连接中断,那么那个线程一定就是我们要找的。
- 猜一个吧,干掉
- 回去看看连接状态,中断了。这一点也验证了我们的猜想。转移的进程就藏在这些表面正常的进程中。
- 由此我有这样几个感想:
- 1 对于后门程序来说,进程迁移非常的重要,如果不迁移那么那个后门的进程就傻傻的放在那里,太招摇了。一旦迁移就会变得隐秘的多。
- 2 进程在迁移后几乎没有什么迹象能够判断出到底哪一个是建立连接的进程,
- 3 改变后门的通信行为很重要,因为我做了几遍这个实验发现所有的后门程序在拷贝进主机之后几乎都没有报毒,但是一旦启动就会被直接干掉,可能直接从上面我们分析看到的现象那样,大量tcp数据包引起了杀软的注意,所以可以采用隧道加密等方式降低报毒率。而对做实验的童鞋们也提个醒,这个实验成功的一个关键就是快,尽快回连,尽快转移进程,尽快截图,不然可能做着做着连接就中断了...
4. 实验感想
- 1 现在的入侵技术越来越发达,杀软往往起不到作用,但是恶意软件万变不离其中,只要想在我们的电脑上偷东西,就一定要从网络上走,就一定会留下痕迹,就一定会被抓住。最了解自己机器的还是自己,提高防范意识,养成良好习惯。闲的没事可以看看防护日志,监测一下流量,可能比杀毒软件跑半天更让人安心。
- 2 就监测效果而言,还是动态的监测效果更好,毕竟静态的特征匹配现在可能已经有很多的方法去应对,但是就动态监测而言,一个后门想做的事情必然通过那些固定的套路去实现,一旦发现规律还是很好抓的。
- 3 就进攻而言,不仅要注意后门代码的伪装,更要注意进程和通信过程的隐藏,也就是尽可能的伪装成一个正常的软件,做正常的事情,这样才能降低报毒率。