Закрыто [Статья]Взлом сайта : Основа

Тема в разделе "Пентестинг", создана пользователем Traktorist, 7 июн 2017.

  1. Traktorist

    Traktorist

    Сообщения:
    72
    Баллы:
    6
    Всем салам! Решил короче накатать статейку про взлом сайта, читаем, применяем, используем. Если что не понятно, задаем вопросы.

    О данной статье:

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


    1) Знакомство с ресурсом.
    Первым делом необходимо понять, что за сайт перед нами.
    Самописный ли он или же это движок(CMS)?
    Какой язык программирования используется?
    Что за серверное ПО используется?

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

    -- Версии ПО
    Думаю сначала необходимо заглянуть в исходный код веб-страницы. Если вы в firefox-based браузерах, то нажмите ctrl+u. Разумеется вы должны понимать, что это исходной код не серверной части, а клиентский html,css,javascript - отданный сервером нашему браузеру. Итак, что же там может быть полезного?
    Обычно если это известная CMS, можно обнаружить ее версию, если она специально не была скрыта. Этим грешат известные форумы, блоги и тд. Можете нажать ctrl+f и поискать "ver" или "version".

    Также бывают видны версии отдельных плагинов. Это пригодится для нахождения известных уязвимостей.
    Не забываем проверить robots.txt. Например - http://blogs.korrespondent.net/robots.txt
    Это файл предназначенный для просмотра роботами поисковых систем, который однако иногда содержит полезные директории, недоступные в качестве прямых ссылок с сайта.

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

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

    Если вы ничего подобного не находите, то это значит, что либо админы постарались скрыть факт использования определенной CMS, либо что сайт самописный.
    Но конечно можно также определить, что за движок используется по косвенным признакам.
    Например, в урлах присутствует wp-content - Wordpress
    Имеется /modules/mod_ - Чаще всего Joomla
    Определенная страница регистрации - community/ucp.php PhpBB
    И так далее. Главное ознакомиться с популярными решениями в веб.



    -- Сервер

    Далее никогда не помешает узнать побольше информации о самом сервере.
    Если ресурс расположен в клирнете, то можно просканировать его с помощью 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.
    Иногда это можно увидеть если вбить неправильный урл и при необработке его сайтом, этим займется сервер. Такое бывает чаще всего на самописных сайтах.
    Например - https://bitcointalk.org/ind2
    Если вам повезет, там будет также версия. Обычно этим грешит Apache.

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


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

    Здесь могут помочь сайты:
    https://www.exploit-db.com/
    http://www.exploitalert.com/


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

    Или по конкретным плагинам - http://www.exploitalert.com/search-results.html?search=Wordpress gallery

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

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

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

    Поступают запросы от юзера обычно двух типов - GET или же POST
    Самый простой способ проверить на наличие sql ошибки ввести в параметр кавычку. Или другие заведомо неправильные параметры.
    Например - https://credity5.ru/item/-1

    При POST же запросах попробуйте вбить эту самую кавычку в поля формы.
    Подробнее почитайте этот документ от Positive Technologies - http://www.ptsecurity.ru/download/PT-devteev-Advanced-SQL-Injection.pdf

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

    -- XSS - Эта ошибка позволяет исполнение скриптов, введенных пользователем.
    Проверяется обычно в простом варианте также заполнением параметров запроса данным выражением - <script>alert('xss')</script>
    Если вылетит всплывающее сообщение с xss, значит запрос уязвим. Опасна тем, что позволяет украсть определенные данные юзера.


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

    3) Взлом.

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

    Например - 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.

    Удачи в нашем нелегком деле..
  2. Holy Father

    Holy Father

    Сообщения:
    167
    Баллы:
    16
    Годно, пиши ещё
  3. ANONIM ANONIM

    ANONIM ANONIM euro-dollar.xyz VIP Внесен депозит 4000$ Проверенный продавец

    Сообщения:
    959
    Баллы:
    38
    Банальщина конечно) но нубам не помешает
  4. sameas

    sameas

    Сообщения:
    2
    Баллы:
    1
    для упрощения можно скачать расширение Wappalyzer(распознает CMS, плагины, библиотеки)
    и много "умников" хранят код на гите в открытом доступе,ну а что делать уж решайте сами
  5. Sparks

    Sparks

    Сообщения:
    270
    Баллы:
    16
    Никогда xss так не проверяется, максимум - фильтры
  6. Traktorist

    Traktorist

    Сообщения:
    72
    Баллы:
    6
    Братан, что ты несешь? Ну хорошо, вот тебе пример: http://www.site.com/page.php?var=<script>alert('xss');</script>. Печенька пробивается именно этим запросом. Косяка тут нет.
  7. Traktorist

    Traktorist

    Сообщения:
    72
    Баллы:
    6
    А фильтры ищутся так:
    Просто в любое поле вводи: '';!--"<fuck>=&{()}
    Дальше открываем html страничку и ищем слово "fuck"
    и смотри последующие сиволы..

    Если <> так и остались то это перваый признак уязвимости - значит фильтр имеет дырку.
    Если ,"'\ символы остались такими, как были введены - это второй признак уязвимости - возможные дополнительные символы к последующей XSS атаке.
    Затем, если открыв HTML, ты не обнаружил <> то скорее всего дырка в фильтре.
    Если открыв HTML ты обнаружил, что <> заменены на другие символы, то это облом - фильтр по крайней
    мере функционирует нормально.
    Возможно еще ввести в поле для проверки фильтрации вот так: "><>'"`,/\/cdn-cgi/l/email-protection%
  8. Sparks

    Sparks

    Сообщения:
    270
    Баллы:
    16
    И тебе выдаст пустую страницу, и ты уйдешь, так и не узнав о корявом фильтре
  9. Traktorist

    Traktorist

    Сообщения:
    72
    Баллы:
    6
    Твой вариант?
  10. Sparks

    Sparks

    Сообщения:
    270
    Баллы:
    16
    Если тестить - то тестить полностью. Да, если нужно много сайтов прогнать, и твой вариант подойдет
  11. Traktorist

    Traktorist

    Сообщения:
    72
    Баллы:
    6
    Ну так, вариант работает же, да статья специально для НОВИЧКОВ, ну а если знаешь другой вариант - поделись! Не понимаю, к чему претензии?
  12. Sparks

    Sparks

    Сообщения:
    270
    Баллы:
    16
    И не говори

Поделиться этой страницей

Top