Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
REC2 — REC2 (Rusty External Command and Control) is client and server tool allowing auditor to execute command from VirusTotal and Mastodon APIs written in Rust. 🦀 | Kitploit
Outils/GitHubGitHub/g0h4n/rec2
Post-ExploitationPenetration TestingCommand and ControlRed TeamingRemote Access ToolPayload Development
GitHubg0h4n/rec2

REC2

REC2 (Rusty External Command and Control) is client and server tool allowing auditor to execute command from VirusTotal and Mastodon APIs written in Rust. 🦀

Voir le dépôt
16222il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

:shipit: Information : REC2 est un ancien projet personnel (début 2023) dont j'ai arrêté le développement. Il fait partie d'une liste de projets qui m'ont aidé à apprendre Rust. Le code est probablement considéré comme obsolète et pas sous sa meilleure forme. Peut-être que je reprendrai là où je me suis arrêté #roadmap. Cependant, REC2 est entièrement fonctionnel et permet d'exécuter des commandes sur une cible Linux / macOS ou Windows à partir des API VirusTotal et Mastodon.

REC2 (Rusty External C2)

GitHub Windows supported Linux supported macOS supported Twitter Follow

logo

⚠️ Avertissement : REC2 est uniquement à des fins éducatives. Utilisez-le à vos propres risques, je ne peux être tenu responsable des dommages causés. L'utilisation de cet outil pour attaquer des cibles sans consentement mutuel préalable est illégale. Il est de la responsabilité de l'utilisateur final de respecter toutes les lois locales, étatiques et fédérales applicables. Je décline toute responsabilité et ne suis pas responsable de tout usage abusif ou dommage causé par cet outil.

🔴 Redteamer : Je partage avec vous une version bêta d'un de mes C2 externes utilisant virustotal et mastodon

🔵 Blueteamer : Vous pouvez trouver un exemple de règles yara pour les implants REC2 dans ce même dépôt

🧮 Sommaire

  • Description
  • Utilisation et Démo
  • Comment le compiler ?
    • En utilisant le Makefile
    • En utilisant le Dockerfile
  • Feuille de route
  • Liens

🏷️ Description

REC2, ou Rusty External Command and Control, est un outil polyvalent de commande et contrôle (C2) développé dans le langage de programmation Rust. Il offre un moyen discret et efficace de gérer des implants distants (clients) sur les systèmes macOS, Linux et Windows. REC2 utilise des API tierces comme VirusTotal ou Mastodon pour transmettre des messages chiffrés avec AES entre le serveur et les implants, permettant aux attaquants d'opérer furtivement à travers ces canaux externes. Les implants peuvent surveiller les tâches en attente, récupérer, déchiffrer, exécuter des tâches sur le système cible et transmettre en toute sécurité les résultats via les mêmes API. L'utilisation de ces API comme intermédiaires ajoute une couche supplémentaire d'anonymisation, réduisant la facilité de remonter jusqu'à l'attaquant.

schema

📺 Utilisation et Démo

server client.exe

Changez certaines valeurs dans implants/(mastodon,virustotal)/src/main.rs :

root@kitploit:~
// (MASTODON ou VIRUSTOTAL) TOKEN 
// <https://mastodon.be/settings/applications>
// <https://developers.virustotal.com/reference/authentication>
let token = lc!("TOKEN").to_owned();
// (MASTODON ou VIRUSTOTAL) URL COMPLÈTE
//let full_url = lc!("https://mastodon.xx/@username/100123451234512345").to_owned();
let full_url = lc!("https://www.virustotal.com/gui/file/99ff0b679081cdca00eb27c5be5fd9428f1a7cf781cc438b937cf8baf8551c4d").to_owned();

Créez l'implant Windows x64 en binaire statique :

root@kitploit:~
make virustotal_windows
make mastodon_windows

Vous pouvez trouver (rec2_virustotal_x64.exe ou rec2_mastodon_x64.exe) dans votre répertoire courant.

Et pour finir, compilez le binaire du serveur :

root@kitploit:~
make c2server_release
./server_release -h
./server_release VirusTotal -h
./server_release Mastodon -h

# Exemple
./server_release VirusTotal --url <URL> --token <TOKEN> --key <AES_KEY>

Maintenant, il vous suffit d'exécuter l'implant sur votre cible.

🚜 Comment le compiler ?

En utilisant le Makefile

Vous pouvez utiliser la commande make pour le compiler pour Linux, Windows ou macOS.

Plus de commandes dans le Makefile :

root@kitploit:~
Serveur REC2 :
usage: make c2server_debug
usage: make c2server_release
usage: make c2server_windows
usage: make c2server_windows_x64
usage: make c2server_windows_x86
usage: make c2server_linux
usage: make c2server_linux_aarch64
usage: make c2server_linux_x86_64
usage: make c2server_macos
usage: make c2server_arm_musl
usage: make c2server_armv7

