代码及原理介绍

为了使电脑更易于使用和访问,Windows添加了一些辅助功能。这些功能可以在用户登录之前以组合键启动。根据这个特征,一些恶意软件无需登录到系统,通过远程桌面协议就可以执行恶意代码。

一些常见的辅助功能如:

  • C:\Windows\System32\sethc.exe                粘滞键 快捷键:按五次shift键
  • C:\Windows\System32\utilman.exe           设置中心 快捷键:Windows+U键

在较早的Windows版本,只需要进行简单的二进制文件替换,比如,程序” C:\Windows\System32\utilman.exe”可以替换为“cmd.exe”。

对于在Windows Vista和Windows Server 2008及更高的版本中,替换的二进制文件受到了系统的保护,因此这里就需要另一项技术:映像劫持。

映像劫持,也被称为“IFEO”(Image File Execution Options)。当目标程序被映像劫持时,双击目标程序,系统会转而运行劫持程序,并不会运行目标程序。许多病毒会利用这一点来抑制杀毒软件的运行,并运行自己的程序。造成映像劫持的罪魁祸首就是参数“Debugger”,它是IFEO里第一个被处理的参数,系统如果发现某个程序文件在IFEO列表中,它就会首先来读取Debugger参数,如果该参数不为空,系统则会把Debugger参数里指定的程序文件名作为用户试图启动的程序执行请求来处理,而仅仅把用户试图启动的程序作为Debugger参数里指定的程序文件名的参数发送过去。参数“Debugger”本来是为了让程序员能够通过双击程序文件直接进入调试器里调试自己的程序。现在却成了病毒的攻击手段。简单操作就是修改注册表,在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Option”中添加utilman.exe项,在此项中添加debugger键,键值为要启动的程序路径。

注意:Windows NT 和WindowsNT不一样!!!!

C++ 实现代码:

#include <iostream>
#include <Windows.h>
using namespace std;int test()
{DWORD dwDisposition;HKEY hKey;const char path[] = "C:\\hello.exe";RegCreateKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\Utilman.exe", 0, NULL, 0, KEY_WRITE, NULL, &hKey, &dwDisposition);RegSetValueExA(hKey, "Debugger", 0, REG_SZ, (BYTE*)path, (1 + ::lstrlenA(path)));return 0;
}int main()
{test();//system("pause");return 0;
}

当然,我们自己的程序要放到相应的路径。

复现过程

镜像劫持可由多种脚本进行完成,上面是利用C++的脚本,而下面则是reg注册表文件进行完成。另有其他方法,如:VBS等。

注册表代码如下:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\Utilman.exe]
"Debugger"="C://hello.exe"

这段代码就是截取windows+U快捷键来运行自己想要运行的程序。Utilman.exe可以替换为自己想要截取的软件,hello.exe则是自己想要运行的文件。

首先将代码保存为reg文件,然后将hello.exe放入C盘根目录,以管理员身份运行注册表文件。

运行完后会添加如下健和值

在锁屏状态下效果图如下:

本次复现在windows 7 sp1环境下进行,其他系统请自行测试。经测试,windows 10 1809已经不能实现。

检查及清除方法

检查“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image

File Execution Option”注册表路径中的程序名称

其它适用于的辅助功能还有:

  • 屏幕键盘:C:\Windows\System32\osk.exe
  • 放大镜:C:\Windows\System32\Magnify.exe
  • 旁白:C:\Windows\System32\Narrator.exe
  • 显示开关:C:\Windows\System32\DisplaySwitch.exe
  • 应用程序开关:C:\Windows\System32\AtBroker.exe
  • 现在大部分的杀毒软件都会监视注册表项来防御这种恶意行为。

现在大部分的杀毒软件都会监视注册表项来防御这种恶意行为。

本文复现主要用来学习,请勿用于非法用途。

