Данная статья представлена исключительно в ознакомительных целях и не несет призыва к действию. Вся информация направлена на то, чтобы уберечь читателей от противозаконных действий.
Способы и основные принципы взлома сайтов
По структуре сайты делятся на три больших класса:
- Самописные (сделанные вручную на HTML, произведенные статическим генератором типа Jekyll или собранные в программе-конструкторе типа Adobe Dreamweaver);
- Сделанные в онлайновых конструкторах (в основном это сайты-визитки без каких-либо баз данных и передаваемых полей);
- Работающие на готовых CMS (Content Management System, системах управления контентом).
Встречаются еще самодельные CMS, созданные для конкретного сайта, но это сейчас стало редкостью — позволить себе поддержку своей системы могут только самые крупные ресурсы, и оправдать связанные с этим затраты непросто.
В основе большинства современных сайтов — готовые движки.
С точки зрения атакующего, движки сайтов ничем не отличаются от других сервисов и служб. Их исходный код обычно находится в общем доступе, и любой исследователь может проанализировать его на ошибки, в том числе бреши в безопасности. Поэтому сайты на CMS редко становятся жертвами целевой атаки. Чаще их ломают массово.
КАК СТАТЬ ХАЦКЕРОМ И КРЯКНУТЬ САЙТ
Такой взлом автоматизирован и обычно протекает по следующей схеме: хакер находит уязвимость (самостоятельно или просто гуглит что-то свежее). Затем он делает эксплоит или берет готовый и пишет специализированный бот. Этот бот ищет указанную дыру на всех сайтах подряд в заданном диапазоне и пытается эксплуатировать ее.
Разведка
Прежде чем пытаться атаковать цель, нужно собрать информацию о ней. Для этого хорошо подходит инструмент WhatWeb . Эта утилита предоставляет подробную информацию о CMS жертвы и использованных ей веб-инструментах.
Советуем запускать WhatWeb с ключом -а , указывая после него значение 3 или 4. Разница между ними только в том, что во втором случае WhatWeb будет сканировать еще и субдиректории. Имей в виду, что оба варианта задают агрессивный метод опросов — со всеми вытекающими, а точнее «втекающими» на сервер логами.
Вот пример запуска и собранных ответов:
$ whatweb -a3 https://URL
https://URL [200 OK] Cookies[PHPSESSID], Country[UNITED KINGDOM][GB], Frame, HTML5, JQuery[1.9.0,2.2.3], Open-Graph-Protocol[website], PHP[7.1.33], PasswordField[password], Script[application/ld+json,text/javascript], Title[Bower Partnerships | Best Equity Release Broker Customer Service 2019], UncommonHeaders[link,x-robots-tag,alt-svc], WordPress, X-Powered-By[PHP/7.1.33], X-UA-Compatible[IE=EDGE]
- Здесь мы видим, что это сайт британской компании, сделанный на WordPress, используется PHP v. 7.1.33 и jQuery 1.9.0, 2.2.3. Неплохо для начала!
- Если у тебя нет VPN или ты просто не хочешь заморачиваться с установкой, обрати внимание на онлайновую версию WhatWeb .
Кстати, при работе с заграничными сайтами она дает большую скорость.
- Если тебе достаточно определить только название CMS, то для этого есть отдельные сервисы , даже русскоязычные.
Вот свежая статистика популярности различных CMS в рунете:
Взлом сайта через браузер — часть 6 — производим настоящий взлом
- WordPress — 58,12%;
- Joomla — 17,12%;
- OpenCart — 4,65%;
- Drupal — 3,75%;
- Wix — 3,74%;
- MODX Revolution — 2,81%;
- MODX Evolution — 2,76%;
- Nethouse — 2,23%;
- прочие — 4,78%.
WordPress
Поскольку WordPress — это сейчас самая популярная CMS, то перейдем сразу к ней. Под нее выпущен очень мощный сканер, который умеет творить магию, — WPScan . На момент написания статьи актуальная версия была 3.7.8. Этот сканер умеет определять версию сканируемого объекта, брутить админку (у него даже есть свой встроенный словарь), смотреть уязвимые открытые директории, определять установленные плагины и много всего другого. К тому же он предустановлен в Kali Linux и в других дистрибутивах для пентестеров. Есть даже версия в докер-контейнере .
На наш взгляд, управление и ключи WPScan могли бы и упростить. Даже хелпа у программы два — краткий ( -h ) и подробный ( —hh ).
- Перед первым использованием WPScan необходимо обновить его базу данных:
wpscan —update
- После этого начинаем сканирование. Сам по себе WPScan без ключей выдаст общую информацию о сайте, лишь поверхностно просканировав цель:
wpscan —url http://example.com
После строчки Interesting Finding(s): начинаются те самые моменты, на которые стоит обратить внимание:
- версия WP;
- открытые директории;
- подозрения на уязвимости;
- ссылки на ресурсы, где об этих уязвимостях можно почитать.
В конце вывода красным восклицательным знаком помечены строки, которые идут вразрез с правилами безопасности. В нашем случае это торчащий наружу конфигурационный файл wp-config.php с логином и паролем к базе данных.
Продолжаем копать и все тем же софтом пробуем сбрутить логин и пароль к админке:
wpscan —url http://[IP-address] —passwords pass.txt —usernames user.txt
Брутфорсится очень быстро благодаря многопоточности. Если админ использовал стандартные учетные записи и установил несложные пароли, то результат не заставит себя долго ждать.
Как видишь, учетные данные к админке и базе данных мы достали без особого труда. Для рядового взломщика это было бы больше чем предостаточно, но мы еще не все проверили. На очереди — плагины для WP и другие популярные точки входа.
Сканер показал нам, что на выбранном сайте нет ни одного установленного плагина, однако это может быть ложным выводом, основанным на ограничениях пассивного метода сканирования. Для более надежного обнаружения плагинов нужно задать агрессивный метод их поиска:
wpscan —url http://[IP-address] —enumerate ap —plugins-detection aggressive
Учти, что ключ ap покажет все найденные плагины, а vp — только уязвимые. Данная процедура занимает приличное время. Скорость будет зависеть от удаленности сайта, но даже в лучшем случае на это уйдет не меньше 30 минут.
Как видишь, агрессивный метод дал свои результаты: обнаружен антиспам-плагин Akismet версии 3.1.1.
Точно такими же действиями необходимо искать другие уязвимые дополнения к WP. Подробнее смотри мануал в разделе —enumerate .
Также посмотри идентификаторы известных уязвимостей — CVE . Например, для версии PHP, на которой работает CMS. Затем поищи готовые модули Metasploit для WP и проверь их в деле.
Joomla
Joomla тоже довольно популярная CMS, для которой есть свой сканер — JoomScan . Написали его ребята из Open Web Application Security Project ( OWASP ). Он еще актуален, хотя и давно не обновлялся. Последняя версия 0.0.7 вышла в сентябре 2018 года.
По своей сути это точно такой же сканер безопасности, как и WPScan, только немного попроще. JoomScan также предустановлен в большинстве хакерских дистрибутивов, а весь его мануал умещается в несколько строк:
Он тоже поддерживает агрессивный метод сканирования установленных компонентов. Команда запуска сканирования в агрессивном режиме выглядит так:
joomscan —url http://84.42.34.2/ —enumerate-components
Вот пример анализа найденной на просторах интернета версии сайта на Joomla:
Как видно по скриншоту, программа выдает версию CMS, CVE найденных уязвимостей и ссылки на эксплоиты, которыми можно воспользоваться для взлома сайта. Также в выводе приводятся все найденные на сайте директории и ссылка на файл конфигурации, если его забыли спрятать.
Брутфорсить админку JoomScan не умеет. Сегодня, чтобы выполнить такой брутфорс, нужен серьезный инструмент, который работает с цепочкой прокси-серверов. Хотя бы потому, что на сайтах с Joomla часто используется плагин brute force stop . Когда количество неудачных попыток авторизации достигает заданного числа, он блокирует IP-адрес атакующего.
Если сайт с Joomla работает на HTTP (что уже редкость), попробуй воспользоваться скриптом Nmap.
Drupal и другие CMS
С Drupal все немного сложнее, как и с другими непопулярными CMS. Годного сканера, который бы находил уязвимости на таких сайтах, просто нет. Из готовых инструментов лишь DroopeScan , но он только помогает быстро собрать базовую информацию о жертве.
Устанавливается DroopeScan через pip (естественно, у тебя должен быть установлен Python):
pip install droopescan
Запускаем сканирование. Так как он поддерживает не только Drupal, ему желательно явно указать, какую CMS мы ожидаем встретить на сайте:
droopescan scan drupal -u http://url
Остальное приходится выискивать руками и гуглить в интернете. В этом очень помогают сайты с поиском по базам уязвимостей, например CVEdetails , и готовые эксплоиты с PoC (их можно найти на GitHub и в даркнете).
К примеру, возьмем уязвимость CVE-2018-7600 , которой подвержены версии Drupal7.х и 8.х. Она позволяет загрузить и вызвать shell удаленно. Эксплоит для PoC можно взять тут:
Сканер выдал нам лишь версию CMS, и этого хватило для эксплуатации уязвимости. В целом взлом Drupal и других CMS по своей сути ничем не отличается от поиска дыр в любом другом онлайновом сервисе. Бреши в безопасности либо есть, либо их еще не нашли:
Не надо далеко ходить за боевым эксплоитом , чтобы открыть сессию в Meterpreter и воспользоваться уязвимостью в полной мере.
Удар по самописным сайтам
Со взломом самописных сайтов все намного сложнее. Нет конкретного сканера, который сказал бы: вот тут есть старая версия веб-приложения, в нем известная дыра, вот ссылка на эксплоит и подробное описание его применения. Есть только очень обширный список потенциальных уязвимостей, которые нужно проверить.
Взлом — дело сугубо творческое. В нем нет жестких рамок и перечня обязательных инструментов, особенно если они опенсорсные.
Если выполнить взлом самописного сайта, то лучше начинать с того же WhatWeb. Только теперь мы смотрим не CMS, а все обнаруженные сервисы и их версии.
Есть множество уязвимых версий самих фреймворков. К примеру, зачастую используют устаревшие версии Ruby on Rails или Apache Tomcat . Эксплоиты для них есть в открытом доступе.
Также стоит обратить внимание на версии самих языков программирования. К примеру, в PHP постоянно находят уязвимости, а с момента их обнаружения до апдейта на сайте может пройти не одна неделя.
Следующим шагом желательно воспользоваться сканерами безопасности. Даже если они не дадут готовый вердикт, то подкинут пищу для размышлений. Например, программа dirb поможет пробежаться по открытым директориям и вернет коды ответов.
Для проверки на типовые уязвимости воспользуйся универсальными сканерами: nikto , OWASP ZAP , w3af , skipfish . Также советую иметь в запасе mantra security toolkit .
Для всего остального есть Burp Suite . Обычно с его помощью выполняется более сложный поиск уязвимостей веб-приложений. В качестве примера рассмотрим поиск и эксплуатацию SQL-инъекций.
Ставим Burp Suite (в Kali Linux он уже предустановлен), находим в нем Repeater (повторитель запросов) и запускаем. В запросе GET или POST ищем передаваемое на сервер значение (типа id=12 ) и закидываем его в Repeater:
Добавляем одинарную кавычку, чтобы проверить отсутствие фильтрации специальных символов в передаваемом значении, и видим сообщение с ошибкой syntax error sql . Возникновение ошибки говорит о том, что сайт уязвим к SQL-инъекциям. Для автоматизации развития атаки используем sqlmap:
sqlmap -u http://url/page.php?id=1 —dbs
Ключ -u указывает на URL цели, а —dbs говорит проверить все СУБД.
Этот комбайн для SQL-инъекций сам определит, какой пейлоад подходит, и по твоим командам вытащит все нужные данные из баз на сайте. Он даже предложит сразу определить пароли по хешам, если найдет.
Источник: teletype.in
HTB Developer. Ломаем сайт на Django и реверсим приложение на Rust
В этой статье я покажу, как взламывают сайты на Django. Кроме того, мы снимем пароль с файла XLS и применим фишинговую атаку Tab Nabbing. Для повышения привилегий разберем алгоритм программы на Rust. Все это — чтобы пройти сложную машину Developer с площадки Hack The Box.
warning
Подключаться к машинам с HTB рекомендуется только через VPN. Не делай этого с компьютеров, где есть важные для тебя данные, так как ты окажешься в общей сети с другими участниками.
Разведка. Сканирование портов
Добавляем IP-адрес машины в / etc/ hosts :
10. 10. 11. 103 developer. htb
И запускаем сканирование портов.
Справка: сканирование портов
Сканирование портов — стандартный первый шаг при любой атаке. Он позволяет атакующему узнать, какие службы на хосте принимают соединение. На основе этой информации выбирается следующий шаг к получению точки входа.
Наиболее известный инструмент для сканирования — это Nmap. Улучшить результаты его работы ты можешь при помощи следующего скрипта.
ports = $( nmap -p- —min-rate = 500 $1 | grep ^[ 0- 9] | cut -d ‘/ ‘ -f 1 | tr ‘ n’ ‘, ‘ | sed s/, $/ / )
nmap -p $ports -A $1
Он действует в два этапа. На первом производится обычное быстрое сканирование, на втором — более тщательное сканирование, с использованием имеющихся скриптов (опция -A ).
Находим два открытых порта: 22, на котором работает SSH, и 80, отвечающий за веб.
Справка: брутфорс учеток
Поскольку вначале у нас нет учетных данных, нет и смысла изучать службы, которые всегда требуют авторизации (например, SSH). Единственное, что мы можем делать здесь, — это перебирать пароли брутфорсом, но у машин с HTB почти всегда есть другое прохождение. В жизни таких вариантов может не быть, к тому же имеются шансы подобрать пароль или получить его при помощи социальной инженерии.
Начинаем, конечно же, с веба!
Нас встречает сайт какой‑то CTF-площадки. Просмотрев его содержимое, обнаружим возможность регистрации и авторизации, но, что примечательно, нет ни одного файла на PHP. Возможно, это фреймворк на Python? Чтобы проверить догадку, просканируем скрытые директории в корневом каталоге сайта.
Справка: сканирование веба c ffuf
Одно из первых действий при тестировании безопасности веб‑приложения — это сканирование методом перебора каталогов, чтобы найти скрытую информацию и недоступные обычным посетителям функции. Для этого можно использовать программы вроде dirsearch и DIRB.
Я предпочитаю легкий и очень быстрый ffuf. При запуске указываем следующие параметры:
- -w — словарь (я использую словари из набора SecLists);
- -t — количество потоков;
- -u — URL;
- -fc — исключить из результата ответы с кодом 403.
Команда получается следующая:
ffuf -u http:/ / developer. htb/ FUZZ -t 256 -w directory_ 2. 3_ medium_ lowercase. txt
В выводе будет очень много каталогов, которые возвращают код 301 — редирект. Если перейти по любому из них, то нас встретит админка фреймворка Django.
Больше ничего не найдя, регистрируемся на первом сайте.
На самом сайте лежит по два‑три таска из разных категорий, но мой интерес привлекла страница с настройками профиля пользователя. Сканируем текстовые поля, но это не дает результата. Может, попробуем сдать любой из тасков? Это может открыть что‑то новое. Я решил просмотреть задание на форензику phished_credentials.
Как сказано в условии задания, где‑то в файле есть пароль.
Точка входа
XLS sheet protect unlock
Открываем файл и видим скрытый столбец E . Раздвинуть столбцы не выходит, так как лист документа защищен паролем от изменения.
Но такую защиту можно легко снять. Откроем как архив и найдем в нем настройки для нужного листа. Так как тут он только один, нам нужен файл sheet1. xml .
В этом файле найдем и удалим следующую строку. Это поле sheetProtection .
Пересохранив файл и открыв документ, обнаруживаем, что защиты больше нет. Раздвигаем столбец E и получаем флаг для площадки.
Осталось передать его в форму на сайте.
После обновления страницы ее вид немного меняется, вместо кнопки сдачи ответа появляется кнопка отправки решения.
Причем не через загрузку файла, а указывается URL страницы.
Tab Nabbing
Я открыл локальный веб‑сервер Python 3 (команда python3 -m http. server 80 ) и отправил ссылку http:// 10. 10. 14. 59/ writeup. html . В логах веб‑сервера видим обращение к указанной странице. Это место для теста!
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Источник: xakep.ru
15) Взломать сайт
Больше людей имеют доступ к Интернету, чем когда-либо прежде. Это побудило многие организации разрабатывать веб-приложения, которые пользователи могут использовать в Интернете для взаимодействия с организацией. Плохо написанный код для веб-приложений можно использовать для получения несанкционированного доступа к конфиденциальным данным и веб-серверам.
В этой статье мы познакомим вас с методами взлома веб-приложений и мерами противодействия, которые вы можете предпринять для защиты от таких атак .
Темы, рассматриваемые в этом уроке
- Что такое веб-приложение? Что такое веб-угрозы?
- Как защитить ваш сайт от взлома?
- Взлом деятельности: взломать сайт!
Что такое веб-приложение? Что такое веб-угрозы?
Веб-приложение (или веб-сайт) — это приложение, основанное на модели клиент-сервер. Сервер обеспечивает доступ к базе данных и бизнес-логике. Он размещен на веб-сервере. Клиентское приложение запускается в клиентском веб-браузере. Веб-приложения, как правило, пишутся на таких языках, как Java, C # и VB.Net, PHP, ColdFusion Markup Language и т. Д. Ядрами базы данных, используемыми в веб-приложениях, являются MySQL, MS SQL Server, PostgreSQL, SQLite и т. Д.
Большинство веб-приложений размещаются на общедоступных серверах, доступных через Интернет. Это делает их уязвимыми для атак из-за легкого доступа. Ниже перечислены распространенные угрозы веб-приложений.
- SQL-инъекция — целью этой угрозы может быть обход алгоритмов входа в систему, саботаж данных и т. Д.
- Атаки отказа в обслуживании — целью этой угрозы может быть отказ в доступе законных пользователей к ресурсу
- Межсайтовый скриптинг XSS — целью этой угрозы может быть внедрение кода, который может быть выполнен в браузере на стороне клиента.
- Cookie / Session Poisoning — цель этой угрозы состоит в том, чтобы изменить куки-файлы / данные сеанса злоумышленником для получения несанкционированного доступа.
- Фальсификация форм — целью этой угрозы является изменение данных форм, таких как цены, в приложениях электронной коммерции, чтобы злоумышленник мог получать товары по сниженным ценам.
- Внедрение кода — целью этой угрозы является внедрение кода, такого как PHP, Python и т. Д., Который может быть выполнен на сервере. Код может установить бэкдоры, раскрыть конфиденциальную информацию и т. Д.
- Defacement — цель этой угрозы — изменить страницу, отображаемую на веб-сайте, и перенаправить все запросы на страницу на одну страницу, содержащую сообщение злоумышленника.
Как защитить ваш сайт от взлома?
Организация может принять следующую политику для защиты от атак веб-сервера.
- SQL-инъекция — дезинфекция и проверка пользовательских параметров перед отправкой их в базу данных для обработки может помочь снизить вероятность атак с помощью SQL-инъекции. Механизмы баз данных, такие как MS SQL Server, MySQL и т. Д., Поддерживают параметры и подготовленные операторы. Они намного безопаснее, чем традиционные операторы SQL
- Атаки типа «отказ в обслуживании» — брандмауэры могут использоваться для отбрасывания трафика с подозрительного IP-адреса, если атака представляет собой простую DoS. Правильная настройка сетей и системы обнаружения вторжений также может помочь снизить вероятность успешной атаки DoS.
- Межсайтовый скриптинг — проверка и дезинфекция заголовков, параметров, передаваемых через URL, параметров формы и скрытых значений может помочь уменьшить атаки XSS.
- Cookie / Session Poisoning — это может быть предотвращено путем шифрования содержимого файлов cookie, тайм-аута файлов cookie через некоторое время, связывания файлов cookie с IP-адресом клиента, который использовался для их создания.
- Закаливание формы — это можно предотвратить, проверяя и проверяя пользовательский ввод перед его обработкой.
- Внедрение кода — этого можно избежать, рассматривая все параметры как данные, а не как исполняемый код. Санитарная обработка и проверка могут быть использованы для реализации этого.
- Defacement — хорошая политика безопасности разработки веб-приложений должна гарантировать, что она закрывает наиболее часто используемые уязвимости для доступа к веб-серверу. Это может быть правильная конфигурация операционной системы, программного обеспечения веб-сервера и передовые методы обеспечения безопасности при разработке веб-приложений.
Взлом деятельности: взломать сайт
В этом практическом сценарии мы собираемся перехватить пользовательский сеанс веб-приложения, расположенного по адресу www.techpanda.org . Мы будем использовать межсайтовый скриптинг для чтения идентификатора сеанса cookie, а затем использовать его для олицетворения законного сеанса пользователя.
Предполагается, что злоумышленник имеет доступ к веб-приложению, и он хотел бы перехватить сеансы других пользователей, которые используют то же приложение. Цель этой атаки может состоять в том, чтобы получить доступ администратора к веб-приложению, предполагая, что учетная запись доступа злоумышленника ограничена.
Начиная
- Нажмите на Добавить новый контакт
- Введите следующее как имя
ВОТ,
Приведенный выше код использует JavaScript . Добавляет гиперссылку с событием onclick . Когда ничего не подозревающий пользователь щелкает ссылку, событие извлекает идентификатор сеанса файла cookie PHP и отправляет его на страницу snatch_sess_id.php вместе с идентификатором сеанса в URL-адресе.
- Введите остальные данные, как показано ниже
- Нажмите на Сохранить изменения
- Ваша панель управления теперь будет выглядеть следующим образом
- Поскольку код межсайтового скрипта хранится в базе данных, он будет загружаться каждый раз, когда пользователи получают права доступа.
- Давайте предположим, что администратор входит в систему и нажимает на гиперссылку с надписью Dark
- Он / она получит окно с идентификатором сеанса, отображаемым в URL
Примечание . Сценарий может отправлять значение на некоторый удаленный сервер, на котором хранится PHPSESSID, а затем пользователь перенаправляется обратно на веб-сайт, как будто ничего не происходит.
Примечание : значение, которое вы получаете, может отличаться от значения в этом уроке, но концепция та же
Сеанс олицетворения с использованием дополнения Firefox и Tamper Data
Блок-схема ниже показывает шаги, которые вы должны предпринять для выполнения этого упражнения.
- Для этого раздела вам потребуется веб-браузер Firefox и дополнение Tamper Data.
- Откройте Firefox и установите дополнение, как показано на диаграммах ниже
- Найдите данные тампера и нажмите «Установить», как показано выше.
- Нажмите на Принять и установить …
- Нажмите на Перезагрузить сейчас, когда установка завершится
- Включите строку меню в Firefox, если она не отображается
- Нажмите на меню инструментов, затем выберите Данные тампера, как показано ниже
- Вы получите следующее окно. Примечание: если Windows не пуста, нажмите кнопку очистки
- Нажмите на меню «Начать тампер»
- Вернитесь в браузер Firefox, введите http://www.techpanda.org/dashboard.php и нажмите клавишу ввода, чтобы загрузить страницу.
- Вы получите следующее всплывающее окно из Tamper Data
- Во всплывающем окне есть три (3) варианта. Опция Tamper позволяет вам изменять информацию заголовка HTTP перед ее отправкой на сервер .
- Нажмите здесь
- Вы получите следующее окно
- Скопируйте идентификатор сеанса PHP, который вы скопировали из URL атаки, и вставьте его после знака равенства. Ваша ценность теперь должна выглядеть так
- Нажмите на кнопку ОК
- Вы снова получите всплывающее окно данных тампера.
- Снимите флажок, который просит продолжить вмешательство?
- Нажмите на кнопку отправить, когда закончите
- Вы должны увидеть панель инструментов, как показано ниже
Примечание : мы не входили в систему, мы олицетворяли сеанс входа в систему, используя значение PHPSESSID, которое мы получили с помощью межсайтового скриптинга
Резюме
- Веб-приложение основано на модели сервер-клиент. Клиентская сторона использует веб-браузер для доступа к ресурсам на сервере.
- Веб-приложения обычно доступны через Интернет. Это делает их уязвимыми для атак.
- Угрозы веб-приложений включают в себя SQL-инъекцию, внедрение кода, XSS, искажение, отравление cookie и т. Д.
- Хорошая политика безопасности при разработке веб-приложений может помочь сделать их безопасными.
Источник: coderlessons.com