Use bpf programs as filters for seccomp, the one in the example will block all the write syscalls after it's loaded.
Compile it with just
gcc main.c
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Runtime.CompilerServices; | |
using System.Net; | |
using System.Reflection; | |
using System.Runtime.InteropServices; | |
namespace Test | |
{ | |
// CCOB IS THE GOAT |
// A very rough x64 POC for spoofing environment variables similar to argument spoofing with a focus on | |
// setting the COMPlus_ETWEnabled=0 var for disabling ETW in .NET. | |
// | |
// Works by launching the target process suspended, reading PEB, updates the ptr used to store environment variables, | |
// and then resuming the process. | |
// | |
// (https://blog.xpnsec.com/hiding-your-dotnet-complus-etwenabled/) | |
#define INJECT_PARAM L"COMPlus_ETWEnabled=0\0\0\0" | |
#define INJECT_PARAM_LEN 43 |
#ifndef PATCHLESS_AMSI_H | |
#define PATCHLESS_AMSI_H | |
#include <windows.h> | |
static const int AMSI_RESULT_CLEAN = 0; | |
PVOID g_amsiScanBufferPtr = nullptr; | |
unsigned long long setBits(unsigned long long dw, int lowBit, int bits, unsigned long long newValue) { |
using System; | |
using System.Windows.Forms; | |
using System.Runtime.InteropServices; | |
using System.Runtime.CompilerServices; | |
namespace Test1 | |
{ | |
public static class Test | |
{ | |
internal enum HRESULT : long |
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 |
function Register-EventScript { | |
param ( | |
[string] $eventToRegister, # Either Startup or Shutdown | |
[string] $pathToScript, | |
[string] $scriptParameters | |
) | |
$path = "$ENV:systemRoot\System32\GroupPolicy\Machine\Scripts\$eventToRegister" | |
if (-not (Test-Path $path)) { | |
# path HAS to be available for this to work |
function Get-InjectedThread | |
{ | |
<# | |
.SYNOPSIS | |
Looks for threads that were created as a result of code injection. | |
.DESCRIPTION | |
# requires PSReflect.ps1 to be in the same directory as this script | |
. .\PSReflect.ps1 | |
$Module = New-InMemoryModule -ModuleName RegHide | |
# Define our structs. | |
# https://msdn.microsoft.com/en-us/library/windows/hardware/ff564879(v=vs.85).aspx | |
# typedef struct _UNICODE_STRING { | |
# USHORT Length; | |
# USHORT MaximumLength; |
/* | |
* Copyright (c) 2013 Calvin Rien | |
* | |
* Based on the JSON parser by Patrick van Bergen | |
* http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html | |
* | |
* Simplified it so that it doesn't throw exceptions | |
* and can be used in Unity iPhone with maximum code stripping. | |
* | |
* Permission is hereby granted, free of charge, to any person obtaining |