
- •Благодарности
- •Список использованных сокращений
- •От издательства
- •Введение
- •Глава 1. Начало
- •Как провести аудит законно?
- •Методология взлома
- •Резюме
- •Глава 2. Получение информации из открытых источников
- •Введение
- •Что искать?
- •Использование Google для сбора информации
- •Ограничение поиска одним сайтом
- •Поиск файлов определенного типа
- •Поиск определенных частей сайта
- •Google Hacking
- •Поиск информации о людях
- •Архивные данные
- •Netcraft
- •Получение информации о домене
- •Автоматизация процесса
- •FOCA
- •Сбор базы данных адресов e-mail
- •recon-ng
- •Упорядочить информацию
- •Резюме
- •Глава 3. Получение информации от сетевых сервисов
- •Введение
- •Сканирование портов
- •Определение активных хостов
- •UDP-сканирование
- •NMAP
- •Получение информации от DNS-сервера
- •Типы записей
- •Взаимодействие с DNS-сервером
- •MX-записи
- •NS-запросы
- •Перебор имен
- •Перебор обратных записей
- •Передача зоны DNS
- •Получение информации с использованием SNMP
- •Получение информации с использованием NetBIOS
- •Null session
- •Работа с электронной почтой
- •Анализ баннеров
- •Получение информации от NTP-сервера
- •Поиск уязвимостей
- •Резюме
- •Глава 4. Атаки на веб-приложения
- •Знакомство с сookie
- •Межсайтовый скриптинг (XSS)
- •Включение локальных или удаленных файлов
- •SQL-инъекции
- •Резюме
- •Глава 5. Социальная инженерия
- •На кого обратить внимание?
- •Фазы атаки
- •Манипулирование людьми
- •Типы атак
- •Social-Engineer Toolkit
- •Резюме
- •Глава 6. Получаем пароли
- •Основные методы
- •Работа со списками паролей
- •Онлайн-атаки
- •Радужные таблицы
- •Резюме
- •Глава 7. Беспроводные сети
- •Краткий обзор Wi-Fi
- •Bluetooth
- •Резюме
- •Глава 8. Перехват информации
- •Пассивный перехват трафика
- •Активный перехват
- •Резюме
- •Глава 9. Обход систем безопасности
- •Системы обнаружения атак
- •Брандмауэры
- •Приманки
- •Резюме
- •Глава 10. Вредоносные программы
- •Вирусы
- •Черви
- •Шпионы
- •Рекламное ПО
- •Троянские кони
- •Практическая часть
- •Резюме
- •Глава 11. Metasploit Framework
- •Интерфейс
- •Вспомогательные модули
- •Полезная нагрузка
- •Практические навыки
- •Резюме
- •Глава 12. Передача файлов
- •TFTP
- •Загрузка файлов с использованием скриптов
- •Резюме
- •Глава 13. Превышение привилегий
- •Локальное повышение прав в Linux
- •Локальное повышение прав в Windows
- •Повышение привилегий в случае некорректной конфигурации прав доступа
- •Резюме
- •Глава 14. Перенаправление портов и туннелирование
- •Перенаправление портов
- •SSH-туннелирование
- •proxychains
- •Резюме
- •Глава 15. Переполнение буфера
- •Атаки, направленные на переполнение буфера
- •Введение
- •Что такое переполнение буфера?
- •Программы, библиотеки и бинарные файлы
- •Угрозы
- •Основы компьютерной архитектуры
- •Организация памяти
- •Разбиение стека (Smashing the stack)
- •Перезапись указателя фрейма
- •Атака возврата в библиотеку
- •Переполнение динамической области памяти
- •Пример нахождения уязвимости переполнения буфера
- •Резюме
- •Глава 16. Собирая все воедино
- •Стандарт выполнения тестов на проникновение
- •Подготовительная фаза
- •Договор о проведении работ
- •Получение разрешения
- •Сбор данных
- •Анализ уязвимостей
- •Моделирование
- •Эксплуатация уязвимостей
- •Постэксплуатационный этап
- •Отчет
- •Зачистка
- •Введение
- •Глава 17. Личный пример
- •Глава 18. Бумажная работа
- •Политика безопасности
- •Стандарты
- •Процедуры
- •Инструкции
- •Техническая документация
- •Глава 19. Обучение и тренировки
- •Тренировки
- •Глава 20. Защита от утечки информации
- •Глава 21. Брандмауэры
- •Глава 22. Системы обнаружения вторжения (IDS)
- •Глава 23. Виртуальные защищенные сети (VPN)
- •Компоненты виртуальной частной сети
- •Безопасность VPN
- •Создание VPN из компонентов с открытым исходным кодом
- •Заключение

