Введение.
Мы уже знаем, что такое сервер управления (C2), и если вы с ним не знакомы, вам стоит взглянуть на нашу первую публикацию этой серии. В первой публикации этой серии мы рассмотрели его настройку и конфигурирование. Теперь пришло время протестировать его функциональность и ознакомиться с его рабочим поведением. Важно отметить, что на этом этапе мы ещё не запутываем наши коммуникации, то есть не используем никаких перенаправлений между «клиентом и сервером». Таким образом, вы увидите прямое соединение между жертвой и нашим сервером C2. Крайне важно подчеркнуть это, поскольку в реальной операции подход был бы другим.
На данном этапе наш сервер C2 запущен и работает. Если вы знакомы с нашей предыдущей публикацией, то помните, что последний скриншот, которым мы поделились, изображён на изображении ниже.
На этом этапе мы собираемся создать наш первый прослушиватель.
Что такое слушатель?
В контексте сервера управления и контроля (C2) прослушиватель — это, по сути, серверный компонент, предназначенный для ожидания входящих подключений от скомпрометированных клиентов, часто называемых «агентами» или «ботами». Прослушиватель работает на определённом порту и может использовать определённый протокол (HTTP, HTTPS, DNS, TCP и т. д.) для установления и поддержания связи с вредоносным ПО на стороне клиента, которое выполняется в целевых системах.
Затем перейдите на вкладку «Вид» и выберите «Слушатели». На вашем компьютере вы увидите что-то похожее на это:
После выбора «Слушатели» на экране появится окно, в котором C2 предлагает множество вариантов настройки. Для простоты демонстрации мы будем придерживаться настроек по умолчанию, как показано на снимке экрана ниже:
Нажмите «Сохранить».
Выполнив предыдущие шаги, вы можете убедиться, что прослушиватель настроен и активно ожидает входящие соединения. Это будет видно по открытию новой вкладки в нижней части интерфейса C2. Кроме того, в правом верхнем углу вы увидите уведомление, подтверждающее активацию прослушивателя. В уведомлении будет указано присвоенное ему имя, в данном случае «Demon». Два изображения ниже иллюстрируют то, что вы должны увидеть на экране.
Пришло время создать нашу первую полезную нагрузку.
Что такое полезная нагрузка?
В контексте сервера управления и контроля (C2) «полезная нагрузка» означает вредоносный код или данные, отправляемые с C2-сервера на скомпрометированную систему («клиент») или с клиента обратно на C2-сервер. Полезная нагрузка может служить различным целям в зависимости от целей злоумышленника, например, для выполнения определённых команд, кражи данных или предоставления дополнительных функций вредоносному ПО, уже находящемуся на скомпрометированной системе. На этапе эксплуатации C2-инфраструктуры генерация полезной нагрузки является критически важным этапом. Это компонент, который необходимо доставить в целевую систему различными способами, например, с помощью фишинга электронной почты, скрытых загрузок или других векторов атак.
После выполнения полезной нагрузки на целевой системе она устанавливает обратное соединение с сервером командного управления (C2), фактически позволяя злоумышленнику управлять скомпрометированной системой. Вы можете настроить полезные нагрузки для выполнения различных задач, включая, помимо прочего, кейлоггерство, сбор данных с веб-камеры и микрофона, кражу учётных данных или скрытое перемещение по сети. Некоторые продвинутые фреймворки C2 допускают «модульные» полезные нагрузки, которые могут загружать дополнительные функциональные модули с сервера командного управления по мере необходимости, что делает их чрезвычайно гибкими и расширяемыми.
Нажмите на вкладку «Атака», затем выберите опцию «Полезная нагрузка».
На экране появится окно, похожее на показанное на изображении ниже. Как видите, оно предлагает множество вариантов настройки нашей полезной нагрузки. Однако для простоты изложения мы на этот раз остановимся на настройках по умолчанию. В будущих публикациях
мы подробно рассмотрим, как адаптировать полезную нагрузку, используя продвинутые методы, которые мы также подробно рассмотрим в нашем курсе «Инфраструктура для хакеров». Итак, без лишних слов, нажмите «Сгенерировать», используя пример на следующем изображении в качестве руководства.
Если всё пройдёт успешно, в нижней части окна появится ряд инструкций по мере генерации полезной нагрузки. См. рисунок ниже:
После того, как полезная нагрузка будет сгенерирована, вы можете перейти в каталог, чтобы найти место её сохранения. В моём случае, как видите, это рабочий стол.
Команда python -m http.server запускает простой HTTP-сервер, используя встроенный модуль HTTP-сервера Python. При запуске этой команды текущий каталог, в котором она выполняется, становится базовым каталогом сервера, позволяя клиентам, запрашивающим их по HTTP, предоставлять файлы. По умолчанию сервер прослушивает порт 8000, но вы можете указать другой порт, добавив его к команде, например, python -m http.server 8080. Это часто используется в системах C2, тестах на проникновение и упражнениях Red Teaming для быстрой и простой передачи файлов, хотя важно отметить, что эта команда не предлагает никаких встроенных механизмов шифрования или аутентификации.
Вот краткий обзор того, что происходит под капотом:
Теперь мы будем использовать виртуальную машину Windows 7 в качестве целевой операционной системы, на которой откроем терминал командной строки (cmd).
В этой части руководства мы сосредоточимся на интересной утилите Windows certutil, которая позволяет извлекать полезную нагрузку с сервера управления и контроля (C2). В контексте операции Red Team безопасная и скрытная загрузка полезной нагрузки имеет решающее значение. Хотя существуют различные способы сделать это, certutil может оказаться полезной, поскольку это легитимная встроенная утилита Windows, используемая в основном для управления сертификатами, но её также можно использовать в наших целях.
Вот разбор команды:
Как вы можете видеть на снимке экрана ниже, полезная нагрузка была успешно перенесена на рабочий стол целевой машины.
Теперь дважды щелкните по полезной нагрузке на целевой машине.
Сразу же вы увидите, что правая панель нашего интерфейса C2 инициирует соединение, предоставляя нам полный контроль над нашей целью.
Теперь перейдите на вкладку «Вид» и выберите опцию «Графический вид». Вы сможете визуализировать взаимодействие между C2 и целевой машиной, как показано на рисунке ниже.
Если щелкнуть правой кнопкой мыши по целевой машине в графическом представлении, вы получите не только интерактивный доступ, но и возможность просматривать списки процессов и сведения о файловом менеджере, как показано на изображениях ниже.
Если щелкнуть правой кнопкой мыши по графическому представлению целевой машины и выбрать пункт «Взаимодействовать», вы сможете выполнять различные действия в целевой системе. Для этого перейдите в нижнюю часть открывшейся вкладки, вызванной вышеупомянутым процессом, и введите «help», а затем нажмите Enter.
Ниже представлен снимок экрана, иллюстрирующий то, что вы должны видеть на компьютере на данном этапе. Он содержит обзор некоторых действий, которые вы можете выполнить на целевой машине.
Введите команду «checkin». Это предоставит вам полную информацию о целевой системе, как показано на фотографиях ниже.
Это лишь небольшой обзор возможностей, которые можно открыть всего несколькими командами. Представьте себе безграничные возможности, которые откроются вам, когда вы освоите комплексные системы развертывания инфраструктуры и сложные сценарии. Чтобы глубже разобраться в этой теме, я перечислил ниже два потенциальных варианта, которые, возможно, вам будет интересно изучить.
Мы уже знаем, что такое сервер управления (C2), и если вы с ним не знакомы, вам стоит взглянуть на нашу первую публикацию этой серии. В первой публикации этой серии мы рассмотрели его настройку и конфигурирование. Теперь пришло время протестировать его функциональность и ознакомиться с его рабочим поведением. Важно отметить, что на этом этапе мы ещё не запутываем наши коммуникации, то есть не используем никаких перенаправлений между «клиентом и сервером». Таким образом, вы увидите прямое соединение между жертвой и нашим сервером C2. Крайне важно подчеркнуть это, поскольку в реальной операции подход был бы другим.
На данном этапе наш сервер C2 запущен и работает. Если вы знакомы с нашей предыдущей публикацией, то помните, что последний скриншот, которым мы поделились, изображён на изображении ниже.
На этом этапе мы собираемся создать наш первый прослушиватель.
Что такое слушатель?
В контексте сервера управления и контроля (C2) прослушиватель — это, по сути, серверный компонент, предназначенный для ожидания входящих подключений от скомпрометированных клиентов, часто называемых «агентами» или «ботами». Прослушиватель работает на определённом порту и может использовать определённый протокол (HTTP, HTTPS, DNS, TCP и т. д.) для установления и поддержания связи с вредоносным ПО на стороне клиента, которое выполняется в целевых системах.
Затем перейдите на вкладку «Вид» и выберите «Слушатели». На вашем компьютере вы увидите что-то похожее на это:
После выбора «Слушатели» на экране появится окно, в котором C2 предлагает множество вариантов настройки. Для простоты демонстрации мы будем придерживаться настроек по умолчанию, как показано на снимке экрана ниже:
Нажмите «Сохранить».
Выполнив предыдущие шаги, вы можете убедиться, что прослушиватель настроен и активно ожидает входящие соединения. Это будет видно по открытию новой вкладки в нижней части интерфейса C2. Кроме того, в правом верхнем углу вы увидите уведомление, подтверждающее активацию прослушивателя. В уведомлении будет указано присвоенное ему имя, в данном случае «Demon». Два изображения ниже иллюстрируют то, что вы должны увидеть на экране.
Пришло время создать нашу первую полезную нагрузку.
Что такое полезная нагрузка?
В контексте сервера управления и контроля (C2) «полезная нагрузка» означает вредоносный код или данные, отправляемые с C2-сервера на скомпрометированную систему («клиент») или с клиента обратно на C2-сервер. Полезная нагрузка может служить различным целям в зависимости от целей злоумышленника, например, для выполнения определённых команд, кражи данных или предоставления дополнительных функций вредоносному ПО, уже находящемуся на скомпрометированной системе. На этапе эксплуатации C2-инфраструктуры генерация полезной нагрузки является критически важным этапом. Это компонент, который необходимо доставить в целевую систему различными способами, например, с помощью фишинга электронной почты, скрытых загрузок или других векторов атак.
После выполнения полезной нагрузки на целевой системе она устанавливает обратное соединение с сервером командного управления (C2), фактически позволяя злоумышленнику управлять скомпрометированной системой. Вы можете настроить полезные нагрузки для выполнения различных задач, включая, помимо прочего, кейлоггерство, сбор данных с веб-камеры и микрофона, кражу учётных данных или скрытое перемещение по сети. Некоторые продвинутые фреймворки C2 допускают «модульные» полезные нагрузки, которые могут загружать дополнительные функциональные модули с сервера командного управления по мере необходимости, что делает их чрезвычайно гибкими и расширяемыми.
Нажмите на вкладку «Атака», затем выберите опцию «Полезная нагрузка».
На экране появится окно, похожее на показанное на изображении ниже. Как видите, оно предлагает множество вариантов настройки нашей полезной нагрузки. Однако для простоты изложения мы на этот раз остановимся на настройках по умолчанию. В будущих публикациях
мы подробно рассмотрим, как адаптировать полезную нагрузку, используя продвинутые методы, которые мы также подробно рассмотрим в нашем курсе «Инфраструктура для хакеров». Итак, без лишних слов, нажмите «Сгенерировать», используя пример на следующем изображении в качестве руководства.
Если всё пройдёт успешно, в нижней части окна появится ряд инструкций по мере генерации полезной нагрузки. См. рисунок ниже:
После того, как полезная нагрузка будет сгенерирована, вы можете перейти в каталог, чтобы найти место её сохранения. В моём случае, как видите, это рабочий стол.
Команда python -m http.server запускает простой HTTP-сервер, используя встроенный модуль HTTP-сервера Python. При запуске этой команды текущий каталог, в котором она выполняется, становится базовым каталогом сервера, позволяя клиентам, запрашивающим их по HTTP, предоставлять файлы. По умолчанию сервер прослушивает порт 8000, но вы можете указать другой порт, добавив его к команде, например, python -m http.server 8080. Это часто используется в системах C2, тестах на проникновение и упражнениях Red Teaming для быстрой и простой передачи файлов, хотя важно отметить, что эта команда не предлагает никаких встроенных механизмов шифрования или аутентификации.
Вот краткий обзор того, что происходит под капотом:
- Инициализация : Инициализируется модуль HTTP-сервера Python (http.server). Это простой встроенный HTTP-сервер, входящий в стандартную библиотеку Python.
- Создание и привязка сокета : сокет создается и привязывается к хосту (обычно localhost или 0.0.0.0 для прослушивания всех доступных сетевых интерфейсов) и указанному порту (по умолчанию 8000).
- Прослушивание : сервер начинает прослушивать входящие HTTP-запросы. При получении запроса он считывает HTTP-заголовки, чтобы определить, какой файл или путь запрашивает клиент.
- Обслуживание файлов : ищет запрошенный файл в базовом каталоге (каталоге, из которого была запущена команда). Если файл найден, он возвращает его клиенту. Если нет, он отправляет ошибку 404.
- Ведение журнала : большинство взаимодействий регистрируются в консоли, предоставляя информацию об IP-адресе клиента, запрошенном пути и другие сведения.
Теперь мы будем использовать виртуальную машину Windows 7 в качестве целевой операционной системы, на которой откроем терминал командной строки (cmd).
В этой части руководства мы сосредоточимся на интересной утилите Windows certutil, которая позволяет извлекать полезную нагрузку с сервера управления и контроля (C2). В контексте операции Red Team безопасная и скрытная загрузка полезной нагрузки имеет решающее значение. Хотя существуют различные способы сделать это, certutil может оказаться полезной, поскольку это легитимная встроенная утилита Windows, используемая в основном для управления сертификатами, но её также можно использовать в наших целях.
Вот разбор команды:
- certutil : это утилита Windows, которую мы используем.
- -urlcache : этот флаг указывает certutil на необходимость кэширования объекта, полученного из URL.
- -split : Этот флаг указывает, что объект должен быть разделен на несколько записей в кэше. В нашем контексте это не так уж необходимо, но может быть полезно для больших файлов.
- -f : Этот флаг означает «принудительно», гарантируя, что загрузка произойдет, даже если файл уже существует.
- : это URL-адрес вашего сервера C2, на котором находится demon.exe, ваша полезная нагрузка.
Как вы можете видеть на снимке экрана ниже, полезная нагрузка была успешно перенесена на рабочий стол целевой машины.
Теперь дважды щелкните по полезной нагрузке на целевой машине.
Сразу же вы увидите, что правая панель нашего интерфейса C2 инициирует соединение, предоставляя нам полный контроль над нашей целью.
Теперь перейдите на вкладку «Вид» и выберите опцию «Графический вид». Вы сможете визуализировать взаимодействие между C2 и целевой машиной, как показано на рисунке ниже.
Если щелкнуть правой кнопкой мыши по целевой машине в графическом представлении, вы получите не только интерактивный доступ, но и возможность просматривать списки процессов и сведения о файловом менеджере, как показано на изображениях ниже.
Если щелкнуть правой кнопкой мыши по графическому представлению целевой машины и выбрать пункт «Взаимодействовать», вы сможете выполнять различные действия в целевой системе. Для этого перейдите в нижнюю часть открывшейся вкладки, вызванной вышеупомянутым процессом, и введите «help», а затем нажмите Enter.
Ниже представлен снимок экрана, иллюстрирующий то, что вы должны видеть на компьютере на данном этапе. Он содержит обзор некоторых действий, которые вы можете выполнить на целевой машине.
Введите команду «checkin». Это предоставит вам полную информацию о целевой системе, как показано на фотографиях ниже.
Это лишь небольшой обзор возможностей, которые можно открыть всего несколькими командами. Представьте себе безграничные возможности, которые откроются вам, когда вы освоите комплексные системы развертывания инфраструктуры и сложные сценарии. Чтобы глубже разобраться в этой теме, я перечислил ниже два потенциальных варианта, которые, возможно, вам будет интересно изучить.