• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Полигон Blue Team vs Read Team pt.2 Развертывание систем защиты

defaultuser0

anime hater
Пользователь
Регистрация
07.07.2022
Сообщения
213
Реакции
432
Депозит
0.0003
Создаем собственный полигон Blue Team vs Read Team pt.2
Развертывание систем защит.

Авторство: defaultuser0​

Источник: xss.pro​

bbbb.jpg

Давно не виделись, продолжаем работать с нашим полигоном. Сегодня я буду ставить системы защиты на поле боя, эта часть статьи исключительно затрагивает работу Blue Team, я хочу прийти к такому результату сегодня:
  1. Развертывание SIEM (ELK stack)
  2. Настройка Групповых политик
  3. Настройка агента сбора метрик (Winlogbeat)
Прочитать первую часть вы можете тут - ТЫК

Перед началом я хотел бы хотел бы в очередной раз поблагодарить всех кто оставляет реакции под статъями.
Так же отдельно поблагодарить ice80 admin и kosok11 за пожертвования, благодаря им у меня есть желание и мотивация писать о том, что не пишут рядовые бойцы BlueTeam! - Спасибо вам огромное!
Еще хотелось бы передать привет одному анониму надеюсь ты это читаешь, большое спасибо за поддержку! я прочитал что мне передали, отдельно сделаю разбор полетов для плохих парней0)
Картина с результатом после выполнения всего что я тут описал будет выглядить так:
Сбор метрик с хостов в сети полигона (правильный сбор с указанием уз, паррент процесса и тд)

1707235223890.png


Развертывание VPN в сеть Полигона + Теория по NAT'у для слабых
Из первой части по вашему фидбеку в пм форума,лс тг, чатике на твиче - все меня говорили что у них не получается развернуть впн0) Я действительно толком не описал этот процесс, потому что подумал что это легче легкого, но как я понял тут сидят ребята которые не совсем понимают как работают сети поэтому маленьки ликбез + пошаговая инструкция развертывания впна в сеть полигона. Да я понимаю насколько это дибильно объяснять что такое НАТ, но нужно же как то новичков развивать)
Чутка теории:
NAT - Network Address Translation это механизм в сетях TCP/IP, позволяющий преобразовывать IP-адреса транзитных пакетов, говоря проще NAT позволяет множеству устройств в локальной сети (например, в вашем доме или офисе) подключаться к интернету с использованием одного общего IP-адреса. Когда мы говорим про NAT мы имеем ввиду что у вашего компьютера нету внешнего IP адреса, у него есть адрес локальной сети 192.168.1.x/24 тоесть, внешний айпи адрес есть у вашего роутера и уже он является основным маршутизатором вас (компьютер, телефон, тельвизор) в интернет при помощи таблицы NAT
1707189316856.png
Теперь вернемся в ВПН, у вашей виртуалки есть 2 сетевых адаптера(как я писал в первом посте) NAT и vboxadapter0.
NAT нам нужен в преждую очередь для того чтобы мы могли взаимодействовать с внешним миром (скачать нужный резпозиторий или же обновить пакеты систем) + он нам нужен чтобы клиент впн клиент мог подключится, а vboxadapter0 нам нужен для того чтобы мы могли как то обращаться к локальной сети в которой у нас есть полигон.
Теперь зная все это, мы понимаем что условно у нашего сервера с внешним айпи на котором хостятся виртуалки не открыт нужный порт и он не понимает что у него как бы впн сервер. Для этого мы и делаем проброс порта.
Это нужно для того чтобы основной сервер с внешним айпи адрессом, перенаправлял входящее подключение уже на виртуальную машину с развернутым OpenVPN server по определенному порту с определенным протоколом.
Теперь когда вы понимаете что такое NAT, давайте развернем ВПН сервер. (Тем кто задавал мне такой вопрос серъезно рекомендую прочитать хоть одну книгу по сетям, я в свое время прочитал всю трилогию Таненбаума и конечно же у него есть книга по Сетям. Вобщем кто задавался вопросом строго к прочтению)
Давайте к практике, добавляем виртуалку даем ей два адптера которые нам нужны (NAT/vboxadapter0)
Открываем Настройки сетевого адаптера NAT нажимаем advanced и тут мы выбираем Port Forwading (Проброс портов)

1707190070545.png

Добавялем новое правило и назначем порт который нужно перенаправить (1194 - дефолтный порт OpenVPN server) Обязателньо указываем протокол (UDP) и нажимаем сохранить правило. Это еще не все

1707190135080.png

Теперь по классике накатываем линукс ставим все что нужно по дефолту и выкачиваем нам нужный репозиторий - https://github.com/angristan/openvpn-install

1707190250069.png

Заходим в папку где он находится и запускаем скрипт из под sudo предварительно дав ему права chmod 777 openvpn-install.sh

Screenshot 2024-02-05 052108.png
Тут все отсавляем как было (по дефолту сеть впна это 10.0.2.15)

