恶意代码分析实战 --- 第一章 静态分析基础技术

这篇博客详细记录了恶意代码分析的过程,包括使用VirusTotal进行扫描,识别加壳技术如UPX和FSG,通过导入函数推测程序功能,如创建服务、网络连接和文件操作。此外,还提到了基于主机和网络的感染迹象,如特定文件创建、URL流量和PE资源。博主强调了静态分析的步骤,并提到未来计划分享脱壳技术和更多分析技巧。
摘要由CSDN通过智能技术生成

记录一下恶意代码分析实战的课后习题。

Lab1-1

1.将文件上传至http://www.virustotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
能够看到很多杀软都报毒了,但是好像看不出报的是什么类型的病毒。
在这里插入图片描述
2.这些文件是什么时候编译的?
Lab01-01.exe创建时间:2010-12-20/00:16:19
Lab01-01.dll创建时间:2010-12-20/00:16:38
应该是同时创建的.
在这里插入图片描述
在这里插入图片描述
4.是否有导入函数显示出这个恶意代码是做什么的?如果是,是哪些导入函数?
Lab01-01.exe存在很多文件查找、复制的功能
在这里插入图片描述
Lab01-01.dll中Sleep和CreateProcessA可能是后门程序。下面还有一些网络连接的函数
在这里插入图片描述
5.是否有任何其他文件或基于主机的迹象,让你可以在受感染系统上查找?
label01-01.exe会创建“C:\Windows\System32\Kernel32.dll”文件名很容易让人以为是正常的文件Kernel32.dll,人眼容易看错的。
在这里插入图片描述
6.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
Label01-01.dll中存在一个ip·127.26.152.13(内网ip)是攻击者的ip
在这里插入图片描述
7.这些文件的目的是什么?
猜测Label01-01.exe主要用于将Label01-01.dll复制到“C:\Windows\System32\Kernel32.dll”
Label01-01.dll的功能主要是连接远程攻击者服务器,接受指令并创建相应进程。

Lab1-2

1.将文件上传至http://www.virustotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
显示upx加壳,并且可能是下载器。用StudyPE的段也表明是UPX加壳。
在这里插入图片描述
在这里插入图片描述
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
CreateService会创建服务对象。InternetOpenUrl会通过url连接资源

CreateService是一个创建一个服务对象,并将其添加到指定的服务控制管理器数据库的函数。
SC_HANDLE CreateServiceA(
  SC_HANDLE hSCManager,
  LPCSTR    lpServiceName,
  LPCSTR    lpDisplayName,
  DWORD     dwDesiredAccess,
  DWORD     dwServiceType,
  DWORD     dwStartType,
  DWORD     dwErrorControl,
  LPCSTR    lpBinaryPathName,
  LPCSTR    lpLoadOrderGroup,
  LPDWORD   lpdwTagId,
  LPCSTR    lpDependencies,
  LPCSTR    lpServiceStartName,
  LPCSTR    lpPassword
);
StartServiceCtrlDispatcherA:将服务进程的主线程连接到服务控制管理器,这使得线程成为调用进程的服务控制调度程序线程。
BOOL StartServiceCtrlDispatcherA(
  const SERVICE_TABLE_ENTRYA *lpServiceStartTable
);
InternetOpenUrl:通过FTP或者http url打开资源
void InternetOpenUrlA(
  HINTERNET hInternet,
  LPCSTR    lpszUrl,
  LPCSTR    lpszHeaders,
  DWORD     dwHeadersLength,
  DWORD     dwFlags,
  DWORD_PTR dwContext
);
InternetOpen:初始化一个应用程序来使用WinNet函数
void InternetOpenA(
  LPCSTR lpszAgent,
  DWORD  dwAccessType,
  LPCSTR lpszProxy,
  LPCSTR lpszProxyBypass,
  DWORD  dwFlags
);

4.有哪些基于主机或基于网络的痕迹,可以用来确定被这个恶意代码所感染的机器?
有一个URL:http://www.malwareanalysisbook.com。可以通过与该URL的流量来确定是否被感染。
在这里插入图片描述

Lab1-3

1.将文件上传至http://www.virustotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
FSG加壳。
在这里插入图片描述
利用OD插件ollydump进行脱壳
在这里插入图片描述
在这里插入图片描述
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
有一个网页链接:http://www.malwareanalysisbook.com/ad.html 。下面应该是初始化一个ole COM对象,具体有什么用也不是很清楚。
在这里插入图片描述

OleInitialize是一个Windows API函数。它的作用是在当前单元(apartment)初始化组件对象模型(COM)库,
将当前的并发模式标识为STA(single-thread apartment——单线程单元),
并启用一些特别用于OLE技术的额外功能。除了CoGetMalloc和内存分配函数,
应用程序必须在调用COM库函数之前初始化COM库。
HRESULT OleInitialize(
  LPVOID pvReserved
);
CoCreateInstance 用指定的类标识符创建一个Com对象,用指定的类标识符创建一个未初始化的对象
HRESULT CoCreateInstance(
  REFCLSID  rclsid,
  LPUNKNOWN pUnkOuter,
  DWORD     dwClsContext,
  REFIID    riid,
  LPVOID    *ppv
);
The variant to initialize.
void VariantInit(
  VARIANTARG *pvarg
);

Lab1-4

1.将文件上传至http://www.virustotal.com进行分析并查看报告。文件匹配到了已有的反病毒软件特征吗?
报毒,有一个报了下载器
在这里插入图片描述
3.有没有任何导入函数能够暗示出这个程序的功能?如果是,是哪些导入函数,它们会告诉你什么?
前面三个API和程序权限相关。后面WinExec用来执行可执行文件,并且有资源的相关操作。
在这里插入图片描述
5.有哪些基于主机或基于网络的迹象,可以用来确定被这个恶意代码感染的机器?
wupdmgr.exe、winup.exe这两个文件比较可疑。 psapi.dll是Windows系统进程状态支持模块。
在这里插入图片描述
6、这个文件在资源段中包含一个资源。用ResourceHacker工具来检查资源?
很明显包含了一个PE文件。
在这里插入图片描述
分析一下保存的resource.bin。明显是个下载器,从http://www.practicalmalwareanalysis.com/updater.exe下载保存为winup.exe和wupdmgrd.exe
在这里插入图片描述
在这里插入图片描述

总结

静态分析恶意程序的简单步骤

  1. 可以先用在线网站进行检查,是否与已存在的恶意程序相同。如果相同,可以查看相关的文档和博客
  2. 如果程序已经加壳需要对程序进行脱壳
  3. 查看文件的导入和导出,猜测大概功能(文件遍历、注册表修改、互斥体创建、网络连接、进程创建、资源释放)
  4. 查看字符串,释放有敏感字符(url、文件名、某些库的语句)
  5. 对程序进行分析

先挖个坑,之后有空把常见脱壳办法记录一下。VMP也学一下。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值