网络对抗 Exp4 恶意代码分析

    • 实验内容

      • 系统运行监控
      • 恶意软件分析
      • 报告评分
    • 基础问题回答
    • 实践目标
    • 实验内容
      • 1. 系统运行监控——计划任务
      • 2. 系统运行监控——利用Sysmon
      • 3.1恶意软件分析—— virscan网站
      • 3.2恶意软件分析——PEID
      • 3.3恶意软件分析——PE Explorer
      • 3.4恶意软件分析——Process Monitor
      • 3.5恶意软件分析——Process Explorer
      • 3.6恶意软件分析——Systraer
      • 3.7恶意软件分析——Wireshark
    • 实验中遇到的问题及解决方法
    • 实验感想

一、基础问题回答

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

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

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

  • 使用systracer工具分析恶意软件,查看其对注册表和文件的修改,进行快照的对比。
  • virscan集合各种杀软,对指定文件进行分析定性。
  • 使用Wireshark进行抓包分析,监视其与主机进行的通信过程。

二、实践目标

1.是监控你自己系统的运行状态,看有没有可疑的程序在运行。

2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。

3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

三、实践内容

1、windows计划任务

  • 以管理员身份打开cmd,使用指令schtasks /create /TN 4310netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt创建计划任务4310netstat,记录每1分钟计算机联网情况:
  • 在c盘下手动创建一个netstatlog.txt文件

       

  • 在桌面建立一个20164310netstatlog.txt文件,内容为:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt

将后缀名改为.bat后,用管理员身份将该文件放入C盘

  • 打开计算机管理的“任务计划程序库”,可以查看到4310netstat任务就绪(这里忘记截图了)
  • 打开其属性,修改其指令为20164310netstatlog.bat
  • 可以在C盘的netstatlog.txt文件中查看到本机在该时间段内的联网记录:

2、使用sysmon工具

  • 首先创建配置文件sysmon4310.txt,并输入如下的代码:

这里需要注意的是第一行代码那个版本如果谢3.10的时候出现问题那么就要换成4.20

<Sysmon schemaversion="4.20">
<!-- 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> <NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<Image condition="end with">iexplorer.exe</Image>
<SourcePort condition="is"></SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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>
  • 在官网上下载sysmon工具
  • 以管理员身份打开命令行,使用指令Sysmon.exe -i安装sysmon

  • 配置sysmon:输入命令Sysmon.exe -i sysmon4310.xml配置sysmon

  • 安装成功之后在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational

  • 然后在linux对windows进行控制,点击输入getpid,得到了进程号10386,然后在Image那一行出现了正在进行的后门

3、恶意软件分析

(1) 静态分析:文件扫描

将上次生成的jar文件放到virscan上扫描:

然后点击哈勃分析:

可以看到这个后门的种种行为如关键行为,进程行为等,此恶意代码是通过一个反弹链接来控制受害主机,并在受害主机中通过创建进程,船舰删除文件,创建事件对象等等,对目标主机有很大的威胁。

(2)用peid工具识别文件格式

先把一个没有加壳的后门放进去,结果什么也没有发现

然后把一个加壳的后门放进去,发现了压缩壳

同时peid也可以进行脱壳,右下角按钮点下显示的是插件列表,其中有一些脱壳的插件,不过只是一些简单的压缩壳而已,比  如upx等。

(3)使用PE Explorer

先导入没有加壳的后门程序,点击View->Import,查看程序所引用的dll库

再导入加壳的后门

可以发现加壳之后所引用的dll库明显减少,通过百度查到了这几个dll库分别代表了什么:

KERNEL32.dll:是Windows 9x/Me中非常重要的32位动态链接库文件,属于内核级文件。它控制着系统的内存管理、数据的输入输出操作和中断处理。

USER32.dll:Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。它是一个对系统很关键或很可疑的文件,易遭受木马病毒破坏导致系统找不到此文件,出现错误提示框。

msvcrt.dll:是微软在windows操作系统中提供的C语言运行库执行文件(Microsoft Visual C Runtime Library),其中提供了printf,malloc,strcpy等C语言库函数的具体运行实现。

ws2_32.dll是Windows Sockets应用程序接口, 用于支持Internet和网络应用程序。

(4)使用Process Monitor

找到了后门程序,打开看看

可以看到该后门的路径,以及是用TCP进行操作的。同时也能看到它在电脑中的位置,打开第三项Stack可以看到所引用的dll库。

(5)使用Process Explorer

我找到了我正在运行的后门程序,可以看到反弹链接的ip和端口号

也可以看到该进程使用的CPU,虚拟内存空间、物理内存空间、I/O等。

(6)使用Systracer

点击右侧的take snapshot,存储快照(因为那个sys总是出现问题所以我快照名字比较混乱这里就不放名字了)

快照一:未移植后门程序

快照二:移植后门程序

快照三:运行后门程序并在kali中实现回连

