Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Эдриан_Прутяну_Как_стать_хакером_сборник_практическиз_сценариев.pdf
Скачиваний:
18
Добавлен:
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 162  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Через панель администрирования Autorize удалось обнаружить вертикаль-

 

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

ное повышение привилегий на странице /admin/submit.php.

Рис.7.8. Autorize обнаружил проблему

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

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

Швейцарский нож

Одна из наиболее распространенных задач, которые мы выполняем, – со­ здание пользовательских списков слов на основе целевых данных, что увеличиваетшансынауспех,ноделатьэтонесколькоутомительно.Сценарийможно написать с помощью какого-нибудь языка вроде Python, но почему бы не сделать это напрямую в Burp?

Еще одна распространенная задача, которую вы выполняете, – запуск sqlmap-атак на определенный URL-адрес в приложении. Аутентифицированные атаки с использованием SQL-инъекций требуют, чтобы мы отправляли сеансовые­ куки-файлы в командной строке, а для атак через POST-запросы создание командной строки sqlmap может превратиться в трудоемкий про-

 

 

 

 

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

 

 

Расширение функциональных возможностей Burp Suite  163 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

цесс. CO2 – это плагин для Burp Suite, предоставляющий ряд улучшений для

 

 

e

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

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

Яужеговорилобэтомраньшеиещескажу.Будучиспециалистами,выполняющими тесты на проникновение, и членами Красной команды, мы знаем, что время–этонероскошь,котороймыделимсясплохимипарнями.Нашизадачи часто зависят от времени, а ресурсы на пределе. Копирование и вставка заголовка Cookie из Burp втерминалдля запуска sqlmap-атаки кажется небольшой проблемой,но ее нужно учитывать.Что,если приложение,являющееся объектом атаки,имеетнесколько потенциальныхточек SQL-инъекций? Что,если вы тестируете три или четыре разных приложения, которые не используют одни и те же учетные данные для входа? Автоматизация делает жизнь проще, позволяя нам действовать эффективнее.

Плагин CO2 можно скачать в BApp Store или на GitHub: https:// github.com/portswigger/co2.

Установить CO2 так же просто, как и любой другой плагин BApp Store. Он добавляет несколько опций в контекстное меню в Target, Proxy, Scanner и в других модулях. Многие запросы, сделанные через Burp, можно отправлять напрямую нескольким компонентам CO2. Это позволит заполнить большинство необходимых параметров, сэкономить время и снизить вероятность ошибки.

SQLMpper

CO2 предоставляет упаковку sqlmap в пользовательском интерфейсе Burp с метким названием SQLMapper. Если мы обнаружим потенциальную точку инъекции или, возможно, активный сканер Burp уведомит нас об уязвимости, где можно использовать SQL-инъекцию, мы можем отправить запрос прямо в SQLMapper с помощью контекстного меню (см. рис. 7.9).

На вкладке CO2 Extension раздел SQLMapper должен быть предварительно заполнен значениями из выбранного URL-адреса.

Наданном этапе можно настроитьSQLMapperтаким образом,чтобы он указывал на соответствующий сценарий sqlmap и двоичный файл python.

Дистрибутив Kali поставляется с уже установленной версией sqlmap, но самую последнюю и лучшую версию можно клониро-

вать из GitHub: https://github.com/sqlmapproject/sqlmap.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 164 

 

 

 

 

 

 

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

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.7.9. Отправка запроса в контекстное меню SQLMapper из CO2

Кнопка Config позволит нам указать CO2 на нужные двоичные файлы для запуска sqlmap из пользовательского интерфейса. С помощью кнопки Run будет запущен новый терминал с sqlmap и всеми переданными опциями.

Рис.7.10. Всплывающее окно настройки SQLMap в CO2

В Kali утилита sqlmap находится в папке /usr/bin и не имеет расширения

.py. Если вы работаете с новейшей версией из репозитория GitHub,то можете указать полный путь.

Во-первых, мы можем клонировать самую последнюю версию sqlmap из GitHub, используя команду git clone.

root@kali:~/tools# git clone https://github.com/sqlmapproject/sqlmap

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Расширение функциональных возможностей Burp Suite 

w Click

to

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

 

 

Cloning into 'sqlmap'...

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

remote: Counting objects: 60295, done.

remote: Compressing objects: 100% (22/22), done.

