0x00前言

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

分析工具:PEID、火绒剑、IDA、OD

分析环境:Win7 x86 Vmware

0x01样本信息

File name      DesktopLayer.exe

File Size  55 KB

File Type Win32 EXE

File Version:106.42.7

MD5: FF5E1F27193CE51EEC318714EF038BEF

SHA1: B4FA74A6F4DAB3A7BA702B6C8C129F889DB32CA6

CRC32: 40C57347

Packers: UPX 2.90

0x02样本分析

一、 脱壳

1.一层脱壳

样本被加了UPX 2.90壳。UPX壳最主要的目的是减小程序的体积,其特点是较高的压缩率和较快的解压速率,与TMD、VMP这类壳的设计理念完全不同,直接手动脱壳就可以了,其脱壳后的入口点模样如下:

2.二层脱壳

脱壳之后的跳转点并非OEP样本仍然压缩了大量的代码,深入分析之后,可以判断为是变形UPX壳。该变型壳首先解码UPX解码部分的代码,然后利用UPX的解码代码再次解码恶意功能的代码。解码代码解码完成后,会跳入该地址第二层的UPX继续执行,等二层UPX完成其解码之后,可以再次Dump,其最终的入口点如下:

二、 第一次执行分析

首先是获取测试机的默认浏览器及其位置,其获取方式是查找注册表中,HKCR\http\shell\open\command的键值:

此处默认的浏览器为C:\Program Files\Google\Chrome\Application\chrome.exe。而后会通过FindFirstFile()函数判断是否存在该文件如果不存在,那么会在几个默认位置进行查找使用IE浏览器(后期用来进行进程注入),如果两个方法都失败,就会退出程序:

接下来会创建互斥体,检验KyUffThOkYwRRtgPP 是否已经存在来保证同一时间只有一个实例在运行:

通过GetModuleFileName()函数获取自身执行体所在位置和文件名,将自身执行体的文件名与DesktopLayer.exe比较,然后会在C:\Program Files目录下,创建Microsoft文件夹。并将Csrv.exe重命名为DesktopLayer.exe,并复制到C:\Program Files\Microsoft文件夹下最后,调用CreateProcess()创建该进程:

创建该进程之后,程序就调用ExitProcess()退出了。

三、 第二次执行分析

通过比较确认名称为DesktopLayer.exe,程序改变了执行流程。将会对ntdll.dll中的ZwWriteVirtualMemory ()进行Hook操作:

调用CreateProcess()函数,启动根据通过查询注册表找到的chrome.exe进程:

Createprocess()函数内部会调用ZwWriteVirtualMemory()函数,从而执行其经过Hook的代码:

四、 HookCode执行分析

HookCode完成正常的WriteVirtualMemory()函数功能,通过ReadProcessMemory()函数获取chrome.exe进程的内存信息, 根据读取到的内存可以找到后续对chrome.exe的hook点。 然后自身进程内,解码出rmnsoft.dll,手动加载,并根据导入表和重定位表进行相应的操作:

五、rmnsoft.dll分析

将DLL从内存中Ddump出来。由于该DLL并未有混淆或者加壳等措施,且程序结构比较清晰,易于分析,实现以下功能:

Sub_10007ACA:将自身文件路径写入注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit,实现自启动。

Sub_1000781F:在C:\Program Files\Google\Chrome\Application下创建 dmlconf.dat 文件,并写入 FILETIME 结构体数据。

Sub_10005906:监听 4678 端口,等待连接。收到连接后会接受命令并执行对应的操作。疑似后门,用来接收攻击者的命令.

Sub_1000749F:此函数中会创建两个线程。感染可移动介质及文件,他会将自身写入到可移动介质,并在目录下创建 autorun.ini 文件,在PE文件中写入一个 PE 文件;

0x03总结

分析比较仓促,应该遗留了不少东西,DesktopLayer.exe为样本主要是通过Hook ZwWriteVirtualMemory()函数,然后在启动默认浏览器进程的的时候运行HookCode,直接将所有相关的代码和数据直接写到被注入的进程空间中。其注入的DLL只在内存中出现,具有一定的隐蔽性。

