mirror of
https://github.com/maride/afl-transmit.git
synced 2026-09-21 08:45:20 +00:00
Add AES encryption between nodes
This commit is contained in:
@@ -6,6 +6,7 @@ Transfer AFL files over a mesh to fuzz across multiple servers
|
||||
|
||||
- Using DEFLATE compression format (see [RFC 1951](https://www.ietf.org/rfc/rfc1951.html))
|
||||
- Automatically syncs the main fuzzer to secondary nodes, and all secondary fuzzers back to the main node
|
||||
- Encrypts traffic between nodes using AES-256, dropping plaintext packets
|
||||
- Usable on UNIXoid (Linux, OSX) systems and Windows
|
||||
|
||||
## Usage
|
||||
@@ -22,3 +23,17 @@ As a countermeasure, use the `--restrict-to-peers` flags to only allow connectio
|
||||
- On your host 10.0.0.2: `./afl-transmit --fuzzer-directory /ram/output --peers 10.0.0.1`
|
||||
- On your host 10.0.0.3: `./afl-transmit --fuzzer-directory /ram/output --peers 10.0.0.1`
|
||||
|
||||
### Crypto
|
||||
|
||||
If you want to encrypt your traffic between the nodes - which is advised, as it increases security and there is nearly no argument against it - you can do so by specifying a random key with `--key`.
|
||||
To keep *afl-transmit* simple, the symmetric encryption algorithm AES256-GCM was chosen over an asymmetric variant. This means you need to specify the same key on all nodes.
|
||||
|
||||
Key generation is fairly simple, you just need to get 32 random bytes from somewhere (buy them, or use `/dev/urandom`), and wrap them with base64.
|
||||
For example like this:
|
||||
|
||||
```
|
||||
dd if=/dev/urandom bs=32 count=1 2>/dev/null | base64 | tee transmit.key
|
||||
./afl-transmit --key $(cat transmit.key) --fuzzer-directory ...
|
||||
```
|
||||
|
||||
As already said, the same key must be used on all nodes.
|
||||
|
||||
Reference in New Issue
Block a user