快照四:在kali中使用dir指令

快照五:在kali中使用record_mic指令

对比快照一、二,可以发现多了个后门程序:

对照二、三可以发现多了一个TCP链接:

并且该后门文件生成了很多的文件和目录:

对照三、四,可以发现对对key_local_machine根键中的内容进行了修改:

对照快照四、五可以发现注册表中有以下变化(隔的时间有点久,今早才创建的快照四)

(7)使用wireshark

在没有进行回连的时候启动抓包,回连之后暂停抓包:

然后过滤ip(虚拟机的ip为192.168.1.104,因为只看虚拟机和主机之间的通信)得到了以下内容:

传输的数据包括Windows向Kali发出TCP同步请求包SYN,Kali给Windows发出的SYN同步请求包和确认包ACK。

 4、实验中遇到的困难和解决方法

这次实验也没遇到什么太大的困难,主要就是那个Sysmon安装不上,然后出现了以下问题:

解决办法就是你把那个xml文件放到C盘windows下,因为上面提示了那个xml文件的confugration(配置、路径)不对。

5、实验感想:

这次实验第一感觉就是信息太多,特别考验我们的信息处理能力,特别是在分析注册表修改的时候,一个点进去又会扯出很多问题,深刻感觉自己知识的缺乏,不过这些软件倒是很好用的,比上几次实验敲代码分析简单多了,希望异或能够用到他们。

2016310Exp4 恶意代码及分析的更多相关文章

  1. NetSarang软件中nssock2.dll模块被植入恶意代码技术分析与防护方案

    原文地址:http://blog.nsfocus.net/nssock2-dll-module-malicious-code-analysis-report/ NetSarang是一家提供安全连接解决 ...

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

    实验四 恶意代码分析 实验目的 1.监控自己系统的运行状态,看有没有可疑的程序在运行. 2.分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals ...

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

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

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

    2018-2019-2 网络对抗技术 20165225 Exp4 恶意代码分析 实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp ...

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

    1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sys ...

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

    2018-2019-2 网络对抗技术 20165316 Exp4 恶意代码分析 一.原理与实践说明 1.实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2 ...

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

    <网络对抗技术>Exp3 免杀原理与实践 Week5 一.实验目标与内容 1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp ...

  8. 20164322韩玉婷 -----EXP4 恶意代码分析

    1.实践目标 1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行. 1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,sys ...

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

    2018-2019-2 网络对抗技术 20165308 Exp4 恶意代码分析 实验过程 一.系统运行监控 (1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里.运行一 ...

随机推荐

  1. Java课程----自我介绍

      我是一名信息院的学生,今年今日是大二下学期,马上就要大三了,自己对于专业的认知还是太浅.主要是因为之前的大学生活特别懒散,并不积极向上.但是我想说的是,我们大学生,一定不要碌碌无为,要有所作为.我 ...

  2. amaze ui 滚动监听

    引入   此框架的css  js    前提还要有jquery http://amazeui.org/javascript/scrollspy 然后看这个链接里的各种动画 运用方法就是  在你想要有动 ...

  3. react-native-svg的使用

    今天学习一下react-native-svg,一如既往,在安装该库的时候,就有一大堆坑等你填. 首先,我新建一个rn项目,按照官方说明先导入库 npm install react-native-svg ...

  4. 使用docker部署springboot应用

    1.构造Dockerfile打包文件 # from base image centos FROM centos #MAINTAINER lirenqing #Java Version #ENV JAV ...

  5. UTC,BJT时间转换-python

    #UTC,BJT Conversion.py #接收一个BJT时间 bjt = eval(input("输入时间")) #转换 utc = bjt + 2400 - 800 if ...

  6. mysql 数据库导出与导入

    1.数据库导出 语句:mysqldump -u用戶名 -p密码 -d 数据库名 表名 > 脚本名; 1.导出整个数据库结构和数据 mysqldump -h localhost -uroot -p ...

  7. 页面布局 ——图片自动按比例显示&&图片随外部div的增大而按比例增大

    图片按比例显示,分为两种情况. 1.空的div内加图片 <div class="emty"><img src="img/my.png"> ...

  8. 1ubuntu安装虚拟机

    安装相关打软件:(qemu-kvm qemu-system是kvm和qemu的核心包,libvirt-bin用于管理kvm,virt-manager图形管理工具,bridge-utils vlan,主 ...

  9. linux下lampp的启动和停止脚本

    今天试着写了lampp的启动停止脚本,和上一篇的tomcat的启动停止有一点小区别,就是lampp启动之后有很多的进程号,如果按照tomcat的停止脚本写就会出错,下面做细细的介绍 1.lampp的停 ...

  10. C#编写CLR函数

    本案例在VS2017环境中开发: 1.新建项目,“数据库项目”,添加 UserDefinedFunctions.cs类文件,代码如下: using System; using System.Data; ...