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

恶意代码分析

实践目标

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

    目录

  • 知识点
  • 实验过程
  • 遇到的问题
  • 总结


知识点详解

1.schtask

安排命令和程序定期运行或在指定时间内运行。从计划表中添加删除任务,按需要启动和停止任务,显示和更改计划任务。

Schtasks命令详解

2.sysmon

sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接文件创建时间更改的详细信息。

相关原理实现

3.恶意代码分析

实验流程

任务一:系统运行监控

1.1使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里
date /t >> c:\netstatlog.txt //写入日期
time /t >> c:\netstatlog.txt //写入时间
netstat -bn >> c:\netstatlog.txt //写入netstat执行结果
  • 创建文件netstaslog.txt用于记录
  • 使用schtasks命令创建一个新任务:schtasks /create /TN netstat5326 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
/tn TaskName 指定任务的名称。
/tr TaskRun 指定任务运行的程序或命令。977
如果忽略该路径,SchTasks.exe 将假定文件在Systemroot\System32 目录下。
/sc schedule 指定计划类型
/mo modifier 指定任务在其计划类型内的运行频率,认值为 1
  • 打开任务计划程序,看到刚刚生成成功的任务准备就绪,打开->属性,最高权限运行->操作,脚本或程序:C:\netstatlog.bat,然后开始运行
  • 打开netstatlog.txt一波分析
  • 使用excel表格查看并分析,相关指导

  • 发现以下几个进程运行的很多
    • downloadSDKServer:迅雷的下载程序
    • kxescore:金山毒霸的密保用户的进程,开着这个防护程序就有
    • microsoftEdgeCp.exe:微软浏览器相关组件,上网就会用到
    • SearchUI.exe:cortana的搜索进程,发现了一个win10z的小mimi,这个居然会一直开着昂,可以任务管理器关掉节约点电(没有什么用)
    • vmware-hostd:虚拟机和物理主机联通信道
    • pcdrwi:pc-doctor for windows
    • ……还有一些就是很常见的一些软件的进程就不赘述啦
      其实最有用的应该是svchost.exe一个搜索总结了一下,大概是这样的

      我们知道 Windows 和 Windows 的应用软件都 要使用大量的 DLL(Dynamic Link Libraries,动态链接库)文件,这些 DLL文 件一般都要向Windows申请各种各样的Service(服务),而Svchost. exe 就是其中一些服务的通用管理进程名(Generic Host Process Name),简单的说,Svchost.exe是这些服务的总称。每一个Svchost. exe 进程以一个 Group(组)的方式分组管理各种服务,每一个 Svchost.exe服务。
      Svchost.exe在Windows XP的系统目录\Windows\System32 下,在启动的时候,Svchost.exe根据注册表中的相关信息建立一个 服务列表并根据这个列表加载相关的服务。一般来说,Svchost.exe 总是根据 HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost下面的键值分组管理DLL 申请的服务,这里的每一键值对应一个独立的Svchost.exe进程
      常被病毒冒充的进程名有:svch0st.exe、schvost.exe、scvhost.exe。随着Windows系统服务不断增多,为了节省系统资源,微软把很多服务做成共享方式,交由svchost.exe进程来启动。而系统服务是以动态链接库(DLL)形式实现的,它们把可执行程序指向svchost,由svchost调用相应服务的动态链接库来启动服务。
      在任务管理器中只能看到Svchost.exe进程而看不到该进程所包含的服务,要想了解每个 Svchost.exe 进程下到底有什么服务,打开cmd输入:Tasklist / SVC并回车就可以看到每个 Svchost.exe进程及 其所包含的各种服务,其中Image Name :映像名,PID:进程标识,Services:进程所包含的各种服务(一般是缩写)。下面截取了当前部分x进程使用svchost.exe的图,冷静分析,没分析出来啥……这几个看起来都还挺正常的我们下一个

1.2安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。配置参考
\\先用老师的试一下
<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">137</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>
  • 使用之前生成的后门程序进行回连(此处使用的是实验二的,payload是……/reverse_https),观察日志中的结果(日志查看:计算机管理->事件查看器->应用程序和服务日志->Microsoft->Windows->Sysmon),详细信息里能看到,下面是官网上的Sysmon的事件ID对应的意思,
事件ID 1:流程创建
进程创建事件提供有关新创建进程的扩展信息。完整命令行提供流程执行的上下文。 ProcessGUID字段是跨域的此过程的唯一值,以使事件关联更容易。散列是文件的完整散列,其中的算法位于HashType字段中。
事件ID 2:进程更改了文件创建时间
当进程显式修改文件创建时间时,将注册更改文件创建时间事件。此事件有助于跟踪文件的实际创建时间。攻击者可能会更改后门的文件创建时间,使其看起来像是随操作系统一起安装的。请注意,许多进程合法地更改了文件的创建时间;它不一定表示恶意活动。
事件ID 3:网络连接
网络连接事件记录计算机上的TCP / UDP连接。认情况下禁用它。每个连接都通过ProcessId和ProcessGUID字段链接到进程。该事件还包含源和目标主机名IP地址,端口号和IPv6状态。
事件ID 4:Sysmon服务状态已更改
服务状态更改事件报告Sysmon服务的状态(已启动或已停止)。
事件ID 5:进程终止
进程终止时,进程终止事件报告。它提供了该过程的UtcTime,ProcessGuid和ProcessId。
事件ID 6:驱动程序已加载
驱动程序加载的事件提供有关正在系统上加载的驱动程序的信息。提供配置的哈希值以及签名信息。出于性能原因,签名是异步创建的,并指示加载后文件是否已删除
  • 运行后门程序、msfconsole、监听、获取权限
    • 运行26bc.exe
    • dir
    • getuid
      可以看到如下截图:



  • SearchFilterHost.exe是桌面搜索引擎的索引程序,其主要作用是建立快速索引文件,让用户能够更好的搜索出电脑中的任意资料。它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容,这些索引位置包括桌面、收藏夹、开始菜单、系统目录。

    任务二:恶意软件分析

  • 所以我为什么要用加密传输,微笑,截图,可以看见有一个连接的过程,猜测以下的传输过程就是来自kali后门的神秘力量

  • 将payload改成tcp看下明文传些什么奇怪的东西(此处无截图)可以从psh/ack下直接看到传输明文
  • 使用sys tracer(注册表分析器x进行分析)我感觉我这里做的有一点问题,还是用两台虚拟机会好一点,一定要快照!以下是运行前后compare的结果
    • 拍摄运行后门前后的两次快照进行compare,我只选择了c盘进行扫描
    • 可以通过Applications->Runnning Processes找到当前运行的程序


遇到的问题

  • Q:无法直接在c盘下建立文件
  • Q:win10网页上下载东西下不了?
    • 请Windows defender smartscreen解释一下为什么Microsoft官网下东西都不允许好吧。。在网页的高级设置关掉这个就可以了。

      总结

      回答问题

  • 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
    • 使用计划任务schtasks指令动态监控系统运行
    • 使用sysmon工具动态监控系统运行
  • 如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
    • 使用systracer工具进行快照分析注册表信息、文件行为等信息的变化
    • 把程序放在virscan上检测查看行为报告

      心得

      分析的时间比较长,这次的实验名称应该叫“当我没看电脑的时候它都在干些什么”,总有种《her》的现实版的感觉,跟别的人连IP交换信息都是大猪蹄子hen。这次试验还是学到了很多有用的东西,如何使用一些小工具来分析电脑是否被恶意代码攻击等,深入学习加油

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...