“白加黑”是民间对一种DLL劫持技术的通俗称呼,现在很多恶意程序利用这种劫持技术来绕过安全软件的主动防御以达到加载自身的目的,是目前很火的一种免杀手段。本文将针对此类病毒做了一个简单技术介绍和案例演示。

所谓的“白加黑”,笼统来说是“白exe”加“黑dll”,“白exe”是指带有数字签名的正常exe文件,那么“黑dll”当然是指包含恶意代码的dll文件。病毒借助那些带数字签名且在杀毒软件白名单内的exe程序去加载自己带有恶意代码的dll,便能获得杀毒软件主动防御的自动信任,从而成功加载到系统中。病毒的这种手段其实是钻了软件编写的空子,若第三方软件在编写时对调用的库文件没有进行审查或审查得不够严谨,就容易发生DLL劫持,这种编写漏洞已被微软获悉,详情可参考Microsoft 安全通报(2269637)。

Dll劫持技术简介

当一个可执行文件运行时,Windows加载器将可执行模块映射到进程的地址空间中,加载器分析可执行模块的输入表,并设法找出任何需要的DLL,并将它们映射到进程的地址空间中。由于输入表中只包含DLL名而没有它的路径名,因此加载程序必须在磁盘上搜索DLL文件。首先会尝试从当前程序所在的目录加载DLL,如果没找到,则在Windows系统目录中查找,最后是在环境变量中列出的各个目录下查找。恶意程序利用这个特点,先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。这样,程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是,系统DLL被劫持了。

Windows XP SP2系统以上DLL文件加载的搜索顺序如下:

(1)可执行程序加载的目录(可理解为程序安装目录比如C:\Program Files\Internet Explorer)

(2)系统目录(即 %windir%\system32)

(3)16位系统目录(即 %windir%\system)

(4)Windows目录(即 %windir%)

(5)运行某文件的所在目录(比如C:\Documents and Settings\Administrator\Desktop\test)

(6)PATH环境变量中列出的目录

根据前面介绍的DLL加载顺序,运行程序的时候会优先到程序执行的目录下加载必须文件,这么一来,病毒作者可以伪造一个dll,包含所有被劫持dll的导出函数,放到可执行程序目录下,当exe运行时,病毒dll就理所当然被优先调用了。

病毒案例分析

1) 本例中的白加黑样本是一个假冒某游戏大厅捆绑安装的远控木马,用户从假冒的下载地址下载了捆绑木马的安装包,双击运行后则出现安装界面,与正常安装过程无异。

图1:运行安装包,弹出安装界面

2) 点击“下一步”直至安装完成,桌面多出“456游戏”快捷方式。如果此时你不假思索就双击运行,那么你就实实在在地上当了。右击快捷方式查看属性,目标文件是C:\Program Files\Common Files\ODBC\SGUpdater.exe,这根本就不是456游戏的安装目录和主程序。

图2:病毒篡改了桌面快捷方式指向自身

3) 找到SGUpdater.exe查看属性,该exe是搜狗壁纸升级程序,带有文件版本和合法数字签名,也就是我们所说的“白exe”。

图3:被病毒利用的正常exe文件

4) 第一次双击456游戏快捷方式并没弹出什么界面,只是快捷方式图标闪了一下,用XueTr查看系统进程,SGUpdater.exe已经运行了,并且加载了同目录下的HWSignature.dll,也就是本例中的“黑dll”,并添加了自启动项。到这一步,这个远控木马就相当于“种植”完毕了,接下来便会连接远控主机,记录键盘操作等,导致用户隐私外泄,个人财产安全受到威胁。

图4:HWSignature.dll借助SGUpdater.exe加载从而绕过杀毒软件主防

图5:木马和远控主机建立连接

5) 运行SGUpdater.exe后再次查看456游戏快捷方式属性,发现目标文件和位置已有所改变,这次指向的才是真正的456游戏主程序:C:\Program Files\KaiUnion Tech\456游戏\Lobby.exe,这时再双击快捷方式便能弹出游戏界面了。

图6:病毒成功加载后便将快捷方式指向改回

由此可见,病毒作者可以说是精打细算、步步为营。首先把病毒相关文件捆绑到游戏安装包中,在用户安装过程中释放到本地磁盘,修改游戏快捷方式指向,诱骗用户双击,待木马成功植入后再将快捷方式指向改回,用户再次双击便能调出游戏界面,并不有所怀疑,在用户两次双击快捷方式之间神不知鬼不觉地植入了远控木马,并能实现自启动。既然不幸中招,为避免更多损失,接下来还是赶紧把这个木马清出系统吧。

清理过程很简单,首先我们从任务管理器结束SGUpdater.exe进程,在Xuetr里删除SGUPDA~1.EXE自启动项,C:\Program Files\Common Files\ODBC目录下全部都是跟游戏无关额外释放的文件,干脆将其全部删除,最后重启电脑即可。

图7:用Xuetr删除病毒的自启动项

总结

