1
0
mirror of https://github.com/CPunch/Laika.git synced 2024-12-04 19:52:48 +00:00
Cross-platform RAT, written in Modern C
Go to file
2022-07-12 17:05:30 -05:00
.github/workflows CI: Make windows build less fat 2022-05-19 12:33:47 -05:00
bot Bot: Fixed CreatePseudoConsole type definition 2022-07-12 16:04:29 -05:00
cnc Lib: Variadic packets now use the 'size' field as a minimum requirement 2022-06-30 20:19:35 -05:00
lib Lib: Variadic packets now use the 'size' field as a minimum requirement 2022-06-30 20:19:35 -05:00
libsodium@a606dc79ed VMBoxGen refactor, obfuscate static CNC ip & port strings 2022-05-19 01:42:40 -05:00
shell Lib: Variadic packets now use the 'size' field as a minimum requirement 2022-06-30 20:19:35 -05:00
tools Added .clang-format, formatted codebase 2022-06-27 18:57:00 -05:00
.clang-format Added .clang-format, formatted codebase 2022-06-27 18:57:00 -05:00
.gitignore Lib: Added content stream boilerplate 2022-05-16 18:48:32 -05:00
.gitmodules VMBoxGen refactor, obfuscate static CNC ip & port strings 2022-05-19 01:42:40 -05:00
CMakeLists.txt Removed unused cmake-modules 2022-06-30 20:19:35 -05:00
CONTRIBUTING.md Updated CONTRIBUTING.md; New section to help users add WinAPI imports 2022-07-12 16:08:58 -05:00
LICENSE.md Switched licenses (GPL -> MIT) 2022-06-30 20:19:35 -05:00
README.md Updated README, moved compilation steps to wiki 2022-07-12 17:05:30 -05:00
server.ini Added config inis, key refactoring 2022-04-05 23:57:37 -05:00
shell.ini Added config inis, key refactoring 2022-04-05 23:57:37 -05:00

Laika

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)
  • Server and Shell configuration through .ini files.
  • Ability to open shells remotely on the victim's 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_PUBKEY=? -DLAIKA_PRIVKEY=?, etc.)
    • Obfuscation modes

Why?

I started this project to practice my systems programming skills, specifically networking related things. The networking code in this project (under /lib) is probably what I'm most proud of in this project. After that I start trying to learn some common obfuscation methods I've seen used in the wild. I've used this project mostly to improve my skills of managing a 'larger' project. Things relating to having a consistent code style, documenting features and development tasks are really important skills to have when managing a codebase like this.

How to I use this?

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

Looking to contribute?

Read CONTRIBUTING.md