学习笔记-第一章 恶意代码分析实战
第一章
从可执行文件提取有用信息的多种方法,包括以下技术:1.使用反病毒软件来确认程序样本的恶意性;2.使用哈希来识别恶意代码;3.从文件的字符串列表,函数和文件头信息中发掘有用信息。字符串包括 ASCII 和Unicode俩种编码加壳 混淆之后的程序字符串可供打印的字符串会减少。链接库与函数 通过导入表可以帮助我们了解链接那些代码库
1.6.2 常见的dll程序Kernel32.dll 常见的dll,它包含核心系统功能,如访问内存,文件,硬件等等Advapi32.dll 对核心windows组件的访问,比如服务管理器,注册表User32.dll 包含所有用户界面组件,如按钮,滚动条,以及响应程序操作的组件Gdi32.dll 图形显示和操作的函数Ntdll.dll windows内核的接口,kernel32.dll间接导入,如果一个可执行文件导入了这个文件,这意味作者企图使用那些不是正常提供给windows程序使用的函数。一些如隐藏功能和操作进程等任务会使用这个接口Wsock32.dll和Ws2_32.dll 俩个联网的dll,访问其中任一个的程序非常可能链接网络,或者执行和网络相关的任务。Wininet.dll 更高层次的网络函数, 如FTP,HTTP,NTP等协议。函数命名约定后面加A或者W表明只是可以接受字符串的参数,搜索api的时候可以去掉1.6.4 导出函数dll导出,可以被其他程序调用,
课后作业
Lab 1-1
这个实验使用Lab01-01.exe和Lab01-01.dll文件,使用本章描述的工具和技术来获取关于这些文件的信息。
问题
1.将文件上传至 virusTotal.com进行分析查看报告,文件匹配到已有的反病毒软件的特征吗?
A:可以成功匹配到反病毒的特征
2.这些文件是什么时候编译的?
A:通过查看pe文件头可以查看编译时间。
3.这俩个文件中是否存在迹象说明它们是否被加壳或混淆了?如果是,这些迹象在哪里?
A:经过exeinfo pe查看之后没有发现加壳迹象。
4.是否有导入函数显示出了这个恶意代码是做什么的?如果是,是那些导入函数?
A:通过exeinfo pe查看导入函数发现调用 api
<1> CreateFileA 创建文件
<2> CopyFileA 复制文件
<3> FindFirstFileA 查找文件
推测这个exe可能具有自我复制的能力
查看dll的导入函数发现 ws2_32.dll 经过学习发现这个动态链接库和网络有关系。
查看 kernel32.dll 发现
<1> CreateProcessA 创建进程
<2> CreateMutexA 创建互斥量
<3> CloseHandle 关闭句柄
5.是否有任何其他文件或基于主机的迹象,让你在受感染系统上查找?
A:搜索Lab01-01.exe的字符串可以查看到 kerne132.dll 推测可能是伪装成这个动态链接库来运行us
搜索Lab01-01.dll的字符串可以查看到exec推测可能是执行命令有关,sleep推测可能是让程序休眠
6.是否有基于网络的迹象,可以用来发现受感染机器上的这个恶意代码?
A:搜索Lab01-01.dll的字符串可以查看到一串ip地址, 127.26.152.13 推测是要访问这个ip地址。
7.你猜这些文件的目的是什么?
A:将自己伪装到系统目录下,创建进程访问ip地址,可以去下载木马并执行获取系统的会话。
Lab 1-2
分析Lab01-02.exe文件
问题
1.将Lab01-02.exe文件上传至 VirusTotal.com进行分析并查看报告,文件匹配到了已有的反病毒软件特征吗?
A:可以成功匹配到反病毒的特征
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果文件被加壳,请进行脱壳,如果可能的话。
A:使用esp定律脱壳。
通过esp突变定位查找入口
jmp到入口点
3.有没有任何导入函数能够暗示这个程序的功能?如果是,是那些导入函数,它们会告诉你什么?
查看脱壳之后的导入表,发现4个dll。
<1>CreateServiceA 创建一个服务
<2>StartServiceCtrlDispatcherA 连接主线程作为服务的管理者 (查看英文文档,翻译的可能不太好)
<3>GetModuleFileNameA 获取模块的文件名
<4>OpenMutexA 打开互斥量
<5>CreateMutexA 创建互斥量
<6>CreateThread 创建线程
wininet.dll
<7>InternetOpenUrlA 打开一个url链接
<8>InternetOpenA 初始化一个应用程序
4.哪些基于主机或基于网络的迹象可以被用来确定被这个恶意代码所感染的机器?
A:通过查看字符串发现 ie8.0 和一个网站推测是使用ie打开这个网站。
Lab 1-3
分析Lab01-03.exe文件
问题
1.将Lab01-03.exe文件上传到VirusTotal.com 进行分析并查看报告,文件匹配到已有的反病毒软件特征吗?
A:可以成功匹配到反病毒的特征
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果文件被加壳,请进行脱壳,如果可能的话。
A:使用peid查壳发现是FSG加壳,使用olldbg简单脱壳。 如果需要继续正常运行,还需要修复导入表。
<1>查看加壳信息
<2>通过下esp断点发现长跳转,猜测跳转到入口
<3>右键,从目标中删除代码分析查看有明显的入口特征
3.有没有任何导入函数能够暗示这个程序的功能?如果是,是那些导入函数,它会告诉你什么?
A:查看导入表发现ole32.dll
<1>OleInitialize 和模块初始化有关
4.有哪些基于主机或基于网络的迹象,可以被用来确定被这个恶意代码所感染的机器?
A:上图,使用查看字符串发现一个网站,推测是会访问这个网站。
Lab 1-4
分析Lab01-04.exe文件
问题
1.将Lab01-04.exe文件上传至 VirusTotal.com进行分析并查看报告,文件匹配到了已有的反病毒软件特征吗?
A:可以成功匹配到反病毒的特征
2.是否有这个文件被加壳或混淆的任何迹象?如果是这样,这些迹象是什么?如果该文件被加壳,请进行脱壳,如果可能的话。
A:使用exeinfo pe没有发现加壳迹象。
3.这个文件是什么时候被编译的?
A:使用PETools 发现文件头的时间是2019-8-30不符合当前的时间,推测是被修改过的信息。
4.有没任何导入函数能够暗示出这个程序的功能?如果有,是那些导入函数,它们会告诉你什么?
A:使用exeinfo pe 查看导入表发现
<1>WinExec 和执行命令有关的函数
<2>WriteFile 写入文件
<3>CreateFileA 创建文件
<4>GetCurrentProcess 获取当前的进程
<5>OpenProcess 打开进程
ADVAPI32.dll
<6>AdjustTokenPrivileges 提升权限
<7>LookupPrivilegeValueA 查看权限
推测可能会将程序提权,然后执行某些指令或者文件。
5.有哪些基于主机或基于网络的迹象,可以被用来确定被这个恶意代码所感染的机器?
A:没有查看隐藏资源仅仅查看字符串还不能发现和网络有关的代码。
查看隐藏资源之后发现通过一个网站来下载upater.exe这个程序。
查看隐藏资源的导入表发现
<1>URLDownloadToFileA 通过URL来下载文件
<2>WinExec 执行命令
<3>GetWindowsDirectoryA 获取系统的路径
查看字符串推测可能将下载的程序伪装成wupdmgrd.exe 伪装在system32目录下来运行。
脱壳之后的程序
6.这个文件在资源段中包含一个资源,使用Resource Hacker工具来检查资源,然后抽取资源,从资源中你能发现什么吗?
使用Resource Hacker打开发现资源,然后一个可执行程序。通过petools查看文件头,发现dll没有打勾。
学习笔记-第一章 恶意代码分析实战相关推荐
- 学习笔记-第九章 恶意代码分析实战
第九章 OllyDbg 1.加载恶意代码直接加载可执行文件,甚至dll程序.如果恶意代码已经在你的系统上运行,你可以通过附加进程的方式调试它.另外,ollydbg是一个灵活的调试系统,可以使用命令行选 ...
- 学习笔记-第十四章 恶意代码分析实战
第十四章 恶意代码的网络特征 1.网络应对措施. 网络行为的基本属性包括IP地址,TCP端口,以及流量内容等,网络和安全 设备可以利用它们,来提供网络应对措施.根据IP地址和端口,防火墙和路由器可以限 ...
- 学习笔记-第十二章 恶意代码分析实战
第12章 隐蔽的恶意代码启动 1.启动器启动器是一种设置自身或其他恶意代码片段以达到即使或将来秘密运行的恶意代码.启动器的目的是安装一些东西,以使恶意行为对用户隐蔽.启动器经常包含它要加载的恶意代码. ...
- 网安--第七章 恶意代码分析与防治
第7章 恶意代码分析与防治 内容提要 ◎ 恶意代码的发展史和恶意代码长期存在的原因 ◎ 恶意代码实现机理.定义以及攻击方法 ◎ 恶意代码生存技术.隐藏技术,介绍网络蠕虫的定义以及结构 ◎ 恶意代码防范 ...
- MS08067 第一期 “恶意代码分析”实战班 正式开班~
文章来源|MS08067安全实验室 恶意代码分析实战班 恶意代码分析的分类: 恶意代码分析也可作为单独的安全专业类别来看待,不过总体是偏逆向方向的,希望的受众是逆向相关的就行了,比如以前只会逆向但是不 ...
- 恶意代码分析实战Lab1
第一章静态分析基础技术 恶意代码分析实战 恶意代码样本下载 1.1反病毒引擎扫描 1.2哈希值 1.3查找字符串 1.4加壳与混淆恶意代码 1.5PE文件格式 1.6链接库与函数 1.7静态分析技术实 ...
- 《Go语言圣经》学习笔记 第一章 Go语言入门
Go语言圣经学习笔记 第一章 Go语言入门 目录 Hello, World 命令行参数 查找重复的行 GIF动画 获取URL 并发获取多个URL Web服务 本章要点 注:学习<Go语言圣经&g ...
- PhalAPI学习笔记 ——— 第一章自定义HelloWorld接口
PhalAPI学习笔记 --- 第一章自定义HelloWorld接口 前言 自定义接口 项目实例 结果 分布解析 结束语 前言 公司业务需要转学PHP,而PHP中一个功能强大且生态链完整的PHP接口框 ...
- 恶意代码分析实战-通过IDA对恶意代码进行静态分析(Lab05-01.dll)
本文章为<恶意代码分析实战>的题目答案解析以及个人的一些理解,将通过一下问题对恶意代码Lab05-01.dll进行分析: D1lMain的地址是什么? 使用Imports窗口并浏览到get ...
最新文章
- Android中怎么使图片显示
- 【Python】青少年蓝桥杯_每日一题_3.27_画多个正五边形图案
- JS组件系列——自己动手扩展BootstrapTable的 冻结列 功能:彻底解决高度问题
- Fast R-CNN论文详解
- 人工智能工程师需具备的技能_2020年软件测试工程师需要具备的技能--需要学什么--面试题有哪些(灵魂拷问)...
- 苹果屏幕供应商JDI正寻求中国投资 因国内面板厂商正在崛起
- 数据库镜像怎么还原数据库_镜像数据库上的日志传送
- 业务重点-实现一个简单的手机号码验证
- masm5安装教程_小编为你演示win7系统使用masm5 0的操作步骤【详细说明】的恢复步骤...
- pat乙级【数列的片段和 (20分)】测试样例修改(第二个测试点)
- 自然语言处理是什么?学习自然语言处理(NLP)
- 一些个人总结(2008)
- situ课题组工作站神经网络训练速度测评
- 【PID】数字式 PID 控制算法、程序结构
- H5中 JS 禁用安卓手机物理返回键 , 微信浏览器中也支持
- .net4.0注册到IIS ,重新注册IIS ,iis注册
- springboot高级篇(认证,授权)
- 02-ROS的工程结构
- springboot整合mybatis错误 Invalid bound statement (not found): com.yuan.mapper.UserMapper.getUserList
- JS判断当前是否是 苹果 IOS 环境
热门文章
- Cordova实现模仿微信摇一摇(简单版)
- “linux性能”工具集助力分析优化Linux
- python子类与父类属性重名_9.6.子类调用父类同名属性和方法
- 山西大学计算机学院复试,2019山西大学计算机与信息技术学院硕士研究生复试录取细则...
- CAD创建面域的方法
- @InitBinder 注解的使用
- AI-制作剪纸投影立体效果
- mvn dependency:tree查看jar包间接依赖
- Android 学习 之 Android 4.0 平台
- 第五人格怎么维护服务器,第五人格怎么知道自己在那个服务器 | 手游网游页游攻略大全...