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

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

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

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

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

Категории

Все категории
Loading categories
sleep_python_bridge — Этот проект является «мостом» между sleep и языком python. Он позволяет управлять teamserver Cobalt Strike через python без необходимости использования стандартного GUI-клиента. ПРИМЕЧАНИЕ: Этот проект находится в стадии BETA. Цель — предоставить площадку для тестирования, и это никоим образом не официально поддерживаемая функция. Возможно, в будущем это может быть добавлено в основной продукт. | Kitploit
Инструменты/GitHubGitHub/cobalt-strike/sleep_python_bridge
Управление индикаторами компрометации (IOC)Генерация полезной нагрузкиКомандование и УправлениеRed TeamingРазработка Полезной НагрузкиАнализ Журналов
GitHubcobalt-strike/sleep_python_bridge

sleep_python_bridge

Популярное

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

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

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

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

Смотреть все инструменты →
Репозиторий
18832171 год назадПроверено Kitploit

Описание

Этот проект является «мостом» между sleep и языком python. Он позволяет управлять teamserver Cobalt Strike через python без необходимости использования стандартного GUI-клиента. ПРИМЕЧАНИЕ: Этот проект находится в стадии BETA. Цель — предоставить площадку для тестирования, и это никоим образом не официально поддерживаемая функция. Возможно, в будущем это может быть добавлено в основной продукт.

Поделиться

Мост между Cobalt Strike Sleep и Python

Этот проект — «мост» между языками Sleep и Python. Он позволяет управлять teamserver Cobalt Strike через Python без необходимости в стандартном GUI-клиенте.

ПРИМЕЧАНИЕ: этот проект находится в стадии BETA. Цель — предоставить полигон для тестирования, и это никоим образом не является официально поддерживаемой функцией. Возможно, в будущем это может быть добавлено в основной продукт.

Проект вдохновлён работой @BinaryFaultline и @Mcgigglez16 в проекте https://github.com/emcghee/PayloadAutomation. Я хочу выразить вам обоим особую благодарность!!

