20155333 《网络对抗》Exp4 恶意代码分析

基础问题回答

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

  • 使用Windows自带的schtasks指令设置一个计划任务,指定每隔一定时间记录主机的联网记录或者是端口开放、注册表信息等等;
  • 通过sysmon工具,配置好记录事件的文件,之后在事件查看器里查看相关日志文件;
  • 使用ProcessExplorer工具,监视进程执行情况。

    2、 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
  • 使用Wireshark进行抓包分析;
  • 使用systracer工具分析某个程序执行前后,注册表、文件、端口的变化情况。

实践过程

一、系统运行监控

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

第一步:在windows命令行下输入命令:schtasks /create /TN netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"

  • TN是TaskName的缩写,我们创建的计划任务名是netstat;
  • sc表示计时方式,我们以分钟计时填MINUTE;
  • TR=Task Run,要运行的指令是 netstat

    -bn,b表示显示可执行文件名,n表示以数字来显示IP和端口;
  • c:\netstatlog.txt类似于Linux中的重定向,输出将存放在C盘下的netstatlog.txt文件中(自动生成)。

完成后,每1分钟就会监测哪些程序在使用网络,并把结果记录在netstatlog.txt文档里,为了显示日期和时间,我们通过bat批处理文件来实现。

第二步:在C盘要目录下建一个文件c:\netstatlog.bat

  • 在桌面上创建一个netstatlog.txt文件,编辑文件内容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
  • 保存后修改文件名为“netstatlog.bat”;
  • 粘贴到C盘中,需要管理员权限;
  • 可以右键点击“编辑”用记事本查看bat文件内容。

第三步:编辑任务操作:

1.进入任务计划程序:“win+c”选择“设置”->进入“控制面板”->选择“管理工具”->进入“任务计划程序”

2.找到任务netstat,双击点开

3.点击下方“操作”->右侧所选项栏中“属性”->属性页面上方的“操作”

4.双击任务进入“编辑操作”界面

5.在程序脚本处点击“浏览”->选择刚才创建的“netstat.bat”,“参数可选项”为空

6.点击“确定”完成修改

7.查看netstat.txt文件,已经有了时间的记录

第四步:等待一到两天;

第五步:用excel分析数据。

1.导入文本数据:新建excel文件->选择上方“数据”->选择“获取外部数据”->选择“自文本”

2.选择记录连接情况的文本netstatlog.txt,点击“导入”

3.进入文件导入向导第一步,选中“分隔符号”,点击“下一步”

4.进入文件导入向导第二步,选中全部分隔符号,点击“下一步”

5.进入文件导入向导第三步,列数据格式选择常规,点击“完成”

6.鼠标选中左上角第一个单元格,然后点击“确定”

待分析数据如下:

第六步:对数据进行统计学分析:

1.首先查看所有联网程序的联网次数,具体excel操作如下:

①首先选中我们要分析的列:

②其次点击上方“插入”->“数据透视表”->“数据透视图”

③默认选择在一个新工作表中生成

④在右侧“选择要添加到报表的字段”中点击对应字段右侧的小箭头->取消选择那些没有意义的字段,然后点击“确定”

②将该字段拖动到下方的“轴字段”和“数值”两个区域中

⑥然后就可以看到统计图了

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

第一步:确定监控木马。我感兴趣的是进程创建ProcessCreate、进程创建时间FileCreatTime、网络连接NetworkConnect、远程线程创建CreateRemoteThread。

第二步:写配置文件。

1.了解一下配置文件应该怎么写:

①进程创建ProcessCreate的过滤事件选项有:

UtcTime, ProcessGuid, ProcessId, Image, CommandLine, CurrentDirectory, User, LogonGuid, LogonId, TerminalSessionId, IntegrityLevel, Hashes, ParentProcessGuid, ParentProcessId, ParentImage, ParentCommandLine

②进程创建时间FileCreatTime的过滤事件选项有:

UtcTime, ProcessGuid, ProcessId, Image, TargetFilename, CreationUtcTime, PreviousCreationUtcTime

③网络连接NetworkConnect的过滤事件选项有:

