触屏劫持技术原理简述

本文介绍了触屏劫持的发展历程,从2010年斯坦福的首次公开到2017年Android MediaProjection漏洞,揭示了触屏劫持的工作原理,包括隐藏URL地址栏、利用iOS Safari的触屏API以及Android上的具体实现方法。同时,文章提供了Android触屏劫持的简单示例代码,并提出了防御措施,提醒用户警惕不明提示和地址栏篡改,以保护信息安全。

触屏劫持发展过程:
移动智能终端设备由于体积限制,一般都没有鼠标、键盘这些输入设备,用户更多的操作是依靠手指在触屏上的点击或滑动等动作完成。在移动设备上,类似点击劫持的攻击模式,实现了对用户触摸屏操作的劫持攻击,即界面操作劫持攻击的又一种形式——触屏劫持。
2010年斯坦福公布触屏劫持攻击。通过将一个不可见的iframe覆盖到当前网页上就可以劫持用户的触屏操作。由于手机屏幕范围有限,手机浏览器为了节省空间会把地址栏隐藏起来,因此在手机上的视觉欺骗更容易实施。
2017年MWR公布了一个驻留在Android MediaProjection功能服务中的新漏洞:恶意程序在用户不知情的情况下,捕获用户的屏幕内容及录制音频。而该漏洞的成因就是运用了触屏劫持,由于易受攻击的Android版本无法检测到部分隐藏的SystemUI弹窗,这使得攻击者可以制作一个恶意应用程序,在SystemUI弹窗上重叠一个窗口,最终使得恶意应用程序的权限提升,进而实施攻击。据悉超过78%的Android设备受此漏洞影响。
触屏劫持技术原理:

  1. 桌面浏览器
    iOS中的safari浏览器可以将一个网页添加到桌面,当做一个独立的应用运行。添加后,主屏幕上会出现一个由网页缩略图生成的App图标。类似于快捷键方式。这样可以方便进行页面篡改等。
  2. 隐藏URL地址栏
    为了不让用户发现点击按钮后跳转到了奇怪的url地址,我们需要进行视觉欺骗,最简单有效的就是隐藏URL地址栏,除了用全屏模式隐藏URL地址栏外,还可以使用以下代码实现URL地址栏的隐藏
    <body οnlοad=”setTimeout(function()
    {window.scrollTo(0,1)},100);”>
    </body>
  3. 触屏函数
    使用ios中safari浏览器自己独特的触屏API函数,可以模拟鼠标点击或者拖放操作
    函数 说明
    touchstart 手指触摸屏幕时发生
    touchend 手指离开屏幕时发生
    touchmove 手指滑动时发生
    touchcance
### 映像劫持技术的工作原理 映像劫持技术的核心在于利用 Windows 注册表中的特定键值来改变程序的正常运行逻辑。这种技术通过修改注册表项,使得操作系统在启动某个程序时执行的是攻击者指定的目标代码而不是原生的应用程序。 #### 修改注册表项的具体工作过程 1. **Image File Execution Options 键的作用** - 攻击者通常会在 `HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options` 这一路径下创建一个新的子键[^1]。 - 子键的名字通常是目标可执行文件的名称(去掉扩展名),例如对于 `notepad.exe`,可以创建一个名为 `notepad` 的子键。 - 在该子键中添加一个字符串值 `Debugger` 并将其赋值为攻击者想要执行的另一个程序路径。这样,每当用户试图启动对应的程序时,系统实际上会先运行由 `Debugger` 指定的程序。 2. **Debugger 参数的功能** - 当 Windows 加载具有 `Debugger` 参数的程序时,它不会直接运行目标程序本身,而是按照 `Debugger` 值所指示的内容去启动相应的调试器或恶意软件。 - 由于很多安全防护工具也会监控进程启动情况,因此这种方式能够有效绕过部分静态扫描机制,从而隐藏恶意行为的存在。 3. **其他可能受影响的区域** - 被劫持的对象不仅限于标准应用程序,还包括各种服务、驱动甚至系统核心组件等敏感部位。一旦这些关键模块受到干扰,则整个系统的稳定性都将面临巨大威胁[^2]。 4. **实际案例演示** ```python import winreg # 定义要操作的注册表路径 key_path = r'SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options' try: # 打开注册表项准备写入数据 key = winreg.OpenKey(winreg.HKEY_LOCAL_MACHINE, key_path, 0, winreg.KEY_SET_VALUE) # 创建新的子键代表被劫持的目标程序 sub_key_name = 'example_app' # 替代真实应用名称 sub_key_value = '"C:\\path_to_malicious_program.exe"' # 设置成恶意程序的位置 # 添加 Debugger 字符串到新建的子键里边 winreg.SetValueEx(key, 'Debugger', None, winreg.REG_SZ, sub_key_value) print(f"成功设置了 {sub_key_name} 的 Debugger 属性.") except Exception as e: print("发生错误:", str(e)) ``` 以上 Python 示例展示了如何编程访问并篡改上述提到的重要注册表分支结构以便实施图像劫持策略. --- ### 总结 映像劫持技术本质上就是借助合法的操作系统特性——即允许开发者定义自己的调试器——实现了非法用途转换。通过对特定注册表项目的调整,可以让任何受控对象偏离原有功能轨道进而服务于黑客意图下的新使命。尽管如此简单的手法看似粗暴却极其隐蔽高效,给网络安全带来了严峻挑战[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值