46 Глава 3 • Получение информации от сетевых сервисов
-sX |
XMASS-сканирование. Сканер отправляет пакеты с флагами FIN, PSH, URG. |
|
Если порт закрыт, в ответ придет пакет с флагом RST. Если же ответа не будет, |
|
то порт открыт (так как такой сегмент просто игнорируется) |
|
|
-sN |
NULL-сканирование. Позволяет пакетам проходить через брандмауэр, в дан- |
|
ном пакете не стоит ни одного флага, в отличие от XMASS. В случае, если порт |
|
закрыт, придет пакет с флагом RST. Работает только в Unix-среде |
|
|
-sP |
Сканирование с использованием ping |
|
|
-sU |
Сканирование с использованием UDP-протокола |
|
|
-sA |
ACK-сканирование. Данное сканирование применяется для определения того, |
|
фильтруется данный порт или нет, и особенно эффективно для определения на- |
|
личия брандмауэров и выяснения их правил. Простая фильтрация пакетов раз- |
|
решит прохождение пакетов с установленным битом ACK (используемых для |
|
уже установленных соединений), тогда как более сложные брандмауэры — нет |
|
|
-sR |
RPC (Remote Procedure Call) сканирование |
|
|
-oN |
Нормальный вывод |
|
|
-оХ |
Вывод информации в формате XML |
|
|
-oG |
Вывод в формате, удобном для поиска утилитой grep или ей подобными |
|
|
-T Paranoid |
Делает паузы между сканированиями продолжительностью 300 секунд. В не- |
|
которых случаях это позволяет аудитору дольше не привлекать к себе внима- |
|
ния, но существенно увеличивает время выполнения работы |
|
|
-T Sneaky |
Делает паузы между сканированиями продолжительностью 15 секунд |
|
|
-T Polite |
Делает паузы между сканированиями продолжительностью 4 секунды |
|
|
-T Normal |
Одновременно выполняет несколько операций сканирования |
|
|
-f |
Сканирование фрагментированными пакетами. Разбивает пакет на небольшие |
|
кусочки, что в некоторых случаях позволяет избежать обнаружения |
|
|
Получение информации от DNS-сервера
Благодаря информации, которую мы можем получить от DNS-сервера, можно составить список публичных внешних, а порой и внутренних серверов, используемых целевой организацией.
Типы записей
Прежде чем мы начнем искать информацию, используя DNS, выясним, какие типы записей использует данный сервис и какую информацию мы можем почерпнуть из них:
A (Address) — связывает доменное имя и IP-адрес;
SOA (Start of Authority) — показывает, какие DNS отвечают за эталонную информацию о данной зоне;

Получение информации от DNS-сервера 47
CNAME (Canonical Name) — дополнительное имя для данного домена;
MX (Mail Exchange) — определяет, какие почтовые серверы обслуживают данную зону;
SRV (Service) — показывает, какие сервисы обслуживают данную зону (например, серверы активной директории);
PTR (Pointer) — привязывает IP-адрес к доменному имени;
NS (Name Server) — показывает, какие DNS-серверы обслуживают данную зону.
Взаимодействие с DNS-сервером
Взаимодействовать с DNS-сервером можно несколькими различными способами, например через упомянутую ранее кроссплатформенную утилиту nslookup.
Просто набрав следующую команду, мы направим DNS-запрос к тому DNS-серверу, который указан в наших настройках TCP/IP-соединения:
root@kali:~# nslookup japantoday.com Server: 192.168.126.2 Address: 192.168.126.2#53
Non-authoritative answer:
Name: japantoday.com
Address: 172.99.100.142
В данном примере мы обратились к локальному DNS и запросили IP-адрес для домена japantoday.com. DNS-сервер вернул нам ответ — 108.166.65.155.
MX-записи
С помощью того же nslookup можно получить список почтовых серверов, используемых данной организацией:
root@kali:~# nslookup
>set q=mx
>japantoday.com
Server: 192.168.126.2
Address: 192.168.126.2#53
Non-authoritative answer:
japantoday.com mail exchanger = 5 alt2.aspmx.l.google.com. japantoday.com mail exchanger = 10 aspmx3.googlemail.com. japantoday.com mail exchanger = 1 aspmx.l.google.com. japantoday.com mail exchanger = 5 alt1.aspmx.l.google.com. japantoday.com mail exchanger = 10 aspmx2.googlemail.com.
Authoritative answers can be found from: aspmx3.googlemail.com internet address = 74.125.28.26

