Ghost你经常用,但是知道原理的人却没几个
首先,让我们简要回顾一下Ghost的历史。Ghost最初由Peter Norton(诺顿克隆精灵)于1995年开发,因其强大的备份和恢复功能而迅速受到用户的青睐。随后,该软件被赛门铁克(Symantec)收购,并在不断的技术改进和更新中成为市场上备受推崇的软件之一。
快照的创建
Ghost的核心原理是通过创建镜像文件来实现备份和恢复操作。镜像文件是一个精确复制源磁盘或分区的二进制副本。在备份过程中,Ghost会将目标磁盘的数据按照碎片化的方式读取,并将其存储为一个压缩的镜像文件。这种压缩可以极大地减小备份文件的大小,节省存储空间。在恢复操作中,Ghost则会将镜像文件的内容还原到目标磁盘上,实现数据的完整性和一致性。
扇区级别的复制
Ghost在备份和恢复过程中使用了多种技术来保证数据的准确性和可靠性。其中,最重要的是扇区级别的复制技术。Ghost能够直接读取和复制磁盘的每个扇区,无论文件系统的类型、操作系统的版本、或者是否有加密或压缩等机制。这种扇区级别的复制技术确保了备份和恢复的数据完整性,使得Ghost在各种不同的环境中都能正常工作。
增量备份和差异备份
此外,Ghost还采用了增量备份和差异备份的技术,以提高备份效率。增量备份只备份源磁盘上发生变化的数据,而不对整个磁盘进行复制,这可以大大减少备份时间和存储空间的消耗。差异备份则备份源磁盘上自上次备份以来发生变化的数据,而不是整个磁盘的内容,进一步提高了备份效率。
多种备份方案和计划
此外,Ghost还支持创建多个备份计划,允许用户根据自己的需求设置自动备份的时间和频率。这为用户提供了更加灵活和方便的备份方式,保证了数据的安全性和可靠性。
目前,Ghost最新版已经逐渐与云备份、虚拟化等技术相结合,提供更加全面和强大的数据备份和恢复解决方案。在云备份中,Ghost可以将备份数据上传到云存储服务商的服务器上,提供远程备份和恢复功能。在虚拟化中,Ghost可以备份和恢复虚拟机中的数据,帮助用户轻松管理和保护虚拟化环境中的数据。
并且,Ghost还支持RAID磁盘阵列的备份。不过这需要RAID相关阵列驱动的支持。意味着它可以作用于物理服务器上的备份和还原。
至于它的开发者
赛门铁克(Symantec),成立于1982年4月,全球知名的安全软件公司。公司总部位于加利福尼亚州的 Cupertino,现已在全球 40 多个国家和地区设有分支机构。旗下产品不仅包含Symantec Ghost,还有Norton WinDoctor(诺顿系统医生)、Norton DiskDoctor(诺顿磁盘医生)、Norton PartitionMagic(诺顿磁盘大师)
Xshellghost技术分析
概述
近日,NetSarang旗下的Xmanager、Xshell、Xftp和Xlpd等在全球流行使用的服务器远程管理软件曝出被多家杀毒软件报毒查杀的情况,经过360科技集团追日团队调查分析确认,NetSarang旗下多款软件的关键模块被植入了高级后门,这是一起入侵感染供应链软件的大规模攻击事件,我们将其命名为“XshellGhost”(xshell幽灵)。
事件时间轴
2017年7月17日,NetSarang公司发布旗下多款产品的新版软件,更新修复多处bug和增强了会话加密能力,用于对抗CIA木马“BothanSpy”的密码劫持功能。
2017年8月7日,NetSarang与卡巴斯基发布联合声明,声称7月18日发现软件存在安全漏洞被攻击。
2017年8月15日,NetSarang与卡巴斯基更新联合声明,发现在香港利用该软件漏洞的案例。
攻击形式
NetSarang系列软件的关键网络通信组件nssock2.dll被植入了恶意代码,厂商在发布软件时并未发现恶意代码,并给感染组件打上了合法的数字签名随新版软件包一起发布,用户机器一旦启动软件,将会加载组件中的恶意代码,将主机的用户信息通过特定DGA(域名生成算法)产生的DNS域名传送至黑客的远程命令控制服务器,同时黑客的服务器会动态下发任意的恶意代码至用户机器执行。
攻击影响面
使用被感染的软件的用户,将会被黑客窃取用户信息,并在云端下发任意的恶意代码进行远程控制,由于该系列软件在国内的程序员和运维开发人员中被广泛使用,多用于管理企事业单位的重要服务器资产,所以黑客极有可能进一步窃取用户所管理的服务器身份验证信息,秘密入侵用户相关的服务器,请相关软件用户和企事业单位提高警惕。
XshellGhost技术分析
“XshellGhost”(xshell幽灵)是一个精密的定向攻击平台,所有的功能模块实现均为shellcode形式,客户端攻击通过感染供应链软件和各个shellcode模块,实现了无自启动项、无落地文件和多种通信协议的远程控制,后门潜伏于受害者电脑等待黑客在云控制平台下发shellcode数据执行,黑客在云端甚至可能通过上传的用户信息进行选择性的定向攻击。
远程控制逻辑分析
XshellGhost的远程控制主要分为5个步骤:
1.软件启动加载被感染组件nssock2.dll,解密shellcode1执行。
2.Shellcode1解密Shellcode2执行如下功能:
a)创建注册表项,上报数据到每月对应的DGA域名当中;
b)通过发往知名的域名解析器当中上传用户信息给攻击者;
c)将接收的数据写入到创建的注册表项当中;
d)通过获取的key1和key2解密Shellcode 3并执行;
3. Shellcode3会创建日志文件并写入信息,启动系统进程Svchost.exe,修改其oep处的代码,并注入shellcode形式的Root模块执行。
4. Root模块的初始化过程中,会加载并初始化Plugins、Config、Install、Online和DNS等功能模块,然后调用函数Install->InstallByCfg以获取配置信息,监控注册表并创建全局互斥体,调用Online-> InitNet;
5. 函数Online-> InitNet会根据其配置初始化网络相关资源,向指定服务地址发送信息,并等待云端动态下发代码进行下一步攻击。
初始加载模块分析
此次攻击的所有模块调度加载实现方式都是通过shellcode形式,采用了模块化的方法进行统一管理。每个Shellcode的入口函数都会根据传入的第2个参数的数值决定将其具体要执行的功能,参数数值和对应的功能列表如下所示:
根据Shellcode编号102、103和104所对应的功能,可以获取每个Shellcode的信息列表:
关键的网络通信模块,除DNS协议通信,此后门还会利用其他5种网络协议进行远程控制。
基础管理模块分析
Root模块是该次攻击的基础管理模块,其它各个模块的功能的展开和运行都依赖于Root模块提供的函数接口列表:
Root模块的初始化逻辑如下图所示:
插件功能模块分析
Plugins模块为其他插件提供接口,包括读写注册表指定字段的加密数据,加载DLL等,以及监控注册表指定字段变化并将其数据解密作为插件加载:
在调用Install模块的InstallByCfg函数时,会调用Plugins模块的MonitorRegLoadShellCode函数。该函数负责监控注册表指定key,如果key值被改变,该函数将会读取注册表中的数据并调用Root模块的LoadAndInsertShellcodeEx函数将其加载。
如果网络控制端下发调用Plugins模块的OpByCmd函数的指令,将会设置其注册表指定key的数据,过后MonitorRegLoadShellCode函数将会监控到key值发生改变,读取注册表数据动态加载下发的Shellcode代码。
C&C配置模块分析
配置模块Config主要负责管理当前机器当中的配置文件以及对应机器的ID:
该模块包含了一个大小最大为0x858的配置数据块,其中配置数据块是从文件中读取的,文件位置是由该模块的第三个函数RandomStr提供
随机串生成的过程跟系统的卷序列号相关,所以在不同的机器上其位置并不相同。但是其有固定的格式,RandomStr均为大写字母:
%ALLUSERSPROFILE%\RandomStr\ RandomStr\ RandomStr\ RandomStr
配置信息是加密存储在配置文件中的,通过调用该模块的接口函数,可以获取解密后的配置文件,配置数据块的结构如下:
配置块的头部是一个OffsetTable,其中记录了各项配置串相对于EncryptStringStub的偏移,
目前已知的配置位置:
OffsetTable[8]配置块0x10要注入的进程路径
OffsetTable[0xC]配置块0x18CC URL地址和CC类型
原始串的前2个字节为本串加密的Key,之后通过解密函数解密获取解密后的串,所以解密后的串长度要比原始串的长度少2。经分析还原的解密函数如下:
通过对程序自身的配置文件进行分析:
注入程序路径,加密前的字符:
\x1F\xE5\x3A\x86\xF4\x31\xFF\xB8\x9F\x64\x81\x96\xAA\xC4\xB1\xF0\x02\x5E\xC5\xB1\x3E\xAF\x98\x19\xF6\x00\x21\x39\x20\xC5\xC4\x39解密后:%windir%\system32\svchost.exe
CC远程命令控制服务器的 URL,加密前的串:
\x7B\x3C\x1F\x9F\x7E\x01\xA0\x08\xF0\xF6\x1C\x7F\x71\x60\xBD\x63\x66\x95\x7B\xE6\x62\x4C\xB3解密后:dns://www.notped.com
DNS查询地址:
8.8.8.8
8.8.4.4
4.2.2.1
4.2.2.2
代码注入模块分析
主体代码注入模块Install,负责将Root模块代码注入到指定的进程当中,以及调用Online模块的相关初始化工作:
函数InstallByCfg的逻辑如下所示:
功能A:
1、调用Plugins的MonitorRegLoadShellCode函数,创建并监控指定注册表键,读取注册表数据加载shellcode执行;
2、调用Config的RandomStr函数获取字符串,用来创建全局互斥体
a)如果全局互斥体已存且Root的Op数值为3,结束自身进程。
b)调用 Online的 InitNet,初始化网络模块
功能B:
1、调用Plugins的MonitorRegLoadShellCode函数,打开并监控指定注册表键, 读取注册表数据加载shellcode执行;
2、查询Shellcode 106,如果不存在,则休眠1秒继续查询
3、调用Shellcode 106的第2个接口函数
功能C:
1、调用Config的函数GetCfgCon获取配置文件中保存的Pe路径
2、启动Pe,修改Oep处的代码,注入Shellcode Root
a)如果失败,则创建线程调用功能A
b)如果成功,则结束自身
网络通信模块分析
Online模块是本次攻击的网络通信管理模块,在本次攻击事件当中我们已经发现了DNS模块,其它几个网络模块(TCP、HTTP、UDP、HTTPS、SSL)虽然在代码当中有所体现,但是在shellcode当中尚未主动运行,各个网络模块的函数接口及其作用如下表所示:
各个网络模块的功能的展开和运行依赖于Online模块提供的函数接口列表:
InitNet在读取网络代理配置以后每隔1秒调用功能A,如果功能A返回20000,则函数彻底结束,功能A逻辑:
功能B逻辑,用于等待云端下发代码执行:
此次攻击已知使用的通信模块是DNS模块,该后门基于DNS隧道技术进行通信:
该模块发送的数据包有3种类型:
1.初始化数据包,大小为0x18
2.Data数据包,大小0x8+
3.关闭数据包, 大小0x8
其发送函数如下:
在调用DNS模块2号函数返回自定义对象时,其调用了GetAdaptersAddresses获取适配器的DNS
最多收集0x10个DNS,随后在调用该模块第3号函数时,其使用收集到的DNS,合并Config文件中的4个DNS地址,循环往每一个DNS发送查询,等到到任何一个返回数据,或者超时,并记录下第一个返回应答的DNS数据包,以后再次发送的时候,只会给第一个返回应答的DNS发送数据。
在发送数据包时,会将数据嵌套到DNS协议中发送,其中数据会编码成特定的字符串,添加在要配置文件中的CC DNS URL前,实现DNS隧道通讯。
总结
通过技术分析,我们发现“XshellGhost”(xshell幽灵)是一整套复杂的模块化的精密木马病毒,这是一起黑客入侵供应链软件商后进行的有组织有预谋的大规模定向攻击,我们仍将会持续关注此次攻击的进一步发展,建议广大用户使用360安全卫士查杀“XshellGhost”(xshell幽灵)木马病毒和防御供应链软件攻击。
360追日团队(Helios Team)
360 追日团队(Helios Team)是360科技集团下属的高级威胁研究团队,从事APT攻击发现与追踪、互联网安全事件应急响应、黑客产业链挖掘和研究等工作。团队成立于2014年12月,通过整合360公司海量安全大数据,实现了威胁情报快速关联溯源,独家首次发现并追踪了三十余个APT组织及黑客团伙,大大拓宽了国内关于黑客产业的研究视野,填补了国内APT研究的空白,并为大量企业和政府机构提供安全威胁评估及解决方案输出。
已公开APT相关研究成果
相关问答
怎么远程控制自己的另一台电脑-有晴的回答-懂得
4.在自己的电脑上开始--运行--mstsc--计算机处输入IP地址(如//192.168.1.X).会弹出用户名和密码。现在大部分GhostXP都是administrator密码为空。这...
QQ远程帮助中怎么暂停对方控制?-ZOL问答
在他控制的时候,按ESC就可以快速停止,关掉对话窗口就停止了远程协,以后只要不主动提出远程协助,就不可能看到你电脑的。用深度的GHOSTXP,装完什么都有,如果...
theghost怎么和朋友联机?
打开游戏后点开设定值,因为必须和房主在同一个服务器。所以我们在联机之前要确定自己服务器的位置;然后退回到主菜单点击玩,选择在线的然后点击在线启用,这里...
如何使用PXE网络引导进行远程给多台服务器自动化安装操作系统?
然后设置DHCP,这个地址池随便设置,跟本机同段即可,临时的,系统做完就释放了。最后选择镜像,就平常的ghost11或者以上版本就可以。以上这些除了系统镜像,软...
如何远程为他人的电脑安装操作系统重装系统-ZOL问答
可以的,使用GHOST系统,重装系统即可需要2样:onekey备份还原工具和GHOST系统文件内的GHO文件,用onekey备份还原工具选择GHO文件,进行系统还原即可自动安装G...
help:电脑任务栏和快速启动栏如何管理?
[回答]多少个进程不能说明什么问题,只要自己的电脑好用就可以了你可以用百度搜你要找的进程名,都有详细解释的。比如UIHOST.EXE这样你就知道它是什么程序...
WIN8远程在对方电脑打开电脑管家后就不能操作对方电脑了-ZOL问答
你是通过什么远程对方的?如果你目前用的是腾讯电脑管家,那你可以放心,只要软件不存在任何安全隐患,那该软件是不会对任何软件进行恶意拦截或查杀的。因为该软...
电脑可不可以远程恢复原来的系统?
可以使用U盘pe中的ghost安装器安装系统。1、双击打开一键ghost恢复工具,选择“还原分区”,映像路径选择win7.gho文件,选择系统要还原的位置,比如C盘,或者根...
一键还原和ghost哪个更实用和方便?-自在Hedy的回答-懂得
一键还原:使用一键还原精灵可以保留你现在的系统和软件,就是说你的C盘是全部被保护的,另就一键还原官方的说明是这样的:★特点:1、采用GHOST为内核,...
ghostwin10专业版比旗舰版好吗?
ghostwin10专业版比旗舰版并没有好很多其实Win10系统是没有所谓的旗舰版,官方也没有推出这个版本,通常我们所描述的旗舰版本质上就是专业版。所以二者之间没...