Ломаем сайт

Ломаем сайт

Guard Mind

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

ВНИМАНИЕ! АВТОР ДАННОЙ СТАТЬИ НЕ ПРИЗЫВАЕТ ВАС К ДЕЙСТВИЮ И НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ ЗА ТО, ЧТО ВЫ ВОЗМОЖНО СДЕЛАЕТЕ. ЦЕЛЬ ДАННОЙ СТАТЬИ ПРОСТО ПОКАЗАТЬ КАК СОВЕРШАЕТСЯ ВЗЛОМА САЙТА.

Взлом сайта : Основные аспекты

Далеко не каждый сайт можно взломать и далеко не всегда везет на конкретные уязвимости. Кроме того это занимает большое кол-во времени и чтобы получить конкретный результат должна быть серьезная заинтересованность.

Знакомство с ресурсом

Первым делом необходимо понять, что за сайт перед нами.

Самописный ли он или же это движок(CMS)?

Какой язык программирования используется?

Что за серверное ПО используется?

Эти и многие другие вопросы нам предстоит решить.

-- Версии ПО

Думаю сначала необходимо заглянуть в исходный код веб-страницы. Если вы в firefox-based (браузеры основаные на firefox) браузерах, то нажмите ctrl+u. Разумеется вы должны понимать, что это исходной код не серверной части, а клиентский html,css,javascript - отданный сервером нашему браузеру. Итак, что же там может быть полезного?

Обычно если это известная CMS, можно обнаружить ее версию, если она специально не была скрыта. Этим грешат известные форумы, блоги и тд. Можете нажать ctrl+f и поискать "ver" или "version". Например - wordpress.co.ua

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

Не забываем проверить robots.txt. Например - http://blogs.korrespondent.net/robots.txt

Это файл предназначенный для просмотра роботами поисковых систем, который однако иногда содержит полезные директории, недоступные в качестве прямых ссылок с сайта.

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

Также можно глянуть известное ПО, наподобие - /phpmyadmin, /myadmin.

Там может быть web-админка для базы данных.

Если вы ничего подобного не находите, то это значит, что либо админы постарались скрыть факт использования определенной CMS, либо что сайт самописный.

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

Например, в url присутствует wp-content - Wordpress

Имеется /modules/mod_ - Чаще всего Joomla

Определенная страница регистрации - community/ucp.php PhpBB

И так далее. Главное ознакомиться с популярными решениями в веб.

Также можете проверить файл .htaccess Чаще всего он недоступен, но в торе например встречал сайты, на которых его можно было посмотреть. Там могут быть полезные ссылки. Или же sitemap.php, sitemap.xml

Например - http:/guardmind/sitemap.php

Сервер

Далее никогда не помешает узнать побольше информации о самом сервере.

Если ресурс расположен в клирнете, то можно просканировать его с помощью nmap.

nmap -F ip (Узнает основные открытые порты)

Получите нечто вроде такого.

Nmap scan report for duckduckgo.com (46.51.197.89)
Host is up (0.38s latency).
rDNS record for 46.51.197.89: ec2-46-51-197-89.eu-west-1.compute.amazonaws.com
Not shown: 97 filtered ports
PORT  STATE SERVICE
25/tcp closed smtp
80/tcp open  http
443/tcp open  https
Nmap done: 1 IP address (1 host up) scanned in 7.75 seconds


С помощью nmap можно также идентифицировать отдельные версии сервисов или же ОС сервера.

Например:

sudo nmap -O ip
Running (JUST GUESSING): Crestron 2-Series (90%), Netgear embedded (90%), Western Digital embedded (90%), HP embedded (87%), AXIS Linux 2.6.X (87%), Linux 2.6.X|3.X (85%)
OS CPE: cpe:/o:crestron:2_series cpe:/o:axis:linux:2.6 cpe:/o:linux:kernel:2.6 cpe:/o:linux:kernel:3
Aggressive OS guesses: Crestron XPanel control system (90%), Netgear DG834G WAP or Western Digital WD TV media player (90%), HP P2000 G3 NAS device (87%), AXIS 210A or 211 Network Camera (Linux 2.6) (87%), Linux 2.6.32 (85%), Linux 3.0 - 3.1 (85%)
No exact OS matches for host (test conditions non-ideal).
OS detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 59.76 seconds


Подробнее здесь - https://nmap.org/man/ru/man-version-detection.html

Это не всегда верная информация, поэтому полностью полагаться на нее не стоит.

Нам нужно узнать, какой программный сервер использует сайт. Чаще всего это либо Nginx, либо Apache.

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

Например - https://bitcointalk.org/ind2

Если вам повезет, там будет также версия. Обычно этим грешит Apache.

Но даже если 404 ошибка обрабатывается сайтом - можно ввести очень длинный урл в строку запроса. Чтобы нам выдало ошибку - 414 Request-URI Too Large

Там иногда может быть версия.

Полезные страницы

Бывает полезно знать страницы логина, админку и некоторые другие страницы. Чтобы их отыскать вы можете попробовать перебрать основные известные варианты, либо найти их в коде страницы или же в карте сайта. Для подобных дел можно написать простой скрипт или же использовать готовое решение.

