mirror of
https://github.com/CPunch/Laika.git
synced 2024-11-25 05:50:15 +00:00
Updated README
This commit is contained in:
parent
291c4479ff
commit
574afdda16
25
README.md
25
README.md
@ -1,20 +1,31 @@
|
|||||||
# Laika
|
# Laika
|
||||||
|
|
||||||
Laika is a simple botnet stack for red teaming. It allows authenticated communication across a custom protocol with generated key pairs which are embedded into the executable.
|
Laika is a simple botnet stack for red teaming. It allows authenticated communication across a custom protocol with generated key pairs which are embedded into the executable (only the public key is embedded in the bot client ofc).
|
||||||
|
|
||||||
Some notable features thus far:
|
Some notable features thus far:
|
||||||
- [X] Lightweight, the bot alone is 270kb (22kb if not statically linked) and uses very little resources.
|
- [X] Lightweight, the bot alone is 270kb (22kb if not statically linked with LibSodium) and uses very little resources.
|
||||||
- [ ] Uses obfuscation techniques also seen in the wild (string obfuscation, tiny VMs executing sensitive operations, etc.)
|
- [ ] Uses obfuscation techniques also seen in the wild (string obfuscation, tiny VMs executing sensitive operations, etc.)
|
||||||
- [ ] Simple configuration using CMake
|
- [ ] Simple configuration using CMake
|
||||||
- [X] Setting keypairs (`-DLAIKA_PUBKEY=? -DLAIKA_PRIVKEY=?`)
|
- [X] Setting keypairs (`-DLAIKA_PUBKEY=? -DLAIKA_PRIVKEY=?`)
|
||||||
- [ ] Obfuscation modes
|
- [ ] Obfuscation modes
|
||||||
|
|
||||||
## Why 'Laika'?
|
## Why?
|
||||||
|
|
||||||
During the soviet space race, [Laika](https://en.wikipedia.org/wiki/Laika) was the first dog in space; however shortly after died of asphyxiation and overheating of the shuttle. Take whatever you want from this information.
|
It's a fun project :)
|
||||||
|
|
||||||
|
## Would this work in real world scenarios?
|
||||||
|
|
||||||
|
My hope is that this becomes complete enough to be accurate to real botnet sources seen in the wild. However since Laika uses a binary protocol, the traffic the bot/CNC create would look very suspect and scream to sysadmins. This is why most botnets nowadays use an HTTP-based protocol, not only to 'blend in' with traffic, but it also scales well with large networks of bots where the CNC can be deployed across multiple servers and have a generic HTTP load balancer.
|
||||||
|
|
||||||
|
I could add some padding to each packet to make it look pseudo-HTTP-like, however I haven't given much thought to this.
|
||||||
|
|
||||||
## Configuration and compilation
|
## Configuration and compilation
|
||||||
|
|
||||||
|
Make sure you have the following libraries and tools installed:
|
||||||
|
- CMake (>=3.11)
|
||||||
|
- LibSodium (static library)
|
||||||
|
- NCurses
|
||||||
|
|
||||||
First, compile the target normally
|
First, compile the target normally
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -30,5 +41,9 @@ Now, generate your custom key pair using `genKey`
|
|||||||
Next, rerun cmake, but passing your public and private keypairs
|
Next, rerun cmake, but passing your public and private keypairs
|
||||||
|
|
||||||
```
|
```
|
||||||
rm -rf build && cmake -B build -DLAIKA_PUBKEY=997d026d1c65deb6c30468525132be4ea44116d6f194c142347b67ee73d18814 -DLAIKA_PRIVKEY=1dbd33962f1e170d1e745c6d3e19175049b5616822fac2fa3535d7477957a841 && cmake --build build
|
rm -rf build &&\
|
||||||
|
cmake -B build -DLAIKA_PUBKEY=997d026d1c65deb6c30468525132be4ea44116d6f194c142347b67ee73d18814 -DLAIKA_PRIVKEY=1dbd33962f1e170d1e745c6d3e19175049b5616822fac2fa3535d7477957a841 -DCMAKE_BUILD_TYPE=MinSizeRel &&\
|
||||||
|
cmake --build build
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Output binaries are put in the `./bin` folder
|
@ -6,7 +6,7 @@
|
|||||||
#define LAIKA_VERSION_MINOR 1
|
#define LAIKA_VERSION_MINOR 1
|
||||||
|
|
||||||
/* keys */
|
/* keys */
|
||||||
#define LAIKA_PUBKEY "40d5534aca77d1f5ec2bbe79dd9d0f52a78148918f95814404cefe97c34c5c27"
|
#define LAIKA_PUBKEY "997d026d1c65deb6c30468525132be4ea44116d6f194c142347b67ee73d18814"
|
||||||
#define LAIKA_PRIVKEY "90305aa77023d1c1e03265c3b6af046eb58d6ec8ba650b0dffed01379feab8cc"
|
#define LAIKA_PRIVKEY "1dbd33962f1e170d1e745c6d3e19175049b5616822fac2fa3535d7477957a841"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user