LOLBins免杀技术研究及样本分析

news2024/11/17 12:27:25

一、前言

自病毒木马诞生起,杀毒软件与病毒木马的斗争一直都没有停止过。从特征码查杀,到现在的人工智能查杀,杀毒软件的查杀技术也是越来越复杂。但是病毒木马却仍然层出不,这是因为大部分病毒木马使用了免杀技术。

免杀技术全称为反杀毒技术(Anti Anti-Virus),简称“免杀”,指的是一种能使病毒木马免于被杀毒软件查杀的技术。不管是钓鱼攻击,还是Web渗透,对使用的病毒木马进行免杀处理,都是必不可少的操作。

在某次网络攻防演练期间,我们捕获了一个免杀样本,主要使用了“LOLBins”免杀技术。这篇文章将对该样本进行分析,以此揭开此类免杀技术的神秘面纱。

二、LOLBins概述

LOLBins,全称为“Living-Off-the-Land Binaries”,这个概念最初在2013年DerbyCon黑客大会由Christopher Campbell和Matt Graeber创造,最终由Philip Goh提出。指的是在目标操作系统上运行受信任的合法进程来执行恶意活动,例如横向移动、权限提升和远程控制等。

通俗来讲,就是大家所熟悉的“白名单”免杀技术。比如常见的Powershell.exe、Certutil.exe和Mshta.exe等程序,都属于LOLBins范畴。在一些APT攻击中,也可以看到使用LOLBins免杀技术进行攻击的活动。比如,海莲花APT组织曾使用微软操作系统自带的程序MSBuild.exe运行远程控制木马,达到免杀的效果。为了达到比较好的免杀效果,LOLBins的选取是有一定要求的。一般来说,需要包含如下特征:

1) 带有Microsoft签名或者第三方签名的程序。

2) 具有可被用于利用的功能(比如上传、下载和代码执行等)。

三、免杀原理

LOLBins为什么可以达到免杀效果?

在解答这个问题之前,我们先了解下杀毒软件的查杀原理。

一般来说,杀毒软件对一个文件会采用多种方法进行查杀。大约可以分为两大类:静态查杀和行为查杀。

静态查杀主要包含病毒特征码、文件属性(HASH、图标、开发者信息)等查杀,指未运行样本采用的文件扫描技术;

行为查杀主要包含沙箱模拟执行、主动防御和人工智能等查杀,是基于程序行为进行分析判断,多端联动的查杀技术。

例如,样本刚“落地”就被杀毒软件查杀了,说明被静态查杀了;如果样本运行起来了,执行某些操作时被查杀了,说明此时样本的危险行为被杀毒软件检测到了。

为什么LOLBins文件可以实现免杀?

这是因为LOLBins一般是正常的程序,对杀毒软件而言,是可信任的程序,所以基本上可以躲过杀毒软件的静态查杀。至于行为查杀,每种杀毒软件的实现、查杀策略多有不同。有的只要是可信任的程序,即使有高危行为也不予查杀;有的则相反,不管是不是可信任的程序,只要有高危行为,也会被查杀。

总的来说,从以下几个方面进行处理,可以实现较好的免杀效果:

1、文件特征

2、内存特征

3、程序行为

4、网络通信

选用LOLBins程序,基本不用考虑文件特征,直接静态免杀,这个是比较好的免杀思路。如果使用流行的黑客工具或者木马,需要对内存中的代码进行加花、混淆,避免内存特征被检测到。对于程序的行为,需要对选取的LOLBins程序进行测试,如果高危行为被查杀了,可以考虑使用其他的LOLBins程序执行高危操作。

网络通信数据避免使用明文,使用加密算法等进行加密,远程服务器尽量伪装为正常的服务器,必要时可以采用CDN,域前置,云函数等手法隐藏服务器IP。

试想,整个恶意活动全程使用LOLBins,形成LOLBins利用链,杀毒软件会报毒吗?

四、逆向分析

到目前为止,我们已经知道如何免杀的理论知识了。那么接下来逆向分析这个免杀样本,并借鉴它的方法,自己动手实现免杀。

样本名为LiveUpdate.exe,MD5:9050ac019b4c8dddbc5e250bb87cf9f2,这是NetSarang公司XSHELL、XFTP、XMANAGER、XLPD系列工具的更新程序,数字签名正常,如下图所示:

该样本早在2020年被上传到某些在线威胁情报平台进行检测,可能很早就被作为LOLBins进行利用,如下图所示:

