熊猫烧香病毒分析报告

熊猫烧香

基本信息

  • 报告名称:熊猫烧香病毒报告

  • 作者:Pawn

  • 文件名:xiongmao.exe

  • 样本类型:EXE文件

  • 样本文件大小:30,001 字节

  • 样本文件的MD5校验值:512301c535c88255c9a252fdf70b7a03

  • 样本文件SHA1校验值:ca3a1070cff311c0ba40ab60a8fe3266cfefe870

  • 壳信息:FSG 2.0

  • 相关漏洞:弱密码

基础动静态分析

PEiD信息

程序加了壳,壳为FSG 2.0

脱壳

使用OllyDBG插件 OllyDump可以轻松找到OEP为 0040D278,使用ImpREC修复注册表发现只有kernal32.dll,可能是自动修复导入表失败

所以查看脱壳存根构建的IAT

根据FSG2.0壳的特点 搜索JMP DWORD PTR DS:[EBX+0xC] 指令(一般为跳转OEP指令),设置断点,向上寻找LoadLibrary和GetProcAddress函数。

可以看到 导入表 不同库函数之间被填充为了7FFFFFFF,导致自动修复IAT失败。所以将7FFFFFFF填充为00000000。使用OllyDump脱壳修复导出表

导入表函数

使用Dependency walker查看导入表函数

KERNEL32.DLL中导入了关于文件读写的API函数,猜测病毒创建了文件,并写入。

ADVAPI.DLL中导入了关于注册表操作的相关API函数,猜测病毒修改了注册表

WS2_32.DLL和WININET.DLL提供了与网络操作相关的API函数,猜测函数连接外部网络

使用windows xp(service pack3)系统兼容模式启动

发现恶意代码关闭了安全中心服务

运行后发现多了一个进程spo01sv.exe

在C:\Windows\System32\drivers\目录下,创建了spo0lsv.exe

查看spo0lsv的md5值,发现和xiongmao.exe相等,所以推测病毒将xiongmao.exe复制到此目录下

使用regshot工具对比运行前后的注册表变化(详见/熊猫烧香分析报告.asset/运行前后注册表对比.txt)

  • 注册表删除的键

此注册表键代表了windows的安全防护服务,恶意代码关闭了windows的安全防护服务

  • 注册表添加的键

Tracing键是跟踪日志和跟踪文件的路径、文件名和其他设置。

  • 注册表添加的键值

恶意代码设置HKU\S-1-5-21-3607991960-4000027800-3246950079-1000\Software\Microsoft\Windows\CurrentVersion\Run\svcshare键值为"C:\Windows\system32\drivers\spo0lsv.exe" 添加了自启动功能

  • 注册表删除的键值

可以看到spo0lsv.exe尝试删除了很多自启动项,通过检索这些名称,推测为恶意代码会删除和杀毒软件相关得自启动项

Internet Settings应该是浏览器的一些信息

文件操作

  • 恶意代码创建了大量的desktop_.ini文件,里面存储了时间信息

  • 恶意代码打开了大量的exe文件,结合观察到的一些文件图标变为“熊猫烧香”的图标,推测为恶意代码便利文件目录并将exe等文件图标改为“熊猫烧香”的图标

  • 恶意代码打开了cmd.exe,可能执行了一些命令

网络操作

查看网络操作可以看到,因为本机的ip地址为192.168.40.129所以可以看到恶意代码尝试连接局域网的其他主机。

进程和线程信息

只看到恶意代码创建了一些线程,没有特别有用的信息

其他

尝试打开任务管理器和注册表闪退,推测恶意代码阻止用户打开windows自带的工具

总结

  • 恶意代码首先将自身复制到系统C:\Windows\System32\drivers\目录下,并设置了自启动注册表键值

  • 恶意代码关闭了安全防护的服务

  • 恶意代码将杀毒软件的开机启动键值删除

  • 恶意代码阻止用户打开任务管理器和注册表等

  • 恶意代码连接局域网

  • 恶意代码遍历文件系统,将一些文件的图标改为“熊猫烧香”图标,如exe文件,每个目录下创建desktop_.ini文件,记录时间信息

  • 恶意代码创建了关于自身运行的相关注册表键

