Новости

24.08.2020

Книга «Ловушка для багов. Полевое руководство по веб-хакингу»

«Ловушка для багов» познакомит вас с белым хакингом — поиском уязвимостей в системе безопасности. Неважно, являетесь ли вы новичком в области кибербезопасности, который хочет сделать интернет безопаснее, или опытным разработчиком, который хочет писать безопасный код, Питер Яворски покажет вам, как это делается.

В книге рассматриваются распространенные типы ошибок и реальные хакерские отчеты о таких компаниях, как Twitter, Facebook, Google, Uber и Starbucks. Из этих отчетов вы поймете принципы работы уязвимостей и сможете сделать безопасней собственные приложения. Вы узнаете:

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

На кого рассчитана эта книга


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

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

Навыки программирования могут облегчить поиск уязвимостей, связанных с программной логикой. Если вы сможете поставить себя на место программиста или прочитать его код (если таковой доступен), ваши шансы на успех будут выше.

14 Захват поддомена


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

Доменные имена


Домен — это URL-адрес для доступа к веб-сайту. Он привязывается к IP-адресу с помощью DNS-серверов. В его иерархической структуре отдельные части разделяются точками, а заключительный элемент (крайний справа) называется доменом верхнего уровня. Примерами таких доменов являются .com, .ca, .info и т.д. Левее идет доменное имя. Эта часть иерархии предназначена для доступа к веб-сайту. Например, .com является зарегистрированным доменным именем с доменом верхнего уровня .com.

Поддомены составляют крайнюю левую часть URL-адреса и могут принадлежать разным веб-сайтам в одном и том же зарегистрированном домене. Например, компания Example создала веб-сайт, но при этом ей нужен отдельный адрес для электронной почты. Она может использовать два разных поддомена с разным контентом: www..com и webmail..com.

Для создания поддоменов владельцы сайта могут использовать несколько методов, например добавление в описание доменного имени одной из двух записей: A или CNAME. Запись A привязывает имя сайта к одному или нескольким IP-адресам. Уникальная запись CNAME связывает два домена. Право создавать DNS-записи есть только у администратора сайта.

Как происходит захват поддомена


Поддомен считается захваченным, если пользователь контролирует IP- и URL-ад­реса, на которые указывает запись A или запись CNAME. Пример: создав новое приложение, разработчик размещал его в Heroku и создавал запись CNAME, указывающую на поддомен главного сайта Example. Эта ситуация выходила из-под контроля, если:

1. Компания Example регистрировала учетную запись на платформе Heroku, не используя SSL.

2. Heroku назначал новому сайту компании Example поддомен unicorn457.herokuapp.com.

3. Компания Example создавала на странице своего DNS-провайдера запись CNAME, согласно которой поддомен test..com ссылался на unicorn457.herokuapp.com.

4. Через несколько месяцев компания Example решала убрать поддомен test..com, закрывала свою учетную запись в Heroku и удаляла свой сайт с серверов платформы. Но запись CNAME оставалась.

5. Недоброжелатель замечает, что запись CNAME ссылается на незарегистрированный URL-адрес на платформе Heroku, и забирает себе поддомен unicorn457.heroku.com.

6. Некто публикует контент в домене test..com, который благодаря своему URL-адресу выглядит как настоящий сайт компании Example.

Последствия от захвата поддомена зависят от его конфигурации и настроек родительского домена. Например, в своей презентации Web Hacking Pro Tips #8 (www.youtube.com/watch?v=76TIDwaxtyk) Арне Свиннен описывает способы группирования куки для передачи только подходящих доменов. Но если указать в качестве поддомена одну точку, например, ..com, браузер отправит куки .com любому поддомену компании Example, который посещает пользователь. Контролируя адрес test..com, хакер может похитить куки .com у жертвы, которая заходит на захваченный поддомен test..com.

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