Ramnit 蠕虫分析的更多相关文章

  1. Ramnit蠕虫病毒分析和查杀

    Ramnit是一种蠕虫病毒.拥有多种传播方式,不仅可以通过网页进行传播,还可以通过感染计算机内可执行文件进行传播.该病毒在2010年第一次被安全研究者发现,从网络威胁监控中可以看出目前仍然有大量的主机 ...

  2. 天台人满为患,不如来看下这个Ramnit蠕虫DesktopLayer.exe分析

    今年的世界杯越来越看不懂,想去天台吹吹风都不一定有位置,心凉了,事儿还得做,先从网上抓个可疑样本压压惊!上手分析才发现并没有我想得那么简单…… 一.基本信息 MD5 ff5e1f27193ce51ee ...

  3. JbossMiner 挖矿蠕虫分析 (转载)

    前言 从2013年的诞生,到2016爆发,挖矿(MiningCryptocurrency) 的高回报率,使其成为了一把双刃剑.据外媒去年的统计,比特币的算力(Hash Rate)已在半年内翻了一翻. ...

  4. 基于Redis未授权访问的挖矿蠕虫分析

    0x01 攻击方式 利用的是通用漏洞入侵服务器并获得相关权限,从而植入挖矿程序再进行隐藏. 通过对脚本的分析,发现黑客主要是利用 Redis未授权访问漏洞进行入侵.脚本里有个python函数. imp ...

  5. SQL注入蠕虫分析//未完待续

    蠕虫代码: DECLARE @S VARCHAR(4000);SET @S=CAST(0x4445434C415245204054205641524348415228323535292C4043205 ...

  6. Hadoop Yarn REST API未授权漏洞利用挖矿分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 一.背景情况 5月5日腾讯云安全曾针对攻击者利用Hadoop Yarn资源管理系统REST API未授权漏洞对服务器进行攻击,攻击者可以在未 ...

  7. 威胁快报|Bulehero挖矿蠕虫升级,PhpStudy后门漏洞加入武器库

    概述 近日,阿里云安全团队监控到Bulehero挖矿蠕虫进行了版本升级,蠕虫升级后开始利用最新出现的PHPStudy后门漏洞作为新的攻击方式对Windows主机进行攻击,攻击成功后会下载门罗币挖矿程序 ...

  8. 《开源安全运维平台OSSIM最佳实践》

    <开源安全运维平台OSSIM最佳实践> 经多年潜心研究开源技术,历时三年创作的<开源安全运维平台OSSIM最佳实践>一书即将出版.该书用80多万字记录了,作者10多年的IT行业 ...

  9. [转帖]WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为

    WannaCry惊天大发现!疑似朝鲜黑客组织Lazarus所为 Threatbook2017-05-16共588524人围观 ,发现 17 个不明物体系统安全 https://www.freebuf. ...

随机推荐

  1. camstart API 服务器负载均衡

    docker 安装haproxy docker pull haproxy 创建配置文件到:D:/docker/haproxy 配置文件内容如下 # 配置文件 # 全局配置 global # 设置日志文 ...

  2. 系统分析与设计个人作业:WordCount

    本次作业gitee地址:https://gitee.com/ackary/WordCount 一.项目简介 1.基础功能 基础功能部分主要实现的功能是统计一个程序设计语言源文件的字符数.单词数.行数, ...

  3. BUG在线上环境中出现的原因总结

    1.线上环境数据的复杂度以及数据量是测试环境不能比拟的. 2.业务操作的不可控性,用户错误的使用习惯. 3.实际场景的复杂性. 上线之后,测试人员需要做好以下二件事:   第一,灰度测试 项目上线之后 ...

  4. Java框架spring Boot学习笔记(九):一个简单的RESTful API

    RESTful API设计需求如下: User.java package com.springboot.test; public class User { private Long id; priva ...

  5. 随select动,将value值显示在后面的input里

    <!doctype html><html lang="en"> <head> <meta charset="UTF-8" ...

  6. 【CPU微架构设计】分布式多端口(4写2读)寄存器堆设计

    寄存器堆(Register File)是微处理的关键部件之一.寄存器堆往往具有多个读写端口,其中写端口往往与多个处理单元相对应.传统的方法是使用集中式寄存器堆,即一个集中式寄存器堆匹配N个处理单元.随 ...

  7. nginx屏蔽ip配置

    屏蔽单个IP的命令是 deny 192.168.201.1 封ip段192 deny 192.0.0.0/8 封ip段192.168 deny 192.168.0.0/16 封ip段192.168.2 ...

  8. 手游开发之lua的class函数详解

    众所周知,lua没有类这个概念但其通过table实现了面向对象的“类”.在cocos2dx引擎下提供了class(className, ...)函数方法名,因为在脚本开发中这个接口基本都会用来创建一个 ...

  9. Hillstone基础上网配置

    1.接口配置 1)进入设备管理界面后,点击左边 网络—接口: 2)选择相应的接口,点击编辑: 3)在接口配置界面中,选择接口的安全域类型(三层接口即为三层安全域,二层接口即为二层安全域).安全域名称 ...

  10. AOP-事物管理

    1. Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务