详细分析

静态分析设置和技巧

首先脱壳后发现恶意代码是使用Delphi 6.0-7.0编写的恶意代码,Delphi使用fastcall调用约定,但是与Windows的fastcall略有不同,参数顺序为eax为第一个参数、edx为第二个参数、ecx为第三个参数,大于3个的参数通过堆栈传递,大于三个的堆栈顺序从左到右依次压栈,堆栈由被调用者恢复。我们使用IDR和IDA PRO对此恶意代码进行反汇编分析。

对ida进行一些设置:

  • Options–>Compiler:Compiler(Delphi)、Calling convention(FastCall)

  • View–>Open Subviews–>Signatures–>Apply new Signatures:选择delphi相关Signatures

恶意代码初始化

程序开始OEP调用了InitExe和LStrAsg函数,应为一些初始化函数。

解码

函数有三个参数并将40D8A0处的数据,xboy,第一个局部变量。

进入00405250分析

结合Ollydbg和IDA分析,此函数为解密函数,将“xboy”和“'"++戊+缓"叛聋+肛+删"蚊苜+兆++*'”以某种顺序取字符异或,解密

解密后的字符串与*武*汉*男*生*感*染*下*载*者* 对比,相同则跳转,不同则退出。然后继续解密,对比,相同则跳转,不同则退出

综合查看start中所有流程,图中的三个call应该为病毒的主功能调用。我们先进入sub_40819C分析

主体功能函数 一

删除Desktop_.ini文件

首先判断通过程序的目录,查看目录下Desktop_.ini文件是否存在。有则执行

存在Desktop_.ini文件,则会更改文件属性为NORMAL,然后删除 Desktop_.ini

判断是否为被感染的程序

这一段代码内容一直没搞明白是什么内容,直到看到下图的的分支,我测试了源程序和C:\Windows\System32\drivers\spo0lsv.exe函数的分支都没有实现跳转,然后我测试了被感染文件的这个判断,发现执行了跳转,然后测试前面的程序的数据流,明白了Writre_PE_Dictionary函数的作用

被感染程序的特征码为类似

其实感染特征码为WhoBoy+源文件名+.exe+2+源文件大小+1

判断是否为C:\Windows\system32\drivers\spo0lsv.exe

将程序绝对地址转换为大写字符,然后与系统根目录路径cat上drivers\spo0lsv.exe(本系统为C:\Windows\System32)对比,然后有两条执行路径。

根据先前的基础分析,我们猜测

如果程序不是drivers\spo0lsv.exe则可能复制文件到此处,再运行;

如果程序是drivers\spo0lsv.exe则可能执行我们基础分析的相关功能;

不是感染文件且不是\spo0lsv.exe程序

首先判断系统是否纯在spo0lsv.exe进程,有则结束掉进程,然后复制spo0lsv.exe到C:\Windows\System32\drivers\目录下并运行。

查看C:\Windows\System32\driver目录下,发现了spo0lsv.exe函数验证猜想

其中@Judge_process_kill程序分析流程如下

将SPO0LSV.EXE与循环取出进程名对比,去除进程名有关的API函数为CreateToolhelp32Snapshot、Process32First、Process32Next等函数

然后改为分析系统目录下的spo0lsv.exe文件跳转到另一个分支,这个分支会和感染程序的分支汇合形成另一个分支

是dirvers\spo0lsv.exe

右边的分支直接清栈返回

是感染文件

感染后的文件由[ 病毒文件+原文件+感染特征值]组成。所以我们分析程序可知程序将原文件复制到一个新文件中,新文件与感染后的文件有相同的属性

之后,病毒在C:\Users\Pawn\AppData\Local\Temp下生成批处理块,格式为“数字+$$“,内容如下

`:try1

del "源程序绝对地址"

if exist "源程序绝对地址" goto try1

ren "源程序绝对地址+后缀名" "源程序名称"

if exist "源程序绝对地址+后缀名" goto try2

"源程序绝对地址"

:try2

del %0`

