-
UID:17777
-
- 注册时间2007-05-02
- 最后登录2025-05-02
- 在线时间18636小时
-
- 发帖786303
- 搜Ta的帖子
- 精华0
- 飞翔币211574
- 威望215717
- 飞扬币2615136
- 信誉值8
-
访问TA的空间加好友用道具
- 发帖
- 786303
- 飞翔币
- 211574
- 威望
- 215717
- 飞扬币
- 2615136
- 信誉值
- 8
|
一、基本分析,并提取病毒样本,手工清理机器摘自百度百科:WannaCry(又叫Wanna Decryptor),一种“蠕虫式”的勒索病毒软件,大小3.3MB,由不法分子利用NSA(National Security Agency,美国国家安全局)泄露的危险漏洞“EternalBlue”(永恒之蓝)进行传播。勒索病毒肆虐,俨然是一场全球性互联网灾难,给广大电脑用户造成了巨大损失。最新统计数据显示,100多个国家和地区超过10万台电脑遭到了勒索病毒攻击、感染。勒索病毒是自熊猫烧香以来影响力最大的病毒之一。WannaCry勒索病毒全球大爆发,至少150个国家、30万名用户中招,造成损失达80亿美元,已经影响到金融,能源,医疗等众多行业,造成严重的危机管理问题。中国部分Windows操作系统用户遭受感染,校园网用户首当其冲,受害严重,大量实验室数据和毕业设计被锁定加密。部分大型企业的应用系统和数据库文件被加密后,无法正常工作,影响巨大。攻击特点:WannaCry利用Windows操作系统445端口存在的漏洞进行传播,并具有自我复制、主动传播的特性。被该勒索软件入侵后,用户主机系统内的照片、图片、文档、音频、视频等几乎所有类型的文件都将被加密,加密文件的后缀名被统一修改为.WNCRY,并会在桌面弹出勒索对话框,要求受害者支付价值数百美元的比特币到攻击者的比特币钱包,且赎金金额还会随着时间的推移而增加。 1.模拟真实场景,在虚拟机中运行样本 2.待病毒执行之后,观察可疑情况使用PCHunter工具查看进程,定位到进程文件,再结束病毒进程可疑进程判断依据:图标、文件名、文件路径 找到病毒所在位置,将其样本保存,再删除目录下的病毒程序 注:在病毒运行后,需观察病毒情况首先查看可疑进程,进程部分上文已经写出再查看启动项(注册表,计划任务等)注册表启动项有可疑进程 查看驱动,服务等可疑项未发现异常查看其他杂项,网络连接有可疑进程的网络连接,此处为未联网状态 连接网络后观察新的网络情况 3.提取样本将路径下文件提取到本地,并修改名称为WannaCryC:ProgramDataznemvazsnwpqy217@WanaDecryptor@.exe 改为 WannaCry4.样本概况文件: D:Desktop永恒之蓝WannaCry样本WannaCry大小: 3723264 bytes文件版本:6.1.7601.17514 (win7sp1_rtm.101119-1850)修改时间: 2017年5月13日, 13:55:05MD5: DB349B97C37D22F5EA1D1841E3C89EB4SHA1: E889544AFF85FFAF8B0D0DA705105DEE7C97FE26CRC32: 9FBB1227①获取WannaCry程序信息使用PEID工具获取病毒信息,可以发现病毒程序未加壳,版本信息为VC++6.0 查看其目录信息,因为是exe程序所以没有导出表,所以重点观察一下导入表和资源表 先大致观察主要的DLL信息 其中KERNEL32.DLL中可以观察到对资源的相关操作,这也是病毒程序中比较关键的信息 使用ResourceHacker工具观察病毒资源信息,在资源中发现了PE文件,将其资源R保存一份,命名为WannaCry_R.exe 使用PEID工具的插件Krypto ANALyzer,检测病毒程序使用了哪些算法 点击每一行的数据即可查看相关的信息算法信息:AES,微软加密API,ZLIB库 ②获取WannaCry_R程序信息简单观察一下刚才从资源信息中导出的WannaCry_R程序可以看到这个程序中仍然有一些资源相关的操作,以及创建进程,服务、注册表相关的操作 同样使用ResourceHacker工具观察WannaCry_R资源信息,在资源中发现了PK文件,即压缩包,将其资源XIA保存一份,命名为WannaCry_XIA.zip 解压WannaCry_XIA.zip,发现文件都被加密了,需要密码 5.手工清理机器①结束可疑进程②删除可疑进程启动项③删除病毒程序在C:ProgramData目录下创建的文件夹④删除病毒程序生成的@Please_Read_Me@.txt、@WanaDecryptor@.exe以及.WNCRY文件二、行为分析,获取病毒行为1.由于之前对病毒样本进行了一系列操作,所以将虚拟机还原快照,重新在虚拟机中运行病毒程序,使用火绒剑工具监控病毒样本的运行,待病毒执行一段时间后,分开查看病毒的行为。分析监控到的日志,主要观察的点:①文件操作,主要看文件创建、修改、删除等操作②注册表操作,主要看注册表设置、创建等操作③进程操作,主要看创建进程、写入内存等操作④网络操作,主要看网络连接地址、IP等信息⑤其他行为,以及观察病毒样本运行后的反应分析样本的行为,尽可能发现恶意行为。开启火绒剑监控样本运行 ①观察文件操作,主要观察文件的写入操作,这个病毒程序由于对文件的操作较多,所以都观察一下,避免遗漏 ②观察注册表操作,主要观察设置注册表的操作,这里勾选设置注册表项值 病毒程序自己创建了一些注册表项,并设置了一些信息 基本都是一些网络相关的设置操作 ③观察进程操作因为进程现在还不太好判断,所以进程相关的所有操作都先看一下 ④观察网络操作,这里能监控的数据不多,有可能会有遗漏可以发现网络连接的操作相当的多,且全都在连接445端口 ⑤观察其他行为行为监控属于火绒剑这个工具特色的一种功能,这里将常见的一些恶意代码行为进行了总结 执行监控可以观察病毒程序执行了哪些进程,加载了哪些模块的操作 分析情况总结:分析监控的日志以及自行观察操作之后,可以分析出样本的恶意行为:1.自我复制样本到C盘:C:ProgramData目录下,启动C:ProgramData@WanaDecryptor@.exe(即病毒程序)2.在程序目录下创建@Please_Read_Me@.txt、@WanaDecryptor@.exe以及.WNCRY文件3.在C:ProgramData目录下创建xxx文件夹(文件名随机)4.设置注册表启动项为"C:ProgramDataznemvazsnwpqy217tasksche.exe"5.自己创建了一些注册表的项,在其中写入了很多信息HKEY_LOCAL_MACHINESOFTWAREMicrosoftTracingWannaCry_RASAPI32HKEY_LOCAL_MACHINESOFTWAREMicrosoftTracingWannaCry_RASMANCSHKEY_USERS.DEFAULTSoftwareMicrosoftWindows NTCurrentVersionNetworkLocation Awareness6.不断向445端口发起网络连接三、详细分析病毒代码,获取行为的恶意代码通过行为分析之后,可以知道恶意代码的一些恶意行为,想要获取更加详细的行为需要使用IDA或是OD分析样本。使用IDA打开病毒主体程序进行分析使用F5将其转换为伪代码,简单分析OEP处代码OEP处代码 OEP代码分析过程:判断参数是否大于1,若大于1则进入sub_407FA0函数,不大于1则进入sub_407F20函数所以OEP处函数可以分为两部分: 首先分析不大于1(<2)的情况,则进入sub_407F20函数sub_407F20函数分析 进入sub_407F20函数后内部拥有sub_407C40、sub_407CE0两个函数,自上而下进行分析sub_407C40函数分析函数功能为以服务的方式启动自身,且函数内部将参数变为3个,使得判断信息改变 sub_407CE0函数分析其函数功能为在系统目录C:WINDOWS下创建tasksche.exe程序并启动,且将其移动到C:WINDOWSqeriuwjhrf,但第一次移动时由于程序还未创建,会导致移动失败 接下来分析大于1(>=2)的情况,遵循自上而下的原则,先进入sub_407FA0函数,此函数功能比较简单,就是更改服务的可选配置参数。 再分析服务的回调函数sub_408000,此函数是该病毒程序的关键函数sub_408000函数分析函数功能为实现病毒网络传播,其中主要利用445端口,获取局域网网IP地址,攻击局域网;构造随机的外网地址,测试是否能连接外网445端口,如果连接成功,则进行攻击。 sub_407BD0函数分析此函数内拥有三个函数,sub_407B90函数功能为获取一个密钥容器 CSP,将PE文件加载到内存中;sub_407720函数为开启局域网漏洞攻击;sub_407840函数为随即攻击外网服务IP地址 sub_407B90函数分析sub_407B90函数在初始化网络环境后会判断返回值,如果成功则返回0,关键的执行函数为sub_407620函数与sub_407A20函数 分别进入sub_407620函数与sub_407A20函数进行分析sub_407620函数,其功能为获取一个密钥容器 sub_407A20函数其功能主要为将PE文件加载到内存中,此处将40B020、40F080两个位置的内容拷贝出来并保存 使用PEID观察刚我们导出的40B020.exe与40F080.exe两个程序40B020程序分析:可以发现40B020这个程序其实是一个DLL 大致观察一下导入导出表的信息即可 40F080程序无法打开,暂搁置之后是一些获取文件大小、打开文件的操作 sub_407B90函数汇总 sub_407720函数分析其功能为开启局域网漏洞攻击,主要的两个函数为sub_409160函数,通过网卡设备获取IP地址列表,以及sub_4076B0函数开启一个线程,连接测试这个IP的445端口。 进入sub_409160函数大致分析后可以判断该函数的功能是获取网卡上的IP地址 使用OD动态调试,在IDA中创建map文件,使用插件LoadMapEx加载到OD中,Ctrl+A分析代码,找到Main函数并进入 来到连接服务的位置,因为我这里连接了网络,所以需要修改跳转让其继续运行 进入sub_408090函数后,运行步过GetModuleFileNameA函数,使其获取一下文件 之后直接跳转到sub_407720函数的位置,并设置其为新的EIP,单步运行,进入sub_409160函数 EDX中保存了我们的IP地址 EAX保存的是子网掩码 Win+R运行,打开cmd,输入ipconfig命令,查看本地连接状态 故由此可知inet_addr(v5 + 4)为IP,inet_addr(v5 + 20)为子网掩码 sub_407480函数功能为连接局域网IP 445端口 sub_407540函数,功能汇总为传播病毒,利用漏洞进行攻击其中sub_401980函数为进行局域网的传播 sub_407720函数汇总 sub_407840函数分析其函数功能为随机攻击外网服务IP地址 其中sub_407660函数的功能就是获取一个随机数 将随机数组合为IP后尝试连接,直至连接成功跳出循环,否则会一直尝试连接,直至成功。之后会不断尝试修改IP子网段第四段的值,尝试连接,若连接失败后会跳转到LABLE_20 跳转到LABLE_20后又会跳转到LABLE_21,运行后又跳转回LABLE_23继续执行 sub_407840函数汇总 病毒程序主体汇总: WannaCry_R.exe程序分析(tasksche.exe)设置注册表,释放资源,将目录隐藏,从exe中找到密钥,对t.wnry文件进行解密,解密完成后返回一个PE文件, 这个PE文件是一个DLL文件,加载DLL文件,并申请空间,记录PE信息,遍历DLL的导出表,找到TaskStart这个函数,并调用 sub_401225函数 — Rand_Name,随机生成服务名 sub_401B5F函数 — Create_server_dir,创建服务目录 sub_401AF6函数 — create_dir主要就是为了创建目录 sub_401F5D函数,函数功能创建服务,启动程序;以服务的方式启动自身,直接运行程序两种方法,以达到启动程序的目的 sub_401CE8函数 — create_server,功能为创建服务 sub_401EFF函数 — create_mutex,功能为创建一个互斥体 sub_401064函数 — exec_shell,就是为执行命令 sub_4010FD函数 — reg_setOrget,根据a1传进来的值判断是获取注册表还是设置注册表 sub_401DAB函数 — unzip_src sub_4075AD函数 — unzip,经分析后发现传进去的参数为WannaCry_XIA.zip的解压密码 sub_401E9E函数 — write_c_wnry,在c.wnry文件中写入比特币钱包地址 sub_401000函数 — c_wnry_readOrwrite,读取或者写入c.wnry文件 使用OD动态调试,同样在IDA中创建map文件,使用插件LoadMapEx加载到OD中,Ctrl+A分析代码,找到Main函数并进入  sub_40170A函数 — get_api,获取一些API sub_4012FD函数为构造函数,进行初始化操作 构造函数和析构函数都是成对出现的,找到sub_40137A函数为析构函数sub_401437函数 — gCryptImportKey,函数功能导入密钥,申请空间 sub_401861函数 — g_CryptImportKey,导入密钥 sub_4014A6函数,解密t.wnry文件内容,返回PE文件  将PE文件整个拷贝出来后粘贴到以010Editor打开的新文件中 sub_4021BD函数 sub_4021E9函数  
|