LSP 劫持注入
LSP(Layer Service Provider,分层服务提供者)是一个 DLL 程序,安装在 winsock 目录中,依靠底层的基础服务提供者来实现高层的服务。
LSP 的体系结构如下图所示
其中,SPI(Service Provider Interface,服务提供者接口)是由分层服务提供者导出的供 ws2_32.dll 调用的系列函数。例如,与 winsock API 对应的 SPI 函数有 WSPStartup,WSPSocket等。当网络应用程序调用 WSASocket/socket 函数创建套接字时,会有 3 个参数,分别是地址族、套接字类型和协议。正是这 3 个参数共同决定了由哪种传输服务提供者(基础服务提供者,分层服务提供者)来实现本应用程序的功能,这样便实现了 LSP 的加载功能。
在安全领域中,注入二字其实很常见。
从技术角度上讲,注入其实就是迫使第三方进程非自愿地加载某个外来模块,因此注入和反注入一直处在持续不断的斗争过程中,就好像子弹和防弹衣/装甲一直都在不断地对抗。
注入好比发射子弹,防弹衣好比保护手段,子弹嵌入射击对象体内则表明注入成功,否则便是反注入成功,即注入失败。
而LSP 劫持注入,便是五花八门的注入技术中的一种。
老实说,我对穿越技术比对这个问题感兴趣多了,为什么大家那么喜欢cos呢?成天幻想着自己是托洛茨基同志,在红场上对红军战士招手吗?能赚几个毛主席啊?洗洗睡吧,cos有风险。