样本运行后,会加载同目录下后缀为dat的同名文件,也就是LiveUpdate.dat,然后解密该文件,解析其中的脚本代码并执行,完成软件更新。LiveUpdate.dat实际上是一个zip压缩文件,解压密码为99B2328D3FDF4E9E98559B4414F7ACB9,如下图所示:

解压成功后,得到5个文件:_TUProj.dat、_TUProjDT.dat、IRIMG1.JPG、IRIMG2.JPG、IRIMG3.JPG、和IRIMG4.JPG。执行的脚本在_TUProj.dat文件中,如下图所示:

可以看出,这是Lua脚本语言。这个更新程序实际上是一个Lua脚本解析执行引擎,可以自定义Lua代码,实现文件上传、下载,进程管理,注册表管理,服务管理,命令执行等功能,完全可以作为LOLBins,实现免杀。

样本中将CS远程控制木马的Shellcode转化为数字存放在数组中,如下图所示:

然后使用DLL.CallFunction函数调用Windows原生API函数VirtualAlloc,在内存中申请新的空间存放木马的Shellcode,如下图所示:

最后调用CreateThread函数创建新线程运行木马Shellcode,实现远程控制的功能。其中还加入了正常的网络请求,混淆网络通信,如下图所示:

五、免杀测试

按照逆向分析结果和免杀原理,我们同样使用CS木马的Shellcode进行免杀测试。首先解压LiveUpdate.dat得到_TUProj.dat文件,然后修改其中的Lua代码,将混淆后的shellcode转换为数字存放在数组中,创建新线程运行。接着再将修改后的_TUProj.dat文件替换LiveUpdate.dat中的_TUProj.dat文件。最后再运行LiveUpdate.exe,实现加载LiveUpdate.dat,运行其中包含的Shellcode,如下图所示:

测试国内主流杀毒软件,静态全部免杀,运行后上线成功,执行注入等高危操作也全部免杀,免杀效果较好,如下图所示:

六、总结

基于LOLBins的攻击方法近年来在APT攻击中愈发常见,结合其他免杀技术,免杀效果极好,很难被检测和查杀。杀毒软件也应更新查杀手段,多角度对基于LOLBins的攻击行为进行定向、深入查杀。

七、参考链接

1) https://www.anquanke.com/post/id/87299/

2) https://github.com/LOLBAS-Project/LOLBAS

3) https://www.cynet.com/attack-techniques-hands-on/what-are-lolbins-and-how-do-attackers-use-them-in-fileless-attacks/

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校教师工作量的核算的设计与实现g6ipj

大学计算机专业毕业的,实际上到了毕业的时候,基本属于会与不会之间。说会,是因为学了整套的理论和方法,就是所谓的科班出身。说不会,是因为实践能力极差。 不会的问题,集中体现在毕设的时候,系…

2023年天津天狮学院专升本市场营销专业《市场营销学》考试大纲

2023年天津天狮学院高职升本市场营销专业入学考试《市场营销学》考试大纲一、考试性质 《市场营销学》专业课程考试是天津天狮学院市场营销专业高职升本入学考试的必考科目之一,其性质是考核学生是否达到了升入本科继续学习的要求而进行的选拔性考试。《市场营销学》…

【图像分割】DeepLabV3+

文章目录0. 介绍1. DeepLabV32. 结论3. 参考0. 介绍 DeepLabV3文章:https://arxiv.org/pdf/1802.02611.pdf DeepLabV3代码:https://github.com/VainF/DeepLabV3Plus-Pytorch 语义分割的两个主要问题: 物体的多尺度问题。多次下采样会造成特…

ABAP 计算时间差

源码 FUNCTION zfm_date_difference. *“---------------------------------------------------------------------- "“本地接口: *” IMPORTING *” VALUE(IV_DATE_BEG) TYPE SY-DATUM *" VALUE(IV_TIME_BEG) TYPE SY-UZEIT *" VALUE(IV_DATE_END)…

【赛后总结】第十三届服务外包创新创业大赛总结——A14

目录前言组队&选题分工&项目推进提交材料&项目答辩区域赛初赛区域赛决赛全国总决赛写在最后前言 先摆两个参赛视频 初赛视频 决赛视频 比赛已经过去几个月了,也算是想起来这个比赛可以写一个总结了。在历时8个月左右的时间之后,我们…

香菇多糖-四甲基罗丹明 Lentinan-TRITC 四甲基罗丹明-PEG-香菇多糖

香菇多糖-四甲基罗丹明 Lentinan-TRITC 四甲基罗丹明-PEG-香菇多糖 中文名称:香菇多糖-四甲基罗丹明 英文名称:Lentinan-TRITC 别称:生物素修饰香菇多糖,生物素-香菇多糖 香菇多糖-聚乙二醇-四甲基罗丹明 TRITC-PEG-Lent…

