Общие принципы взлома сайтов
![]()
Встречаются еще самодельные CMS, созданные для конкретного сайта, но это сейчас стало редкостью — позволить себе поддержку своей системы могут только самые крупные ресурсы, и оправдать связанные с этим затраты непросто.
В основе большинства современных сайтов — готовые движки.
С точки зрения атакующего, движки сайтов ничем не отличаются от других сервисов и служб. Их исходный код обычно находится в общем доступе, и любой исследователь может проанализировать его на ошибки, в том числе бреши в безопасности. Поэтому сайты на CMS редко становятся жертвами целевой атаки. Чаще их ломают массово.
Такой взлом автоматизирован и обычно протекает по следующей схеме: хакер находит уязвимость (самостоятельно или просто гуглит что-то свежее). Затем он делает эксплоит или берет готовый и пишет специализированный бот. Этот бот ищет указанную дыру на всех сайтах подряд в заданном диапазоне и пытается эксплуатировать ее.
Разведка
Прежде чем пытаться атаковать цель, нужно собрать информацию о ней. Для этого хорошо подходит инструмент WhatWeb. Эта утилита предоставляет подробную информацию о CMS жертвы и использованных ей веб-инструментах.
Советуем запускать WhatWeb с ключом -а , указывая после него значение 3 или 4. Разница между ними только в том, что во втором случае WhatWeb будет сканировать еще и субдиректории. Имей в виду, что оба варианта задают агрессивный метод опросов — со всеми вытекающими, а точнее «втекающими» на сервер логами.
Вот пример запуска и собранных ответов:
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 в рунете:
- 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 без ключей выдаст общую информацию о сайте, лишь поверхностно просканировав цель:
После строчки Interesting Finding(s): начинаются те самые моменты, на которые стоит обратить внимание:
- версия WP;
- открытые директории;
- подозрения на уязвимости;
- ссылки на ресурсы, где об этих уязвимостях можно почитать.
В конце вывода красным восклицательным знаком помечены строки, которые идут вразрез с правилами безопасности. В нашем случае это торчащий наружу конфигурационный файл wp-config.php с логином и паролем к базе данных.
Продолжаем копать и все тем же софтом пробуем сбрутить логин и пароль к админке:
Брутфорсится очень быстро благодаря многопоточности. Если админ использовал стандартные учетные записи и установил несложные пароли, то результат не заставит себя долго ждать.
Как видишь, учетные данные к админке и базе данных мы достали без особого труда. Для рядового взломщика это было бы больше чем предостаточно, но мы еще не все проверили. На очереди — плагины для WP и другие популярные точки входа.
Сканер показал нам, что на выбранном сайте нет ни одного установленного плагина, однако это может быть ложным выводом, основанным на ограничениях пассивного метода сканирования. Для более надежного обнаружения плагинов нужно задать агрессивный метод их поиска:
Учти, что ключ 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 также предустановлен в большинстве хакерских дистрибутивов, а весь его мануал умещается в несколько строк:
Он тоже поддерживает агрессивный метод сканирования установленных компонентов. Команда запуска сканирования в агрессивном режиме выглядит так:
Вот пример анализа найденной на просторах интернета версии сайта на Joomla:
Как видно по скриншоту, программа выдает версию CMS, CVE найденных уязвимостей и ссылки на эксплоиты, которыми можно воспользоваться для взлома сайта. Также в выводе приводятся все найденные на сайте директории и ссылка на файл конфигурации, если его забыли спрятать.
Брутфорсить админку JoomScan не умеет. Сегодня, чтобы выполнить такой брутфорс, нужен серьезный инструмент, который работает с цепочкой прокси-серверов. Хотя бы потому, что на сайтах с Joomla часто используется плагин brute force stop. Когда количество неудачных попыток авторизации достигает заданного числа, он блокирует IP-адрес атакующего.
Если сайт с Joomla работает на HTTP (что уже редкость), попробуй воспользоваться скриптом Nmap.
Drupal и другие CMS
С Drupal все немного сложнее, как и с другими непопулярными CMS. Годного сканера, который бы находил уязвимости на таких сайтах, просто нет. Из готовых инструментов лишь DroopeScan, но он только помогает быстро собрать базовую информацию о жертве.
Устанавливается DroopeScan через pip (естественно, у тебя должен быть установлен Python):
Запускаем сканирование. Так как он поддерживает не только Drupal, ему желательно явно указать, какую CMS мы ожидаем встретить на сайте:
Остальное приходится выискивать руками и гуглить в интернете. В этом очень помогают сайты с поиском по базам уязвимостей, например 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:
Ключ -u указывает на URL цели, а —dbs говорит проверить все СУБД.
Этот комбайн для SQL-инъекций сам определит, какой пейлоад подходит, и по твоим командам вытащит все нужные данные из баз на сайте. Он даже предложит сразу определить пароли по хешам, если найдет. Особенно этот софт полезен при эксплуатации так называемых слепых SQL-инъекций.
Почему сайты на Tilda небезопасны и что делать, если уже есть сайт на этом сервисе
Вместе с инициативой «КіберБабёр» мы уже писали о том, почему лучше отказаться от пользования российскими сервисами. Обратная связь на цитируемый материал показала, что больше всего актуальна информация о Tilda и на какой альтернативный конструктор сайтов можно переносить свои проекты. Разбираемся вместе.
Tilda — это конструктор для создания сайтов, блогов, email-рассылок, количество которых только выросло в последние годы. Использование этого конструктора актуально, если нужно быстро сделать сайт без больших ресурсных затрат на команду разработчиков, домен и хостинг. Однако при создании сайта важно учитывать не только функционал сервиса, но и безопасность, свою и пользовател_ниц.
С каких пор и почему Tilda небезопасна
Tilda, как и любой другой ресурс в интернете, имеет свою юрисдикцию работы. Юрисдикция сервиса — это подчинение работы сервиса законам той или иной страны. Тут и кроется главная уязвимость Tilda. В пользовательском соглашении указано, что работа сервиса лежит в рамках законов РФ, кроме моментов, когда «местонахождением Пользователя не является Российская Федерация». Если какой-то сервис лежит в беларусской и российской юрисдикции, то скорее всего, эти сервисы тесно сотрудничают с силовыми ведомствами или находят компромиссы, жертвуя безопасностью пользовател_ниц. А это, в свою очередь, значит передачу данных о пользователях, возможную блокировку или удаление информации по запросам и без них.
Самые громкие прецеденты блокировки сайтов самим сервисом
Одним из громких кейсов было удаление страницы об обвиняемых по «ростовскому делу» Владиславе Мордасове и Яне Сидорове. Несмотря на то, что в официальном комментарии Tilda Publishing поначалу есть фраза о том, что «ни о какой массовой блокировке речь не идет». Позже идут слова о том, что «если вы создаете сайт, содержащий контент, который призывает к каким-то политическим действиям, выражает политическую позицию, лучше выбрать другую платформу — Тильда не единственный конструктор сайтов».
Подтверждением этих слов являются и другие блокировки сайтов, созданных на Tilda:
-
об акциях в Москве, созданный активисткой Ольгой Мисик с целью сбора информации для курсовой работы. Движения сознательных отказников от военной службы. о Мариуполе и его жизни перед Новым годом с сайта «Псковской губернии».
Несмотря на то что некоторые из сайтов потом восстанавливали, случившиеся ситуации дают задуматься об использовании Tilda Publishing.
В пункте 7.8 пользовательского соглашения Tilda Publishing находится список контента, который запрещён для публикации, хранения, передачи с помощью Tilda. В нём подчёркивается, что сервис не предназначен для «размещения и публикации информации и/или проектов, имеющих разоблачающий, оскорбляющий, скандальный и иной подобный характер», а также пользователь не вправе размещать и хранить контент, который является экстремистским.
Публичных кейсов о передаче данных о пользователях Tilda цифровые эксперт_ки пока не видели. Однако они предполагают, что если блокировки сайтов происходят без предупреждений, то и о передаче данных может быть не сообщено ни владельцу аккаунта на Tilda, ни пользователям сайта, созданном на этом же конструкторе.
Речь идёт о следующих данных:
- информация о создателе сайта: кто сделал сайт, с какого ip-адреса (местонахождение), имя, аватарка, данные банковской карты (номер, какой банк);
- информация о пользователях сайта: с каких ip-адресов идут запросы (местонахождения пользователей), какие вкладки на сайте открывают, как долго находятся, какие формы заполняют, а также данные из самих форм, если они сделаны через встроенные инструменты Tilda.
Что же делать, если уже есть рабочий сайт на Tilda
Решение зависит полностью от ваших задач и потребностей. Команда «КіберБабёр» предлагает действовать по такому алгоритму:
- Сначала оцените свои риски при наличии сайта на Tilda. Если у вас сайт о продаже кошек, то мы не видим серьёзных причин переносить свой сайт на другой конструктор. Если сомневаетесь, попадаете ли вы под запрещённые для публикации материалы, откройте 7.8 пункт пользовательского соглашения Tilda Publishing.
- Далее оцените, хотите ли вы оставлять свой сайт на Tilda, если есть риск передачи данных о вас и пользователях вашего сайта. Например, у вас сайт доставки цветов, контент не попадает под запрещённый для публикации, но вы хотите защищать персональные данные людей, которые к вам обращаются. Тогда можно доработать отдельные элементы вашего сайта: собирать данные не через встроенную форму Tilda, а через Google Forms; использовать Google Maps вместо Яндекс Карт, Google Analytics вместо Яндекс Метрики и тд.
- Если ваш случай не попадает под предыдущие два, то ваше решение скорее всего заключается в переносе сайта на другой конструктор или в работе над сайтом с командой разработчиков. Сразу расскажем, почему скачать файл с Tilda и просто перенести — плохой вариант. Когда вы скачиваете сайт фалом, то в нём остаются некоторые элементы Tilda, например, библиотеки или метрики. Это значит, что, когда вы распакуете сайт на новом конструкторе, оставшиеся элементы будут пересылать вас на те же сервера Tilda, поэтому безопасности это не гарантирует. Дальше три варианта для действий: (1) нанять программиста, который из скачанного сайта вручную удалит оставшиеся элементы, которые ведут на сервера Tilda Publishing; (2) переделать сайт заново про примеру существующего без скачивания архива сайта (либо на конструкторе, либо вручную с командой разработчиков) и (3) принять риски оставшийся фалов и просто перенести сайт на другой конструктор.
«Я хочу перенести свой сайт на другой конструктор. Какой вы порекомендуете?», — такой запрос прислали в чат-бот КіберБабра недавно.
— В создании сайта мы видим два ключевых элемента: функциональность и безопасность. Конструкторы сайтов не решают все проблемы, они лишь упрощают и удешевляют процесс работы. Поэтому перед тем, как выбрать конструктор сайта, рекомендуем оценить цели, которые непосредственно сайт должен решать. Если вам нужен сайт с разделами разного формата и серьёзная система безопасности и поддержки сайта, то более выгодно может быть нанять команду специалистов. Именно они смогут создать и безопасный, и функциональный сайт (если, конечно, вы поставите им эти задачи).
Если всё-таки говорить про конструкторы сайтов, которые работают в другой юрисдикции (значит, риск передачи данных беларусским и российским силовым структурам значительно уменьшается), то рекомендуем обратить внимание на:
- Wix,
- Readymag,
- Weebly,
- Webflow,
- Squarespace,
- WordPress.com,
- Blogger.com.
Конечно, любые платформы — это риск разной степени. Кроме блокировок и выдачи данных силовым структурам, есть другие риски, которые применимы ко всем конструкторам сайтов вне зависимости от их юрисдикции. Например, конструктор стал банкротом и закрылся или ваш аккаунт взломали, украли и переписали всю информацию на сайте. Поэтому к безопасности важно подходить с разных сторон и включать разные риски в планирование работы: от хакерских атак до отсутствия ресурсов на поддержку работы сайта.
Если у вас есть истории успехов или провалов с переносом сайтов на другие конструкторы, пишите в бот КіберБабра. Цифровые эксперт_ки постараются найти варианты решения проблемы!
Как взломать сайт с помощью HTML кода?
Если у вас есть какие-то знания HTML и JavaScript, вы можете взламывать пароли на защищенных сайтах. Мы расскажем вам о том, как довольно просто взломать сайт через HTML. Используйте данный метод ответственно.
Примечание: Данный метод сработает только в том случае, если у сайта совсем слабая защита. Веб-сайты с более надежной степенью защиты не удастся взломать столь простым способом.
1. Откройте сайт, который вы хотите взломать. Введите неправильную комбинацию логина и пароля. Появится окно с сообщением об ошибке.