UtcTime, ProcessGuid, ProcessId, Image, User, Protocol, Initiated, SourceIsIpv6, SourceIp, SourceHostname, SourcePort, SourcePortName, DestinationIsIpv6, DestinationIp, DestinationHostname, DestinationPort, DestinationPortName

④远程线程创建CreateRemoteThread的过滤事件选项有:

UtcTime, SourceProcessGuid, SourceProcessId, SourceImage, TargetProcessGuid, TargetProcessId, TargetImage, NewThreadId, StartAddress, StartModule, StartFunction

其他时间过滤器、过滤事件的选项、onmatch选项可取值、condition可设置的值、配置文件样例,可以参考使用轻量级工具Sysmon监视你的系统

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

<Sysmon schemaversion="3.10">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad> <ProcessCreate onmatch="exclude">
<Image condition="end with">QQBrowser.exe</Image>
</ProcessCreate> <FileCreateTime onmatch="exclude" >
<Image condition="end with">QQBrowser.exe</Image>
</FileCreateTime> <NetworkConnect onmatch="exclude">
<Image condition="end with">QQBrowser.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>
  • exclude相当于白名单,不用记录。include相当于黑名单。
  • Image condition这里要根据自己使用的浏览器更改,例如谷歌浏览器是“chrome.exe”,IE浏览器是“iexplore.exe”,我用的是QQ浏览器,(不用IE浏览器),进程名是“QQBrower.exe”。写在exclude中就是不记录由QQ浏览器创建的进程。
    • 想知道自己浏览器进程名,可以查看上一阶段的“netstatlog.txt”中的记录。
  • 进程创建时间类似,也是不创建浏览器创建进程的时间。
  • 网络连接过滤掉了浏览器的网络连接、源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命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。

      3.把配置文件放在C盘下。

第三步: 启动sysmon。

1.下载老师提供的SysinternalsSuite201608压缩包,解压。

2.在命令提示符(管理员)中进入到该目录下。win8中用管理员身份运行cmd方法:使用“win+x”调出win8开始菜单->选择“命令提示符(管理员)”

2.安装sysmon:执行命令sysmon.exe -i C:\Sysmoncfg.txt

3.这里弹出的窗口点击agree:

4.成功安装

5.如果修改了配置文件,要运行指令:sysmon.exe -c C:\Sysmoncfg.txt

第四步:在事件查看器里查看日志

1.桌面“这台电脑”图标,右键菜单中,点击打开“管理”。

2.点击左侧“系统工具”->“事件查看器”

3.点击“事件查看器”右侧小箭头,选择日志的位置:应用程序和服务日志/Microsoft/Windows/Sysmon/Operational。

4.利用Sysmon具体分析日志的例子我选择了自己实验二中生成的后门back.exe进行分析。

第一步:启动回连、安装到目标主机。

22:03:13时可找到运行后门文件back.exe相对应的日志如下:

二、恶意软件分析

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

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

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

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

第一步:使用virscan分析恶意软件

virscan网站上查看后门软件的文件行为分析

第二步:下载安装Systracer。

1.下载完成后进行安装

->设置监听端口号(我设成了后门生成时利用的端口)

->安装完成

2.在打开后门前先快照一下,点击“take snapshot”,按照以下步骤进行:

完成后显示Snapshop #1

3.Kali打开msfconsole,完成相关设置后开始监听,Windows运行后门后,拍摄快照:

完成后显示Snapshop #2

4.接下来让攻击机获取目标主机音频、摄像头、击键记录,然后生成快照:

5.进行分析:

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

②在快照界面“Snapshots”右下角点击“Compare”,比对一下回连前后计算机发生的变化:

所有蓝色标注的地方,就是前后发生变化的地方。

6.此外我们可以通过查看后门软件的“opened handles”(打开的句柄)来对比:

实验总结与体会

通过完成这几次实验,对恶意代码有了较为基础的了解,目前单纯靠杀软已经很难实现对恶意代码的查杀了(做了这么多次实验,我的杀软没有一次成功检测出后门),我们需要学会通过一些工具来对系统进行监控并分析。

