Полная версия
Технология сканирования на наличие уязвимостей. Для студентов технических специальностей
Технология сканирования на наличие уязвимостей
Для студентов технических специальностей
Иван Андреевич Трещев
Геннадий Федорович Вильдяйкин
Анастасия Сергеевна Ватолина
© Иван Андреевич Трещев, 2020
© Геннадий Федорович Вильдяйкин, 2020
© Анастасия Сергеевна Ватолина, 2020
ISBN 978-5-4498-9961-3
Создано в интеллектуальной издательской системе Ridero
1 Сбор информации о сетевом уровне
Пусть есть две виртуальные машины с ОС Windows 7, состоящие в домене. Контроллер домена работает на третьей виртуальной машине с ОС Windows Server 2008 R2.
Компьютер 1 в ходе выполнения работы будет защищаться. С компьютера 2 будут производиться «атаки».
Сбор информации о сети будет производится с компьютера 2, чтобы узнать какую информацию о компьютере 1 можно получить удаленно. Для выполнения задачи используется программное обеспечение NetScanTools.
Получим первоначальные сведения об адресе компьютера 2, о настройках сети в которой он расположен (рисунок 1.1).
Рисунок 1.1 – Сведения о компьютере 2
Получены hostname компьютера и имя домена, в котором он находится; наименование сетевой карты; MAC-адрес; тип сетевого интерфейса; IPv4 и IPv6 адреса; IP-адрес DNS сервера (в данном случае адрес контроллера домена) и некоторые другие настройки сети, где расположен исследуемый ПК.
При помощи утилиты nbtstat получим таблицу имен NetBIOS (листинг 1).
Листинг 1 – Получение таблиц имен NetBIOS
Результат на рисунке 1.2.
Рисунок 1.2 – Список имен NetBIOS компьютеров в сети
Воспользуемся NetScanTools, чтобы получить имена NetBIOS (рисунок 1.3).
Рисунок 1.3 – Список имен NetBIOS
Определим домены в сети при помощи команды (листинг 2):
Листинг 2 – Получение списка доменов в сети
Результат на рисунке 1.4.
Рисунок 1.4 – Список доменов в сети
Исследуемые компьютеры работают в домене LAB.
Для определения списка контроллеров домена воспользуемся утилитой nltest (листинг 3).
Листинг 3 – Получение имен первичного и вторичного контроллеров домена
Результаты на рисунке 1.5.
Рисунок 1.5 – Список контроллеров домена
Основной контроллер домена – ПК с именем DC-1.
Определим имена включенных компьютеров домена командой (листинг 4).
Листинг 4 – Получения списка компьютеров домена
Результаты на рисунке 1.6.
Рисунок 1.6 – Список компьютеров в домене
Определить адреса включенных компьютеров в сети при помощи утилиты NetScanTools (рисунок 1.7):
Рисунок 1.7 – Адреса включенных компьютеров
Получим список совместно используемых ресурсов удаленного компьютера, используя команду (листинг 5).
Листинг 5 – Список совместно используемых ресурсов удаленного компьютера
Результат на рисунке 1.8:
Рисунок 1.8 – Список совместно используемых ресурсов удаленного ПК
Получим перечень общих ресурсов при помощи утилиты – рисунки 1.9, 1.10.
Рисунок 1.9 – Список совместно используемых ресурсов удаленного ПК
Рисунок 1.10 – Список совместно используемых ресурсов удаленного ПК
Общим ресурсом удаленного ПК является папка на диске – SHARED.
Произведем сканирование портов удаленного компьютера (рисунки 1.11, 1.12).
Рисунок 1.11 – Результаты сканирования TCP-портов
Рисунок 1.12 – Результаты сканирования UDP-портов
По результатам сканирования компьютера было выявлено 10 активных TCP-портов и 30 возможно активных UDP-портов.
На результаты сканирования UDP-портов влияет наличие межсетевого экрана, который при блокировании не будет отправлять ICMP сообщение о недоступности порта и будет ошибочно считаться открытым или отсутствие такого сообщения из-за ограничений, установленных на частоту использования ICMP-пакетов.
2 Работа с межсетевым экраном
2.1 Атака Сканирование портов
Пусть необходимо использовать программный межсетевой экран Outpost Firewall.
Проведем сканирование TCP-портов с отключенным межсетевым экраном (рисунок 2.1).
Рисунок 2.1 – Сканирование портов TCP
В данном сканируемом интервале оказалось два активных порта 135 и 139.
Сканирование TCP-портов в данном случае осуществляется путем осуществления операционной системой трехэтапной процедуры установления соединения и потом его закрытия. Такой способ сканирования не требует специальных прав доступа. Недостатком является создаваемая нагрузка на сканируемую систему за счет большого количества открытых и сразу прерванных соединений, таким образом легко обнаруживается активность сканера портов.
Посмотрим, как осуществляется сканирование при помощи анализатора трафика Wireshark (рисунки 2.2, 2.3).
Рисунок 2.2 – Пример ответа компьютера, если порт закрыт
Если порт закрыт, то в ответ получен пакет RST, ACK. RST означает обрыв соединения и очистку буфера, то есть соединение установлено не было.
Рисунок 2.3 – Пример ответа компьютера, если порт открыт
Порт 135 является открытым (рисунок 2.1). Компьютер в этом случае ответил пакетом FIN, ACK. FIN – флаг, который указывает на завершение соединения.
Просканируем UDP-порты (рисунок 2.4).
Рисунок 2.4 – Сканирование портов UDP
Если послать UDP-пакет на закрытый порт, система ответит сообщением ICMP «порт недоступен». Отсутствие такого сообщения истолковывается как сигнал того, что порт открыт. Однако, если порт блокируется брандмауэром, метод неверно покажет, что порт открыт. Если заблокированы ICMP-сообщения о недоступности порта, все порты будут казаться открытыми. Также, может быть установлено ограничение на частоту использования ICMP-пакетов, что также влияет на результаты, даваемые методом.
Посмотрим, как осуществляется сканирование при помощи анализатора трафика Wireshark (рисунок 2.5).
Рисунок 2.5 – Ответ компьютера, если UDP-порт закрыт
Если UDP-порт закрыт, то отправляется ICMP сообщение – Port unreachable, активность других портов не подтверждена.
Проведем сканирование портов при установленном межсетевом экране с настройками по умолчанию (рисунки 2.6—2.10).
Рисунок 2.6 – Предупреждение сканера портов
Рисунок 2.7 – Реакция межсетевого экрана на сканирование
Рисунок 2.8 – Происходит только первоначальный ARP-запрос
Рисунок 2.9 – Сканирование портов не произошло
Рисунок 2.10 – Журнал межсетевого экрана: обнаружение атаки
В соответствии с настройками по умолчанию IP-адрес атакующего блокируется на 5 минут (рисунок 2.11).
Рисунок 2.11 – Действия МЭ в случае атаки
2.2 Блокировка доступа к серверу для Internet Explorer
Согласно варианту задания, необходимо разрешить программе Internet Explorer доступ в Internet, за исключением одного сервера. При проведении работы будем использовать сервер с IP-адресом 185.189.14.207. Зайдем на сайт (рисунок.2.12).
Рисунок 2.12- Сервер доступен до создания правила для МЭ
Создадим правило, запрещающее программе Internet Explorer доступ к серверу с данным IP-адресом (рисунок 2.13).
Рисунок 2.13 – Создание правила для МЭ
Теперь доступ на сайт заблокирован, другие сайты доступны (рисунки 2.14, 2.15).
Рисунок 2.14 – Соединение с сайтом заблокировано
Рисунок 2.15 – Другие сайты доступны
Рисунок 2.16— Установление соединения с сайтом до создания правила блокировки
Рисунок 2.17 – Ошибка после создания правила блокировки
При блокировании сервера получен код ошибки 403 – доступ запрещен.
2.3 «Отрезать» защищаемый компьютер от сети
Создадим правило блокировки для всех IP-адресов (рисунок 2.18).
Рисунок 2.18 – Правило блокировки IP-адресов
Результат работы правила на рисунках 2.19—2.12.
Рисунок 2.19 – IP-адрес заблокирован
Рисунок 2.20 – IP-адрес заблокирован
Рисунок 2.21 – IP-адрес заблокирован
На практике была рассмотрена многофункциональная диалоговая программа NetScanTools, изучены её основные функции. С ее помощью были получены сведения о конфигурации сети, расположенных в ней компьютерах, которые могут быть использованы злоумышленниками при атаке. Это составляет зачастую первую стадию работы по «анализу» сети.
Также был использован программный межсетевой экран Outpost Firewall. Настроены правила для блокирования IP-адресов, созданы правила для приложения, работающего с сетью.
Для анализа пакетов использовалось приложение Wireshark, которое может работать со структурой самых различных сетевых протоколов, и поэтому позволяет разобрать сетевой пакет, отображая значение каждого поля протокола любого уровня.
3 Политика паролей учетных записей в Active Directory
Пусть вновь есть две виртуальные машины с ОС Windows 7, состоящих в домене. Контроллер домена работает на третьей виртуальной машине с ОС Windows Server 2008 R2.
Настройка и внедрение политики паролей, обеспечивающей достаточную сложность, длину пароля, частоту смены пароля пользователей и сервисных учетных записей, позволяет усложнить злоумышленнику возможность подбора или перехвата паролей пользователей.
Настроим политику паролей учетных записей домена, задав единые требования к паролям пользователей рисунки 3.1—3.5.
Откроем консоль управления доменными политиками GPO – Group Policy Management console – gpmc.msc.
Рисунок 3.1 – Пункт «Управление групповой политикой»
Развернем вкладку нашего домена, найдем политику Default Domain Policy. Нажмем правую клавишу мыши на нее и выберем пункт изменить (рисунок 3.2).
Рисунок 3.2 – Меню управления групповыми политиками
Политики паролей находятся в следующем разделе редактора GPO: Конфигурация компьютера – Конфигурация Windows – Параметры безопасности – Политики учетных записей – Политика паролей (рисунок 3.3).
Рисунок 3.3 – Окно редактора GPO
Чтобы отредактировать настройки нужной политики, дважды нажмем по ней. Чтобы включить политику, нужно поставить флажок «Определить следующий параметр политики» и указать необходимую настройку.
По заданию необходимо запретить «простые» с точки зрения безопасности пароли. Для этого включим параметр политики «Пароль должен отвечать требованиям сложности» (рисунок 3.4).
Рисунок 3.4 – Включение параметра политики безопасности
Данная настройка параметров управления паролями означает, что пользователю запрещено использовать имя своей учетной записи в пароле (не более чем два символа подряд из username или Firstname), также в пароле должны использоваться 3 типа символов из следующего списка: цифры (0 – 9), символы в верхнем регистре, символы в нижнем регистре, спец символы ($, #, % и т.д.).
Новые настройки парольной политики будут применены ко все компьютерам домена в фоновом режиме в течении некоторого времени (90 минут), при загрузке компьютера
Чтобы принудительно выполнить фоновое обновление всех параметров групповой политики, независимо от того, изменились ли они, воспользуемся командой gpupdate /force (рисунок 3.5).
Рисунок 3.5 – Принудительное обновление политик безопасности
Для проверки создадим пользователя (рисунок 3.6).
Рисунок 3.6 – Созданный пользователь
Позволим ему самостоятельно изменять пароль (рисунок 3.7).
Рисунок 3.7 – Имя входа пользователя
Сделаем так, чтобы компьютером PC-1 в домене могу управлять только данный пользователь (рисунок 3.8).
Рисунок 3.8 – Компьютером PC-1 управляет только user-1
Рисунок 3.9 – Свойства PC-1
Зайдем под учетной записью данного пользователя на PC-1 и попробуем поставить пароль «User-1*743». Данный пароль включает в себя специальные символы, большие и маленькие буквы, цифры и его длина составляет 10 символов (минимальная длина в соответствии с политикой – 7) (рисунок 3.10).
Рисунок 3.10 – Попытка изменить пароль
При попытке изменить пароль получено сообщение об ошибке, потому что пароль содержит в себе имя пользователя для входа (рисунок 3.11).
Рисунок 3.11 – Не удалось изменить пароль
Проверим сможет ли администратор на контролере домена установить пароль «PAUL_*%351» (рисунки 3.12).
Рисунок 3.12 – Меняем пароль на DC
Рисунок 3.13 – Вводим пароль
Получаем сообщение об ошибке (рисунок 1.14). Пароль отвечает требованиям сложности, но содержит в себе целиком имя пользователя (firstname).
Рисунок 3.14 – Сообщение об ошибке
4 Аудит событий в Active Directory
В Windows Server 2008 необходимо настроить аудит события «Вход в систему» (успешный и неуспешный).
Откроем редактор групповых политик. Для этого в меню пуск в строке поиска напишем gpedit.msc (рисунок 4.1).
Рисунок 4.1 – Поиск в меню Пуск
В открывшемся окне переходим по пути: Конфигурация компьютера-Конфигурация Windows-Параметры безопасности-Локальные политики-Политика аудита (рисунок 4.2).
Рисунок 4.2 – Редактор локальной групповой политики
Два раза нажмем на параметр групповой политики Аудит входа в систему. Устанавливаем флажки для успешных и неудачных попыток доступа (рисунок 4.3).
Рисунок 4.3 – Установка аудита входа в систему
После включения данного параметра групповой политики, Windows будет записывать в журнал событий информацию об учетной записи с помощью которой произведен вход в систему, а также время, когда это событие произошло.
Для просмотра данных событий открываем Оснастку «Просмотр событий» – нажимаем меню Пуск – пишем в строку поиска «Просмотр событий» или открываем данный пункт в меню «Администрирование» (рисунок 4.4).
Рисунок 4.4 – Просмотр событий в меню «Пуск»
Пройдем по пути: Просмотр событий (Локальный) -Журналы Windows-Безопасность (рисунок 4.5).
Рисунок 4.5 – Меню просмотра событий
Выполним успешную попытку входа с PC-1 под учетной записью user-1, которая была создана ранее. В журнале появляется запись о событии входа, где указана дата, время, пользователь и ПК (рисунок 4.6).
Рисунок 4.6 – Событие успешного входа в систему
Введем при входе в систему неверный пароль, тогда получим следующее событие в журнале (рисунок 4.7). В нем указывается имя рабочей станции и причина сбоя.
Рисунок 4.7 – Событие при неудачном входе в систему
При выходе пользователя из системы также создается запись в журнале (рисунок 4.8).
Рисунок 4.8 – Событие выхода из системы
5 Ограничение входа на компьютеры с помощью групповых политик
Как правило, чтобы запретить пользователям входить на некоторые ПК, используют групповые политики.
Создадим групповую политику, чтобы только администратор мог локально войти в систему на PC-1.
В настоящей сети для применения политик лучше пользоваться группами, а не применять политики ко всем пользователям/компьютерам домена.
Создадим группу «Компьютеры для администраторов» (рисунок 5.1).
Рисунок 5.1 – Создание группы для применения политики
Включим в эту группу компьютер «PC-1», к которому будет применяться политика (рисунок 5.2).
Рисунок 5.2 – Включение компьютера в группу
Перейдем по пути: Пуск-Администрирование-Управление групповой политикой, откроем наш лес и домен, в папке «Объекты групповой политики» создадим новый объект (рисунок 5.3).
Рисунок 5.3 – Создание объекта групповой политики
Вводим название (рисунок 5.4).
Рисунок 5.4 – Новое имя GPO
Теперь нужно определить, что будет делать данная политика (рисунок 5.5).
Рисунок 5.5 – Меню изменения GPO
Перейдем по пути Конфигурация компьютера-Конфигурация Windows-Параметры безопасности-Локальные политики-Назначение прав пользователя-Локальный вход в систему (рисунок 5.6).
Рисунок 5.6 – Выбор политики
Поставим флажок «Определить следующие параметры политики» и выберем группы/пользователей, которым хотим предоставить доступ. В нашем случае дадим доступ Администратору и всем Администраторам домена (рисунок 5.7).
Рисунок 5.7 – Определение параметров политики
Перейдем в управление групповыми политиками и перетащим нужный GPO на домен, либо выберем опцию как на рисунке 5.8.
Рисунок 5.8 – Привязка объекта GPO к домену
Выберем созданный GPO (рисунок 5.9).
Рисунок 5.9 – Выбор GPO
Определим, к кому будут применяться данные политики, для нас это компьютеры администраторов (рисунок 5.10).
Рисунок 5.10 – Применение фильтров безопасности
Попробуем зайти на выбранный компьютер под учетной записью обычного пользователя и получим сообщение об ошибке (рисунок 5.11).