具体作用为

  • 删除位于 "源程序绝对地址" 的文件。

  • 如果文件被成功删除,执行下一步操作;如果删除失败,跳转到标签 ":try1" 重新执行删除操作。

  • 将 "源程序绝对地址+后缀名" 重命名为 "源程序名称"。

  • 如果重命名成功,执行下一步操作;如果重命名失败,跳转到标签 ":try2" 删除当前脚本文件。

  • 启动 "源程序"。

  • 删除当前脚本文件。

这条分支的作用是如果只是表面杀死病毒没有将所有文件恢复,运行未恢复的文件就会再次感染。

主体功能函数 二

三个call 分被为

  • 创建线程,本地感染

  • 使u盘等移动介质可以传播病毒

  • 连接局域网网络,传播病毒

第一个call,创建线程,本地感染

线程其实地址为 sub_40A48C,将盘符转化为字符串,遍历盘符,排除A和B盘符

遍历所有文件 感染

Infect函数分析

如果为目录文件则判断目录名称,以排除一些名称

排除WINDOWS、WINNT、system32、Documents and Settings 、 System Volume Information 、Recycled 、 Windows NT 、 WindowsUpdate 、Windows Media Player 、 Outlook Express、Internet Explore 、 NetMeeting 、Common Files 、Complus Applications 、Common Files 、 Messenger 、InstallShield Installation Information等目录

判断Desktop_.ini文件是否存在来判断是否感染

不存在则创建Desktop_.ini

Desktop_.ini写入日期

Desktop_.ini存在则更新日期

如果为普通文件,则先判断是不是GHO文件,如果为GHO文件则删除

然后判断是不是setup.exe或者NTDETECT.COM文件,是则跳过

然后判断感染文件类型程序,会判断后缀名是否为EXE、SCR、PIF、COM文件,是的话则执行Infect_file函数感染

进入Infect_file函数

首先判断程序是否在执行,执行中退出,然后判断文件是否为病毒自身,如果为自身退出;然后将原文件和爆破字典写入内存以便感染,然后判断是否已经感染,如果已经感染则退出

否则执行感染过程

首先复制病毒本体,

然后生成感染特征值,连接病毒文件和原文件,再连接感染特征值

判断感染类型,判断是否为htm、html、asp、php、jsp、aspx

是则执行感染函数Infect_Web_File

首先将要写入的内容解码,然后判断是否已经感染。

然后将上文的内容与\n和\r连接写入网页文件

第二个call,使u盘等移动介质可以传播病毒

设置了一个时间为1770h的ms的计时器,然后执行TimerFunc函数

TimeFunc函数

首先也是获得盘符并且跳过A、B盘符

然后判断setup.exe文件是否存在

不存在则创建,并复制病毒本体到setup.exe

存在则判断是否为病毒文件,不是则删除,并创建setup.exe并复制病毒本体

之后判断autorun.inf与setup.exe几乎一致,不过autorun.inf的内容为 [AutoRun]\r\nOPEN=setup.exe\r\nshellexecute=setup.exe\r\nshell\\Auto\\command=setup.exe\r\n

之后就是设置文件属性和退出

第三个call,连接局域网网络,传播病毒

函数创建了10个线程

线程起始地址

动态调试发现 call edx 的edx的值为40BA8C,跳转到 40BA8C查看

查看主函数功能

主功能函数

首先查看网络连接状态

尝试感染端口139和445

连接成功后感染

主体功能函数 三

函数设置了6个定时器

第一个定时器 1s 关闭杀毒软件,注册表添加病毒自启动

sub_406E2C创建了一个线程,会尝试关闭各种作者列举的杀毒软件和windows安全防护,与基础静态分析相符

第一个定时器比较简单,将C:\Windows\System\dirvers\spo0lsv.exe添加到

  • SOFTWARE\Microsoft\Windows\CurrentVersion\run

  • SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folde

即设置自启动和添加到受系统保护的文件

第二个计时器 1200s 下载文件,可能会二次感染其他病毒

创建的线程首先会冒充qq下载http://www/ac86.cn/66/up.txt

