Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
REC2 — REC2 (Rusty External Command and Control) — это клиент-серверный инструмент, позволяющий аудитору выполнять команды через API VirusTotal и Mastodon, написанный на Rust. 🦀 | Kitploit
Инструменты/GitHubGitHub/g0h4n/rec2
Пост-эксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubg0h4n/rec2

REC2

REC2 (Rusty External Command and Control) — это клиент-серверный инструмент, позволяющий аудитору выполнять команды через API VirusTotal и Mastodon, написанный на Rust. 🦀

Репозиторий
1622252 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

:shipit: Информация: REC2 — это старый личный проект (начала 2023 года), разработку которого я не продолжил. Он входит в список проектов, которые помогли мне выучить Rust. Код, вероятно, можно считать устаревшим и не самым лучшим по форме. Возможно, я вернусь к нему #roadmap. Тем не менее, REC2 полностью функционален и позволяет выполнять команды на цели Linux / macOS или Windows через API VirusTotal и Mastodon.

REC2 (Rusty External C2)

GitHub Windows supported Linux supported macOS supported Twitter Follow

logo

⚠️ Дисклеймер: REC2 предназначен только для образовательных целей. Используйте его на свой страх и риск; я не несу ответственности за любой причинённый ущерб. Использование этого инструмента для атак на цели без предварительного обоюдного согласия незаконно. Ответственность за соблюдение всех применимых местных, государственных и федеральных законов лежит на конечном пользователе. Я не принимаю на себя никакой ответственности и не отвечаю за неправомерное использование или ущерб, причинённый этим инструментом.

🔴 Redteamer: Я делюсь с вами бета-версией одного из моих внешних C2, использующего virustotal и mastodon

🔵 Blueteamer: Пример yara-правил для имплантов REC2 вы можете найти в этом же репозитории

🧮 Содержание

  • Описание
  • Использование и демонстрация
  • Как это скомпилировать?
    • С помощью Makefile
    • С помощью Dockerfile
  • Дорожная карта
  • Ссылки

🏷️ Описание

REC2, или Rusty External Command and Control, — это универсальный инструмент C2 (Command and Control), разработанный на языке программирования Rust. Он предоставляет незаметный и эффективный способ управления удалёнными имплантами (клиентами) в системах macOS, Linux и Windows. REC2 использует сторонние API, такие как VirusTotal или Mastodon, для передачи зашифрованных с помощью AES сообщений между сервером и имплантами, что позволяет атакующим действовать скрытно через эти внешние каналы. Импланты могут отслеживать ожидающие задания, получать, расшифровывать и выполнять задачи на целевой системе, а также безопасно передавать результаты обратно через те же API. Использование этих API в качестве посредников добавляет дополнительный уровень анонимизации, затрудняя отслеживание до атакующего.

schema

📺 Использование и демонстрация

server client.exe

Измените некоторые значения в implants/(mastodon,virustotal)/src/main.rs :

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

Скомпилируйте имплант Windows x64 в статический бинарник:

root@kitploit:~
make virustotal_windows
make mastodon_windows

Вы можете найти (rec2_virustotal_x64.exe или rec2_mastodon_x64.exe) в вашем текущем каталоге.

И в конце скомпилируйте бинарник сервера:

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

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

Теперь вам просто нужно запустить имплант на вашей цели.

🚜 Как это скомпилировать?

С помощью Makefile

Вы можете использовать команду make для компиляции под Linux, Windows или mac0S.

Больше команд в Makefile:

root@kitploit:~
REC2 Server:
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

VirusTotal implant:
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

Mastodon implant:
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

Dependencies:
usage: make install_windows_deps
usage: make install_macos_deps

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

Cleaning:
usage: make clean

С помощью Dockerfile

Соберите REC2 с помощью docker, чтобы убедиться, что все зависимости установлены.

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

# Then to build C2 server:
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


# Then to build VirusTotal implant:
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