Screenshot 2024-02-05 052114.png
Указываем публичный айпишник нашего основного сервера на котором хостится виртуалка.
Дальше там будет назначения порта и протокола по которому будет осуществлятся подключение а так же ДНС сервер. это все оставляем по дефолту, даем файлу имя и после того как мы получили файл мы открываем конфиг сервера
Код:
vim /etc/openvpn/server.conf

1707190542552.png

Тут нам нужно добавить очень важную строку
Код:
push "route 192.168.56.0 255.255.255.0"

1707190615328.png

Сохраняем файл.
Если ваш сервер OpenVPN размещен в публичной сети и должен перенаправлять трафик для клиентов в локальную сеть нужно настроить NAT с помощью iptables:
Код:
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 192.168.56.0/24 -j MASQUERADE

1707190796303.png



Включаем IP Forwarding на сервере OpenVPN - Чтобы сервер мог пересылать пакеты между клиентами VPN и локальной сетью
Код:
echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

1707190875944.png

Перезапускаем OpenVPN
Код:
systemctl restart openvpn.service

1707190956452.png

уСё. 5 мин и все работает, а если на работает то читаем логи и фиксим, вообще все и так прописанно в логах просто нужно посмотреть получше.


Развертывание SIEM
Я уже описывал как развернуть SIEM на базе Эластика в своем посте про хонипот, прочитать можно тут - ТЫК

1707191311005.png

Вообще я заметил что не многие обратили внимание на эту серию статей про хонипот, вообще советую так же ознакомится, там наглядно я рассписал как развернуть и настроить ELK, правильно собирать логи с хонипота и само собой развернуть хонипот - Это в первую очередь годное чтиво для тех кто хочет работать ИБшником (не в ГАЗМЯСБАНКЕ) а в приличной конторе + каждая из моих статьей оплачивается из кармана форума (это причина по которой я стараюсь писать качественный контент - чтобы прокормить себя т.к я без работы) поэтому все такие советую заглянуть туда результат после 3 статьей был таким:

1707191502474.png

Я не буду описывать каждый свой шаг при развертывании Эластика, а просто прикреплю сюда скрины т.к. уже за такую статью я уже получил свои деньги и не хочу лить воды ради лишних 20$

1707191873470.png

1707191889847.png

1707191899720.png

Не забываем дать сетевой адаптер локалки И! ПРОБРОСИТЬ ПОРТ КИБАНЫ (чтобы мы могли сидеть в нашей СИЕМ из любой тачки)

1707191976824.png

1707191985394.png

1707191991827.png

1707192014618.png

1707192019316.png

1707192036671.png

1707192043324.png

1707192049311.png

1707192058628.png

1707192063857.png
ВСЕ четко, порт не забываем прокинуть, теперь на нашем основном сервер под внц который. Запускаем браузер и вводим айпишник (лоалки сети полигона) который мы получили + нужный нам порт кибаны и видим такую картину
1707192153289.png

Я уже писал это в посте про настройку эластика (2часть) но все же нужно повтраится в конфиге кибаны нужно поставить тут 0.0.0.0 - чтобы мы могли смотреть в кибану не только из под сервера на котором хостится СИЕМ

1707192202803.png

Давайте удостоверимся что мы все таки равернули СИЕМ в нужной нам сети (сети полигона) Для этого я зайду в любую тачку полигона и попробую посмотреть в кибану:

1707192489604.png

Как видите СИЕМ в сети полигона, а это значит что мы сможем собирать все логи и это не будет проблемой для нас.

давайте вернемся к нашему полигону и для начала поднимем всю сеть (виртуалки AD)
Напомню команду для поднятия всех тачек и для того чтобы потушить их.
В директории ~/GOQD/ad/GOAD/providers/virtualbox вам нужно прописать это (в провайдере выберите тот на котором вы все развернули, у меня это виртуалбокс)

для того чтобы включить
Код:
vagrant up

для того чтобы выключить
Код:
vagrant halt

Поднимаем сеть:

1707180338556.png

Теперь после того как у нас на руках есть сием + впн. Давайте настроим групповые политики.
Это нужно для того, чтобы включить логгирование:
  • Создание процессов
  • Убийство процессов (ну когда терминейт процесса - хакер через какой нибудь диспетчер по PID истребил условный винлогбит)
  • Вход и Выход из системы
  • Изменение Групповых политик (если вдруг наш плохой парень решит на Доменн контроллере пошалить)
  • и еще парочку
Подключаемся по РДП к нашему Доменн контроллеру с админскими правами в домене, открываем Server Manager

1707232972705.png

Тут выбираем Tools -> Group Policy Managment и создаем новую групповую политику (она будет расспростронятся на все хосты в домене), так намного лечге нежели на каждом хосте руками это все ставить. зачем сто раз если можно один0)

1707233457017.png

