
Un implante C2 de primera etapa ligero escrito en Nim (y Rust).
Por Cas van Cooten (@chvancooten), con agradecimientos especiales a algunas personas increíbles:
Kadir Yamamoto (@yamakadi), Furkan Göksel (@frkngksl) , Fabian Mosch (@S3cur3Th1sSh1t), Rafael Félix (@b1scoito), Guillaume Caillé (@OffenseTeacher), ¡y muchos otros!
Si NimPlant te ha sido útil y/o te gusta mi trabajo en general, tu apoyo es muy bienvenido:
inline-execute, shinject (usando invocación dinámica), powershell en un runspace personalizado, o execute-assembly en el mismo hiloSe requiere una versión moderna de Python3 para ejecutar NimPlant.
requirements.txt desde la carpeta del servidor (pip3 install -r server/requirements.txt).choosenim, ya que apt no siempre tiene la versión más reciente).cd client; nimble install -d).mingw para tu plataforma (brew install mingw-w64 o apt install mingw-w64).rustup).rustup target add x86_64-pc-windows-gnu.~/.cargo/config.toml según Cargo.toml y usa la cadena de compilación nightly (rustup default nightly).Nota: Incluso si compilas en Windows, se recomienda el objetivo
x86_64-pc-windows-gnu. Resulta en binarios ligeramente más grandes, pero parece ser más estable cuando se genera shellcode a partir del DLL resultante. Puedes modificarrust-toolchain.tomlpara cambiar el objetivo ax86_64-pc-windows-msvc, pero el shellcode generado podría no funcionar correctamente en todos los casos.
Antes de usar NimPlant, crea el archivo de configuración config.toml. Se recomienda copiar config.toml.example y trabajar a partir de ahí.
A continuación se proporciona una visión general de las opciones.