print spooler LPF 打印机漏洞
打印机漏洞
该漏洞可以通过创建打印机驱动和端口,实现任意文件写入,用于提权或者写入后门。
打印机调用流程:client通过RPC调用server的spoolsv.exe,spoolsv.exe是system权限,容易产生EOP漏洞。
通过powershell可以直接创建打印机驱动和端口。
系统中添加一台新打印机
Add-Printer -Name "PrintDemon" -DriverName "Generic / Text Only" -PortName "c:\windows\tracing\myport.txt"
输出到文件
"Hello,Printer!" | Out-Printer -Name "PrintDemon"
CVE-2020-1048
“AddPort函数浏览网络以查找现有端口,并弹出对话框供用户选择。AddPort函数应该经过调用EnumPorts来验证用户输入的端口名称,以确保不存在重复的名称。AddPort函数的调用方必须具备访问端口所链接的服务器的SERVER_ACCESS_ADMINISTER权限。要添加端口而不显示对话框,可调用XcvData函数而不是AddPort”。
经过控制面板添加打印机在底层是调用了AddPort函数,该函数会触发spooler程序对端口的合法性校验。经过PowerShell命令添加打印机在底层则是直接调用XcvData函数,该函数不会触发spooler程序对用户添加的端口进行安全校验。这个函数可以将port name设置为任意文件而不被检查。
Add-PrinterPort -Name c:\windows\system32\ualapi.dll
在PowerShell窗口中执行即可.
CVE-2020-1337
经过补丁后,紧随其后的CVE-2020-1337又有姿势可以绕检查
从github上获取样本分析
https://github.com/math1as/cve-2020-1337-exploit
powershell -ep bypass ``-F` `C:\CVE-2020-1337-exploit-master\exploit.ps1
在查看了公布的脚本文件可以发现
它的命令也是非常的简单,在执行上述过程中添加了一条命令创建一个系统目录软联接
cmd /c mklink /J c:\users\test\mytarg5 C:\Windows\system32
无论是AddPort还是修复后的XcvData函数进行检查时,都是判断当前用户是否具有对目标路径的访问权限的。
将port name指向 c:\users\test\myfolder\xxx.dll ,通过检查后,再将mytarg5作为一个软链接重定向到目标的系统路径中,即可完成对补丁的绕过。
创建一个软连接,将文件打印位置改为 c:\users\test\mytarg5,便会在C:\Windows\system32下成功创建ualapi.dll.
利用方法
可以使用dll劫持方法。利用目标服务调用特定dll的特性,写入恶意dll,实现权限维持等功能。
[原创] 【漏洞利用】cve-2020-1048、cve-2020-1337漏洞原理及利用-二进制漏洞-看雪论坛-安全社区|安全招聘|bbs.pediy.com
CVE-2021-1678
远程调用打印机漏洞。
RPC协议:
此处的RPC为0x02未添加保护措施,易被中间人攻击。
客户端向恶意服务器发起NTLM协商时,黑客会通过打印机远程过程调用 (RPC) 绑定处理远程 Winspool 接口,然后重放ntlm请求登录。随后就可以远程利用打印机漏洞。
print spooler LPF 打印机漏洞的更多相关文章
- print spooler 服务无法启动 打印机全部消失
这往往是失败的打印任务导致的. 打开 C:\Windows\System32\spool\PRINTERS ,这个目录下的文件全是打印缓存,失败的任务也保存在这里.把这里的文件全部删除,然后再重新启动 ...
- win7系统服务print spooler 无法启动解决方法(开启及关闭方法)
以下是小编从新浪博客一个大雕博客中找到的“print spooler 无法启动”解决方法,请您仔细参考. 在下的系统是Windows7正式版,因为经常要制作PDF文件,所以对虚拟打印机使用较多,在下的 ...
- Windows打印体系结构之Print Spooler概念与架构
Windows打印体系结构之Print Spooler概念与架构Windows 思杰之路(陶菘) · 2016-09-06 22:07 房子好不好,对我而言始终都是肉体的栖居.对于灵魂,我从来不知道该 ...
- 开启打印服务Print Spooler
windows系统需要开启Print Spooler才能进行打印,如果不开启,可能造成很多现象和原因,比如windows打印机队列的打印机全部消失,用Lodop打印的时候提示"Printer ...
- Print Spooler 服务自动停止
1)先在服务里停止并禁用Print Spooler : 2)删除此文件夹下的所有文件,C:\Windows\System32\spool\PRINTERS\ : 3)删除注册表 HKEY_LOCAL_ ...
- 无法启动print spooler服务,错误2,系统找不到指定的文件
来自百度: 无法启动print spooler服务,错误2,系统找不到指定的文件 我的打印机无法运行:出现"打印后台程序没有执行"提示.查:print spooler没有启动.点击 ...
- 启动Print Spooler服务提示:"错误1068,依存服务或无法启动"
本人windows8操作系统,从网上看到在运行中输入 sc config spooler depend= rpcss 即可,试了下果然有效.具体原因待了解.
- Win7 Print Spooler服務自动关闭
对于Win7系统而言,该问题通常是安装了错误的打印驱动引起的,Win7系统为了保护其它进程不受干扰,自动关闭了打印服务. 解决方法就是: a> 把不用的打印机删掉. b> 确保你安装了正确 ...
- win8 优化笔记
win8可以关掉的服务: 以下是小编搜集的可以安全更改为手动启动的服务(按名称排序): Application Experience(启动时为程序处理应用程序兼容性缓存请求) ·Computer Br ...
随机推荐
- C#多线程开发-线程同步 02
上一篇文章主要带领大家认识了线程,也了解到了线程的基本用法和状态,接下来就让我们一起学习下什么是线程同步. 线程中异常的处理 在线程中始终使用try/catch代码块是非常重要的,因为不可能在线程代码 ...
- 微信支付 V3 开发教程(一):初识 Senparc.Weixin.TenPayV3
前言 我在 9 年前发布了 Senparc.Weixin SDK 第一个开源版本,一直维护至今,如今 Stras 已经破 7K,这一路上得到了 .NET 社区的积极响应和支持,也受到了非常多的宝贵建议 ...
- K8S的核心概念
1.Pod -- 是最小部署单元 -- 是一组容器的集合 -- Pod中的容器共享网络 -- 生命周期是短暂的 2.controller -- 确保预期的pod副本的数量 -- 确保所有的node运行 ...
- noip模拟47
原版在 \(linux\) 本地写完没保存关机给没了-- 再简单写一下 \(t2\) 用 \(dp\) 转移 \(f[i]=\sum _ {j=last[a[i]]}^{i-1} f[j]\) 用前缀 ...
- C# List集合类常用操作:三、查找
List集合查询数据 List<Employees> employees = new List<Employees>(); employees.Add(new Employee ...
- Vue组件传值(三)之 深层嵌套组件传值 - $attrs 和 $listeners
$attrs 包含了父作用域中不作为 prop 被识别 (且获取) 的特性绑定 (class 和 style 除外).当一个组件没有声明任何 prop 时,这里会包含所有父作用域的绑定 (class和 ...
- Playfield 类方法的注释
前言 本篇随笔的底包采用的是百度炉石兄弟吧20200109折腾版中自带的 routines 文件. 本次仅为绝大多数方法添加 xml 注释和简单解析,没有具体解析与重构. Playfield 类方法众 ...
- 【第二篇】- Maven 环境配置之Spring Cloud直播商城 b2b2c电子商务技术总结
Maven 环境配置 Maven 是一个基于 Java 的工具,所以要做的第一件事情就是安装 JDK. 如果你还未安装 JDK,可以参考我们的 Java 开发环境配置. 系统要求 项目 要求 JDK ...
- servlet请求转发于重定向
请求的转发与重定向是Servlet控制页面跳转的主要方法,在Web应用中使用非常广泛. 一. 请求的转发 Servlet接收到浏览器端请求后,进行一定的处理,先不进行响应,而是在服务器端内部" ...
- private关键字理解
private 意思: 私有的 私人的 不公开的 private 是一个修饰符可以用来修饰成员变量和方法 被private修饰的成员变量或成员方法,只能在本类中访问,针对private修饰的成员变量, ...