- •Отзывы и пожелания
- •Список опечаток
- •Нарушение авторских прав
- •Предисловие
- •Кому адресована эта книга
- •О чем идет речь в книге
- •Как извлечь максимум из книги?
- •Загрузка примеров
- •Загрузка цветных изображений
- •Условные обозначения
- •Атаки на веб-приложения. Введение
- •Правила применения оружия
- •Вопросы конфиденциальности данных
- •Очистка
- •Инструментарий тестировщика
- •Kali Linux
- •Альтернативы Kali Linux
- •Прокси-сервер
- •Burp Suite
- •Zed Attack Proxy
- •Облачная инфраструктура
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 2
- •Эффективное обнаружение
- •Типы тестирования
- •Построение карты сети
- •Masscan
- •hatWeb
- •Nikto
- •CMS-сканеры
- •Эффективная атака методом полного перебора
- •Средства сканирования
- •Постоянное картирование контента
- •Обработка полезной нагрузки
- •«Полиглот»
- •Запутывание (обфускация) кода
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 3
- •Легкая добыча
- •Анализ сети
- •Ищем вход
- •Определение учетных данных
- •Есть способ получше
- •Очистка
- •Дополнительные ресурсы
- •Резюме
- •Глава 4
- •Продвинутые способы атаки с использованием метода полного перебора
- •Распыление подбора пароля
- •Спросим LinkedIn
- •Метаданные
- •Кассетная бомба
- •За семью прокси-серверами
- •ProxyCannon
- •Резюме
- •Глава 5
- •Внедрение файлов
- •Удаленное внедрение файлов
- •Локальное внедрение файлов
- •Внедрение файла для удаленного выполнения кода
- •Резюме
- •Обнаружение и эксплуатация уязвимостей в приложениях с помощью внешних сервисов
- •Распространенный сценарий
- •Командно-контрольный сервер
- •Центр сертификации Let’s Encrypt
- •INetSim
- •Подтверждение
- •Асинхронное извлечение данных
- •Построение выводов на основе анализа данных
- •Резюме
- •Расширение функциональных возможностей Burp Suite
- •Нелегальная аутентификация и злоупотребление учетными записями
- •Швейцарский нож
- •Запутывание кода
- •Collaborator
- •Открытый сервер
- •Выделенный сервер Collaborator
- •Резюме
- •Глава 8
- •Вредоносная сериализация
- •Использование десериализации
- •Атака на пользовательские протоколы
- •Анализ протокола
- •Эксплойт для осуществления атаки
- •Резюме
- •Практические атаки на стороне клиента
- •Правила ограничения домена
- •Совместное использование ресурсов разными источниками
- •Межсайтовый скриптинг
- •Постоянный XSS
- •DOM-модели
- •Межсайтовая подделка запроса
- •BeEF
- •Перехват
- •Атаки с применением методов социальной инженерии
- •Кейлоггер
- •Закрепление в системе
- •Автоматическая эксплуатация
- •Туннелирование трафика
- •Резюме
- •Практические атаки на стороне сервера
- •Внутренние и внешние ссылки
- •Атаки XXE
- •Атака billion laughs
- •Подделка запроса
- •Сканер портов
- •Утечка информации
- •«Слепой» XXE
- •Удаленное выполнение кода
- •Резюме
- •Глава 11
- •Атака на API
- •Протоколы передачи данных
- •SOAP
- •REST
- •Аутентификация с помощью API
- •Базовая аутентификация
- •Ключи API
- •Токены на предъявителя
- •Postman
- •Установка
- •Вышестоящий прокси-сервер
- •Среда выполнения
- •Коллекции
- •Запуск коллекции
- •Факторы атаки
- •Резюме
- •Глава 12
- •Атака на CMS
- •Оценка приложения
- •WPScan
- •sqlmap
- •Droopescan
- •Arachni
- •Взлом кода с помощью бэкдора
- •Закрепление в системе
- •Утечка учетных данных
- •Резюме
- •Глава 13
- •Взлом контейнеров
- •Сценарий уязвимости в Docker
- •Осведомленность о ситуации
- •Взлом контейнера
- •Резюме
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
Глава 4 |
||||
|
|
|
|
|
|
g |
|
|
||
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Продвинутые способы атаки с использованием метода полного перебора
Некоторые задачи требуют большей скрытности, и самой заметной частью здесь обычно является сканирование с использованием метода полного перебора. Ищем ли мы действительные учетные данные в конкретной форме входа в систему или сканируем интересные URL-адреса, большое количество подключений к жертве за короткий промежуток времени может насторожить средства защиты, и тест завершится еще до того, как начнется.
Большинство тестов на проникновение – это операции типа «разбить и схватить». Такие виды анализа обычно ограничены во времени, и ограничение соединений, чтобы скрыть свое присутствие во время атаки методом полного перебора,можетпомешатьоперации.Длятехзадач,гдетребуетсянемногобольше хитрости, традиционный подход тестирования на проникновение к атакам методом полного перебора и словарным атакам может быть слишком агрессивным,и Синяя команда может посчитать это сигналом к тревоге.Если ваша цель состоит в том, чтобы оставаться незамеченными на протяжении всего задания, возможно, лучше использовать более тонкие способы, чтобы угадать пароли, или искать незащищенный веб-контент,используя словари SecLists.
В этой главе мы рассмотрим следующие темы:
распыление подбора пароля (password spraying);сбор метаданных и опрос общедоступных сайтов;
использование Tor для обхода систем обнаружения вторжений (СОВ);использование Amazon Web Services (AWS) для обхода СОВ.
Распыление подбора пароля
Распространенная проблема, возникающая при атаке методом полного перебора с целью заполучить учетные данные, заключается в том, что внутрен-
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
NOW! |
o |
P |
|
|
|
|
|
|
NOW! |
o |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
BUY |
|
|
|||||||||
|
|
|
|
to |
BUY 90 Глава 4.Продвинутые способы атаки с использованием метода полного... |
|
to |
|
|
|
|
|
|
|||||||||||
w Click |
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
няя система аутентификации может просто заблокировать целевую учетную |
|
|
|
e |
|
||||||||||||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
|
||||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
запись после слишком большого количества недопустимых попыток за ко- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
роткий промежуток времени. Служба каталогов корпорации Microsoft Active |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
Directory (AD)имеетполитикипоумолчанию,установленныедлявсехпользо- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
вателей,которые поступаютименнотак.Типичная политикадостаточно жест- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
кая.Атака на одну учетную записьс большим списком паролей оченьтрудоем- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
ка для большинства злоумышленников, причем практически нет надежды на |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
то, что вложения окупятся. Под действие этих политик будут подпадать при- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
ложения, которые интегрируют аутентификацию с AD, и традиционные атаки |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
методомполногопереборамогутпривестикблокировкеучетнойзаписи,кпо- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
тенциальному запуску оповещений со стороны средств защиты и, безусловно, |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
к появлению сигналов тревоги, блокируя пользователя. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
Существуетхитрыйспособобойтинекоторыеэлементыконтроляблокиров- |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
ки, а также увеличить шансы на успех. Он носит название «реверсивная атака |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
методом полного перебора или распылением пароля».Идея проста и основана |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
натомфакте,чтонамкакзлоумышленникамобычнонужентолькоодиннабор |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
учетных данных, чтобы скомпрометировать приложение или среду, в которой |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
онинаходятся.Вместотогочтобыатаковатьтолькоодногопользователяипод- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
вергать себя риску, потому что его учетная запись может быть заблокирована, |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
мы нацеливаемся на нескольких известных действительных пользователей с |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
меньшим,болеецеленаправленнымспискомпаролей.Покамыподдерживаем |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
количество попыток для каждой учетной записи ниже порога срабатывания |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
политики блокировки, мы успешно избежим инициирования предупрежде- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
ний. Распыление пароля полезно не только при попытке получить доступ к |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
веб-приложению, виртуальной частной сети организации или Outlook Web |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
Access (OWA – веб-клиент для доступа к серверу совместной работы Microsoft |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
Exchange),нотакже может использоваться и в случае с любой другой системой |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
входа в приложение. Хотя политики блокировки почти наверняка действуют |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
для приложений, интегрируемых с AD, они могут присутствовать и в других |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
приложениях с автономными механизмами аутентификации. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
Чтобы правильно осуществить такую атаку, необходим большой список до- |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
пустимых имен пользователей в форме адресов электронной почты или зна- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
комого формата DOMAIN\ID. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
Работать с легитимными пользователями или именами аккаунтов проще, |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
чем кажется. Не имея дампа базы, полученного с помощью SQLили LDAP- |
|
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
инъекции (Lightweight Directory Access Protocol |
– легкорасширяемый прото- |
|
|
|
|
|
|
|
кол доступа к каталогам), отметим, что первое место, где нужно искать, – это общедоступные сайты компании-жертвы.Обычно есть много подсказок относительно того,как компания структурирует имена учетных записей или идентификаторы пользователей. Адреса электронной почты, чаще всего используемые в приложениях, интегрируемых с AD, имеют формат ldap@company. com. Их можно найти на страницах «Контакты», «О нас» или «Команда». Неко-
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
C |
E |
|
|
|
|||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
|
NOW! |
o |
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
Распыление подбора пароля 91 BUY |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
w Click |
to |
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
|
m |
|||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
торую информацию об учетной записи также можно обнаружить в исходном |
|
|
e |
|
|||||||||||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
|
|||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
коде,обычно в библиотеках JavaScript,HTML или CSS для общедоступных вебприложений.
Ниже приведен пример библиотеки JavaScript, содержащей полезную информацию при создании списка учетных записей, который будет использоваться при выполнении атаки с использованием распыления пароля.
/**
*slapit.js
*@requires jQuery, Slappy
*@updated klibby@corp on 12/12/2015
*/
(function(){
var obj = $('.target');
/* @todo dmurphy@corp: migrate to Slappy2 library */ var slap = new Slappy(obj, {
slide: false, speed: 300 }); slap.swipe(); )();
Предыдущий код не только дает нам по крайней мере две учетные записи, которые могут стать целями нашей атаки, но и подсказывает, как структурированы имена учетных записей пользователей. Если посмотрим контактную информацию на странице «Встреча с руководителями», то сможем сделать обоснованные предположения относительно того, какими могут быть имена учетных записей этих сотрудников.
Распространенные форматы имен пользователей,особенно для аутентификации на базе LDAP,таковы:
Имя.Фамилия;[Первая буква имени]Фамилия;
Фамилия[Первая буква имени];ИмяФамилия.
Можем добавить в список потенциальных пользователей любые контактные электронные письма, перечисленные на общедоступном сайте, чтобы осуществить атаку с помощью распыления. Скорее всего, они соответствуют их учетным данным. Например, если мы обрабатываем тонну электронных писем компании в формате david.lightman@antihacker.com и больше нам ничего не известно,можносоздатьсписокпользователей,содержащийследующиезаписи:
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|||||||
|
- |
|
|
|
|
|
d |
|
|
|
|
- |
|
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
F |
|
|
|
|
|
|
|
|
t |
|
|||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
D |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
NOW! |
|
o |
|
P |
|
|
|
|
|
|
NOW! |
o |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BUY |
|
|
|||||||||
|
|
|
|
to |
BUY 92 Глава 4.Продвинутые способы атаки с использованием метода полного... |
|
to |
|
|
|
|
|
|
|||||||||||||
w Click |
|
|
|
|
|
|
|
m |
|
w Click |
|
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
|
. |
|
|
|
|
|
g |
.c |
|
|||||||
|
|
p |
|
|
|
|
|
|
|
david.lightman; |
|
|
p |
|
|
|
|
|
|
|
|
|||||
|
|
|
df |
|
|
n |
e |
|
|
|
df |
|
|
n |
e |
|
||||||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
dlightman; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
lightmand; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
davidl; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
davidlightman. |
|
|
|
|
|
|
|
|
|
|
|
|
|
Некоторые компании также приняли решение ограничить имена учетных записей своих сотрудников до восьми или менее символов,что упрощает подготовку учетных записей для тех устаревших систем, которые не поддерживают длинные имена учетных записей. Распространенные имена сотрудников, такие как Джон Смит, в крупных организациях тоже могут приводить к конф ликтам, и обычно это разрешается путем добавления числа к имени учетной записи.
По этим причинам нам также следует внести в список несколько таких вариантов:
dlightma;dlightm2;dlightm3.
Еще мыдолжны знать,сколько неудачных попыток аутентификации готовы предпринять. Несмотря на то что нам удастся избежать блокировки учетной записи путем распыления десяти вариантов имени пользователя с одним паролем, мы также создадим как минимум девять неудачных попыток аутентификации, если только одно из этих имен является действительным. Если мы нацелены на 300 сотрудников с десятью вариантами для каждого, это довольно высокий показательошибок аутентификации,что можетзапустить систему обнаружения вторжений и сообщить средствам защиты о наших действиях.
Спросим LinkedIn
LinkedIn также является отличным источником имен сотрудников, который мы можем использовать для создания эффективного списка имен учетных записей. Небольшой трюк с запросом к Google может дать все публичные профили LinkedIn лиц, которые публично заявили, что они работают в компании, являющейся объектом нашей атаки. Под трюком с запросом Google понимается искусство использования поисковых терминов в запросе для получения интересной информации, которую поисковый гигант проиндексировал за эти годы. Например, если мы нацелены на Yahoo!, то можем сфокусировать наш поисковый запрос Google,чтобы он возвращал отфильтрованный список имен сотрудников, используя модификаторы запросов site и inurl.
site:linkedin.com inurl:"/pub/" -inurl:"/dir/" "at [Target Company]"
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
|
C |
E |
|
|
|
|||||||
|
|
X |
|
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
- |
|
|
|
|
|
d |
|
|||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
||||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
||
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
r |
|||||
P |
|
|
|
|
|
NOW! |
|
o |
P |
|
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
Распыление подбора пароля 93 BUY |
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
w Click |
to |
|
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
|
m |
||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
||||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
e |
Модификаторы и их параметры разделяются двоеточием (:), а также могут |
|
|
e |
|
||||||||||||
|
|
|
df |
|
|
n |
|
|
|
|
|
|
|
|
|
df |
|
|
n |
|
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
иметь префикс в виде знака минус (–),чтобы указать,следуетли включать или |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
исключать значение из результатов. Модификатор inurl может дать указа- |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
ние Google возвращать только результаты поиска, которые содержат опреде- |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
ленную строку в проиндексированном URL-адресе. И наоборот, модификатор |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
-inurl |
исключит результаты, содержащие конкретную строку в URL-адресе. |
|
|
|
|
|
|
||||||||||||
|
|
|
|
|
|
Также можно заключить поисковые термины в кавычки, чтобы указать, что |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
нам нужны результаты, соответствующие точной строке. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
В нашем примере мы ищем проиндексированные профили LinkedIn, кото- |
|
|
|
|
|
|
||||||||
|
|
|
|
|
|
рые содержат слова /pub/ в URL-адресе и "at Yahoo" где-то в теле. Используя |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
обратный модификатор -inurl,мытакже исключаем URL-адреса,содержащие |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
/dir/, чтобы результаты содержали профили сотрудников, а не каталоги. По- |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
иск ограничен идоменом linkedin.com с использованием модификатора сай- |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
та. Результаты должны содержать текст, который предполагает, что пользова- |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
тель работает в компании. |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис.4.1. Пример трюка с запросом к Google
Имена сотрудников, возвращаемые поисковым запросом, можно собрать и сохранить в текстовом файле linkedin.txt для обработки в формате First [space] Last.Для осуществления атаки нам потребуется преобразоватьзапи
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
|||||||
|
- |
|
|
|
|
|
d |
|
|
- |
|
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
NOW! |
o |
P |
|
|
|
|
|
|
NOW! |
o |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
Глава 4.Продвинутые способы атаки с использованием метода полного... |
|
|
BUY |
|
|
||||||||||||
|
|
|
|
to |
BUY 94 |
|
|
to |
|
|
|
|
|
|
||||||||||
w Click |
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
m |
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
си First Last в текстовом файле в имена потенциальных учетных записей. |
|
|
|
e |
|
||||||||||||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
|
||||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
Это можно сделать быстро с помощью небольшого количества кода, написан-
ного на Python.
Сначаланужнооткрытьфайлlinkedin.txt врежимечтения(r)исохранить указатель на него в переменной fp, как показано ниже.
with open("linkedin.txt", 'r') as fp:
Можно использовать цикл for для итерации содержимого переменной fp с помощью функции iter.Это позволитнам перебратькаждую строку втекстовом файле, сохраняя соответствующее значение в переменной name для каждого цикла.
for name in iter(fp):
Далеедлякаждойстроки,предположительносодержащейразделенныепробелами имя и фамилию, мы можем разделить split() их пробелом (' ').
first, last = name.strip().lower().split(' ')
Переменныеfirst иlast будутсодержатьожидаемыезначениявнижнемрегистре и очищены от любых лишних пробелов после вызова функций strip()
и lower().
Затем можно вывести потенциальное имя пользователя,используя правила форматирования, которые мы установили ранее. Применяя оператор print и сочетание переменных first и last, мы без труда выведем их на экран.
print first + "." + last # david.lightman print first + last # davidlightman
В конце мы также выведем комбинацию первых букв имени и фамилии, а также не более восьми символов имени каждого сотрудника.
fl = first[0] + last lf = last + first[0] print fl # dlightman print lf # lightmand
print fl[:8] # dlightma print fl[:7] + "2" # dlightm2 print fl[:7] + "3" # dlightm2 print lf[:8] # davidlig
print lf[:7] + "2" # davidli2 print lf[:7] + "3" # davidli3
Сохраним полученный скрипт в файле name2account.py, который должен выглядетьтак:
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|
||
|
F |
|
|
|
|
|
|
t |
|
||
|
D |
|
|
|
|
|
|
|
i |
r |
|
P |
|
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
with open("linkedin.txt", "r") as fp: |
|||
|
|
|
|
|
|
|
|||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
Распыление подбора пароля 95 BUY |
|
|
|||||||
|
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
for name in iter(fp):
first, last = name.strip().lower().split(" ") print first + ".” + last # david.lightman print first + last # davidlightman
fl = first[0] + last lf = last + first[0] print fl # dlightman print lf # lightmand
print fl[:8] # dlightma print fl[:7] + "2" # dlightm2 print fl[:7] + "3" # dlightm2 print lf[:8] # davidlig
print lf[:7] + "2" # davidli2 print lf[:7] + "3" # davidli3
Осталось только запустить скрипт и посмотреть на результат, как показано на рисунке.
Рис.4.2. Запуск генератора учетных записей
Чтобы использовать этот вывод в ходе атаки, перенаправим его в другой текстовый файл, который впоследствии будет импортирован в Burp или ZAP, с помощью этой команды:
root@kali:~/tools# python name2account.py > target_accounts.txt