IFEO 映像文件劫持

“映像劫持”,也被称为“IFEO”(Image File Execution Options)

映像劫持的根本就是被恶意篡改了注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options项。

比如如在这里新建一个子项notepad.exe,再在这子项里新建一个REG_SZ的名字为Debugger,内容为cmd.exe的值项。这样就会实现映像劫持了,这样你每次用记事本的方式打开文本文件时,却打开的是命令提示符的窗口。

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

这种手段还是非常危险的,如果劫持了杀软,那么你打开杀软的瞬间,其实就是打开的恶意程序。也可以劫持一些doc文档之类的,欺骗用户,同时也能屏蔽杀软,让它运行不起来。

当然这个手段的解决办法也十分简单,那就是改一下文件名,应用程序就又能使用了,然后去修改恢复注册表项。

下面是实际的实现:

目标程序:Server.exe 是自己写的一个mfc小程序

劫持之前:

执行映像劫持之后:

此时双击Server.exe 出来的就不是原来的程序,而是计算器。

修改文件名,和删除注册表项都可以解决这个问题。

其实就是简单的注册表操作,但是功能很强大,也比较脆弱。

附上源码:

#include "stdafx.h"

#include <windows.h>
#include <stdio.h>

int main()
{
    WCHAR DllFullPath[MAX_PATH] = L"calc.exe";
    DWORD Value = 1;
    HKEY hKey;
    DWORD dwDisposition;
    LPCTSTR SetData = L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\Server.exe";
    if (ERROR_SUCCESS == RegCreateKeyEx(HKEY_LOCAL_MACHINE, SetData, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwDisposition))
    {
        if (ERROR_SUCCESS == RegSetValueEx(hKey, L"Debugger", NULL, REG_SZ, LPBYTE(DllFullPath), sizeof(DllFullPath)))
        {
            printf("Image hijacking Success!\n");
        }
    }
    getchar();
    RegCloseKey(hKey);
    return 0;
}
时间: 2024-08-06 07:58:45

IFEO 映像文件劫持的相关文章

无需转化直接使用ESD映像文件安装系统简明教程

最近都是如火如荼的win10 微软三天两头的出新版本的更新,出来都是esd的文件,所以网上就找了个帖子 怎么用esd来安装 原文地址:http://www.heu8.com/1049.html 昨天撰文介绍了ESD映像文件,相信细心的网友对这种格式的映像已经很明白了.原版系统ISO镜像的sources文件夹中包含install.wim映像文件,将这个WIM文件“解压”(官方术语“Apply”)后,可以看到和C盘的目录完全相同,即为系统文件.而官方提供的原版ESD映像与ISO镜像是类似的,因为内部

android系统映像文件

android源码编译后得到system.img,ramdisk.img,userdata.img映像文件.其中,ramdisk.img是emulator(模拟器)的文件系统,system.img包括了主要的包.库等文件,userdata.img包括了一些用户数据,emulator负责加载这3个映像文件. 下面我们来简要分析一下这三个镜像文件. 如下图所示是编译之后生成的相关文件. 其中三个镜像对应的文件夹上图也很明了了.android系统启动后,会把system.img和userdata.im

内存映像文件

Linux允许任何进程把一个磁盘文件映像到内存中. 使用内存映像文件有两个主要优点 –加速文件I/O操作,不同的I/O调用如read或者fputs通过内核缓冲读出或写入数据.虽然Linux具有一种快速而先进的磁盘缓冲算法,但最快的磁盘访问也总是要比最慢的内存访问慢. –共享数据,如果多个进程要访问一样的数据,这些数据就可以保存在一个内存映像文件中,所有的进程都可以访问它. mmap函数 #include <unistd.h> #include <sys/mman.h> void *

如何查看Linux内核的initrd.img映像文件

initrd的含义是initialized ram disk.ram disk用一部分内存模拟成磁盘,让操作系统访问. initrd.img文件就是个ram disk的映像文件.ram disk是标准内核文件认识的设备(/dev/ram0)文件系统也是标准内核认识的文件系统.通常的步骤是先启动内核,然后内核挂载initrd.img,并执行里面的脚本来进一步挂载各种各样的模块和服务,经过一些配置和运行后,就可以去物理磁盘加载真正的root分区了,然后再进行配置,最后启动成功. 查看Linux内核的

使用loop设备挂载映像文件

loop设备介绍 在类 UNIX 系统里,loop 设备是一种伪设备(pseudo-device),或者也可以说是仿真设备.它能使我们像块设备一样访问一个文件. 在使用之前,一个 loop 设备必须要和一个文件进行连接.这种结合方式给用户提供了一个替代块特殊文件的接口.因此,如果这个文件包含有一个完整的文件系统,那么这个文件就可以像一个磁盘设备一样被 mount 起来. 上面说的文件格式,我们经常见到的是 CD 或 DVD 的 ISO 光盘镜像文件或者是软盘(硬盘)的 *.img 镜像文件.通过

写个测试程序看看磁盘映像文件中哪个扇区可以使用?

在做boot loader的实验, 但是要在格式化为FAT32的U盘上使用. * 用WinHex将U盘全部字节都填成0. * 用UltraIso中的格式化功能, 将U盘格式化成FAT32, 分配单元为4KB * 用UltraIso提供的写入MBR功能,向U盘写入可引导的MBR, 参数为USB-HDD. 这问题就来了,MBR在0扇区,我们可以通过逆向ultraIso写入的MBR, 重写MBR + U盘格式化好之后的分区表(16 * 4字节),形成自己的MBR. 但是其他被用到的扇区, 我们不能改.

解决wubi安装ubuntu时要下载系统映像文件问题

1.问题描述及失败方案 问题描述就描述吧,还介绍什么失败方案,我这是为了让读者不重蹈覆辙!废话不多说了,直接进入主题--wubi安装ubuntu为我们提供很大的方便,虽然损失了一点性能,但这是可以接受的.但是用wubi安装ubuntu时,它会去ubuntu系统的iso文件!安装过程如下图所示: 图1.设置好wubi后安装图示   图2.过了一会后就到这个界面了,下载ISO文件 图3.下载ISO文件的过程,这还算比较好的才需要3个多小时, 我29号那天安装时提示要2000多个小时(可能现在资源比较

交换机的配置文件和系统映像文件备份与恢复

实验目的:将交换机的配置文件和系统映像文件备份到TFTP服务器上,然后将自身的配置和系统映像删除,从TFTP服务器上恢复配置和系统映像 拓扑图如下: 原文地址:https://www.cnblogs.com/guoshiyu/p/9149280.html

CommandoVM-虚拟机映像文件 | VM打开直接用

呵呵!自从火眼发布了这个CommandoVM,想必大家应该都挺激动,然而实际操作一下,基本炸裂-- 因为并没有给类似于kali这种直接安装的现成镜像,而是要通过github的脚本去完全网络安装 实际操作的朋友的朋友就知道网速有多么炸裂-- 我找了高速的服务器翻滚出去,终于10个小时安装完毕,现在给现成的vm映像发布出来,直接用vmware打开就可以了 CommandoVM-虚拟机映像文件下载链接 链接: https://pan.baidu.com/s/1t4-X-LFRjbarbMIShmT5r