猜测将下载的文件解码然后拼接,运行某程序

第三个计时器 10s 关闭所有盘符的网络共享

创建了2个线程,第一个线程与第二个计时器的功能相同

第二个线程为cmd执行命令关闭所有盘符的网络共享

第四个计时器 6s 关闭安全服务,删除一些杀毒软件自启动

第四个计时器关闭了一些服务,删除了一些自启动注册表项,

第五个计时器 10s 解码一些网站,打开?

解码了一些网站,并下载一些内容?

第六个计时器 1800s 下载文件,与二一致

与第二个计时器类似 只不过下载http://update.whboy.net/worm.txt

总结

参考

  • delphi中的一些与字符串处理相关的函数:https://www.cnblogs.com/RbtreeLinux/articles/2353454.html

  • chatgpt

  • https://bbs.kanxue.com/thread-263407.htm#msg_header_h1_3

  • https://www.52pojie.cn/thread-1569939-1-1.html

  • https://blog.csdn.net/shufac/article/details/52071945

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14858.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人

Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人 1.ChatGPT Prompt Framework 看完基础篇的各种场景介绍后,你应该对 Prompt 有较深…

ChatGPT如何提升数据开发效率

目录 一、ChatGPT介绍 二、ChatGPT数据应用场景 A、Pyspark代码样例生成 B、Python设计模式推荐 C、Python代码修复能力 D、异常代码的检测​编辑 E、测试数据内容生成 F、数据分析能力 G、报告生成展示 三、结语 一、ChatGPT介绍 1、GPT是什么:大型语言…

《花雕学AI》用Edge和chrome浏览器体验GPT-4智能聊天的神奇免费插件,Sider – 聊天机器人的新选择

你有没有想过和人工智能聊天?你有没有想过用浏览器就能和GPT-4这样的先进的聊天机器人对话?如果你有这样的想法,那么你一定要试试Sider这个神奇的免费插件。 Sider(Sider – AI Sidebar)是一款基于ChatGPT的智能侧边栏…

家人们,我用ChatGPT来做减肥指引,分享下心得

据我的了解,解决减肥难题可以利用AI技术提供有效的解决方案。通过对个人身体数据和运动习惯的分析,AI能够为每个人量身定制最适合的运动计划。此外,AI还能够运用智能化的语音互动和数据反馈,为每个人提供个性化的运动指导和鼓励&a…

Python 使用chatGPT帮忙写一个有序集类 OrderedSet

需求:需要实现一个有序的集合,像python普通集合一样,除了 它是有序的 我这边穿插着使用了gpt3.5和gpt4,发现确实还是gpt4好用,一分钱一分货啊 问:我的要求是这样,data是一个集合,往里面放了2,…

ChatGPT帮忙出Scrath少儿编程的教程

最近在思考,如何做一份关于Scrath少儿编程的教程,既可以满足目前对小孩的教学内容,也可以做一份相对完善的教程,于是就与ChatGPT开始了一场简单的对话,其中只是初步的目录,如大家有兴趣可以帮忙转发&#x…

闲来无事,摸鱼时让 chatgpt 帮忙,写了一个 console 样式增强库并发布 npm

前端Q 我是winty,专注分享前端知识和各类前端资源,乐于分享各种有趣的事,关注我,一起做个有趣的人~ 公众号 点击上方 前端Q,关注公众号 回复加群,加入前端Q技术交流群 话不多说,直接…

三星被曝因ChatGPT泄露芯片机密!韩媒惊呼数据「原封不动」直传美国,软银已禁止员工使用...

点击上方“AI遇见机器学习”,选择“星标”公众号 第一时间获取价值内容 明敏 萧箫 发自 凹非寺 量子位 | 公众号 QbitAI 三星引入ChatGPT不到20天,就发生3起数据外泄事件?! 其中2次和半导体设备有关,1次和内部会议有关…

ChatGPT 泄露对话记录,CEO:开源库的错误

ChatGPT 泄露对话记录,CEO:开源库的错误 ChatGPT 会在界面左侧显示你过去与 AI 进行过的对话,并将内容保存在系统中,方便你时不时回顾之前的内容。只不过最近有用户发现,自己的聊天历史中显示了不曾发生过的对话内容&a…