Сердце этого моста — реализация на Python «безголового» клиента Cobalt Strike. Это достигается использованием консоли Aggressor Script, предоставляемой agscript, в качестве движка. Agscript позволяет взаимодействовать с Cobalt Strike без GUI (https://www.cobaltstrike.com/aggressor-script/index.html). «Мост» работает за счёт использования вспомогательных функций Python в sleepy.py для генерации необходимых Sleep-команд, ожидаемых консолью agscript. Вместо написания Sleep-функций striker.py предоставляет вспомогательные функции, которые абстрагируют Sleep и позволяют использовать Python.

Основные изменения по сравнению с исходным проектом

Поскольку этот проект вдохновлён PayloadAutomation, он начинался с большей части того же кода, но я хотел урезать его до компонентов, необходимых для работы в качестве обёртки над agscript.

  • Переименован из Payload_Automation в sleep_python_bridge. Этот проект — больше, чем просто генерация пейлоадов.
  • Изменён с библиотеки PyPI на локальные модули. Это было сделано для тестирования, и после всестороннего тестирования он может стать хорошим кандидатом в библиотеку Python.
  • Обновлены и добавлены вспомогательные функции для соответствия версиям Aggressor.
  • Добавлена возможность загрузки внешнего скрипта.

Включённые библиотеки

  • Striker: набор функций для взаимодействия с Cobalt Strike и выполнения функциональности, обычно доступной только через Sleep/GUI.
  • Sleepy: набор функций, помогающих наладить мост между объектами Sleep и объектами Python.
  • Compyler: набор функций для компиляции различных пейлоадов под конкретную платформу или кроссплатформенных.
  • Artifactor: набор функций для проверки и анализа артефактов, а также сбора и отслеживания IoC.

Файлы и каталоги

ЭлементОписание
sleep_python_bridgeБиблиотека, которая позволяет Python взаимодействовать с Cobalt Strike
output/htmlПуть для HTML-просмотрщиков данных
output/html/dataПуть для JSON-данных, используемых просмотрщиком данных
output/payloadsПуть для сохранённых пейлоадов (используется генератором пейлоадов)
payload_scriptsПуть для внешних скриптов, загружаемых payloadgenerator.py
beaconlogtracker.pyРеализация трекера журналов Beacon, который использует HTML-таблицу данных для отображения журналов Beacon
payloadgenerator.pyРеализация генератора пейлоадов Beacon, который создаёт пейлоады для каждого listener
beacongrapher.pyРеализация графового трекера Beacon, который использует ориентированный HTML/JavaScript-граф для отображения Beacon

TODO

  • Задокументировать предоставляемые функции
  • Перенести функции компиляции из striker.py в compyler.py
  • Добавить дополнительные проверки ошибок, особенно для зависимостей приложения
  • Расширить compyler, включив удалённые сборки и mingw
  • Добавить отслеживание IOC для пейлоадов, создаваемых через artifactor.py
  • Обработать ошибку: "User is already connected."
  • Рассмотреть возможность превращения этого в полноценную библиотеку Python

Как использовать

Возможно, проще всего понять этот проект на примерах, а именно по скрипту example.py.

#!/usr/local/bin/python3

## Import the bridge
from sleep_python_bridge.striker import CSConnector
from argparse import ArgumentParser
from pprint import pp, pprint

###################
## Argparse
def parseArguments():
    parser = ArgumentParser()
    parser.add_argument('host', help='The teamserver host.')
    parser.add_argument('port', help='The teamserver port.')
    parser.add_argument('username', help='The desired username.')
    parser.add_argument('password', help='The teamserver password.')
    parser.add_argument('path', help="Directory to CobaltStrike")
    
    args = parser.parse_args()
    return args

## Let's go
def main(args):

    cs_host = args.host
    cs_port = args.port
    cs_user = args.username
    cs_pass = args.password
    cs_directory = args.path

    ## Connect to server
    print(f"[*] Connecting to teamserver: {cs_host}")
    with CSConnector(
        cs_host=cs_host, 
        cs_port=cs_port, 
        cs_user=cs_user, 
        cs_pass=cs_pass,
        cs_directory=cs_directory) as cs:

        # Perform some actions
        # 
        # Get beacon metadata - i.e., x beacons() from the script console
        beacons = cs.get_beacons()
        print("BEACONS")
        pprint(beacons)

        # Get list of listners - i.e., x listeners_stageless() from the script console
        listeners = cs.get_listeners_stageless()
        print("LISTENERS")
        pprint(listeners)

if __name__ == "__main__":
    args = parseArguments()
    main(args)

Запустите скрипт

python3 example.py 127.0.0.1 50050 example password /path/to/cobaltstrike

Практические примеры

Трекер журналов

Журналы Beacon доступны во время работы на teamserver или через файлы журналов Beacon, сохранённые на teamserver. Данные всегда есть, но могут быть представлены не так, как вам хотелось бы. Это пример трекера журналов, который использует HTML-таблицу данных для быстрого просмотра журналов Beacon.

beaconlogtracker.py — это скрипт, который подключается к teamserver, каждые 30 секунд извлекает текущие журналы Beacon, сохраняет их в <code>beaconlogs.json` и отображает в HTML-таблице данных с возможностью поиска и сортировки.

Журналы Beacon всегда сохраняются в каталог logs, но это альтернативный способ отслеживать журналы в памяти с помощью альтернативного просмотрщика. Если teamserver будет перезапущен, журналы в памяти будут потеряны, и вам придётся обращаться к журналам, хранящимся в каталоге logs на teamserver. Этот скрипт поддерживает журналы в памяти синхронизированными с файлом beaconlogs.json. Так у вас появится быстрый и простой способ визуализировать все данные, не копаясь в каталоге logs, даже если Cobalt Strike будет перезапущен.

Запустите скрипт, подключив его к вашему teamserver для синхронизации журналов каждые 30 секунд

Использование:

python3 beaconlogtracker.py 127.0.0.1 50050 logtracker password /path/to/cobaltstrike

Это будет поддерживать beaconlogs.json синхронизированным с сохранёнными и текущими журналами Beacon. Синхронизация происходит каждые 30 секунд

Запустите веб-сервер из каталога output/html

python3 -m http.server 8000

Подключитесь к http://localhost:8000/beaconlogs.html

Генератор пейлоадов

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