>
Ноябрь 2017
Пн Вт Ср Чт Пт Сб Вс
« Окт    
 12345
6789101112
13141516171819
20212223242526
27282930  

Metasploit Penetration Testing Cookbook – часть 3

Предлагаю вам перевод третьей части книги “Metasploit Penetration Testing Cookbook“. Не забудьте прочитать: часть 1,часть 2.

Глава 3 – Операционная система – оценка уязвимости и эксплуатация

В этой главе мы рассмотрим:

  • Введение
  • Использование эксплоита – простые советы
  • Пен-тест Windows XP SP2
  • Shell для удаленного доступа
  • Пен-тест Windows Server 2003
  • Пен-тест Windows 7/2008 R2
  • Пен-тест Linux (Ubuntu/Debian)
  • Разбор Windows DLL injection

Введение

В link-предыдущей главе, мы сфокусировались на сборе информации с целевой системы: IP-адрес, открытые порты, доступные сервисы/службы, ОС и т.д. Важным моментом при сборе информации является определение ОС. Эта информация поможет нам подобрать подходящий эксплоит(ы) и применить его (их).

Каждая ОС имеет те или иные ошибки. Как только появляется сообщение о какой либо ошибке, начинается процесс разработки эксплоитов. На черном рынке 0day уязвимости ценятся и цена  варьируется от 50К USD, а то и больше.

В этой главе мы научимся проникать на ОС. Использовать эксплоиты и payloads, а также их параметры. Итак, давай приступим.

Использование эксплоита – простые советы

Перед тем как применять exploits и payloads на целевой машине, вы должны знать основы о них. Важно понять, как использовать эксплоиты, чтобы не допустить распространенные ошибки, которые могут возникнуть из-за неправильной конфигурации параметров.

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

Список команд, которые будут полезны при использовании эксплоита:

msf > show exploits и msf > show payloads – эти две команды показывают список доступных эксплоитов и payloads.

msf > search exploit – команда будет искать конкретный эксплоит, например:

msf > use exploit – команда устанавливает эксплоит в активное состояние, т.е. им можно пользоваться, например:

show options – команда показывает, какие доступные опции или параметры используются в эксплоите. К ним относятся: IP-адрес, порты, потоки и т.п. Параметры, которые отмечены yes, должны обязательно иметь значения, чтобы эксплоит заработал, например:

set – эта команда задает значения для параметров/опций в эксплоите, см. след. команду:

Есть дополнительные команды: setg и unsetg. Они применяются, когда хотим изменить глобальные параметры, используемые в msfconsole. Позволяют чуть-чуть сэкономить время.

show targets – каждый exploit создан для атаки на конкретную службу/сервис. Эта команда показывает, какие цели могут быть атакованы, например:

Видим, что dcom exploit подходит для нескольких версий Windows.

Пен-тест Windows XP SP2

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

Основная задача будет заключаться в эксплоита, который будет использован на машине Windows XP SP2. Вы можете просмотреть директорию /exploits/windows или просто выполнить поиск по доступным эксплоитам для платформы Windows XP. Для проникновения на целевую машину, здесь мы будем использовать RPC dcom уязвимость. Давайте произведем поиск по RPC dcom, используя след. команду:

Как видим, поиск выдал нам три результата. Мы будем использовать первый, так как его Rank = greate. Следовательно у нас будет больше шансов взломать цель.

Теперь активируем эксплоит выполнив след. команду:

Далее настроим параметры/опции эксплоита. Команда show options выдаст список доступных параметров:

RHOST (remote host) обозначает IP-адрес хоста (наша цель). RPORT (remote port) – порт удаленного хоста. По умолчанию RPORT = 135. Для того, чтобы эксплоит запустился, нам нужно указать IP-адрес для RHOST:

Стоит отметить, что ms03_026_dcom  exploit имеет ID = 0. Это означает, что нам не нужно указывать, какая из Windows запущена на целевой машине. Эксплоит будет работать на любой Windows, которые в нем перечислены. В противном случае нам нужно было бы использовать команду show targets, чтобы указать конкретную ОС.

Теперь, когда значение RHOST установлено, можем попытаться запустить exploit, но получим ошибку. Так как мы не указали payload.

Следующий шаг, который мы должны сделать, это выбрать соответствующий payload. Мы можем воспользоваться командой show payloads, чтобы посмотреть список доступных payloads. Начнем с простого примера – windows/adduser. Этот payload добавит нового пользователя на целевую систему:

Теперь, если мы снова введем команду show options, появится список параметров для эксплоита, а также для payload’а:

Как видим логин и пароль уже заданы – metasploit. Можем поменять их командами set PASS и set USER.

Теперь все готово для запуска эксплоита:

Последняя строка говорит на о том, что эксплоит выполнился успешно. Теперь на целевой машине добавлен новый пользователь. Вывод также говорит о том, что сессия не была создана, это объясняется тем, что в payload мы указали только adduser. Таким образом после завершения эксплоита, соединение будет завершено. В след. рецепте мы будем использовать payload для создания сессии.

Чтобы узнать больше об этой уязвимости, посетите Microsoft Security Bulletin – http://technet.microsoft.com/en-us/security/bulletin/ms03-026

Для того, чтобы понять, как работает adduser payload, проанализируйте след. Ruby код:

Код простой и содержит комментарии, проблем возникнуть не должно. Можете с ним поиграться, чтобы лучше понять, как работает(ют) payload(s).

Shell для удаленного доступа

В предыдущем рецепте, мы проанализировали, как применить эксплот для Windows SP2 машины и добавить акк нового пользователя. В этом рецепте мы пойдем дальше и “привяжем” shell, чтобы установить удаленное соединение с целевой системой и получить контроль над ней. Все, что нам нужно сделать, это воспользоваться другим payload’ом, который может создать shell на целевой системе.

Для того, чтобы привязать shell к целевой машине, нужно выполнить несколько простых шагов:

Шаг 1

Снова воспользуемся dcom exploit’ом. Установим параметры, а затем выберем payload:

Шаг 2

Эксплоит установлен, переходим к payload. Воспользуемся командой show payloads, чтобы посмотреть список доступныйpayloads.  Будем использовать windows/shell/bind_tcp, который откроет TCP соединение на 4444 порте:

Теперь, используя команду show options, можем настроить параметры, такие как: RHOST и  изменить порт по умолчанию. После того, как параметры заданы, выполняем exploit:

Эксплоит выполнен успешно и мы получили командную строку, запущенную в msfconsole. Для  того, чтобы выйти выполните команду exit.

Чтобы понять, как работает bind_tcp, нам нужно немного подождать. Так как эта тема включает в себя некоторые понятия, которые будем рассматривать в след. главе (статье). Тем не менее, вы можете пока посмотреть/изучить, как работает payload Ruby код, перейдя в – /pentest/exploits/framework3/modules/payloads/stagers/windows/bind_tcp.rb.

Почитать о Metasploit можно, например здесь.

Пен-тест Windows Server 2003

В предыдущем рецепте мы узнали, как использовать dcom exploit. В этом разделе мы сосредоточим внимание на том, как эксплуатировать Windows 2003 Server. Windows 2003 Server широко используется в корпоративной среде. Здесь мы будем рассматривать netapi32.dll уязвимость. Давайте поскорее начнем.

Запускаем msfconsole, затем сканируем целевую систему.

Давайте начнем с поиска netapi:

Видим, что выдалось четыре результата. Нам более предпочтительнее использовать последний эксплоит из списка, так как у него Rank = great:

И снова, Id = 0 – это значит, что нам не нужно указывать целевую систему.

После того, как завершили загрузку эксплоита, следующим шагом будет загрузка payload’a:

Теперь эксплоит и payload готовы. Остается выполнить команду exploit:

Бинго! Мы получили shell на целевой машине.

Пен-тест Windows 7/2008 R2

В этом разделе будем обсуждать эксплоит для SMB клиента, который вызывает зависание системы и ее дальнейший крах. Эта уязвимость не предоставляет shell.

SMB клиент в ядре Microsoft Windows Server 2008 R2 и Windows 7 позволяет удаленным SMB серверам и человеку по середине (man-in-the-middle attacker) выполнить отказ в обслуживании (бесконечный цикл и зависание системы) через ответный пакет SMBv1/SMBv2. Этот пакет содержит неправильное значение длины в заголовке NetBIOS или дополнительное поле в конце пакета.

Metasploit содержит вспомогательный модуль auxiliary/dos/windows/smb/ms10_006_negotiate_response_loop, который собственно и производит отказ в обслуживании. Перейдем к практике:

Единственный параметр, который нужно настроить – SRVHOST.  Из столбца Description понятно, что это IP-адрес пен-тестера, т.е. ваш:

Для запуска используем команду run. Как только модуль выполнится, он сгенерирует ссылку на общую папку 192.168.56.101SharedAnything:

Теперь эту ссылку отправляем пользователю. И когда он перейдет по ней, произойдет крах системы, т.е. система перезагрузится.

Пен-тест Linux (Ubuntu/Debian)

Linux, также является широко используемой ОС после Windows. В этом рецепте для пен-теста будем использовать Ubuntu 9.0. Процесс взлома будет аналогичен для любой Linux и Solaris ОС, главное чтобы на них работала служба/демон Samba.

Начнем со сканирования и сбора информации о целевой системе. Давайте выполним быстрое сканирование в Nmap и проанализируем результаты:

След. шагом нужно подобрать подходящий эксплоит и настроить payload. Поищем подходящий Samba exploit:

Появится список эксплоитов. Мы воспользуемся этим – exploit/linux/samba/lsa_transnames_heap, у которого Rank = good:

След. шагом будет установка payload. В качестве payload будет использовать linux/x86/shell_bind_tcp:

Все готово. Последним шагом будет команда exploit:

В случае успешного выполнения эксплоита, нам будет предоставлен shell на целевой машине. Весь процесс, который мы сейчас проделали очень похож на предыдущие, разница лишь в эксплоите и payload. Чем больше вы будите практиковаться, тем больше будите понимать Metasploit.

Samba использует общие принтеры и папки для обмена данными между Linux и Windows ОС. Модуль, который мы рассмотрели в этом рецепте вызывает переполнение кучи в службе LSA RPC, демона Samba. Есть шансы, что эксплоит завершится неудачей с первой попытки, поэтому попробуйте повторить его несколько раз, чтобы добиться успеха.

Давайте рассмотрим некоторые другие модули, связанные с ОС Linux. Настоятельно рекомендую ознакомиться с ними самостоятельно, чтобы глубже понять процесс взлома. К ним относятся:

  • Samba trans2open Overflow
  • Samba chain_reply Memory Corruption

Разбор Windows DLL injection

В этом рецепте мы будем иметь дело с особым эксплоитом, которого не существует в ОС Winodws. На самом деле он присутствует в программном обеспечении, работающем в Windows. Это удаленный вектор атаки, который затрагивает загрузку внешних библиотек.

Атака предполагает создание уязвимых путей или каталогов.

Рассмотрим практическую реализацию DLL инъекции. В этом примере целевой системой будет Windows 7 Ultimate. Давайте начнем.

В качестве эксплоита будем использовать модуль exploit/windows/browser/webdav_dll_hijacker, а в качестве payload – windows/meterpreter/bind_tcp:

Описывать каждый столбец не буду, так как в Description уже есть описание.

Теперь остается выполнить команду exploit:

Посмотрим, что происходит на целевой системе

Как видим на целевой системе создался файл policy.txt. Файл полностью безвреден. Но, после того, как пользователь откроет этот файл, начнет работать DLL и вы увидите активность в msfconsole.

DLL (англ. dynamic-link library — «библиотека динамической компоновки», «динамически подключаемая библиотека») — понятие операционных систем Microsoft Windows и IBM OS/2, динамическая библиотека, позволяющая многократное использование различными программными приложениями. K DLL относятся также элементы управления ActiveX и драйверы. В мире UNIX аналогичные функции выполняют так называемые общие объекты (англ. shared objects). Когда приложение выполняется/запущено, функция loadlibrary() подгружает необходимые DLL. Если местоположение загрузки DLL не указано или содержит недостаточно подходящий путь, тогда Windows использует свои пути для определения. Одним из таких путей является рабочий каталог.

Когда целевой пользователь посещает общую папку, он переходит в контролируемую злоумышленником зону/территорию. Как? Общий файл policy.txt содержит недостаточно подходящий путь к DLL. Поэтому, когда пользователь запускает этот файл, Windows начинает искать пропавшую DLL. Далее…так как текущий каталог /documents находится под контролем атакующего, он/она может добавить вредоносный код в DLL, который Windows выполнит (т.к. текущий рабочий каталог является одним из мест, где по умолчанию Windows, ищет библиотеки). Таким образом устанавливается соединение/shell с целевой системой и системой атакующего.

Однако, мы можем искать DLL injection, для этого нам понадобится простой инструмент созданный H. D. Moore. (создатель Metasploit). – DllHijackAudit kit. Ознакомиться с этой утилитой можно тут.

Продолжение следует…

[Всего голосов: 3    Средний: 2.7/5]
Share Button

Вам может быть интересно также:

Last updated by at .

1 comment to Metasploit Penetration Testing Cookbook – часть 3

Leave a Reply

You can use these HTML tags

<a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">