2018-2019-2 网络对抗技术 20165228 Exp4 恶意代码分析

1、如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

监控注册表和文件改动、端口占用、进程驻留等操作。可使用本次实验的netstat记录网络连接情况然后分析,当然wireshark等工具也可以使用。

2、如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

可通过查看sysmon日志找到该进程邻近或同一时刻的进程动态,源IP、目的IP,端口号和进程号等,以及进一步分析它所创建的子进程。

实验内容

任务一:使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

1、在windows命令行下输入命令schtasks /create /TN 20165228netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"创建名20165228netsta的任务计划

> TN:Task Name,本例中是netstat
> SC: SChedule type,本例中是MINUTE,以分钟来计时。本例中设置为1分钟
> MO: MOdifier
> TR: Task Run,要运行的指令是 netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口



2、通过notepad创建netstatlog.bat

内容如下:

date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

然后将其放到C盘根目录下(需要管理员权限)

3、编辑任务操作

  • 进入管理工具,在任务计划程序中找到刚创建的任务20165228netstat

  • 操作页面里的启动程序修改为netstatlog.bat,并且在常规页面里开启以最高权限执行以防权限不够无法在C根目录创建.txt文件





    4、由于是每隔一分钟就记录网络情况,所以此时可以看到netstatlog.txt里已经有更新的内容。(然后等待很长一段时间)



    5、用excel生成图表分析



任务二:安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为

1、创建20165228monconfig.txt作为sysmon的配置文件

内容如下:

<Sysmon schemaversion="3.10">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
</NetworkConnect> <CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>

2、进入sysmon解压后的路径,执行sysmon.exe -i C:\20165228monconfig.txt开始安装sysmon



3、安装完成



4、如果修改了配置文件,需运行sysmon.exe -c C:\20165228monconfig.txt

5、进入事件查看器查看日志

  • 应用程序和服务日志/Microsoft/Windows/Sysmon/Operational路径下可以找到sysmon日志文件

  • 运行之前制作的后门回连我的kali

  • 查询得到进程号为21672

  • 在日志中以进程号为关键词搜索相关信息

  • 首先找到了我的后门程序

  • 然后发现它还创建了一个子程序conhost.exe

任务三:恶意软件分析

分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件

(3)读取、添加、删除了哪些注册表项

(4)读取、添加、删除了哪些文件

(5)连接了哪些外部IP,传输了什么数据(抓包分析)


1、使用VirusTotal分析恶意软件

  • 将后门程序丢到VirusTotal中进行分析,并得到SHA-1、MD5摘要值、文件类型、大小、TRiD文件类型识别结果和算法库支持情况



    2、使用Process Monitor分析恶意软件
  • 先反弹连接kali,并且得到进程号15152

  • 发现有很多记录,找出需要的很不容易。我发现它有filter功能,于是我以pid is 15152为条件进行了过滤

  • 得到结果



    所以我的后门应该是修改了我的注册表

    3、使用Process Explorer分析恶意软件



    4、使用PEiD分析恶意软件
  • 加壳:

  • 不加壳:



    5、使用systracer分析恶意软件

    保存了两个快照:正常运行和成功回连
  • 通过compare发现注册表里出现了改动

  • 查看后门软件的“opened handles”来对比

  • 查看后门软件的"open port"来对比

    其中192.168.43.219是win10 IP 192.168.43.171是kali IP

问题

  • 在安装system monitor时,在按照博客编写配置文件开始执行安装后,提示incorrect or unsupported schema version 3.10 . current sysmon schema version 4.20意思是当前sysmon schema 版本为4.20,即3.10为不支持或不正确的版本号。

    解决:我猜测与编写的配置文件有关,刚好在其中找到了有关版本的那一项,该为4.20即可成功安装。

实验感想

  • 在此次实验中,我使用了许多恶意代码分析软件,从网络连接和端口、系统注册表变化等多方面的监控,然后具体定位到某一个或某一些进程后进入深入分析。一定程度上增加了我们自己排查恶意代码的能力,不再那么依赖杀软,并且对恶意代码的运行情况也有了一些理解。

最新文章

  1. 将UINavgationController的push改成从左到右
  2. python的编码规范【摘】
  3. 用Canvas制作简单的画图工具
  4. mata属性
  5. offline .net3.5
  6. LINK : fatal error LNK1104: 无法打开文件“gtestd.lib”
  7. OkHttp使用进阶 译自OkHttp Github官方教程
  8. 功放AUX接口解析
  9. Leetcode: Insert Delete GetRandom O(1)
  10. 【转】 Understanding Component-Entity-Systems
  11. EXTJS4.2 后台管理菜单栏
  12. PHP 判断从表单提交的值是否为空
  13. C#.NET面向对象(语法点)
  14. Luogu4655 [CEOI2017]Building Bridges
  15. admin-4
  16. mvc 导出execl
  17. 【python】TCP/IP编程
  18. PowerShell一次执行多条命令
  19. java框架之SpringCloud(3)-Eureka服务注册与发现
  20. 阅读Cortex-A53 Technical Reference Manual笔记

热门文章

  1. 卡方分布(Chi-Square Distribution):
  2. asp.netajax与jquery和bootstrap的无刷新完美实现
  3. 福利来了,现“免费”赠送Spring微服务实战书籍
  4. Android直接用手机打包apk!
  5. c#基础之异常处理及自定义异常
  6. SpringBoot 2.0 pom.xml 配置(热启动)
  7. 【版本更新】开发工具DevExtreme发布v18.2.7|附下载
  8. 【转】forbids in-class initialization of non-const static member不能在类内初始化非const static成员
  9. 解决Visual C++ for Linux: -L&quot;~/projects/path_to_lib_folder&quot; 无法设置library search path的问题
  10. react-native-scrollable-tab-view 中嵌套了react-native-swiper产生的bug