Чтобы найти уязвимости с захватом поддоменов, проанализируйте DNS-записи сайта с помощью инструмента KnockPy, который ищет в поддоменах типичные для таких уязвимостей сообщения об ошибках, возвращаемых сервисами вроде S3. KnockPy поставляется со списком распространенных доменных имен, которые стоит проверить, но вы можете его дополнить. Аналогичный список можно найти в GitHub-репозитории SecLists (https://github.com/danielmiessler/SecLists/).

Захват поддомена Ubiquiti


Сложность: низкая

URL:http://assets.goubiquiti.com/

Источник:hackerone.com/reports/109699/

Дата подачи отчета: 10 января 2016 года

Выплаченное вознаграждение: 500 долларов

Amazon Simple Storage (или S3) — это сервис хранения файлов, входящий в состав Amazon Web Services (AWS). Учетная запись в S3 имеет вид бакета, с которым можно работать через URL-адрес AWS, начинающийся с имени учетной записи. Для URL-адресов своих бакетов Amazon использует глобальное пространство имен, поэтому каждый зарегистрированный бакет является уникальным. Например, если я зарегистрирую бакет , он будет иметь URL-адрес .s3.amazonaws.com, и владеть им буду только я. Но и злоумышленник может подобрать себе любой свободный бакет S3.

Компания Ubiquiti создала для сайта assets.goubiquiti.com запись CNAME и привязала ее к бакету S3 uwn-images, доступному по адресу uwn-images.s3.website.us-west-1.amazonaws.com. Поскольку серверы Amazon разбросаны по всему миру, этот URL-адрес содержал информацию о географическом регионе, в котором был размещен бакет, —. us-west-1 (Северная Калифорния).

Этот бакет либо не был зарегистрирован, либо компания Ubiquiti удалила его из своей учетной записи AWS, не убрав при этом запись CNAME, но при посещении assets.goubiquiti.com браузер пытался получить содержимое из S3. Хакер забрал себе этот бакет и сообщил об уязвимости.

Выводы


Обращайте внимание на DNS-записи, которые указывают на сторонние сервисы, такие как S3. В случае обнаружения таких записей проверьте, правильно ли компания сконфигурировала этот сервис. Помимо этого, вы можете непрерывно отслеживать записи и сервисы с помощью автоматизированных инструментов наподобие KnockPy — на случай, если компания удалит поддомен, но забудет обновить настройки DNS.

Поддомен Scan.me, ссылающийся на Zendesk


Сложность: низкая

URL:http://support.scan.me/

Источник:hackerone.com/reports/114134/

Дата подачи отчета: 2 февраля 2016 года

Выплаченное вознаграждение: 1000 долларов

Платформа Zendesk предоставляет службу клиентской поддержки в поддоменах веб-сайтов. Например, если бы ее использовала компания Example, этот поддомен мог бы выглядеть как support..com.

Как и в предыдущем примере, владельцы сайта scan.me создали запись CNAME, которая привязывала support.scan.me к scan.zendesk.com. Позже сервис scan.me был приобретен компанией Snapchat. Незадолго до оформления сделки поддомен support.scan.me был удален из Zendesk, но его запись CNAME осталась. Обнаружив это, хакер под псевдонимом harry_mg зарегистрировал сайт scan.zendesk.com и опубликовал на нем свой контент, используя платформу Zendesk.

Выводы


В процессе интеграции между родительской и дочерней компаниями некоторые поддомены могут удаляться. Если администраторы забывают обновить DNS-записи, появится угроза захвата поддоменов. Поскольку поддомен может поменяться в любой момент, непрерывное отслеживание информации о записях начните сразу после объявления о покупке компании.

Захват поддомена windsor на сайте Shopify


Сложность: низкая

URL:http://windsor.shopify.com/

Источник:hackerone.com/reports/150374/

Дата подачи отчета: 10 июля 2016 года

Выплаченное вознаграждение: 500 долларов

Захват поддомена не всегда подразумевает регистрацию учетной записи в стороннем сервисе. Хакер zseano обнаружил, что компания Shopify создала запись CNAME для windsor.shopify.com, которая указывала на aislingofwindsor.com. Он узнал об этом в ходе поиска всех поддоменов Shopify на сайте crt.sh, который отслеживает все зарегистрированные SSL-сертификаты и связанные с ними поддомены. Эта информация является публичной, так как любой SSL-сертификат должен быть выдан центром сертификации, чтобы браузеры могли подтвердить его подлинность при посещении сайта. Сайты также могут регистрировать так называемые wildcard-сертификаты, которые предоставляют SSL-защиту для всех их поддоменов (на crt.sh в таких случаях вместо поддомена указывается звездочка).

Когда веб-сайт регистрирует wildcard-сертификат, crt.sh не может определить, для какого поддомена он предназначен, но показывает его уникальный хеш. Сервис censys.io отслеживает хеши сертификатов и поддомены, в которых они используются, сканируя интернет. Если поискать на censys.io хеш wildcard-сертификата, можно обнаружить новые поддомены.

Пролистывая список поддоменов на crt.sh и посещая каждый из них, zseano заметил, что сайт windsor.shopify.com возвращал ошибку «404 Page not Found». То есть либо сайт был пустым, либо больше не принадлежал aislingofwindsor.com. Чтобы проверить второй вариант, zseano посетил сервис регистрации доменных имен и попробовал найти aislingofwindsor.com. Оказалось, что этот домен можно было купить за 10 долларов. Сделав это, zseano сообщил представителям Shopify об уязвимости с захватом поддомена.

Выводы


Если вы найдете поддомен, который указывает на другой сайт и возвращает ошибку 404, проверьте, доступен ли этот сайт для регистрации. Сервис crt.sh может послужить отправной точкой в идентификации поддомена. Если вы обнаружите там wildcard-сертификат, поищите его хеш на censys.io.

Захват поддомена fastly на сайте Snapchat


Сложность: средняя

URL:http://fastly.sc-cdn.net/takeover.html

Источник:hackerone.com/reports/154425/

Дата подачи отчета: 27 июля 2016 года

Выплаченное вознаграждение: 3000 долларов

Fastly — это сеть доставки содержимого (content delivery network, или CDN). Она хранит копии содержимого на серверах по всему миру, чтобы они были как можно ближе к пользователям, которые их запрашивают.

Хакер Ибраитас сообщил компании Snapchat о неправильной конфигурации DNS для ее домена sc-cdn.net. У URL-адреса fastly.sc-cdn.net была запись CNAME, которая ссылалась на поддомен fastly. Последний принадлежал Snapchat, но не был корректно зарегистрирован. В то время сервис Fastly давал возможность регистрировать пользовательские поддомены при условии шифрования трафика с помощью TLS, для чего использовался общий wildcard-сертификат Fastly. В случае неправильной конфигурации пользовательского поддомена на сайте выводилось сообщение об ошибке: «Fastly error: unknown domain: . Please check that this domain has been added to a service» (Неизвестный домен: <неправильно сконфигурированный домен>. Пожалуйста, убедитесь в том, что этот домен был добавлен к сервису).

Прежде чем сообщить о проблеме, Ибраитас поискал домен sc-cdn.net на сайте censys.io и подтвердил его принадлежность компании Snapchat по сведениям о регистрации его SSL-сертификата. Затем он настроил сервер для получения трафика с этого URL-адреса и показал, что домен на самом деле использовался.

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

Выводы


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

Захват поддомена на сайте Legal Robot


Сложность: средняя

URL:https://api.legalrobot.com/

Источник:hackerone.com/reports/148770/

Дата подачи отчета: 1 июля 2016 года

Выплаченное вознаграждение: 100 долларов

Даже когда поддомен стороннего сервиса имеет корректную конфигурацию, сам сервис может быть настроен неправильно. Франс Розен сообщил компании Legal Robot, что DNS-запись CNAME для поддомена api.legalrobot.com указывала на сайт Modulus.io, который он мог захватить.

После обнаружения страницы с ошибкой хакер должен был посетить сервис и зарегистрировать поддомен. Но в случае с api.legalrobot.com это не увенчалось успехом: компания Legal Robot уже владела этим сайтом.

Не сдавшись, Розен попробовал зарегистрировать wildcard-поддомен *.legalrobot.com, который оставался доступным. Конфигурация сайта Modulus отдавала приоритет wildcard-поддоменам перед более подробными записями, среди которых была и api.legalrobot.com. В результате, как видно на рис. 14.1, Розену удалось разметить на сайте api.legalrobot.com свое собственное содержимое.

Обратите внимание на содержимое, размещенное Розеном на рис. 14.1. Вместо того чтобы пристыдить владельцена сайта и заявить о захвате поддомена, он использовал скромную текстовую страницу с HTML-комментарием, который подтверждал, что этот текст разместил именно он.

Выводы


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

Об авторе


Питер Яворски стал хакером, самостоятельно изучая опыт предшественников (некоторые из них упоминаются в книге). Ныне это успешный охотник за уязвимостями, на счету которого благодарности от Salesforce, Twitter, Airbnb, Verizon Media, Министерства обороны США и др., сейчас он является инженером по безопасности приложений в Shopify.

О научном редакторе


Цан Чи Хонг, известный под псевдонимом FileDescriptor, — пентестер и охотник за уязвимостями. Проживает в Гонконге, пишет статьи о веб-безопасности на сайте blog.innerht.ml, интересуется саундтреками и криптовалютой.


Комментарии: 0

Пока нет комментариев


Оставить комментарий






Все поля обязательны к заполнению.

Перед публикацией комментарии проходят модерацию.