总结吴恩达 ChatGPT Prompt 免费课程

吴恩达联合 OpenAI 官方,发布了免费的 ChatGPT Prompt 视频教程。 链接:https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines 视频纯英文,小姐姐的英伦腔,听得很舒服。 我看了第一集,讲了四个技巧&…

ChatGPT的好与坏

ChatGPT是一种人工智能语言模型,它在各种应用中被广泛使用。它的好处是,它可以提供快速、精准的答案,解决用户的问题,并提供各种信息和建议。ChatGPT的工作原理是基于先前的大量数据集和模式识别,所以它的回答具有很高…

最流行的 WebAssembly 语言,会是 JavaScript 吗?

对于网络平台而言,WebAssembly 的出现无疑是意义重大的,它能让各种语言编写的代码以接近原生的速度在 Web 中运行——那么在各种语言中,JavaScript 会是其中最流行的吗? 原文链接:https://thenewstack.io/will-javascr…

【ChatGPT】ChatGPT时代 —— 软件开发的末日来临了?

在这篇文章中,我将说明像 ChatGPT 这样的生成式人工智能 (GAI) 将如何在十年内取代软件工程师。 预测被离散化为 5 个阶段,总体轨迹趋向于完全接管。 但首先,一个简短的前言。 目录 1、关于AI的预测谬误 谬误一:AI只会取代脚本小子

chatgpt赋能python:Python编写聊天程序

Python编写聊天程序 Python是一种优秀的编程语言,常被用来开发网络应用程序。在这个不断发展的数字时代,人们越来越需要在线沟通工具来实现快速交流。像即时聊天这类工具已经成为生活中必不可少的组成部分。因此,在这篇文章中,我…

高考书单丨关于理想,我从来没选择放弃

高 考 主题书单 关于考试升学技巧 也关乎对大学教育的思考 近期,“男子为考清华复读14年”登上微博热搜,该男子名叫唐尚珺。据了解,今年是他复读的第14年,此次高考也是他参加的第15次高考。2009年,他参加了人生中第一场…

Jeff Dean万字总结!图解谷歌2022年AIGC、LLM、CV三大领域成就

本文来源 新智元 编辑:编辑部 【新智元导读】2022年,谷歌在ML领域取得了哪些新进展?Jeff Dean发万字长文总结。 2022年,谷歌在机器学习方面有什么进展? Google Research高级研究员兼高级副总裁Jeff Dean一文帮你总结…

Jeff Dean万字总结出炉!图解谷歌2022年AIGC、LLM、CV三大领域成就!

点击下方卡片,关注“CVer”公众号 AI/CV重磅干货,第一时间送达 点击进入—>CV微信技术交流群 转载自:新智元 【导读】2022年,谷歌在ML领域取得了哪些新进展?Jeff Dean发万字长文总结。 2022年,谷歌在机器…

超详超硬Jeff Dean万字总结火热出炉!图解谷歌2022年AIGC、LLM、CV三大领域成就

报道 编辑:编辑部 【导读】2022年,谷歌在ML领域取得了哪些新进展?Jeff Dean发万字长文总结。 2022年,谷歌在机器学习方面有什么进展? Google Research高级研究员兼高级副总裁Jeff Dean一文帮你总结! 昨天…

讯飞高管解读财报:追求高质量发展 持续促进人均效能提升

雷递网 雷建平 4月22日 科大讯飞(002230.SZ)日前发布2022年报及2023年一季报。财报显示,科大讯飞2022年营收188.2亿,较上年同期的183.14亿元增长2.77%;归母净利润为5.61亿元。 科大讯飞2023年第一季营收28.88亿&#x…

科大讯飞的2022:夯实“根据地”业务,以技术创新点燃大模型产业落地的“星星之火”...

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 4月20日晚,科大讯飞正式公布2022年度及2023年度第一季度业绩报告。财报数据显示,公司2022年度实现营业收入188.20亿元,同比增长2.77%,实现毛利76.84亿元,较上年增长…