由于dll劫持漏洞发生在三方软件的编写上,这种打补丁的工作自然落到了软件编写者的头上。对于普通网民来说,除了谨慎下载以外,运行一些来历不明的程序前最好先用杀毒软件扫描,不要贸然运行,毕竟安全软件不是万能的,也会有防不住的时候。但防不住不代表杀不掉,由于那些dll包含病毒代码,安全软件可以通过特征码扫描杀掉它们。总的来说,病毒的免杀手段花样百出、层出不穷,那么安全厂商也只好把这“猫捉老鼠”的游戏继续下去。

“白加黑”远控木马技术分析及手杀方案相关推荐

  1. 一个想让你承认是Gay的“勒索版”远控木马Swamp分析

    求大佬路过点个关注转个发 今天逛窑子,看见老窑头发了张图片,大致如下: Oh SHIT! 你的文件都被加密了,糟透了? 那就是当你在阴暗的网站上观看色情时会发生的事情. 你的文件已经被我们用AES-2 ...

  2. 移花接木大法:新型“白利用”华晨远控木马分析

    360安全卫士 · 2015/05/28 5:11 0x00 前言 "白利用"是木马对抗主动防御类软件的一种常用手法.国内较早一批"白利用"木马是通过系统文件r ...

  3. 控制指令高达二十多种:远控木马Dendoroid.B分析报告( 转)

    控制指令高达二十多种:远控木马Dendoroid.B分析报告 IT社区推荐资讯 - ITIndex.net Apr 24 近期,360团队截获了一款功能强大的专业间谍软件,它可以通过PC端远程控制中招 ...

  4. 一款远控木马分析,仅供学习思路用途

    最近一段时间在面试病毒相关岗位,有的公司会电话.远程面试询问相关知识,有的则会直接发送病毒样本要求分析,写出分析报告.下面要分析的就是面试过程中的某个样本,整理成文,发表出来,供大家参考学习,一起进步 ...

  5. “大灰狼”远控木马分析及幕后真凶调查

    9月初360安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序. 鉴于bt天堂电影下载网站 ...

  6. BT天堂网站挂马事件后续:“大灰狼”远控木马分析及幕后真凶调查

    9月初安全团队披露bt天堂网站挂马事件,该网站被利用IE神洞CVE-2014-6332挂马,如果用户没有打补丁或开启安全软件防护,电脑会自动下载执行大灰狼远控木马程序. 鉴于bt天堂电影下载网站访问量 ...

  7. 安全研究人员发现:Nanocore等多个远控木马滥用公有云服务传播

    前言 攻击者越来越多的采用云来构建自己的基础设施,这样不仅能够使攻击者以最少的时间或金钱部署攻击基础设施,也能让追踪攻击行动变得更困难. 从 2021 年 10 月 26 日开始,研究人员发现多个远控 ...

  8. [网络安全自学篇] 九十.远控木马详解及APT攻击中的远控和防御

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了软件来源分析,结合APT攻击中常见的判断方法,利用Python调用扩展包进 ...

  9. 远控木马上演白利用偷天神技:揭秘假破解工具背后的盗刷暗流

    本文讲的是远控木马上演白利用偷天神技:揭秘假破解工具背后的盗刷暗流,如今,不少人为了省钱,会尝试各种免费的方法获取网盘或视频播放器的会员权限,网上也流传着不少"网盘不限速神器"或者 ...

最新文章

  1. FWFT FIFO读操作注意
  2. WIN10 常用bug解决办法
  3. Java跨平台实现原理及JVM垃圾回收、内存管理实战
  4. 使用mybatis-generator自动生成model、dao、mapping文件
  5. Windows 10安装pip方法
  6. Oracle性能优化
  7. Linux系统中提示/usr/bin/ld: cannot find -lxxx错误的通用解决方法
  8. Android JNI(实现自己的JNI_OnLoad函数)
  9. 【LeArm】动手实践机械臂(一)
  10. springBoot+Mybatis注解大全
  11. 问道手游服务器维护,问道手游2021年5月20日维护公告_问道手游2021年5月20日更新了什么_玩游戏网...
  12. shell逻辑运算符优先级_linux shell 逻辑运算符、逻辑表达式详解
  13. 计算机硬件技术基础教程mcs-51单片机原理及应用,mcs51单片机原理及应用
  14. 单片机c语言实验交通信号灯,单片机设计交通信号灯实验报告.docx
  15. Python语音基础操作--2.4语音信号生成
  16. 现在进行时和一般现在时的区分_38
  17. 4k纸是几厘米乘几厘米_4k素描纸是多大? 是几乘几的?
  18. 汽车电子嵌入式相关知识
  19. 打造双网卡负载均衡服务器(转)
  20. 网络学习之网络通信设备辨析

热门文章

  1. Redis客户端命令行redis-cli操作
  2. 购物车数据结构及本地存储技术
  3. SpringBoot_日志-日志框架分类和选择
  4. 128位java_求一个java算法,用128位密钥的AES加密128位明文,得出的密文还是128位...很着急,非常感谢各位大神,求救!...
  5. Django 2 零基础 - 待办清单网站
  6. 【SpringBoot零基础案例09】【IEDA 2021.1】SpringBoot将核心配置文件中的自定义配置映射到一个对象
  7. 图解 Java 线程的生命周期,看完再也不怕面试官问了
  8. 利用 Python / R 对数据集进行「长」「宽」转换
  9. spring boot(二):web综合开发
  10. Linux下tar.xz结尾的文件的解压方法