蠕虫分析

简介: 简单看下报告的概要信息,有 Ramnit 标签。Ramnit 蠕虫是一种通过可移动驱动器传播的蠕虫。该蠕虫还可以作为后门,允许远程攻击者访问受感染的计算机,通常会寄生在用户的浏览器中,难以察觉,因此每天都有数以万计的用户受其困扰。


图:云沙箱报告截图

简单看下报告的概要信息,有 Ramnit 标签。Ramnit 蠕虫是一种通过可移动驱动器传播的蠕虫。该蠕虫还可以作为后门,允许远程攻击者访问受感染的计算机,通常会寄生在用户的浏览器中,难以察觉,因此每天都有数以万计的用户受其困扰。

上手之前准备工作要做足,先梳理下流程:

图:流程图

首先使用 PEid 查壳,发现具有 UPX 壳,UPX 壳比较好脱,T 友们可以自行脱壳。

过了一层壳之后,接着又是一段解密代码,一直走下去,最终又会回到 0×00400000 地址段中,你会发现,和源程序一样,是经过 UPX 加壳的。

依照同样的方法跳过 UPX 壳后,就进入到样本的主体程序。

样本首先会查询系统默认的浏览器路径,如果查询失败就使用IE浏览器(后期用来进行进程注入),如果两个方法都失败,就会退出程序。

通过检查互斥体 KyUffThOkYwRRtgPP 是否已经存在来保证同一时间只有一个实例在运行。

进程名校验,样本会首先判断自己的进程名是否为 DesktopLayer.exe,如果是的话,就退出此函数,如果不是,就会构造 c:program filesmicrosoft 目录,然后将自身拷贝的此目录下,并命名为 DesktopLayer.exe,然后启动此程序。

当自身进程名为 DesktopLayer.exe 时,将会对函数 ZwWriteVirtualMemory 进行 Inline Hook,回调函数如下:

接着创建进程,此进程为开头获得的浏览器进程,在进程创建时会调用 ZwWriteVirtualMemory 函数,而这个函数已经被 hook 并跳转到 sub_402A59,此函数的主要功能就是对启动的目标进程进行进程注入,并将一个 PE 文件写入目标进程,写入的 PE 文件原本是嵌入在自身文件中的。使用 16 进程程序可以发现,脱壳后的样本中嵌入的 PE。

注入完之后会还原 ZwWriteVirtualMemory 的代码。

经过这么多的操作,其实它的重点行为才刚刚开始。

使用 OD 附加到目标程序,经过几个函数的调用就会进入到嵌入的 PE 文件中,程序结构比较清晰。

创建不同的线程执行不同的功能,下面对其中几个比较重要的线程进行说明:

Sub_10007ACA:将自身文件路径写入注册表

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonUserinit,实现自启动。

Sub_1000781F:在 c:program filesInternet Explorer 下创建 dmlconf.dat 文件,并写入 FILETIME 结构体数据。

Sub_10005906:此线程没有被运行,不过通过对代码的静态分析,发现它会监听 4678 端口,等待连接。收到连接后会接受命令并执行对应的操作。所以猜测此线程为一个后门,用来接收攻击者的命令。

Sub_1000749F:此函数中会创建两个线程。

其中  Sub_10006EA8 用于感染 exe,dll,html,htm文件,总体思路都是将自身文件写入到目标文件中,例如下图感染的 htm 文件。写入的是一个 VB 脚本,变量 WriteData 存储的是一个 PE 文件。

受感染的 PE 文件会多处一个 rmnet 段。

Sub_10006EC2:感染可移动介质,他会将自身写入到可移动介质,并在目录下创建 autorun.ini 文件,然后写入如下数据:

[autorun]..action=Open..icon=%WinDir%system32shell32.dll,4..shellexecute=.RECYCLERS-1-7-42-5416413684-3444774702-722318625-0540AbxOgufK.exe..shellexplorecommand=.RECYCLERS-1-7-42-5416413684-3444774702-722318625-0540AbxOgufK.exe..USEAUTOPLAY=1..shellOpencommand=.RECYCLERS-1-7-42-5416413684-3444774702-722318625-0540AbxOgufK.exe

其中 AbxOgufK.exe 即为自身程序。分析过程中发现的域名 fget-career.com,经查询得知为恶意域名。


也可以直接查看分析报告,继续深度分析,报告地址如下:

fd6c69c345f1e32924f0a5bb7393e191b393a78d58e2c6413b03ced7482f2320

温馨提示:不要下载来历不明的软件,可能不经意间你的电脑就被监控了

相关文章
|
网络协议 Linux Android开发
探索eBPF:Linux内核的黑科技(下)
探索eBPF:Linux内核的黑科技
|
5月前
|
人工智能 测试技术 API
从 Apifox 到 Apipost:企业API开发工具迁移背后的深度剖析
近期调研发现,超65%的中大型开发团队正从Apifox迁移至Apipost。本文深入剖析背后原因,揭示Apipost在协作模式、数据管理、AI能力等方面的显著优势,展现其如何通过智能协同与全流程优化,重塑API开发效率与质量,引领行业工具变革趋势。
152 0
|
监控 测试技术 Docker
【步步惊心】Flask应用云端之旅:从本地调试到一键上线的终极秘籍!
【8月更文挑战第31天】本文详细介绍了将基于Flask框架的Web应用从本地开发环境部署到云平台的全过程。首先,通过示例代码展示了如何搭建本地环境并测试应用。接着,讲解了如何使用Docker构建生产环境镜像。最后,以Heroku为例,说明了如何将应用部署到云平台,并介绍了监控与维护的方法。通过本文的最佳实践,你可以轻松完成Flask应用的部署。
420 0
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
1115 59
|
Rust NoSQL Linux
Rocky Linux 9.5 正式版发布 - RHEL 100% 1:1 兼容免费发行版
Rocky Linux 9.5 正式版发布 - RHEL 100% 1:1 兼容免费发行版
1304 2
Rocky Linux 9.5 正式版发布 - RHEL 100% 1:1 兼容免费发行版
|
自然语言处理 关系型数据库 MySQL
match如何在mysql数据库里进行文本的相似度排序?
【9月更文挑战第1天】match如何在mysql数据库里进行文本的相似度排序?
407 1
|
Kubernetes 安全 搜索推荐
在K8S中,二进制与Kubeadm安装有何区别?
在K8S中,二进制与Kubeadm安装有何区别?
|
存储 缓存 API
OSS违规检测
本文汇总了OSS违规检测功能的常见问题
431 7
|
安全 前端开发 Java
保护你的应用:Spring Boot与JWT的黄金组合
保护你的应用:Spring Boot与JWT的黄金组合
355 0

热门文章

最新文章