remote: Total 60295 (delta 26), reused 33 (delta 22), pack-reused 60251

Receiving objects: 100% (60295/60295), 59.88 MiB | 14.63 MiB/s, done.

Resolving deltas: 100% (47012/47012), done.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

165 BUY

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Сценарий sqlmap.py будет находиться в созданном каталоге sqlmap.

root@kali:~/tools/sqlmap# ls -lah sqlmap.py -rwxr-xr-x 1 root root 16K Jun 1 15:35 sqlmap.py root@kali:~/tools/sqlmap#

sqlmap – это полнофункциональный инструмент со множеством опций для модификации чего угодно–от user-agent до инъекций и даже уровня агрессии каждого зонда.

Как правило, необходимо просмотреть документацию по утилите, чтобы найти нужную нам опцию, но с помощью плагина SQLMapper от CO2 можно быстро найти то,что нужно.

Рис.7.11. Плагин SQLMapper

 

 

 

 

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 166  Глава 7.Автоматизированное тестирование

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Когда мы выбираем соответствующие опции и заполняем пробелы,CO2 соз-

 

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

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

Рис.7.12. Запуск sqlmap с выбранными параметрами

Используя кнопку Run, мы открываем новое окно терминала и запускаем sqlmap с выбранными параметрами.

sqlmap будет сохранять сеанс каждой атаки в папке в домашнем каталоге: ~/.sqlmap/output/[target].

root@kali:~/.sqlmap/output/c2.spider.ml# tree

.

├── log

├── session.sqlite └── target.txt

0 directories, 3 files root@kali:~/.sqlmap/output/c2.spider.ml#

Веб-оболочки

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

 

 

 

 

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

 

 

 

Расширение функциональных возможностей Burp Suite  167 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

Laudanum – это коллекция базовых веб-оболочек для различных бэкендов,

 

g

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

поддерживающихASP,JSP,ASPX,JavaиPHP.Laudanumтакжепозволяетуказать случайный токен соединения и ограничить доступ по IP. Эти оболочки дают возможность выполнять код удаленно, и имеет смысл защищать их, пока не будет установлена более надежная реверсная оболочка.

В Laudanum можно указатьтип оболочки,которую нам нужно настроить,IPадреса, с которых будет разрешено подключение, и случайный токен, используемый для дополнительной защиты.

Процесс создания оболочки прост. Его шаги таковы:

1.Открываем вкладку Laudanum в CO2.

Выбираем тип оболочки. В нашем случае это PHP Shell.

2.Разделяем запятыми список IP-адресов без пробелов:

127.0.0.1,192.168.1.123.

3.Нажимаем кнопку Gen New Token,чтобы сгенерировать случайныйтокен.

Рис.7.13. Плагин Laudanum

Чтобы сохранить файл где-нибудь на диске, нажмите кнопку Generate File (Сгенерировать файл). Содержимое сгенерированной оболочки будет выглядеть как на рис. 7.14.

После ее загрузки в объект атаки, чтобы получить доступ к оболочке, нужно убедиться,что наш внешний IP-адрес совпадаетс одним из IP-адресов в белом списке, а также указать произвольно сгенерированный токен для каждого запроса.

Мы можем передать этоттокен, используя параметр URL-адреса laudtoken и команду для выполнения через laudcmd. Значения этих параметров также можно передать через метод POST.

Следует отметить, что даже с правильным токеном в URL-адресе запрос от неизвестного IP будет отклонен с ответом 404.

На рис. 7.15 мы тестируем простой веб-запрос с компьютера с Windows с помощью­ командлета PowerShell Invoke-WebRequest. Поскольку запрос не идет с какого-либо известного IP-адреса (которые мы указали при создании оболочки), запрос отклоняется.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 168 

 

 

 

 

 

 

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

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Рис.7.14. Исходный код оболочки Laudanum

Рис.7.15. Отклоненный запрос к оболочке с неизвестного IP-адреса

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

Имея надлежащий внешний IP-адрес итокен,можно получитьконтрольнад оболочкой с помощью модуля Repeater.

Для запроса заполняем минимальные заголовки GET-запроса,как показано наскриншоте.НамнужнонастроитьпараметрTarget (Цель)вправомверхнем углу вкладки Repeater, URL-адрес, запрашиваемый через метод GET, и значе-

ния для laudtoken и laudcmd.