2. Нажмите правой кнопкой мыши на странице с ошибкой =>> просмотр исходного кода (просмотр кода страницы).

3. Просмотрите исходный код.Откроется окно с HTML кодом и JavaScript.
•Скопируйте URL ссылку на сайт перед информацией о логине. (например:»< _form……….action=http://www.targetwebsite.com/login…….>»)

4. Удалите JavaScript информацию о сервере.(Делайте это очень осторожно, нужно аккуратно удалить java script, который проверяет информацию вашего сервера)

5. Найдите строчку «<_input name=»password» type=»password»>»[без кавычек] -> наберите «<_type=text> “ вместо «<_type=password>».Посмотрите превышает ли максимальная длина пароля 11 символов.
6. Перейдите в Файл => сохранить как, затем сохраните файл на компьютере с расширением .html (например: c:\chan.html).

7. Откройте страницу, нажав на файл chan.html, который вы сохранили на компьютере.На текущей странице, если сравнить с исходной, будут некоторые изменения. Не стоит переживать.

8. Наберите любой логин и пароль.Поздравляем, вы взломали сайт и вошли под пользователем, который теперь есть в базе данных!
«Взломать» за 60 секунд или карантинное безумие
Небольшая история о неадекватном заказчике и нахождении уязвимости на сайте за 1 минуту.

Не ожидал, что именно эта история станет моей первой статьей на Хабре. Пишу пока горячо!
Все что Вы прочитаете далее — это не призыв к действию или попытка «кого-либо» скомпрометировать.
5 апреля 2020 г.
Увидел сообщение в linkedin: «Добрый день. Ищем разработчика для доработки проекта на yii2… тел: +79… whatsapp»
Написал в whatsapp: «День добрый. Я с linkedin, пришлите ТЗ, если есть.»
В ответ получил огромное сообщение с ссылками на сайт, доску в trello и небольшим ТЗ.

Изучил trello. Над проектом работали, если верить доске, как минимум 4 разработчика.
6 апреля 2020 г.
Из-за карантина, по-моему, люди начинают сходить с ума. Вот что я увидел в whatsapp когда проснулся:

Все вроде бы ничего, прочитал и забыл. Но что-то внутри не давало покоя, появилось ощущение незавершенности, от которого очень хотелось избавиться.
Ничего не оставалось, кроме как пробраться на проект «обидчика» и избавиться от неприятных ощущений внутри :D.
Вижу форму поиска и пытаюсь проверить ранее известную мне SQL инъекцию:
Как и предполагал — не работает, но попробовать стоило.
На сайте есть возможность зарегистрироваться двумя способами: как Юзер и как Компания.
Исходя из увиденных в trello скриншотов, решил зарегистрироваться и поработать с личным кабинетом Компании.
Заполняем поля везде, где позволит фронт строками
Просто, чтобы усилить «эффект присутствия» у разработчиков, когда они заглянут в БД.
После успешной регистрации нас редиректит на страницу профиля Компании.
Открываем пункт меню «Load Documents» (очень удобно, не правда ли :D) и пытаемся загрузить php файл.

Сначала я загрузил adminer.php, так как он был под рукой. Файл успешно загрузился и разработчики заботливо подготовили для меня редирект на страницу с ссылкой на файл.

Открывался он по ссылке: /upload/certified/15861775921.php и исправно работал.
Это было начало конца!
Далее загружаем самый простой php-web-shell через ту же форму.
Для начала нужно понять, кто мы и где мы:

Посмотрим список файлов директории сайта:

Видим стандартную структуру фреймворка Yii2, которую мы там и ожидали.
Получаем доступы к базе данных, которые можно ввести в ранее загруженный adminer.php:

На самом деле был удивлен, что такие уязвимости еще существуют. А уж тем более тем, что их можно найти так легко и быстро.
Кстати, это был проект одной компании из ОАЭ, которая занимается поставкой буровых и промышленных изделий для нефтяной, газовой и буровой промышленности.
Меня добавили в черный список в whatsapp после последнего сообщения и рассказать об уязвимости я не смог, поэтому оставил пасхалки на сервере для разработчиков.
Не забывайте делать проверку типов файлов на стороне сервера, да и в целом уделяйте безопасности вашего кода больше внимания!