# Then to build Mastodon implant:
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
SHOW MORE

С помощью Cargo

Вам потребуется установить Rust в вашей системе.

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

:warining: Вам нужно экспортировать переменную LITCRYPT_ENCRYPT_KEY в вашем терминале перед компиляцией. (для обфускации строк имплантов)

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

:warining: Вам нужно изменить AESKEY в implants/(virustotal,mastodon)/main.rs, а также изменить URL и TOKEN.

Вот как скомпилировать версии "release" и "debug" с помощью команды cargo.

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

# Implants
# choise your implant Mastodon or VirusTotal

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

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

# Server
cargo build --release --manifest --manifest-path server/Cargo.toml
# or debug version
cargo b --manifest-path server/Cargo.toml

Результат имплантов можно найти в папке implants/(mastodon,virustotal)/target/release или implants/(mastodon,virustotal)/target/debug. Результат сервера можно найти в папке server/target/release или server/target/debug.

Ниже вы можете найти методику компиляции для каждой ОС из Linux. Если вам нужна другая система компиляции, пожалуйста, ознакомьтесь со списком по этой ссылке: https://doc.rust-lang.org/nightly/rustc/platform-support.html

Вручную для статической версии Linux x86_64

root@kitploit:~
# Install rustup and Cargo for Linux
curl https://sh.rustup.rs -sSf | sh

# Add Linux deps
rustup install stable-x86_64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu

# Static compilation for Linux
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choise your implant Mastodon or 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

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

Результат можно найти в папке implants/(mastodon,virustotal)/target/x86_64-unknown-linux-gnu/release или server/target/x86_64-unknown-linux-gnu/release.

Вручную для статической версии Windows из Linux

root@kitploit:~
# Install rustup and Cargo in Linux
curl https://sh.rustup.rs -sSf | sh

# Add Windows deps
rustup install stable-x86_64-pc-windows-gnu
rustup target add x86_64-pc-windows-gnu

# Static compilation for Windows
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choise your implant Mastodon or 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

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

Результат можно найти в папке implants/(mastodon,virustotal)/target/x86_64-pc-windows-gnu/release или server/target/x86_64-pc-windows-gnu/release.

Вручную для статической версии macOS из Linux

Отличная документация: https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html

root@kitploit:~
# Install rustup and Cargo in Linux
curl https://sh.rustup.rs -sSf | sh

# Add macOS tool chain
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 needs to be told to use the correct linker for the x86_64-apple-darwin target, so add the following to your project’s .cargo/config file:
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

# Static compilation for macOS
git clone https://github.com/g0h4n/REC2
cd REC2

# Implants
# choise your implant Mastodon or 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

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

Результат можно найти в папке implants/(mastodon,virustotal)/target/x86_64-apple-darwin/release.

Как собрать документацию?

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

# Implants
# choise your implant Mastodon or 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

# Server
cargo doc --open --no-deps --manifest-path server/Cargo.toml

🚦 Дорожная карта

  • КРИПТО
    • AES
  • ИМПЛАНТЫ
    • ИМПЛАНТЫ
  • СЕРВЕР
    • СЕССИЯ
    • ЗАДАЧИ
    • Функция асинхронной проверки статуса задач
    • Функция асинхронной проверки статуса сессий
    • Выбор текущей сессии с помощью sessions -i 1 для подключения к сессии номер 1 [09/28/2023]
    • Добавлена команда background [09/28/2023]
  • СОЦИАЛЬНЫЕ СЕТИ
    • MASTODON: https://docs.rs/megalodon/latest/megalodon/
    • VIRUSTOTAL: https://docs.rs/virustotal3/latest/virustotal3/
    • SOUNDCLOUD: https://docs.rs/soundcloud/latest/soundcloud/
    • Есть идеи?

🔗 Ссылки

  • https://github.com/D1rkMtr/VirusTotalC2
Скачать инструмент