- •Отзывы и пожелания
- •Список опечаток
- •Нарушение авторских прав
- •Предисловие
- •Кому адресована эта книга
- •О чем идет речь в книге
- •Как извлечь максимум из книги?
- •Загрузка примеров
- •Загрузка цветных изображений
- •Условные обозначения
- •Атаки на веб-приложения. Введение
- •Правила применения оружия
- •Вопросы конфиденциальности данных
- •Очистка
- •Инструментарий тестировщика
- •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 |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
Центр сертификации Let’s Encrypt
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
E |
|
|
||||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
139 BUY |
|
|
||||||||
|
|
|
|
|
||||||
w Click |
to |
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
- |
|
n |
e |
|
||
|
|
|
|
x cha |
|
|
|
|
Рис.6.2. Конфигурация зоны и делегирование c2.spider.ml IP-адресу нашего экземпляра командно-контрольного сервера
С этими двумя записями запросы для c2.spider.ml будут эффективно отправляться на только что созданный сервер. Любой запрос для поддомена c2.spider.ml также будет отправляться на этот IP-адрес для определения адреса.
Это важно, так как мы должны видеть все запросы на соединение для c2.spider.ml. Можно сделать это несколькими способами. Традиционный способ – настройка BIND для вновь делегированной зоны: c2.spider.ml. Для менее сложной командно-контрольной инфраструктуры существует более простая в настройке альтернатива со множеством других функций.
Центр сертификации Let’s Encrypt
Чтобыобеспечитьбезопасностьпередачиинформации,можносоздатьHTTPSсервер или использовать SMTPS. Мы могли бы применять самоподписанные сертификаты, но это не идеальный вариант. У клиентов возникают подозрения, когда в их браузере появляется предупреждение TLS-протокола, или сетевые прокси-серверы могут полностью разорвать соединение. Нам нужно использовать сертификат, подписанный доверенным корневым центром сертификации. Существует бесчисленное количество центров, предлагающих всевозможные платные TLS-сертификаты,но самым простым и экономически эффективным является Let’s Encrypt.
Let’s Encrypt – корневой центр сертификации, которому доверяет боль шинство клиентов. Он позволяет администраторам серверов запрашивать бесплатные, проверенные доменом сертификаты для своих хостов. Его мис-
|
|
|
|
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 140 Глава 6.Обнаружение и эксплуатация уязвимостей в приложениях... |
w Click |
to |
|
|
|
|
|
|
|||||||||||||
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
m |
||||||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
||||||
|
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
|
|
сия–помочь нам перейти к зашифрованному интернету,и бесплатные серти- |
|
|
|
e |
|
|||||||||||||
|
|
|
df |
|
|
n |
e |
|
|
|
|
df |
|
|
n |
|
|||||||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
фикаты – это большой шаг вперед.
Let’s Encrypt предоставляет бесплатные доменные сертификаты для имен хостов и даже Wildcard-сертификаты (сертификаты открытого ключа,которые могутиспользоваться с несколькими под областями домена). Более подробную информацию можно найти
на сайте https://letsencrypt.org/.
Вдемонстрационных целях наш командно-контрольный сервер разместятв домене spider.ml, и мы будем запрашивать Wildcard-сертификат.
Первым шагом является загрузка сценария-оболочки certbot-auto, которыйустанавливаетзависимостииавтоматизируетбóльшуючастьпроцессазапроса сертификата Let’s Encrypt. В дистрибутивах на основе Debian, таких как Kali, этот скриптдоступен из:
root@spider-c2-1:~# wget https://dl.eff.org/certbot-auto [...]
root@spider-c2-1:~# chmod +x certbot-auto
Certbot имеет возможность автоматически обновлять конфигурацию вебсервера, но для наших целей мы сделаем запрос вручную. В результате новый сертификат упадет куда-нибудь на диск, и мы сможем использовать его по своему усмотрению.
Опция --manual позволит пройти запрос с пользовательскими параметрами. Мы уточним, для каких доменов сертификат действителен, используя опцию -d. Для Wildcard-сертификатов нужно указать родительский домен spider.ml, а также подстановочный символ * .spider.ml.
root@spider-c2-1:~# ./certbot-auto certonly --manual -d *.spider.ml
-d spider.ml --preferred-challenges dns-01 --server https://acme-v02.api. letsencrypt.org/directory
Для доменных имен с подстановочными символами будем использовать DNS-запрос, а это означает, что нужно добавить настраиваемую запись TXT, чтобы Let’s Encrypt смог проверить,действительно ли мы владеем этим родительским доменом.
root@spider-c2-1:~# ./certbot-auto certonly --manual -d *.spider.ml
-d spider.ml --preferred-challenges dns-01 --server https://acme-v02.api. letsencrypt.org/directory
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator manual, Installer None
|
|
|
|
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 |
|
|
|
|
e |
|
|
|
|
|
|
|
Obtaining a new certificate |
|||||
|
|
|
|
|
n |
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
Центр сертификации Let’s Encrypt
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
141 BUY |
|
|
|||||||
|
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Performing the following challenges: dns-01 challenge for spider.ml dns-01 challenge for spider.ml
[...]
Мастер certbot в конечном итоге предложит создать TXT-запись _acme challenge.spider.ml, используя случайно сгенерированное однократно используемое число.
Please deploy a DNS TXT record under the name _acme-challenge.spider.ml with the following value:
dGhlIG9ubHkgd2lubmluZyBtb3ZlIGlzIG5vdCB0byBwbGF5
Before continuing, verify the record is deployed.
---------------------------------------------------------------------
Press Enter to Continue
Прежде чем нажать Enter (Ввод), нужно добавить запись в диспетчере DNS
для spider.ml.
Рис.6.3. Добавление TXT-записи в DNS
Мастер может снова попросить вас обновить значение TXT, и в этом случае,возможно,придетсяподождатьнесколькоминут,преждечемможнобудет продолжить. Низкое значение TTL, например 5 минут или меньше, поможет сократить ожидание.
|
|
|
|
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 142 Глава 6.Обнаружение и эксплуатация уязвимостей в приложениях... |
w Click |
to |
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
m |
|
|
|
|
|
|
|
m |
||||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
|||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
e |
ЕсливсевпорядкеиLet’sEncryptудалосьпроверитьзаписиTXT,новыйсерти |
|
|
|
e |
|
||||||||||
|
|
|
df |
|
|
n |
|
|
|
|
|
|
|
|
df |
|
|
n |
|
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
фикат будет выпущен и сохранен на диске где-нибудь в /etc/letsencrypt/ live/.
Waiting for verification...
Cleaning up challenges
IMPORTANT NOTES:
-Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/spider.ml/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/spider.ml/privkey.pem
[...]
root@spider-c2-1:~#
Эти сертификаты действительны только в течение нескольких месяцев согласно политике Let Encrypt. Вам придется продлить их, используя процесс, аналогичный первоначальному запросу.
Certbot ведет учет запрошенных сертификатов и даты их истечения. При вводе команды Обновить наши сертификаты будутпросмотрены и автоматически обновлены.
Эти PEM-файлы теперь можно использовать в Apache, NGINX, INetSim или на любом другом веб-сервере, который применяется для управления и конт роля.
Можем указать наш экземпляр INetSIM на вновь выданные сертификаты, настроив файл конфигурации. Параметры для поиска: https_ssl_keyfile, который указывает на закрытый ключ, и https_ssl_certfile, представляющий собой сам сертификат.
root@spider-c2-1:~# grep https_ssl /etc/inetsim/inetsim.conf
#https_ssl_keyfile
#Syntax: https_ssl_keyfile <filename>
https_ssl_keyfile privkey.pem
#https_ssl_certfile
#Syntax: https_ssl_certfile <filename>
https_ssl_certfile fullchain.pem
[...]
INetSIM ищет эти файлы в каталоге certs, который обычно находится в
/usr/share/inetsim/data/.
Следующий шаг – копирование файлов privkey.pem и fullchain.pem из каталога Let Encrypt live в каталог INetSIM certs. Нужно не забывать делать