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

实验目的

  • 监控你自己系统的运行状态,看有没有可疑的程序在运行。
  • 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
  • 假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

实践内容概述

  • 系统运行监控
    • 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果。
    • 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
  • 分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
    • 读取、添加、删除了哪些注册表项
    • 读取、添加、删除了哪些文件
    • 连接了哪些外部IP,传输了什么数据

基础问题回答

  • 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    -使用windows自带的schtasks指令设置一个计划任务,发现网络连接异常
    • 使用Sysmon,编写配置文件,记录有关的系统日志
    • 使用Process Explorer工具,监视进程执行情况。
    • 使用Process Monitor工具,监视文件系统、注册表、进程/线程的活动。
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改。
    • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。
    • 使用Process Explorer工具或Process Monitor工具,监视文件系统、注册表、进程/线程的活动。

实验步骤

任务一(使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果))
  • 使用schtasks指令监控系统
  • 使用 schtasks /create /TN netstat5217 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstat5217.txt" 命令创建计划任务netstat5217

中,TN是TaskName的缩写,这里计划任务名是netstat5217;sc表示计时方式,以分钟计时填MINUTE;TR=Task Run,要运行的指令是netstat -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口。

  • 在C盘要目录下建一个文件c:\netstat5217.bat(可以先在桌面新建txt文本文件,使用记事本写入后在修改后缀为.bat,复制到C盘中),写入内容如下:
 date /t >> c:\netstat5217.txt
 time /t >> c:\netstat5217.txt
 netstat -bn >> c:\netstat5217.txt
  • 在左下角Windows处右键打开计算机管理-任务计划程序,可以看到我们新创建的任务:

双击这个任务,点击操作-编辑,将其中的程序或脚本改为我们创建的netstat5217.bat批处理文件,参数可选项为空,点击确定。(注意看这里:一定要勾选使用最高权限运行,否则可能导致文件不能自主更新或者记录里出现权限问题)

还可在条件中设置其他属性,在电源这里默认操作为只有在计算机使用交流电源时才启动此任务,那么使用电池电源时就会停止任务,所以若保持默认注意电脑保持开机联网状态!

在计算机管理界面对该任务右键点击运行,可在netstat5217.bat目录下看到一个txt文本文件,打开就可看到每隔一分钟被输到这里的联网数据。

-

现在我们等待一段时间,让记录项目足够多了我们用excel来进行分析

  • 打开Excel表格,选择数据-获取外部数据-自文本,在数据类型中选择分隔符号

点击下一步,标记所有分隔符号,点击完成

  • 就可以看到txt文档中一样的信息,然后选择我们要分析的那一列

选择插入-数据透视图,并默认位置新表格,点击确定

  • 在字段中去除不需要的字段(注意去掉TCP)

  • 将该字段拖动到下方的轴和值两个区域中

  • 就可以清晰的看到联网信息的统计图了

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

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

  • 确定监控对象

  • 选择的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。

  • 写配置文件

  • 写与自己想要监控的事件相对应的配置文件。编写好的20165217Sysmoncfig.txt内容如下:(配置文件是xml文件,为了简单编辑就直接命令为.txt,每次用写字本打开。)

注释

  • exclude相当于白名单,不包括,即不用记录。

include相当于黑名单,即要记录的。

  • Image condition,映像条件,根据自己使用的浏览器更改。例如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,所以这里只写“chrome.exe”即可。写在exclude中就是不记录由360浏览器创建的进程。
  • 进程创建时间类似,也是不创建浏览器创建进程的时间。
  • 网络连接为过滤掉浏览器的网络连接、源IP为127.0.0.1的网络连接和目的端口为137的连接服务,且查看目的端口为80(http)和443(https)的网络连接。
    • 137端口的主要作用是在局域网中提供计算机的名字或 IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态。
    • 127.0.0.1表示本机 IP。
  • 远程线程创建记录了目标为explorer.exe、svchost.exe、winlogon.exe和powershell.exe 的远程线程。
    • explorer.exe是Windows程序管理器或者文件资源管理器
    • svchost.exe是一个属于微软Windows操作系统的系统程序,是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。
    • winlogon.exe是Windows NT 用户登陆程序,用于管理用户登录和退出。
    • powershell.exe是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

启动sysmon

  • 下载sysmon,解压。

  • 安装sysmon:以管理员身份执行命令sysmon.exe -i C:\20165217Sysmoncfig.txt

  • 会提示出错,输入命令sysmon -accepteula -i -n

就会在任务管理器中看到sysmon.exe已经在运行了

在事件查看器里查看日志

  • 图标“计算机”右键,点击打开“管理”。点击左侧“系统工具”->“事件查看器”->应用程序和服务日志/Microsoft/Windows/Sysmon/Operational

利用Sysmon具体分析日志

  • 这里我选择了利用实验二中的步骤,重新生成了后门yqexp2_2进行分析。

启动回连、安装到目标主机。

任务三(恶意软件分析—— virscan网站)

在virscan网站上查看上次实验检查所做的后门程序。结果如下:

任务四(恶意软件分析——Systracer)

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

该后门软件

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

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

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

下载安装Systracer

  • 下载完成->运行->agree->选第二个->设置监听端口号->安装完成

进行分析

这里我主要进行了四次快照,分别为还未传递后门程序前、存在后门程序后、进行回连后、进行了录音截屏记录键盘输入以及摄像头拍照等操作后。

  • 点击“take snapshot”,如图,按照以下步骤进行

plications”->左侧“Running Processes”->找到后门进程“yqexp2_2_backdoor.exe”->点击“Opened Ports”查看回连地址、远程地址和端口号

  • 在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化,这里可以选择only difference

Wireshark进行抓包分析
  • 回连完成后结束捕获,并把过滤规则设置为ip.addr == 10.1.1.223,这里我只想查看和虚拟机IP有关的数据包,所以把没用的包过滤掉
  • 我们可以看到有大量的TCP包,这其中有回连相关的包,之后我有用dir指令查看了靶机的当前目录,传输了很多数据过来:

实验总结与体会

本次实验中,虽然过程并没有什么很难理解很难懂得地方,但是实验的很多细节一度令我头疼,实验中一步没实现好,我总是需要重复的做它,浪费了许多时间。但是通过本次实验我学会了如何让计算机周期性执行一个任务,如何利用excel分析数据、如何分析日志中的大量信息、如何利用多种工具对恶意代码进行进一步分析。希望下次实验中可以有更多心得体会。

posted @ 2019-04-07 18:48  叶佺  阅读(192)  评论(0编辑  收藏  举报