• 以前写的文章windows映像劫持技术(转载)


    前些日子在JM看到有关一个IFEO病毒的分析报告,就想写点什么和大家分享下!
    为了使大家更详细了解映像胁持,在BAIDU找了一些相关知识点,在此,感谢那些原创作者!谢谢!

    基本症状:可能有朋友遇到过这样的情况,一个正常的程序,无论把他放在哪个位置或者是重新用安装盘修复过的程序,都无法运行或者是比如运行A却成了执行B的程序了,而改名后却可以正常运行
    既然我们是介绍IFEO技术相关,那我们就先介绍下:

    一,什么是映像胁持(IFEO)?

    所谓的IFEO就是Image File Execution Options

    在是位于注册表的
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

    由于这个项主要是用来调试程序用的,对一般用户意义不大。默认是只有管理员和local system有权读写修改。

    我们大家一起来看网络上另一个朋友做得试验:


    如上图了,开始-运行-regedit,展开到:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

    然后选上Image File Execution Options,新建个项,然后,把这个项(默认在最后面)然后改成123.exe




    选上123.exe这个项,然后默认右边是空白的,我们点右键,新建个“字串符”,然后改名为“Debugger"

    这一步要做好,然后回车,就可以。。。再双击该键,修改数据数值(其实就是路径)。。
    把它改为 C:\windows\system32\CMD.exe

    (PS:C:是系统盘,如果你系统安装在D则改为D:如果是NT或2K的系统的话,把Windows改成Winnt,下面如有再T起,类推。。。)
    好了,实验下。~ .

    然后找个扩展名为EXE的,(我这里拿IcesWord.exe做实验),改名为123.exe。。。
    然后运行之。。。嘿嘿。。出现了DOS操作框,不知情的看着一闪闪的光标,肯定觉得特鬼异~^_^。。
    ===============================

    Debugger参数存在的本意是为了让程序员能够通过双击程序文件直接进入调试器里调试自己的程序,曾经调试过程序的朋友也许会有一个疑问,既然程序启动时都要经过IFEO这一步,那么在调试器里点击启动刚被Debugger参数送进来的程序时岂不是又会因为这个法则的存在而导致再次产生一个调试器进程?微软并不是傻子,他们理所当然的考虑到了这一点,因此一个程序启动时是否会调用到IFEO规则取决于它是否“从命令行调用”的,那么“从命令行调用”该怎么理解呢?例如我们在命令提示符里执行taskmgr.exe,这就是一个典型的“从命令行调用”的执行请求,而我们在点击桌面上、普通应用程序菜单里的taskmgr.exe时,系统都会将其视为由外壳程序Explorer.exe传递过来的执行请求,这样一来,它也属于“从命令行调用”的范围而触发IFEO规则了。为了与用户操作区分开来,系统自身加载的程序、调试器里启动的程序,它们就不属于“从命令行调用”的范围,从而绕开了IFEO,避免了这个加载过程无休止的循环下去。

      由于Debugger参数的这种特殊作用,它又被称为“重定向”(Redirection),而利用它进行的攻击,又被称为“重定向劫持”(Redirection Hijack),它和“映像劫持”(Image Hijack,或IFEO Hijack)只是称呼不同,实际上都是一样的技术手段。

      讲解完Debugger参数的作用,现在我们来看看“映像劫持”到底是怎么一回事,遭遇流行“映像劫持”病毒的系统表现为常见的杀毒软件、防火墙、安全检测工具等均提示“找不到文件”或执行了没有反应,于是大部分用户只能去重装系统了,但是有经验或者歪打正着的用户将这个程序改了个名字,就发现它又能正常运行了,这是为什么?答案就是IFEO被人为设置了针对这些流行工具的可执行文件名的列表了,而且Debugger参数指向不存在的文件甚至病毒本身!

      以超级巡警的主要执行文件AST.exe为例,首先,有个文件名为kkk.exe的恶意程序向IFEO列表里写入AST.exe项,并设置其Debugger指向kkk.exe,于是系统就会认为kkk.exe是AST.exe的调试器,这样每次用户点击执行AST.exe时,系统执行的实际上是作为调试器身份的kkk.exe,至于本该被执行的AST.exe,此刻只能被当作kkk.exe的执行参数来传递而已,而由于kkk.exe不是调试器性质的程序,甚至恶意程序作者都没有编写执行参数的处理代码,所以被启动的永远只有kkk.exe自己一个,用户每次点击那些“打不开”的安全工具,实际上就等于又执行了一次恶意程序本体!这个招数被广大使用“映像劫持”技术的恶意软件所青睐,随着OSO这款超级U盘病毒与AV终结者(随机数病毒、8位字母病毒)这两个灭杀了大部分流行安全工具和杀毒软件的恶意程序肆虐网络以后,一时之间全国上下人心惶惶,其实它们最大改进的技术核心就是利用IFEO把自己设置为各种流行安全工具的调试器罢了,破解之道尤其简单,只需要将安全工具的执行文件随便改个名字,而这个安全工具又不在乎互斥量的存在,那么它就能正常运行了,除非你运气太好又改到另一个也处于黑名单内的文件名去了,例如把AST.exe改为IceSword.exe。

  • 相关阅读:
    makefile中的使用 VAPTH 和“自动变量”指定目标文件的存放目录
    用Temp Table方法 替換遊標cursor
    生成XML、讀取XML
    Update方法的迭代
    串欄位list新招,不用建ufn.
    函數返回一個用分隔符連接起的字符串,其中每個單位的字符串不重復存在
    Select的迭代方法
    行列轉換方法
    行列轉換方法(超詳細方法)
    行列轉換方法(超過3列)
  • 原文地址:https://www.cnblogs.com/herso/p/1418982.html
Copyright © 2020-2023  润新知