48 Глава 3 • Получение информации от сетевых сервисов
aspmx.l.google.com |
has |
AAAA address 2a00:1450:4010:c02::1a |
||
alt1.aspmx.l.google.com |
|
has AAAA address 2404:6800:4008:c01::1b |
||
aspmx2.googlemail.com |
internet |
address |
= 173.194.72.26 |
|
aspmx2.googlemail.com |
has |
AAAA |
address |
2404:6800:4008:c01::1b |
Обратите внимание на то, что возле каждой MX-записи находится число — 1, 5 или 10.
Это число обозначает приоритет почтовых серверов. Например, когда почтовый агент попытается доставить e-mail для домена japantoday.com, он сначала попытается соединиться с сервером, приоритет которого равен 1, и только в случае неудачи будет пытаться установить соединение с сервером, имеющим более высокий приоритет.
NS-запросы
Похожим способом можно определить, какие NS-серверы отвечают за данный домен:
root@kali:~# nslookup
>set type=ns
>japantoday.com
Server: 192.168.126.2
Address: 192.168.126.2#53
Non-authoritative answer: |
|
japantoday.com |
nameserver = dns1.stabletransit.com. |
japantoday.com |
nameserver = dns2.stabletransit.com. |
Authoritative answers can be found from: |
|
dns1.stabletransit.com |
internet address = 69.20.95.4 |
dns2.stabletransit.com |
internet address = 65.61.188.4 |
Мы получили адреса двух серверов. Эта информация может понадобиться в дальнейшем, когда мы попытаемся подобрать имена серверов или перенять зону.
Перебор имен
Главная идея данного метода состоит в попытке угадать доменные имена серверов, которые используются компанией. Очень часто это бывает полезно, так как обычно имя сервера отражает его содержание. Например, сервер с именем firewall. japantoday.com, скорее всего, окажется брандмауэром данной организации.
Для данной задачи очень хорошо подходит утилита host, входящая в состав Linuxдистрибутивов.
root@kali:~# host www.ons.gov.uk www.ons.gov.uk is an alias for ons.gov.uk. ons.gov.uk has address 81.17.70.138

Получение информации от DNS-сервера 49
ons.gov.uk mail is handled by 20 cluster.gsi2.messagelabs.com. ons.gov.uk mail is handled by 10 cluster.gsi.messagelabs.com.
root@bt:~# host non.ons.gov.uk
Host non.ons.gov.uk not found: 3(NXDOMAIN)
Согласитесь, что перебирать имена вручную — задача поистине титаническая. Для того чтобы автоматизировать данную задачу, нам нужен файл, содержащий список возможных имен. Такой файл можно найти в Интернете или составить самому.
Для примера сделаем файл dns-names.txt, в котором, по одной в строке, будут располагаться следующие записи: mail, dns, ftp, file, vpn, test, dev, prod, voip, firewall.
#!/bin/bash
for name in $(cat dns-names.txt);do
host $name.ons.gov.uk |grep "has address" done
Разъяснение работы скрипта.
Первая строка указывает на то, что мы будем использовать Bash для интерпретации команд.
Вторая строка задает начало цикла, который по очереди берет записи из файла «dns-names.txt» и присваивает их переменной «name».
Третья строка выполняет команду «host» для домена, первая часть которого — переменная «name», а вторая — «.ons.gov.uk» — остается неизменной. Команда «grep» с параметром «has address» позволяет отфильтровать вывод таким образом, чтобы мы видели только удачные попытки перебора.
Четвертая строка завершает цикл.
Результат работы скрипта:
root@kali:~# ./dnsnum.sh
vpn.ons.gov.uk has address 194.34.210.102 vpn.ons.gov.uk has address 194.34.211.102
Перебор обратных записей
Получив IP-адреса данной организации, мы можем попытаться осуществить перебор обратных записей с помощью сервиса whois, используя ту же утилиту host:
root@kali:~# host 81.17.70.138
138.70.17.81.in-addr.arpa domain name pointer abouttest.landmarkgovernment.co.uk.
Разумеется, как и в предыдущем случае, мы можем автоматизировать данный процесс, используя скрипт: