Этот раздел тоже можно было бы превратить в отдельную книгу. Но, прежде чем мы двинемся дальше и перейдем к следующей главе, необходимо упомянуть еще два важных аспекта.
Роботы — это круто
Когда я был маленьким, мне жутко хотелось иметь робота. Мне казалось, что R2D2 стал бы для меня лучшим другом, если бы я мог его где-нибудь достать. Но сейчас речь пойдет о других роботах. А точнее, о файлах robots.txt.
Что же это за файлы такие? Владельцы сайтов используют их, чтобы сообщать веб-паукам, куда тем запрещен путь. Например, в файлах robots.txt нередко встречаются команды Disallow («запретить»), не позволяющие роботу занести папку в кэш. Например, на илл. 2.20 изображен такой файл для сайта https://www.whitehouse.gov/.
А теперь представьте на секундочку, что вы — социальный инженер. Что вы видите на илл. 2.20?
А видите вы не только список существующих папок, но также и в какие из них вас не хотят пускать — то есть какие не должны быть проиндексированы в Google.
Кроме того, файлы вроде mysql и pgpsql указывают технологии, использовавшиеся для создания сайта.
Так вот, если бы объектом атаки был этот сайт (а это не так, повторяю: это не так), мы бы прошлись по каждой из перечисленных папок и проверили их на наличие уязвимостей, позволяющих проникнуть в них без авторизации. Мы бы проверили, насколько эти системные журналы и файлы доступны, нет ли ошибок в настройке серверов.
Было дело, я работал на одну компанию средних размеров. Редко когда слышишь от заказчика: «Делай все, что сможешь, и посмотрим, что у тебя получится, атакуй на полную». Но это был как раз такой случай. Я начал с открытых источников и поиска в Google. Нашел файлы robots.txt, содержащие команду Disallow в папке под названием admin.
Просто ради галочки я набрал www.company.com/admin и тут же разинул рот от удивления: без какой бы то ни было проверки мне дали к ней доступ! В папке хранились приватные файлы гендиректора компании. Судя по всему, он использовал ее, чтобы расшаривать документы, которые могли понадобиться ему в командировках. Там хранились контракты, банковские данные, фотография его паспорта и множество других данных, которые не должны быть доступны никому.
Я нашел контракт, подписанный всего несколько дней назад. Купил доменное имя (оно на два символа отличалась от названия реальной компании, с которой был заключен договор) и создал почтовый ящик на имя человека, который его подписал. А затем послал на адрес гендиректора письмо с прикрепленным зараженным файлом. «Прошу прощения, что делаю это уже после подписания контракта, но возник вопрос по п. 14.1а. Взгляните, пожалуйста, еще раз. Буду ждать ответа!» — было написано в моем письме.
Буквально через 15 минут генеральный директор открыл письмо и приложенный к нему файл. Затем написал на фальшивый адрес, что контракт никак не открывается. Пентест[11], на который должна была уйти минимум неделя, успешно завершился буквально через три часа.
Я позвонил гендиректору, и содержание нашей беседы было примерно следующим:
Я: Здравствуйте, Пол. Это Крис из компании Social-Engineer. Я хотел бы обсудить с вами пентест…
ГЕНДИРЕКТОР: Ха! Уже сдаетесь? Я же говорил, наша компания — крепкий орешек!
Я: Не совсем так, Пол. Дело в том, что в данный момент в моем распоряжении есть ваши паспортные данные, дата рождения, номера кредитных карт, доступ к банкам и удаленный доступ c полномочиями сисадмина. Я хотел уточнить: этого достаточно или вы хотите, чтобы я поработал еще неделю?
ГЕНДИРЕКТОР: Да ладно, я вам не верю! Вы ведь всего пару часов назад приступили! Скажите, какой идиот купился и дал вам удаленный доступ? Мне нужно сказать ему пару ласковых.
Я: Знаете, Пол… (Я запнулся, не зная, уместное ли сейчас время для шуток, а одна, весьма удачная, уже вертелась у меня в голове.) Я бы обошелся с ним помягче, он вообще-то хороший парень.
ГЕНДИРЕКТОР: Мда? И кто же это?
Я: Пол, это вы.
Тут я подробно пересказал ему свои действия, и он быстро все понял. Так что этот пентест был во многом обязан успехом файлу robots.txt и неправильно размещенной папке.
Все дело в метаданных, детка
Оксфордский словарь гласит, что приставка «мета» позволяет описывать «отсылку к себе или к общепринятым нормам типа „самореферентность“». То есть метаданные — это в буквальном смысле данные о данных. Отдает фильмом «Начало», вам не кажется?