Implant VirusTotal :
usage: make virustotal_debug
usage: make virustotal_release
usage: make virustotal_windows
usage: make virustotal_windows_x64
usage: make virustotal_windows_x86
usage: make virustotal_linux
usage: make virustotal_linux_aarch64
usage: make virustotal_linux_x86_64
usage: make virustotal_macos
usage: make virustotal_arm_musl
usage: make virustotal_armv7

Implant Mastodon :
usage: make mastodon_debug
usage: make mastodon_release
usage: make mastodon_windows
usage: make mastodon_windows_x64
usage: make mastodon_windows_x86
usage: make mastodon_linux
usage: make mastodon_linux_aarch64
usage: make mastodon_linux_x86_64
usage: make mastodon_macos
usage: make mastodon_arm_musl
usage: make mastodon_armv7

Dépendances :
usage: make install_windows_deps
usage: make install_macos_deps

Documentation :
usage: make c2server_doc
usage: make virustotal_doc
usage: make mastodon_doc

Nettoyage :
usage: make clean

En utilisant le Dockerfile

Construisez REC2 avec docker pour être sûr d'avoir toutes les dépendances.

root@kitploit:~
docker build --rm -t rec2 .

# Ensuite, pour construire le serveur C2 :
docker run --rm -v ./:/usr/src/rec2 rec2 c2server_windows
docker run --rm -v ./:/usr/src/rec2 rec2 c2server_linux
docker run --rm -v ./:/usr/src/rec2 rec2 c2server_macos


# Ensuite, pour construire l'implant VirusTotal :
docker run --rm -v ./:/usr/src/rec2 rec2 virustotal_windows
docker run --rm -v ./:/usr/src/rec2 rec2 virustotal_linux
docker run --rm -v ./:/usr/src/rec2 rec2 virustotal_macos

# Ensuite, pour construire l'implant Mastodon :
docker run --rm -v ./:/usr/src/rec2 rec2 mastodon_windows
docker run --rm -v ./:/usr/src/rec2 rec2 mastodon_linux
docker run --rm -v ./:/usr/src/rec2 rec2 mastodon_macos
AFFICHER PLUS

En utilisant Cargo

Vous devrez installer Rust sur votre système.

https://www.rust-lang.org/fr/tools/install