Может быть также гугл проиндексировал их. Учите запросы гугла site:, inurl:, filetype: и другие

Также можно угадать например в wordpress - wp-admin/, wp-login/ - Например http://guardmind/wp-login.php

И так далее..


Ищем уязвимые места

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

Здесь могут помочь сайты:

https://www.exploit-db.com/

http://www.exploitalert.com/

Например ищем все эксплоиты по Вордпресс - http://www.exploitalert.com/search-resu … =Wordpress

Или по конкретным плагинам - http://www.exploitalert.com/search-resu … %20gallery

Что делать с найденными эксплоитами будет рассмотрено в следующем разделе.

А пока подумаем, что же делать, если нам неизвестны версии ПО или же это самописный сайт.

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

SQL - Ошибка в запросах баз данных. Вы должны знать, что каждый сайт имеет БД, в которой хранит постоянно какую-то информацию. Это может быть база пользователей, статей и многое другое. Когда мы вводим какой-то урл, сайт обращается к базе и извлекает нам данные в виде понятной для браузера формы - html-разметки

Поступают запросы от юзера обычно двух типов - GET или же POST

Самый простой способ проверить на наличие sql ошибки ввести в параметр кавычку. Или другие заведомо неправильные параметры.

Например - https://credity5.ru/item/-1

При POST же запросах попробуйте вбить эту самую кавычку в поля формы.

Подробнее почитайте этот документ от Positive Technologies - http://www.ptsecurity.ru/download/PT-de … ection.pdf

Данная ошибка при правильной эксплуатации позволит извлечь базу данных форума. Для автоматизации используй - sqlmap. Для ручного использования необходимо изучить язык запросов SQL.

XSS - Эта ошибка позволяет исполнение скриптов, введенных пользователем.

Проверяется обычно в простом варианте также заполнением параметров запроса данным выражением - <script>alert('xss')</script>

Если вылетит всплывающее сообщение с xss, значит запрос уязвим. Опасна тем, что позволяет украсть определенные данные юзера.

CSRF - Запросы от лица юзера. Это уязвимость опасна в случае если сайт имеет возможность логина, но не генерирует для каждой формы специальный csrf-токен.

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

Например - http://guardmind.com/

В старых версиях Opencart, на котором он сделан в форме смены пароля не надо было вводить пароль. И благодаря этому можно сменить пасс юзера подкинув ему ссылку на подобный html-файл. Сделан для примера. Там до сих пор нет csrf-токенов, но чтобы заюзать данный файл нужно заменить 123456 на ваш пасс, а остальное на новый. Но вполне вероятно, что для других форм, что есть на подобных сайтах данная уязвимость сработает и просто так. Ищите.

<form action="http://guardmind.com/index.php?route=account/password" method="post" enctype="multipart/form-data">
  <div class="content">
   <table class="form">
    <tbody>
<tr>
     <td><input name="old_password" value="123456" type="hidden">
      </td>
    </tr>
<tr>
     <td><input name="password" value="987654321" type="hidden">
      </td>
    </tr>
    <tr>
     <td><input name="confirm" value="987654321" type="hidden">
      </td>
    </tr>
   </tbody></table>
  </div>
  <div class="buttons">
   <div class="right"><input value="Continue" class="button" type="submit"></div>
  </div>
 </form>

Это были основные уязвимости. Существует еще множество других, специфических, например PHP Object Injection, основанная на логике языка PHP или ошибки темплейтов в python - django,flask. Чтобы ими воспользоваться вам необходимо изучить конкретику подробнее.

Взлом

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

Например - http://www.exploitalert.com/view-details.html?id=22706

Здесь речь идет о xss-уязвимости для YaBB, просто подставляем в урл в конец необходимый скрипт. Чтобы этот скрипт принес какую-то пользу ищем, как с помощью javascript компрометировать пользователей или же можете воспользоться xss-фреймворком Beef, который позволяет легко в web-интерфейсе управлять зомби-машинами юзеров.

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

Google Dork :

#+ inurl:YaBB.pl?num=

#+ "Powered by YaBB 2.5"

#+ "Powered by YaBB 2.6.11"

Гугл дорк - это то, что необходимо вбить в гугле, чтобы найти уязвимые для данного эксплойта сайты. Все банально просто.

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

В случае с самописными сайтами вам необходимо пополнить багаж знаний. Чтобы взломать сайт надо минимум также хорошо, как админ понимать, как он работает. Максимум - гораздо больше. Узнаем язык и изучаем. Чаще всего сайты пишутся на php.

Изучаем кратко html,javascript. Читаем информацию о xss,sql,csrf. Понимаем get,post запросы. Пишем простой сайт с нуля, чтобы понимать стандартную структуру.

Изучаем Линукс, чтобы знать на каком серверном ПО хостится сайт и как настраивается сервер.

Учимся программировать на скриптовом языке для понимания эксплойтов или написания простых своих. Для этого подойдет python,perl.

Спасибо за прочтение!

Статья подготовлена каналом Guard Mind. Подписывайтесь!

Report Page