[附源码]计算机毕业设计JAVA校园新闻管理系统

[附源码]计算机毕业设计JAVA校园新闻管理系统 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybati…

带你走进脚本世界,ijkplayer之【init-ios.sh】脚本分析

前言 集成ijkplayer,需要执行脚本init-ios.sh,那么init-ios.sh脚本干嘛用的了,花了半天时间,学习了下shell脚本,感觉脚本语言学起来还是比较容易上手的,现在仅仅能看懂了,但是要自己写,还需要花…

2023最新SSM计算机毕业设计选题大全(附源码+LW)之java高校学生社团管理系统n4pcu

要开始我们毕业设计的第一步的关键就是选好我们的课题,有的同学开始选题的时候想着按照传统的课题延续下去,在设计题目时,不要过于笼统广泛,选择题目其实并不难,要多从自身的角度出发,要结合你们当前所处的…

VTK网格细分-vtkAdaptiveSubdivisionFilter

欢迎大家加入社区,雪易VTK社区-CSDN社区云 前言:此博文主要分享VTK中关于细分网格的相关Filter,同时希望能给其他小伙伴一些帮助。 小结:VTK中关于网格细分的Filter包括vtkSubdivisionFilter和vtkAdaptiveSubdivisionFilter。其…

【服务器数据恢复】EMC Unity存储误操作删除数据卷的数据恢复案例

服务器数据恢复环境: EMC Unity某型号存储; 存储设备连接的2台硬盘柜上共创建2组独立的POOL; 2组POOL共包含21块520字节的硬盘。 服务器故障&检测: 误操作删除了2组POOL上的部分数据卷,和用户沟通后得知有5个数据…

Linux学习记录——사 权限与工具

目录的权限 想要进入一个目录,必须有x权限。对于目录来讲,r权限代表着可以查看当前目录下的文件名属性,w权限代表着可以在该目录下创建新文件。 默认权限 现在创建一个目录和文件 创建普通文件时(不包括可执行)&…

冬天这么冷,到底要不要坚持送孩子入托?

进入初冬,天气转凉,很多家长担心宝宝着凉感冒,不送孩子去托班了,甚至干脆不带孩子出门。 事实上,无论从幼儿身体健康发育的角度,还是心理发展的层面,这种做法都是极不科学的。 看看下面这些理由…

[Java]图论详解(内附详细代码)

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.图的基本概念 2.图的存储结构 2.1 邻接矩阵…

[Linux]------线程控制与互斥

文章目录前言一、进程VS线程空间共享二、线程控制POSIX线程库创建线程获取线程IDpthread_join线程异常第二个参数线程的局部存储线程的分离exit()三、线程的互斥进城线程间的互斥相关背景概念互斥量mutex模拟抢票逻辑解决问题互斥量实现原理探究基于RAII机制锁的模拟实现四、可…

Linux 线程控制 —— 线程清理 pthread_cleanup_push

主线程可以通道 pthread_cancel 主动终止子线程,但是子线程中可能还有未被释放的资源,比如malloc开辟的空间。如果不清理,很有可能会造成内存泄漏。 // 子线程回调函数 void* thread_run(void* args) {int* p (int*)malloc(100); // 动…

中小企业选择ERP系统时应关注的10个关键功能

现代ERP系统是帮助企业实现提高生产力、增加盈利能力和提高竞争力的目标的好帮手。该类软件旨在满足中小企业不断增长的业务需求,可确保整个企业的健康发展。 每天都有新的ERP功能和应用程序进入市场,如何明智选择至关重要。以下是中小企业在选择现代ERP…

Elasticsearch_第2章_ elasticsearch基础

Elasticsearch_第2章_ elasticsearch基础 文章目录Elasticsearch_第2章_ elasticsearch基础0.学习目标1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.2.1.使用场景1.2.2.基本语法1.2.3.示例1.2.4.总结1.3.精准查询1.3.1.term查询1.3.2.range查询1.3.3.总结1.4.地理坐标查询1.…

SSM+JSP实现《吃货联盟外卖系统》

🍅程序员小王的博客:程序员小王的博客 🍅程序员小王的资源博客:http://wanghj.online/ 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎…

上海亚商投顾:沪指冲高回落 纺织服装股午后集体走强

上海亚商投顾前言:无惧大盘大跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 市场情绪沪指今日缩量震荡,以中字头为首的权重股走低,上证50午后一度跌近1%,创业板指较为…