Тут прыгаем по пути Policies -> Windows Settings -> Security Settings -> Audit Policies. Давайте закроем первое и самое главное включить логгирование - создание новых процессов:

1707233562254.png

Выбираем Audit Process Creation кликаем 2 раза и ставим Success, далее клацаем ОК и так же теперь пробигаемся по всему что нас интересует

1707233656677.png

Я тут добавил Process Termination и также логонофф и логонон + парочку (как говорится соль перец по вкусу0)

1707233700584.png

Для того чтобы политика начала действовать нужно выполнить обновление политик вручную на каждом клиентском компьютере, используя команду gpupdate /force в powershell'e

1707233808031.png


Настройка Winlogbeat
Winlogbeat — это легковесный сборщик журналов Windows входящий в стек ELK. Нативно поставляет метрики в Logstash или напрямую в Elasticsearch (но мы конечно же в логстеш). Настраивается на чтение любых журналов и событий.

Давайте поставим его на рандомный хост. Очень важно чтобы winlogbeat у вас был такой же версии как и стек ЕЛК, у меня это 7.17.17

1707234005423.png


Теперь переношу ахрив в C:\Program Files (там папку надо назвать просто винлогбит)

1707234044630.png


Запускаем установщик винлогбита через Powershell
Код:
PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1


1707234085830.png

Теперь очень важно открываем текстовый редактор от имени администратора и открываем конфигурационный файл winlogbeat.yml - там мы укажем куда отправлять собранные метрики.

1707234185495.png

Первоначальная картина конфига выглядит так, мы видем тут что метрики отправляются в локалхост (?) так еще и в эластик, а не в лог хранилку0) исправляем - тут принцип такой раззкоментить значит пустить в бой.
Заметьте что вы обязаны выбрать одно из двух, и в эластик и в логстеш метрики одновременно не будут отправлятся (и вообще зачем)

1707234313822.png

Указываем обязательно хост на котором у вас хостится СИЕМ и не забывайте раззкоментировать output.logstash + hosts
Давайте прогоним наш конфиг на ошибки командой:
Код:
.\winlogbeat.exe test config -c .\winlogbeat.yml -e

1707234380612.png

Если все путем, запускаем службу командой
Код:
Start-Service winlogbeat

1707234456015.png

Теперь открываем наш эластик и заходим в дискавери, нас сразу бросает в index pattern У кого эластик стек 8+ то у вас будет просто датавью
Уже видим как метрики попадают в логстеш, пишем в Name winlogbeat* выбираем timestamp field.
1707234579116.png


Видим наши логи

1707234666014.png

Давайте по поиску посмотрим что то конкретнее чем кашу логов. Пример запуск процесса notepad.exe
Тут кст синтаксис как в SQL - звездочка это как любое продолжение

1707234771533.png


Давайте Запустим мимикатз и посмотрим увидим ли мы вообще историю запуска этого процесса, кто его запустил (из под какой УЗ), откуда (хост) - с какими парамметрами и во сколько.

1707234876872.png


Теперь прыгнув в эластик мы моментально увидим то что хотели. - Имя процесса, - Сообщение процесс создан, кто порадил этот процесс (оконный менеджер винды), - из под какой уз это делалось, - command line

1707235223890.png

Это еще не алерт, а просто данные с логов но уже хорошо т.к. система теперь собирает каждый чих, а для нас в след части статьи важно будет отделять ежедневный хлам от потонцеальных угроз (написание правил/алерты)
Само собой вам следует развести винлогбит по всей сети и тогда у вас в вашей сети будут собиратся все логи со всех хостов + учеток.

Кстати весь этот проект я поднимаю в прямом эфире на твиче, кому интересно:
ТГ: https://t.me/infosecetochto
Для тех кто хочет меня поддержать:
Безработному блютимеру на ход ноги:
BTC: bc1qxzw0u2hl40hxpw0zjz82zzkl5mgjtp9xwkex6f

Всем спасибо! Ждите следующей части!
 
Последнее редактирование:
Я кнш поставил лайк за старания, и стримы как ты ебешься с виртуал боксом тоже классные. Но какая же это все простите х#йня. На темной стороне все равно круче. Давай к нам.
 
Я кнш поставил лайк за старания, и стримы как ты ебешься с виртуал боксом тоже классные. Но какая же это все простите х#йня. На темной стороне все равно круче. Давай к нам.
1707236944530.png
 
Я кнш поставил лайк за старания, и стримы как ты ебешься с виртуал боксом тоже классные. Но какая же это все простите х#йня. На темной стороне все равно круче. Давай к нам.
Да кстати с этим виртуалбоксом у меня просто махич ебейший, я уже раз 30 пожалел что не вмврае взял
 
Картинку потерял))
 
я уже раз 30 пожалел что не вмврае взял
а я говорил брать вмварь сразу...
 
Да кстати с этим виртуалбоксом у меня просто махич ебейший, я уже раз 30 пожалел что не вмврае взял
Может проксмокс надо было?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх