14.09.2015

Как не стать хакером. Metasploitable2 для стенда

image

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

Автор: С.А. Бабин
г. Кемерово
babins@inbox.ru

Занимаясь компьютерами, многие пользователи самостоятельно изучают информационные технологии, в том числе и все то, что связано с информационной безопасностью. Есть желание быстрее испробовать, ту или иную атаку, проверить уязвимость, о которой только что прочитал... А на чем же пробовать? Да что под руку подвернется: роутер у соседей по дому, компьютеры у друзей, сеть в школе, на работе… Психология увлеченного человека такова, что иногда он сначала что-то делает, а потом уж критично все это оценивает. Здоровый и понятный интерес, просто обычное любопытство фактически толкают человека на, скажем мягко, не совсем этичные поступки. И чем же тогда обычный школьник отличается от злобного хакера (здесь и далее – слово хакер используем в его ругательском смысле)?!

Почему происходит подобное? Да просто потому, что просветительская деятельность медиа изданий больше посвящена описанию уязвимостей, способов взлома, защиты и т.п. То есть, направлена на то, что является самой сутью вопроса. А про инструментарий служащий в качестве вспомогательных средств для тренировки юного пентестера, как то не принято очень часто говорить. В итоге, вместо того, чтобы организовать на дому специальный стенд для проверки атаки, начинающий «безопасник» начинает взламывать сеть в пабе соседнего дома. Так и до тюрьмы недалеко!

А это, как минимум, ответственность по следующим статьям: ст. 272 УК РФ «Неправомерный доступ к компьютерной информации», ст. 273 УК РФ «Создание, использование и распространение вредоносных программ для ЭВМ», ст. 137 УК РФ «Нарушение неприкосновенности частной жизни», ст. 138 УК РФ «Нарушение тайны переписки, телефонных переговоров, почтовых, телеграфных или иных сообщений», и др.

Кстати, все время интересует вопрос: если кто-то оставил WiFi роутер без пароля и каждый может использовать его ресурсы – это с точки зрения закона нарушение или нет? Думается – да! Но оставим эти споры для специалистов в юриспруденции.

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

В действительности готовых и удобных средств для тестирования на уязвимости или отладки вопросов защиты не так уж и мало. Условно эти средства классифицируем следующим образом:

группы

Наименование средства

Примеры, пояснение

Достоинства недостатки

1

Зачастую устаревшая, а иногда и не устаревшая, обычная операционная система или программа, установленная пентестером

Например, если установить не «патчанную» операционную систему Windows XP с отключенным брэндмауером, то для тренировки можно эксплуатировать известную уязвимость MS08_067_NETAPI, или другую.

Достоинства: ближе к реальности.

Недостатки: на устаревших системах учиться менее интересно, а на новых - еще мало известно об уязвимостях.

2

Специальный он-лайн сервис, предоставляемый в Интернете для любого желающего

Ниже по тексту приведен пример для SQLmapchik

Достоинства: не требуется что-то делать самому, все готово

Недостатки: чужое оно и есть чужое, нельзя что-то подстроить под свои нужды

3

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

Например,

из действующих: Metasploitable2,

из числа почему -то сейчас не поддерживаемых: DVL - Damn Vulnerable Linux.

Достоинства: нет недостатков по п.2.

Недостатки: кажется их нет, если не считать того, что нужно повозиться: скачать, установить, разобраться (хотя и это можно считать это преимуществом, так как развивает интерес).

4

Программы имитаторы

Например: программа GNS3, имитирующая аппаратные и программные активные устройства фирмы Cisco.

:

Достоинства: в домашних условиях можно не иметь дорогостоящего оборудования и очень успешно самостоятельно обучаться сложным технологиям.

Недостатки: имитаторов мало и порою нет в природе для нужного оборудования или системы.

Какой способ избрать? Да любой! Это дело вкуса и потребностей. Недостатки и достоинства - здесь достаточно условны (кроме того, иногда некоторые средства можно отнести сразу к двум группам).

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

Что касается второго способа, то бывает и так, как в примере с программой SQLmapchik (это некий аналог для android известной программы SQLmap), что вас прямо таки подталкивают попробовать онлайн сервис. При запуске этой программы, предназначенной для тестирования веб-приложений на ошибки в автоматическом режиме, и в частности на SQL-инъекции, по умолчанию вам для пробы предлагается адрес ресурса (http://testphp.vulnweb.com/search.php) со специально встроенными уязвимостями (рис.1). Хотя, естественно, для этого вы можете использовать и любой другой, тестируемый вами ресурс, для чего, собственно, и предназначена программа.


Рис. 1

Третий способ – вообще очень развитое направление (правда, есть одно «но», о чем немного ниже). В свое время мой друг Юрий Жуков написал замечательную книгу «Основы веб–хакинга. Нападение и защита». Для обучения основам безопасности для веб-приложений он предложил диск с образами двух Linux, они устанавливаются на хосты: с которого нападают (Back Track), и на который нападают (Damn Vulnerable Linux). DVL Linux, имеющий множество уязвимостей, специально создан для тренировки студентов, изучающих информационную безопасность. Жалко, но по какой-то причине сейчас этот проект не поддерживается. И в настоящее время, когда прошло уже достаточно много времени, все равно книга «Основы веб–хакинга. Нападение и защита» востребована, практически став классическим учебником. Конечно, как водится, ее быстро украли, надолго отбив у автора желание что-то актуализировать и вообще писать. Но зато и сейчас любой начинающий может найти ее на любом торенте и попробовать свои силы в вопросах обучения безопасности веб-приложений. В книге множество примеров, все очень подробно описано. Пробуйте!

Для четвертого способа, указанного в нашей таблице, пример настройки активных устройств в GNS3 для тестирования конфигураций, связанных с безопасностью, вы сможете прочитать в выходящей в следующем году книге С.А. Бабина «Лаборатория хакера» (издательство БХВ, г. Санкт- Петербург). Здесь на этом останавливаться не будем. Заметим только, что это уникальнейшая возможность работать и учиться в домашних условиях, не затратив ни копейки на дорогостоящее оборудование и программное обеспечение. Жаль только что не многие производители практикуют выпуск подобных приложений. Например, для активных устройств фирмы Cisco это есть, а для менее раскрученных брендов зачастую может и не быть.

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

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

Вот цитата одного уважаемого автора в отношении баз эксплойтов: «Скажу честно, базы эксплойтов меня разочаровали: я слежу за обновлениями самых популярных веб-приложений (phpMyAdmin, WordPress, Drupal, и т. д.) и за последние месяцы в списках изменений мелькало достаточно много закрытых уязвимостей. Под большинство из них я не нашёл эксплойтов. Возможно, это касается только эксплойтов для веб-приложений».

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

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

Рис. 2

Выражаясь проще, петля, напоминающая петлю гистерезиса, символизирует то, что пока операционная система не устареет (время активной жизни системы), обычный человек может получить доступ к инструменту ровно настолько, насколько ему разрешено «приближенными», то есть к минимуму. От нас скрывают правду, нас водят за нос. Понятно, что такое ограничение организуют те, кто в этом заинтересован, кто имеет влияние – разработчики, продавцы, специалисты их обслуживающие… Через пять - десять лет выяснится, что операционные системы выпущенные сегодня, и кажущиеся верхом совершенства по безопасности, окажутся дырявыми, как и те, которые сегодня устарели.

Если вы думаете, что дело только в деньгах, и производители, например, того же Metasploit Framework в ее коммерческой версии откроют вам больше – то вы ошибаетесь. Попробуйте скачать коммерческую версию Metasploit Framework с сайта Rapid 7 и немного поисследуйте ее в короткий разрешенный для этого срок пока сохраняется работоспособность «на дармовщину». Вы все поймете: ситуация не лучше! Кстати, при скачивании такой версии нужно зарегистрироваться и при этом вряд ли «пройдет» ваш email адрес с бесплатного почтового сервера. Требуется, чтобы был какой-нибудь не ширпотребовский домен. Мало того, если введете реальный номер телефона, через какое-то время вам позвонят «оттуда» и поинтересуются - с какой целью вы скачивали этот софт. Если вы прикинетесь, что не понимаете английский (или на самом деле – не понимаете), то через 30 сек. найдут русскоговорящего интервьюера. (Интересно - с чего бы это такая расторопность? Терзают смутные сомненья…).

Но вернемся к наиболее распространенному в учебных заведениях третьему способу указанному в таблице. Чтобы показать всю мощь имеющихся возможностей для начальной подготовки «на дому» будущего специалиста по ИБ, поговорим об Metasploitable2. Документация по этому набору находится здесь:

https://community.rapid7.com/docs/DOC-1875

Скачать сам продукт вы можете здесь:

https://information.rapid7.com/metasploitable-download.html?LS=1631875&CS=web

Кстати, сам факт того, что «компиляторы» в русскоязычном Интернете до сих пор не сделали обзора указанного софта, лишний раз доказывает изложенную в начале статьи отправную точку зрения, о том, что теме организации вспомогательного обеспечения для начинающих «безопасников» – медиа средствами не уделяется должного внимания. Поэтому восполним пробел и, может хотя и слишком в общем, но попробуем сделать небольшое достаточно общее описание Metasploitable2 (см. Приложение). Более точные детали читаем в документации: там все просто, и в комментариях к документации даже имеется немало видео. Правда, нужно только учитывать, что на замену Back Track (с которого осуществляются пробные атаки на Metasploitable2) пришел Kali Linux, а порядок действий и синтаксис команд при этом полностью сохраняется.

Может быть, этот обзор будет полезен и поможет уберечь кого-нибудь от лишних правонарушений.

Приложение.

Небольшой обзор Metasploitable2

для начинающих пользователей

Metasploitable2 поставляется в качестве образа виртуальной машины и для ее запуска VMware Player можно скачать здесь:

https://my.vmware.com/web/vmware/downloads

В нашем примере мы установили виртуальную машину на компьютер с операционной системой Windows. Виртуальная машина по умолчанию настроена так, что включен NAT, нам же для доступа без лишних проблем нужно включить интерфейсы в режим мостов (рис. 3):

Рис. 3

Загрузив машину, и «залогинившись» под именем msfadmin с паролем msfadmin, если сеть настроена правильно, по команде ifconfig получим данные об адресе внутренней сети на интерфейсе (рис. 4):

Рис. 4

Все! Можно эксплуатировать систему, переключаясь между виртуальной машиной и рабочим столом Windows, применяя комбинацию клавиш ctrl+alt. Проверим доступ из внутренней сети: или выполним команду ping 192.168.0.216, или, еще лучше, в любом браузере введем адрес системы и получим меню Metasploitable2 (рис. 5):

Рис. 5

Первое, что предлагается в документации на Metasploitable2, это проверить систему на открытые порты командой nmap, для чего лучше всего использовать другой хост, например с Kali Linux. В нём осуществим запуск терминала и наберем команду:

nmap -p0-65535 192.168.0.216

Получим результат, указанный на рис.6:

Рис. 6

Образ Kali Linux вы можете скачать здесь:

https://www.kali.org/downloads/

Загрузившись с диска Kali Linux, например, на ноутбуке c WiFi картой, нужно не забыть включиться в вашу сеть, для чего в правом верхнем углу выбрать значок двух компьютеров и далее для требуемой WiFi сети (вашей) ввести значение пароля.

Но вернемся к обзору Metasploitable2. Практически на каждый из открытых портов хоста с Metasploitable2 можно организовать атаку.

Первоначально в документации на Metasploitable2 последовательно изложены примеры использования сервисов: основных unix, и двух типов бэкдоров - преднамеренных и непреднамеренных (Unix Basics, Backdoors, Unintentional Backdoors). В приведенных примерах все просто и понятно, следует только придерживаться указанного синтаксиса, естественно, где требуется, подставляя IP- адрес своего хоста с Metasploitable2 (в нашем примере - 192.168.0.216).

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

Проведение атак с использованием Metasploit производится по стандартному алгоритму (изложим его очень кратко):

1. В терминальном окне запускается консоль командой:

msfconsole

Должно появиться приглашение: msf>, (рис.7).

2. Если вы знаете точное название эксплойта (есть команда поиска, но об этом в настоящем обзоре рассказывать не будем), то он вызывается командой:

use имя_эксплойта

В приглашении должно добавиться название эксплойта (т.е., вы вошли в режим его конфигурирования и использования).

3. Выставляем основные параметры. Как правило, в зависимости от типа эксплойта, это адрес жертвы (иногда нужно указать адрес хоста с которого производится атака, а также могут быть и другие параметры). Установка параметров производится командой

set обозначение_параметра значение_параметра

4. Осуществляем атаку (т.е., производим применение эксплойта) командой exploit.

Рис. 7

На рис. 8 приведен пример реализации эксплойта с названием - auxiliary/admin/smb/samba_symlink_traversal (такое вот не очень короткое название), после которого вы можете продолжить упражнение, выполняя команды, приведенные в документации (естественно, не забывая в нужных местах указывать IP- адрес своего хоста с Metasploitable2).

Рис. 8

Продолжим обзор документации Metasploitable2. Далее в разделе Weak Passwords приведен список учетных записей системы имеющих ужасно плохие пароли, которые можно подобрать перебором (brute force) или другим способом, захватив файл паролей.

Следующий раздел посвящен уязвимым веб-сервисам (Vulnerable Web Services). И вот тут, на применении сервиса Mutillidae остановимся немного подробнее, чуть позже вы поймете - почему.

Mutillidae (попадаем в меню сервиса по соответствующей ссылке – Mutillidae, рис.5) позволяет потренироваться в проведении различных типов атак: топ десяти указанных OWASP (пояснять про OWASP не буду – смотрите Википедию), и еще несколько типов (Others).

В документации на Metasploitable2 приведена большая таблица с перечислением названий страниц (начиная со страницы add-to-your-blog.php, и далее), и представленные сервисом Mutillidae соответствующие им уязвимости.

Прежде чем приступить к экспериментам, новичкам, чтобы было полегче, необходимо выставить переключателем Security Level наибольший уровень уязвимости этого сервиса (0 - hosed) и переключателем Toggle Hints наибольший уровень подсказок (2 - Noob), как показано на рис. 9:

Рис. 9

Для пробы проведем атаку, используя классическую SQL инъекцию, вызвав скрипт для прохождения аутентификации, посредством меню OWASP Top 10| A1 – Injection| SQLi –Bypass Authentication| Login (рис. 10):

Рис. 10

Появится соответствующая форма с полями Name и Password, а ниже, большое количество подсказок (поскольку мы выбрали максимальный уровень для подсказок), на рис. 11 показан только небольшой фрагмент:

Рис. 11

Опустим все пошаговые действия для проведения тренинга, указанные в окне SQL Injection Tutorial, так как в настоящий момент мы не преследуем цели обучения, а просто хотим проверить работоспособность сервиса и, проследовав в самый низ этого окна, обратим внимание на классическую инъекцию, рис.12:

Рис. 12

Наберем в поле Name выражение <‘ or 1=1 -- >(пробел в конце выражения важен), рис. 13:

Рис. 13

После нажатия на кнопку Login, атака не удается, мы почему - то получаем сообщение об ошибке, рис. 14:

Рис. 14

Странно, но судя по ошибке, в базе данных с именем metasploit не находится таблица accounts.

Необходимо заглянуть в базу данных. Скачиваем из Интернета и устанавливаем любой клиент, поддерживающий работу с SQL базами. В частности, попался вот этот: Client for MySQL, который мы установили на компьютер с виртуальной машиной. Обращаемся клиентом к хосту с Metasploitable2: по IP-адресу своей виртуальной машины, в нашем примере 192.168.0.216 (рис. 4), имя – root, пароль – пустой.

И что же мы видим: база данных metasploit есть, но в ней вообще нет ни одной таблицы (КТО ТАК ДЕЛАЕТ?! ЗАЧЕМ?!).

Зато таблицы есть в базе owap10. Скопируем средствами Client for MySQL (по правой клавише мыши, устанавливая на таблицу, выбираем - Duplicate table) по очереди все таблицы из owap10 в metasploit, рис.15, 16:

Рис. 15

Рис. 16

Повторяем атаку, указанную на рис. 13, наконец, все получается (рис.17):

Рис. 17

А теперь спустимся в самый подвал страницы с документацией на Metasploitable2 (там, где отзывы), и с удивлением видим, что кто-то из пользователей в комментариях еще в 2012 году написал про отсутствие таблиц. Здесь же даже предложили способ решения, отличный и более простой от того, что мы только что проделали (просто исправить название базы данных в конфигурационном файле var/www/mutillidae/config.inc).

Что бы это все значило?! Такое ощущение, что, или программист наспех выложил не ту версию, после чего по какой-то причине уволился, а проект с тех пор заброшен. Или, может быть, это одно из проявлений того, о чем мы говорили ранее (см. про теорию заговора - рис. 2): количество новичков, бросивших обучение (потому что ничего не получилось), может значительно превалировать над теми, кто взял этот инструмент на вооружение. Комментарии то читают единицы. Так происходит отсев «не избранных»!

В результате обидевшись на Metasploitable2, я уже был готов бросить обзор документации и посоветовать вам тренироваться, используя методы указанные в п.1 таблицы классификации в начале статьи. Но не закончить дело совсем чуть – чуть, как – то не смог! Поэтому все же завершим наш обзор, рассмотрев еще один сервис Metasploitable2, а именно - DWVA (Damn Vulnerable Web App).

Но, перед тем как перейти к DWVA, заметим еще, что в комментариях к документации показан скриншот по корректировке файла var/www/mutillidae/config.inc с использованием редактора Midnight Commander (mc). Но, нужно предупредить, что по умолчанию этот менеджер в Metasploitable2 не установлен, а привычная инсталляция с применением apt-get install у вас вряд ли получится. В конце концов, если уж совсем не любите командной строки, то в Metasploitable2 вы можете первоначально удалив файл /tmp/.X0-lock, и по команде startx запустить графическую оболочку (рис.18), а там уж выбирайте –что есть в меню, даже браузер можно запустить.

Рис. 18

Не нравится инструмент в Metasploitable2 – употребляйте для корректировки конфигурационного файла любые инструменты, имеющиеся в Cali Linux, также подключившись к виртуальной машине по сети. В том числе, при необходимости, в Cali Linux найдется (или их можно установить привычным способом) немало средств и для изменения таблиц в базе данных (так что, повторюсь, клиент Client for MySQL, в нашем случае был использован абсолютно спонтанно). В общем, способов для устранения дефекта с «выкушенными» для сервиса Mutillidae таблицами - множество.

Но не будем отвлекаться. Перейдем к Damn Vulnerable Web App. Указанный сервис, так же как и Mutillidae, имеет большое количество уязвимостей и предназначен для тренировки в проведении атак и средств защиты веб-приложений.

Для запуска DWVA используем имя admin и пароль password, рис. 19:

Рис. 19

Чтобы поверить работоспособность сервиса, первоначально установим настройки приложения так, чтобы обеспечивалась максимальная уязвимость, и чтобы было включено обнаружение атак. В этих целях на вкладке DWVA Security нужно установить уровень безопасности в значение low и включить PHPIDS в режим enable. При этом следует обратить внимание на то, чтобы проводимые изменения сохранились: информация о действующих значениях в левом нижнем углу на рис.20:

Рис. 20

Перейдем на вкладку SQL Injection и произведем уже известную нам классическую атаку, применив выражение <‘ or 1=1 -- >, рис. 21:

Рис. 21

В связи с тем, что у нас включено обнаружение атак, мы получим сообщение о произведенной атаке (рис. 22). Т.е. сервис DVWA – работает, и его можно применять для тренировки атак на web- приложения.

Рис. 22

Таким образом, совместно с вами мы произвели небольшой экскурс по документации на Metasploitable2. Использовать Metasploitable2 или нет – решать уже вам самим.