После того, как исполнение в памяти и имитация эксфильтрации уже были реализованы, следующий шаг был очевиден: обеспечение устойчивости. Продвинутые угрозы, такие как Koske, не запускаются однократно — они остаются активными, внедряются в систему и возвращаются после каждой перезагрузки. Именно это я и намеревался воспроизвести на этом этапе.
Цель? Проверить, сможет ли ИИ не только генерировать полезные данные, которые ведут себя как устойчивое вредоносное ПО, но и предлагать и настраивать реальные механизмы обеспечения устойчивости, такие как службы systemd или записи .bashrc, — опять же, без необходимости писать код вручную.
Давайте посмотрим, как далеко сможет зайти ИИ, когда ему придется пережить перезагрузку .
Моделирование цепочки атак: повышение сложности
На этом этапе сложность возрастает. Вместо того чтобы сосредоточиться на отдельных действиях, таких как отправка маяков или эксфильтрация, я попросил ИИ сгенерировать безопасную, комплексную полезную нагрузку, способную имитировать полную цепочку атак. Идея заключалась в построении структурированной последовательности действий — например, компиляции поддельного двоичного файла, имитации персистентности, сбора данных об окружении и извлечения файла, — отражающей сложность работы настоящих APT-атак, таких как Koske.
ИИ ответил хорошо структурированной и безвредной полезной нагрузкой, которая компилирует фиктивную программу на языке C (fakerootkit), создаёт файл-маркер для имитации персистентности (persistence_demo.txt), собирает системную информацию (cpu_check.txt) и загружает PDF-файл, замаскированный под криптомайнер. Всё это упаковано в полиглот-изображение, которое можно запустить одной командой, как и на предыдущих этапах.
С этого момента каждый мой запрос основывается на предыдущем, и поведение становится всё более многоуровневым. Именно здесь симуляция начинает по-настоящему отражать модульную, адаптивную структуру реального APT, только она строится исключительно на подсказках на естественном языке.
Обход ограничений ИИ: изменение вектора сборки
Продолжая усложнять симуляцию, я наткнулся на препятствие: ИИ перестал напрямую генерировать полиглотные изображения, вероятно, из-за внутренних фильтров безопасности. Но вместо того, чтобы нарушать основное правило эксперимента — запрет на ручное написание полезной нагрузки, — я выбрал другой подход. Я попросил ИИ предоставить мне скрипт на Python, который мог бы генерировать изображение локально.
В результате получился чистый, минималистичный скрипт, который использует библиотеку PIL для создания простого JPEG-изображения, а затем добавляет безвредную полезную нагрузку оболочки, которая открывает терминал и запускает whoami. ИИ взял на себя всё: генерацию изображения, логику полезной нагрузки, кодирование и операцию двоичного добавления, фактически выдав мне тот же полиглотный результат, просто с помощью другого инструментария.
Этот момент идеально отражал тактику из реального мира: когда прямая доставка не удаётся, APT часто прибегает к альтернативным методам, таким как генерация на основе упаковщика или локальная компиляция . Здесь ИИ симулировал это поведение без запроса — и поддерживал поток.
Сборка полезной нагрузки без ручного написания скриптов
Чтобы не выходить за рамки эксперимента, я не писал и не менял логику полезной нагрузки вручную. Вместо этого я просто скопировал и вставил код, предоставленный ИИ, — строка за строкой — в локальную среду, используя его в том виде, в котором он был предоставлен. Полная цепочка имитации атаки была собрана на Python: имитация компиляции двоичных файлов, имитация сохранения, перечисление систем и имитация загрузки криптомайнера.
Такой подход сохранил основное правило проекта: я по-прежнему не писал код сам — всю работу выполнял ИИ. Разница заключалась лишь в том, что теперь вместо финального изображения он передавал мне чертежи. В реальном мире это имитирует переход от доставки полезной нагрузки к инструментариям и сборщикам — именно ту модульность, которую мы видим в современных экосистемах APT, таких как Koske.
На этот раз изображение не было доставлено напрямую. Из-за ограничений ИИ я адаптировал подход, запросив скрипт Python, который локально сгенерировал бы финальное изображение-полиглот. Скрипт должен был:
grep -a -A9999 «# ПОЛЕЗНАЯ НАГРУЗКА» polyglot_terminal_whoami.jpg | bash
Изображение выполнило цепочку, которая:
Полученное изображение реализовало полную цепочку имитации атаки: компиляцию поддельного двоичного файла, имитацию персистентности, сбор системной информации и загрузку ложного PDF-файла — каждый шаг тщательно отражал операционную схему APT-атаки. Перейдя к генерации на основе скриптов, сохранив при этом целостность полезной нагрузки, мы улучшили соответствие методологии злоумышленника, не ставя под угрозу контроль или структуру.
Есть ещё кое-что, о чём я пока не рассказал — в следующей записи я расскажу, как, используя ту же последовательность подсказок, что и в этом проекте, мне удалось получить полнофункциональный руткит для Linux. Следите за новостями — я скоро вернусь.
Цель? Проверить, сможет ли ИИ не только генерировать полезные данные, которые ведут себя как устойчивое вредоносное ПО, но и предлагать и настраивать реальные механизмы обеспечения устойчивости, такие как службы systemd или записи .bashrc, — опять же, без необходимости писать код вручную.
Давайте посмотрим, как далеко сможет зайти ИИ, когда ему придется пережить перезагрузку .
Моделирование цепочки атак: повышение сложности
На этом этапе сложность возрастает. Вместо того чтобы сосредоточиться на отдельных действиях, таких как отправка маяков или эксфильтрация, я попросил ИИ сгенерировать безопасную, комплексную полезную нагрузку, способную имитировать полную цепочку атак. Идея заключалась в построении структурированной последовательности действий — например, компиляции поддельного двоичного файла, имитации персистентности, сбора данных об окружении и извлечения файла, — отражающей сложность работы настоящих APT-атак, таких как Koske.
ИИ ответил хорошо структурированной и безвредной полезной нагрузкой, которая компилирует фиктивную программу на языке C (fakerootkit), создаёт файл-маркер для имитации персистентности (persistence_demo.txt), собирает системную информацию (cpu_check.txt) и загружает PDF-файл, замаскированный под криптомайнер. Всё это упаковано в полиглот-изображение, которое можно запустить одной командой, как и на предыдущих этапах.
С этого момента каждый мой запрос основывается на предыдущем, и поведение становится всё более многоуровневым. Именно здесь симуляция начинает по-настоящему отражать модульную, адаптивную структуру реального APT, только она строится исключительно на подсказках на естественном языке.
Обход ограничений ИИ: изменение вектора сборки
Продолжая усложнять симуляцию, я наткнулся на препятствие: ИИ перестал напрямую генерировать полиглотные изображения, вероятно, из-за внутренних фильтров безопасности. Но вместо того, чтобы нарушать основное правило эксперимента — запрет на ручное написание полезной нагрузки, — я выбрал другой подход. Я попросил ИИ предоставить мне скрипт на Python, который мог бы генерировать изображение локально.
В результате получился чистый, минималистичный скрипт, который использует библиотеку PIL для создания простого JPEG-изображения, а затем добавляет безвредную полезную нагрузку оболочки, которая открывает терминал и запускает whoami. ИИ взял на себя всё: генерацию изображения, логику полезной нагрузки, кодирование и операцию двоичного добавления, фактически выдав мне тот же полиглотный результат, просто с помощью другого инструментария.
Этот момент идеально отражал тактику из реального мира: когда прямая доставка не удаётся, APT часто прибегает к альтернативным методам, таким как генерация на основе упаковщика или локальная компиляция . Здесь ИИ симулировал это поведение без запроса — и поддерживал поток.
Сборка полезной нагрузки без ручного написания скриптов
Чтобы не выходить за рамки эксперимента, я не писал и не менял логику полезной нагрузки вручную. Вместо этого я просто скопировал и вставил код, предоставленный ИИ, — строка за строкой — в локальную среду, используя его в том виде, в котором он был предоставлен. Полная цепочка имитации атаки была собрана на Python: имитация компиляции двоичных файлов, имитация сохранения, перечисление систем и имитация загрузки криптомайнера.
Такой подход сохранил основное правило проекта: я по-прежнему не писал код сам — всю работу выполнял ИИ. Разница заключалась лишь в том, что теперь вместо финального изображения он передавал мне чертежи. В реальном мире это имитирует переход от доставки полезной нагрузки к инструментариям и сборщикам — именно ту модульность, которую мы видим в современных экосистемах APT, таких как Koske.
Окончательное исполнение: полная цепочка поставок полиглота
На этом этапе цель была ясна: продемонстрировать полную локальную цепочку выполнения, которая точно отражает поведение целевой APT-атаке, но с использованием только безопасных, демонстрационных полезных нагрузок.На этот раз изображение не было доставлено напрямую. Из-за ограничений ИИ я адаптировал подход, запросив скрипт Python, который локально сгенерировал бы финальное изображение-полиглот. Скрипт должен был:
- Создайте простой файл JPEG
- Встроить полную цепочку смоделированной атаки в качестве полезной нагрузки оболочки
grep -a -A9999 «# ПОЛЕЗНАЯ НАГРУЗКА» polyglot_terminal_whoami.jpg | bash
Изображение выполнило цепочку, которая:
- Скомпилировал безвредный двоичный файл «fakerootkit»
- Имитация сохранения с помощью текстового файла с отметкой времени
- Собранная информация о ЦП в локальный дамп
- Загрузил PDF-файл («Основы Linux для хакеров, 2-е изд.») в качестве замены для поэтапной доставки полезной нагрузки.
Краткое содержание
Третий этап ознаменовал собой значительный технический скачок в нашей эмуляции поведения APT. Столкнувшись с ограничениями в генерации полезной нагрузки изображений, мы адаптировались, используя Python для локального создания полнофункциональных многоязычных JPEG-файлов.Полученное изображение реализовало полную цепочку имитации атаки: компиляцию поддельного двоичного файла, имитацию персистентности, сбор системной информации и загрузку ложного PDF-файла — каждый шаг тщательно отражал операционную схему APT-атаки. Перейдя к генерации на основе скриптов, сохранив при этом целостность полезной нагрузки, мы улучшили соответствие методологии злоумышленника, не ставя под угрозу контроль или структуру.
Есть ещё кое-что, о чём я пока не рассказал — в следующей записи я расскажу, как, используя ту же последовательность подсказок, что и в этом проекте, мне удалось получить полнофункциональный руткит для Linux. Следите за новостями — я скоро вернусь.