nim-loader
un'avventura molto grezza in lavorazione per imparare il nim assemblando risorse per creare un caricatore di shellcode che implementa tecniche comuni di evasione EDR/AV.
Questo è un pasticcio ed è solo a scopo di ricerca! Per favore, non aspettarti che compili e funzioni senza le tue modifiche.
Istruzioni
- Sostituisci l'array di byte in
loader.nim con il tuo shellcode x64
- Compila l'EXE ed eseguilo:
nim c -d:danger -d:strip --opt:size "loader.nim"
- Probabilmente regola il processo in cui vuoi iniettare guardando nei file .nim della cartella del metodo di iniezione che stai usando...
Funzionalità completate
- Syscall dirette risolte dinamicamente da NTDLL (Grazie @ShitSecure)
- Patching di AMSI e ETW (Grazie @byt3bl33d3r)
- Unhooking di NTDLL (Grazie @MrUn1k0d3r)
- Iniezione CreateRemoteThread (Grazie @byt3bl33d3r, @ShitSecure)
Funzionalità in lavorazione
- Tecnica di Process Hollowing (Grazie @snovvcrash)
- Crittografia/decrittografia dello shellcode usando [AES in modalità CTR](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_(CTR) (Grazie @snovvcrash)
- Sostituisci tutte le chiamate API compatibili con syscall
- Aggiungi generatore di template e compilatore, argomenti da riga di comando per shellcode, metodi di iniezione, percorsi di processo, ecc.
Offuscamento
- Considera l'uso di denim di @LittleJoeTables per il supporto alla compilazione nim con obfuscator-llvm!
Riferimenti e ispirazione
- OffensiveNim di Marcello Salvati (@byt3bl33d3r)
- NimlineWhispers2 di Alfie Champion (@ajpc500)
- SysWhispers3 di klezVirus (@KlezVirus)
- NimPackt-v1 di Cas van Cooten (@chvancooten)
- unhook_bof.c di Mr. Un1k0d3r (@MrUn1k0d3r)
- NimGetSyscallStub di S3cur3Th1sSh1t (@ShitSecure)
- NimHollow di snovvcrash (@snovvcrash)
Esempi