nim-loader
un proyecto muy tosco y en progreso de aventura aprendiendo nim combinando recursos para crear
un cargador de shellcode que implementa técnicas comunes de evasión de EDR/AV.
¡Esto es un desastre y es solo con fines de investigación! Por favor, no esperes que compile y se ejecute sin tus propias modificaciones.
Instrucciones
- Reemplaza el arreglo de bytes en
loader.nim con tu propio shellcode x64
- Compila el EXE y ejecútalo:
nim c -d:danger -d:strip --opt:size "loader.nim"
- Probablemente ajusta en qué proceso quieres inyectar mirando los archivos .nim de la carpeta del método de inyección que estés usando...
Funcionalidades Completadas
- Llamadas directas al sistema resueltas dinámicamente desde NTDLL (Gracias @ShitSecure)
- Parcheo de AMSI y ETW (Gracias @byt3bl33d3r)
- Desenganche de NTDLL (Gracias @MrUn1k0d3r)
- Inyección CreateRemoteThread (Gracias @byt3bl33d3r, @ShitSecure)
Funcionalidades en Progreso
- Técnica de Process Hollowing (Gracias @snovvcrash)
- Cifrado/descifrado de shellcode usando [AES en modo CTR](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Counter_(CTR) (Gracias @snovvcrash)
- Reemplazar todas las llamadas API compatibles con llamadas al sistema
- Agregar generador de plantillas y compilador, argumentos de línea de comandos para shellcode, métodos de inyección, rutas de procesos, etc.
Ofuscación
- Considera usar denim de @LittleJoeTables para soporte de compilación nim con obfuscator-llvm
Referencias e Inspiración
- OffensiveNim por Marcello Salvati (@byt3bl33d3r)
- NimlineWhispers2 por Alfie Champion (@ajpc500)
- SysWhispers3 por klezVirus (@KlezVirus)
- NimPackt-v1 por Cas van Cooten (@chvancooten)
- unhook_bof.c por Mr. Un1k0d3r (@MrUn1k0d3r)
- NimGetSyscallStub por S3cur3Th1sSh1t (@ShitSecure)
- NimHollow por snovvcrash (@snovvcrash)
Ejemplos