⚠️ Vous devez exporter la variable LITCRYPT_ENCRYPT_KEY dans votre terminal avant de le compiler. (pour l'obfuscation des chaînes des implants)

root@kitploit:~
export LITCRYPT_ENCRYPT_KEY="MYSUPERPASSWORD1234567890"
LITCRYPT_ENCRYPT_KEY="MYSUPERPASSWORD1234567890"

⚠️ Vous devez changer AESKEY dans implants/(virustotal,mastodon)/main.rs et changer l'URL et le TOKEN.

Voici comment compiler les versions "release" et "debug" en utilisant la commande cargo.

root@kitploit:~
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choisissez votre implant Mastodon ou VirusTotal

# implants/mastodon/Cargo.toml
# version release
cargo build --release --manifest --manifest-path implants/mastodon/Cargo.toml
# ou version debug
cargo b --manifest-path implants/mastodon/Cargo.toml

# implants/virustotal/Cargo.toml
# version release
cargo build --release --manifest --manifest-path implants/virustotal/Cargo.toml
# ou version debug
cargo b --manifest-path implants/virustotal/Cargo.toml

# Serveur
cargo build --release --manifest --manifest-path server/Cargo.toml
# ou version debug
cargo b --manifest-path server/Cargo.toml

🚦 Feuille de route

  • CRYPTO
    • AES
  • IMPLANTS
    • IMPLANTS
  • SERVEUR
    • SESSION
    • JOBS
    • Fonction de vérification asynchrone du statut des jobs
    • Fonction de vérification asynchrone du statut des sessions
    • Sélectionner les sessions actuelles avec sessions -i 1 pour attacher la session numéro 1 [28/09/2023]
    • Ajouter la commande background [28/09/2023]
  • RÉSEAU SOCIAL
    • MASTODON : https://docs.rs/megalodon/latest/megalodon/
    • VIRUSTOTAL : https://docs.rs/virustotal3/latest/virustotal3/
    • SOUNDCLOUD :

🔗 Liens

  • https://github.com/D1rkMtr/VirusTotalC2
Télécharger l’outil

Le résultat des Implants peut être trouvé dans le dossier implants/(mastodon,virustotal)/target/release ou dans le dossier implants/(mastodon,virustotal)/target/debug. Le résultat du serveur peut être trouvé dans le dossier server/target/release ou dans le dossier server/target/debug.

Vous trouverez ci-dessous la méthodologie de compilation pour chacun des OS depuis Linux. Si vous avez besoin d'un autre système de compilation, veuillez consulter la liste dans ce lien : https://doc.rust-lang.org/nightly/rustc/platform-support.html

Manuellement pour la version statique Linux x86_64

root@kitploit:~
# Installez rustup et Cargo pour Linux
curl https://sh.rustup.rs -sSf | sh

# Ajoutez les dépendances Linux
rustup install stable-x86_64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu

# Compilation statique pour Linux
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choisissez votre implant Mastodon ou VirusTotal

# implants/mastodon/Cargo.toml
CFLAGS="-lrt";LDFLAGS="-lrt";RUSTFLAGS='-C target-feature=+crt-static';cargo build --release --target x86_64-unknown-linux-gnu --manifest-path implants/mastodon/Cargo.toml

# implants/virustotal/Cargo.toml
CFLAGS="-lrt";LDFLAGS="-lrt";RUSTFLAGS='-C target-feature=+crt-static';cargo build --release --target x86_64-unknown-linux-gnu --manifest-path implants/virustotal/Cargo.toml

# Serveur
CFLAGS="-lrt";LDFLAGS="-lrt";RUSTFLAGS='-C target-feature=+crt-static';cargo build --release --target x86_64-unknown-linux-gnu --manifest-path server/Cargo.toml

Le résultat peut être trouvé dans le dossier implants/(mastodon,virustotal)/target/x86_64-unknown-linux-gnu/release ou dans le dossier server/target/x86_64-unknown-linux-gnu/release.

Manuellement pour la version statique Windows depuis Linux

root@kitploit:~
# Installez rustup et Cargo dans Linux
curl https://sh.rustup.rs -sSf | sh

# Ajoutez les dépendances Windows
rustup install stable-x86_64-pc-windows-gnu
rustup target add x86_64-pc-windows-gnu

# Compilation statique pour Windows
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choisissez votre implant Mastodon ou VirusTotal

# implants/mastodon/Cargo.toml
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-pc-windows-gnu --manifest-path implants/mastodon/Cargo.toml

# implants/virustotal/Cargo.toml
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-pc-windows-gnu --manifest-path implants/virustotal/Cargo.toml

# Serveur
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-pc-windows-gnu --manifest-path server/Cargo.toml

Le résultat peut être trouvé dans le dossier implants/(mastodon,virustotal)/target/x86_64-pc-windows-gnu/release ou dans le dossier server/target/x86_64-pc-windows-gnu/release.

Manuellement pour la version statique macOS depuis Linux

Documentation incroyable : https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html

root@kitploit:~
# Installez rustup et Cargo dans Linux
curl https://sh.rustup.rs -sSf | sh

# Ajoutez la chaîne d'outils macOS
sudo git clone https://github.com/tpoechtrager/osxcross /usr/local/bin/osxcross
sudo wget -P /usr/local/bin/osxcross/ -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz && sudo mv /usr/local/bin/osxcross/MacOSX10.10.sdk.tar.xz /usr/local/bin/osxcross/tarballs/
sudo UNATTENDED=yes OSX_VERSION_MIN=10.7 /usr/local/bin/osxcross/build.sh
sudo chmod 775 /usr/local/bin/osxcross/ -R
export PATH="/usr/local/bin/osxcross/target/bin:$PATH"

# Cargo doit être informé d'utiliser le bon linker pour la cible x86_64-apple-darwin, alors ajoutez ce qui suit au fichier .cargo/config de votre projet :
grep 'target.x86_64-apple-darwin' ~/.cargo/config || echo "[target.x86_64-apple-darwin]" >> ~/.cargo/config
grep 'linker = "x86_64-apple-darwin14-clang"' ~/.cargo/config || echo 'linker = "x86_64-apple-darwin14-clang"' >> ~/.cargo/config
grep 'ar = "x86_64-apple-darwin14-clang"' ~/.cargo/config || echo 'ar = "x86_64-apple-darwin14-clang"' >> ~/.cargo/config

# Compilation statique pour macOS
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choisissez votre implant Mastodon ou VirusTotal

# implants/mastodon/Cargo.toml
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-apple-darwin --manifest-path implants/mastodon/Cargo.toml

# implants/virustotal/Cargo.toml
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-apple-darwin --manifest-path implants/virustotal/Cargo.toml

# Serveur
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-apple-darwin --manifest-path server/Cargo.toml

Le résultat peut être trouvé dans le dossier implants/(mastodon,virustotal)/target/x86_64-apple-darwin/release.

Comment construire la documentation ?

root@kitploit:~
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choisissez votre implant Mastodon ou VirusTotal

# implants/mastodon/Cargo.toml
cargo doc --open --no-deps --manifest-path implants/mastodon/Cargo.toml

# implants/virustotal/Cargo.toml
cargo doc --open --no-deps --manifest-path implants/virustotal/Cargo.toml

# Serveur
cargo doc --open --no-deps --manifest-path server/Cargo.toml
https://docs.rs/soundcloud/latest/soundcloud/
  • Quelques idées ?