后门及持久化访问1----辅助功能镜像劫持相关推荐

  1. 详细介绍借助Docker Hub访问gcr.io镜像

    前言 在搭建 Kubernetes 集群时,国内用户遇到的第一个问题就是无法访问 gcr.io 镜像,直接导致无法初始化集群也就没有办法成功搭建 Kubernetes 集群. 通常要解决此问题有几种方 ...

  2. 用 镜像劫持 技术 对付一些小病毒

    转自:http://tieba.baidu.com/f?ct=335675392&tn=baiduPostBrowser&sc=3089509323&z=306699323&a ...

  3. ATTCK v10版本战术实战研究—持久化(一)

    一.前言 "在网络安全的世界里,白帽子与黑帽子之间无时无刻都在进行着正与邪的对抗,似乎永无休止.正所谓,道高一尺魔高一丈,巨大的利益驱使着个人或组织利用技术进行不法行为,花样层出不穷,令人防 ...

  4. Windows留后门--教程(五)——shift粘贴键后门

    一.shift粘贴键后门介绍 Shift粘滞键是当用户连按5次shift就会自动弹出的一个程序,其实不光是粘滞键,还有各种辅助功能,这类辅助功能都拥有一个特点就是当用户未进行登录时也可以触发.所以攻击 ...

  5. 【内网安全】——Windows权限维持

    作者名:白昼安全 主页面链接: 主页传送门 创作初心: 以后赚大钱 座右铭: 不要让时代的悲哀成为你的悲哀 专研方向: web安全,后渗透技术 每日鸡汤: 20岁的年纪不该困在爱与不爱里,对吗 在红队 ...

  6. 如何实现阿里云容器镜像服务反向访问代理?

    简介:本文会先介绍镜像推送/拉取过程的交互逻辑来梳理需要代理的所有服务,再通过搭建一个公网 HTTPS 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理. 真实业务场景可能很复杂,因安全.合 ...

  7. 实现阿里云容器镜像服务反向访问代理

    简介: 本文会先介绍镜像推送/拉取过程的交互逻辑来梳理需要代理的所有服务,再通过搭建一个公网 HTTPS 反向代理来访问容器镜像服务来向您展示多场景代理访问模式原理. 真实业务场景可能很复杂,因安全. ...

  8. Docker 镜像使用,以及远程ssh访问docker容器

    Docker 镜像使用,以及远程ssh访问docker容器 镜像源 网易云镜像中心 地址:https://c.163yun.com/hub#/home DaoCloud镜像 地址:https://hu ...

  9. 国内GitHub 镜像访问加速

    GitHub 镜像访问 这里提供两个最常用的镜像地址: https://github.com.cnpmjs.org https://hub.fastgit.org 也就是说上面的镜像就是一个克隆版的G ...

  10. 浏览器主页劫持,打开就访问889hao,2345导航(已解决)

    RT,前几天碰到了台电脑,打开浏览器就劫持访问889hao. 系统是win10 x64,浏览器是360安全浏览器.IE浏览器,其他没装不清楚. 按以往经验,逐一排查: 检查浏览器主页设置,设百度为首页 ...

最新文章

  1. HDU(1847)Good Luck in CET-4 Everybody!
  2. 源码分析 @angular/cdk 之 Portal
  3. Gitlab+Jenkins学习之路(六)之Jenkins部署、升级和备份
  4. 常见数据库的Connection URL
  5. 38.C++修饰构造函数的explicit关键字
  6. 共享内存+Shellcode实现跨进程调用3环函数
  7. 红米k30 android版本,Redmi K30 Pro 推送 MIUI 12.2.1 稳定版:为安卓跨版本升级
  8. 【报告分享】5G网络切片分级白皮书.pdf(附下载链接)
  9. 当你输入一个网址的时候,实际会发生什么?(转)
  10. C语言TCP客户端获取时间
  11. Linux下的两个经典宏定义【转】
  12. java编写万年历_怎么用JAVA编写万年历!
  13. Node.js 创建第一个应用
  14. 荣耀30s刷鸿蒙,荣耀终于放出大招!4部荣耀旗舰可升级鸿蒙,网友:终于等到了...
  15. python宣传视频 抖音_python下载抖音无水印视频
  16. svn 冲突 Error:Node remains in conflict
  17. 分享一篇投稿英文期刊该如何回复审稿人的文章
  18. 四川大学考研真题 || 信息资源管理导论(二)
  19. 密码暴力破解漏洞(kali crunch)
  20. APP第11篇 微信小程序测试

热门文章

  1. STM32之提升迷之自信(时钟的制作)
  2. IT成长日记(二)——联想打印机
  3. dos命令行设置网络优先级_实用批处理:不用下软件就能 批量改名,修复网络,删除小文件...
  4. 基于Matlab/Simulink的1/4车辆动力学模型
  5. css元素背景图片自适应屏幕大小
  6. I LOVE YOU TOO密码解析
  7. 飞猪IP-代理-换IP作用
  8. 英文环境中Wine微信不能显示中文
  9. 中兴B860AV2.1-A,M,T-当贝纯净桌面-线刷固件(附刷机教程)
  10. 软件测试中的43个功能测试点总结