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

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

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

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

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

Категории

Все категории
Loading categories
BlockchainC2 — Сервер и агент C2 (POC) для исследования возможности использования блокчейна Ethereum для C2-связи. | Kitploit
Инструменты/GitHubGitHub/xpn/blockchainc2
ЭксплуатацияТестирование на ПроникновениеКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
GitHubxpn/blockchainc2

BlockchainC2

Сервер и агент C2 (POC) для исследования возможности использования блокчейна Ethereum для C2-связи.

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

Популярное

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

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

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

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

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

BlockchainC2

BlockchainC2 — это небольшая POC-сервер/агент для оценки того, как блокчейн (в частности, функциональность смарт-контрактов Ethereum) может быть использован злоумышленником для C2.

Подробности о данном приложении можно найти здесь.

Смарт-контракт

Смарт-контракт, используемый в этой POC, довольно прост:

root@kitploit:~
pragma solidity ^0.5.0;

contract EventC2 {

    address owner;

    event _ServerData(bool f, bool enc, int seq, string agentID, string data);
    event _ClientData(bool f, bool enc, int seq, string agentID, string data);

    constructor() public {
        owner = msg.sender;
    }
    
    function AddClientData(string memory agentID, string memory d, int id, bool f, bool enc) public {
        emit _ClientData(f, enc, id, agentID, d);
    }

    function AddServerData(string memory agentID, string memory d, int id, bool f, bool enc) public {
        emit _ServerData(f, enc, id, agentID, d);
    }
}

Основное внимание в этом коде Solidity уделяется передаче событий между сервером и несколькими клиентами в виде событий.

Сборка

BlockchainC2 был разработан для запуска на MacOS/Linux, но агент может быть скомпилирован для выполнения на MacOS, Windows или Linux.

Для сборки на MacOS с использованием brew:

root@kitploit:~
# Установка solidity и ethereum
brew tap ethereum/ethereum
brew install ethereum
brew install solidity

# Сборка
make all

Для сборки на Ubuntu:

root@kitploit:~
# Установка solidity и ethereum
sudo add-apt-repository ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install solc ethereum

# Сборка  
make all

Для кросс-компиляции агента для Windows:

root@kitploit:~
CGO_ENABLED=1 CC="x86_64-w64-mingw32-gcc" GOOS=windows go build blockchainc2/cmd/bc2agent

Запуск

Вам потребуется настроить аккаунт, который может использоваться серверным компонентом. Самый простой способ сделать это — с помощью geth:

root@kitploit:~
geth account new --keystore /tmp/mykeystore/
cat /tmp/mykeystore/*

Эфир можно добавить в ваш кошелек в тестовой сети Ropsten с помощью https://faucet.ropsten.be/.

Добавьте ключевую цепочку в ваш config.json, например:

root@kitploit:~
{
	"Key": "{\"address\":\"ADDRESS\",\"crypto\":{\"cipher\":\"aes-128-ctr\",\"ciphertext\":\"CT\",\"cipherparams\":{\"iv\":\"IV\"},\"kdf\":\"scrypt\",\"kdfparams\":{\"dklen\":32,\"n\":262144,\"p\":1,\"r\":8,\"salt\":\"06470fcc2121994e014f85e5ab9cdb3714c76b873a1f1186c3e623e87abc4a7a\"},\"mac\":\"SALT\"},\"id\":\"ID\",\"version\":3}",
	"Endpoint": "wss://ropsten.infura.io/_ws",
	"ContractAddress": "TODO_VIA_SETUP",
	"GasPrice": 0
}

Для развертывания контракта с помощью bc2server:

root@kitploit:~
./bin/bc2server -config ./config.json -pass Passw0rd -setup

После развертывания контракта добавьте адрес в ваш config.json и запустите сервер с помощью:

root@kitploit:~
./bin/bc2server -config ./config.json -pass Passw0rd

Когда сервер запущен, агенты могут быть подключены с помощью:

root@kitploit:~
./bin/bc2agent -config ./agent_config.json -pass Passw0rd

Рекомендуется использовать новый аккаунт для агента, чтобы избежать ошибок с ожидающими транзакциями.

Скачать инструмент