20155333 《网络对抗》Exp4 恶意代码分析的更多相关文章

  1. 2018-2019 20165237网络对抗 Exp4 恶意代码分析

    2018-2019 20165237网络对抗 Exp4 恶意代码分析 实验目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后 ...

  2. 2018-2019 20165235 网络对抗 Exp4 恶意代码分析

    2018-2019 20165235 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一段时间并分析该文件 ...

  3. 2018-2019 20165319 网络对抗 Exp4 恶意代码分析

    基础问题回答 1. 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控 答:1.使用Windows自带的schta ...

  4. 2018-2019-2 《网络对抗技术》Exp4 恶意代码分析 Week6 20165311

    2018-2019 20165311 网络对抗 Exp4 恶意代码分析 2018-2019 20165311 网络对抗 Exp4 恶意代码分析 实验内容 系统运行监控(2分) 恶意软件分析(1.5分) ...

  5. 20155207 《网络对抗》exp4 恶意代码分析 学习总结

    20155207 <网络对抗> 恶意代码分析 学习总结 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件 ...

  6. 20155207王雪纯《网络对抗》Exp4 恶意代码分析

    20155207 <网络对抗> 恶意代码分析 学习总结 实践目标 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行. 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件 ...

  7. 20155338《网络对抗》 Exp4 恶意代码分析

    20155338<网络对抗>恶意代码分析 实验过程 1.计划任务监控 在C盘根目录下建立一个netstatlog.bat文件(先把后缀设为txt,保存好内容后记得把后缀改为bat),内容如 ...

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

    2018-2019-2 网络对抗技术 20165232 Exp4 恶意代码分析 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门 ...

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

    2018-2019-2 20165325 网络对抗技术 Exp4 恶意代码分析 实验内容(概要) 一.系统(联网)运行监控 1. 使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,逐步排查并且 ...

随机推荐

  1. Android--播放Gif的取巧办法

    由于做的项目,要有个动画的等待效果,第一时间想到的就是Gif(懒,省事),但是试了好多据说能播放Gif的控件,也写过,但是放到魅族手机上就是不能播放,所有就想了个招,既然Gif能在浏览器上播放,那an ...

  2. Expo大作战(二十八)--expo sdk api之Speach(语音文字转换),Segment

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  3. Python+Selenium笔记(十六)屏幕截图

    (一) 方法 方法 简单说明 save_screenshot(filename)   获取当前屏幕截图并保存为指定文件 filename:路径/文件名 get_screenshot_as_base64 ...

  4. Git执行过程中出现问题及解决方法

    not-fast-forward https://help.github.com/articles/dealing-with-non-fast-forward-errors/

  5. @RequestMapping、@ResponseBody 和 @RequestBody 注解的用法与区别

    背景: 帮助同事解决文件上传的bug(文件上传成功,但是页面提示上传接口异常,数据的确是插入了),从前端layui页面找错误,然后浏览器调试,找了半天无果.layui文件上传格式code返回是数值,后 ...

  6. HDFS Lease Recovey 和 Block Recovery

    这篇分析一下Lease Recovery 和 Block Recovery hdfs支持hflush后,需要保证hflush的数据被读到,datanode重启不能简单的丢弃文件的最后一个block,而 ...

  7. SqlServer数据库设计一个字段的值是由其他字段运算结果所得

    最近在做项目时,发现数据库的一些字段不能执行sql语句进行修改,仔细观察才发现,它是由其他字段运算结果所得.这样就不需程序员通过代码执行运算结果更新数据库,感觉很实用,而网上教材好像还挺少的,所以把教 ...

  8. Saltstack安装配置过程

    一.安装配置 1.服务器配置情况 三台服务器,均需要关闭iptables和selinux(否则salt执行指令无效) master: 192.168.60.139 centos slave: 192. ...

  9. centos 安装elk监控

    下面就是要安装一些收集日志 或者分配日志的工具,我选择的是 Filebeat 来收集日志,然后放到kafka中 让kafka这个消息队列来分配生产者消费者  然后通过Logstash 或者一个国产大神 ...

  10. python给邮箱发送消息

    首先要用到两个模块  并且大同你的发送邮箱smtp 最开始测试没打通了好久 smtplib是提供邮箱smtp服务, email是提供你发送消息的格式之类服务 import smtplib from e ...