Cross-platform RAT, written in Modern C
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
CPunch 7c4a5ddc8c VMBoxGen: minor refactoring 8 months ago
.github/workflows CI: Make windows build less fat 1 year ago
bot VMBoxGen: minor refactoring 8 months ago
cnc minor 'DEBUG' refactoring 8 months ago
lib VMBoxGen: minor refactoring 8 months ago
libsodium@f568ff02f1 updated to latest libsodium version 8 months ago
shell minor 'DEBUG' refactoring 8 months ago
tools VMBoxGen: minor refactoring 8 months ago
.clang-format Added .clang-format, formatted codebase 11 months ago
.gitignore Lib: Added content stream boilerplate 1 year ago
.gitmodules VMBoxGen refactor, obfuscate static CNC ip & port strings 1 year ago
CMakeLists.txt stale comment 8 months ago CONTRIB: ltask.c should probably be reviewed lol 9 months ago Switched licenses (GPL -> MIT) 11 months ago updated README 8 months ago
server.ini Added config inis, key refactoring 1 year ago
shell.ini Added config inis, key refactoring 1 year ago


Workflow License

Laika is a simple cross-platform Remote Access Toolkit stack for educational purposes. It allows encrypted communication across a custom binary protocol. The bot client supports both Windows & Linux environments, while the shell & CNC server specifically target Linux environments. Laika is meant to be small and discreet, Laika believes in hiding in plain sight.

Some notable features thus far:

  • Lightweight, the bot alone is 183kb (MinSizeRel) and uses very little resources minimizing Laika's footprint.
  • Authentication & packet encryption using LibSodium and a predetermined public CNC key. (generated with bin/genKey)
  • CNC and Shell configuration through .ini files.
  • Open shells remotely on the victim machine.
  • Persistence across reboot: (toggled with -DLAIKA_PERSISTENCE=On)
    • Persistence via Cron on Linux-based systems.
    • Persistence via Windows Registry.
  • Uses obfuscation techniques also seen in the wild (string obfuscation, tiny VMs executing sensitive operations, etc.)
  • Simple configuration using CMake:
    • Setting keypairs (-DLAIKA_CNC_IP=? -DLAIKA_CNC_PORT=?, etc.)
    • Enabling/Disabling Obfuscation (-DLAIKA_OBFUSCATE=On)
      • Obfuscation modes

How do I use this?

Please refer to the Wiki for any questions relating to deployment, compilation & setup.

Looking to contribute?