Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы тестирования КИИ на проникновение. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
4. T3 – Normal.
5. T4 –Aggressive.
6. T5– Insane.
Команда:
nmap -T1 192.168.1.100
3.8.2. Фрагментированные пакеты
В процессе фрагментации пакеты разбиваются на небольшие фрагменты, что затрудняет обнаружение процесса сканирования файерволом. Данный спо­соб отправки пакетов позволяет обойти некоторые файерволы, так как при ошибке в конфигурации фаейрвол будет анализировать только фрагменты, но не весь пакет. Однако многие современные IDS могут пересобирать фрагменты в один пакет перед отправкой его дальше в сет
ь.
Команда:
nmap -f 192.168.1.100
3.8.3. Изменение порта источника
Очень часто сетевые администраторы разрешают трафик, идущий с опре­делённого порта источника. Такую конфигурацию можно использовать для об­хода фаейрволов. В качестве порта-источника можно указать порты популяр­ных приложений, например: 21, 53, 80.
Пример:
nmap –PN -g 53 192.168.1.100
Ключ -g позволяет указать порт источника исходящих пакетов, который в примере равен 53 (служба DNS).

3.8.4. Изменение значения MTU

Значение MTU определяет максимальный размер пакета, передаваемого в одном кадре. Значения MTU должны быть кратны 8 (например, 8, 16, 24, 32). Nmap позволяет указать собственный размер MTU. Изменение значения MTU может помочь обойти некоторые фаейрволы.
Пример:
nmap -mtu 32 192.168.1.100
3.8.5. Использование неверных контрольных сумм
Контрольные суммы используются в заголовке TCP для обнаружения ошибок. Однако мы можем использовать неправильные контрольные суммы в собственных интересах. Посылая сегменты с неверными контрольными сум­мами, мы можем обойти некоторые файерволы с учётом ошибок в их конфигу­рациях.
Пример:
nmap -badsum 192.168.1.100
61
Идея этого способа сканирования заключается в том, чтобы одновремен­но с процессом сканирования отправлять поддельные пакеты с других хостов, что очень затруднит определение того, с какого именно хоста происходит ска­нирование.
Так как в данном режиме сканирования может генерироваться очень большое количество пакетов, этот процесс может вызвать DOS-атаку.
3.8.6. Хосты-приманки
При задании фиктивных хостов они отделяются зап
ятыми. Можно ука­зать ключевое слово ME, как один из фиктивных хостов для задания позиции в списке хостов-приманки реального IP-адреса. Также можно использовать пара­метр RND для генерации произвольного IP-адреса, или RND:число для генера­ции определённого числа адресов.
Команда:
nmap -D decoy1[,decoy2][,ME][ip-target]
Пример:
nmap -D 192.168.1.1 192.168.1.2 192.168.1.100 nmap -D RND:10 192.168.1.100

3.9. НЕКОТОРЫЕ ОСОБЕННОСТИ СКАНИРОВАНИЯ

Сканирование портов UDP часто бывает ненадёжным, так как файерволы и маршрутизаторы могут отбрасывать ICMP-пакеты. Это может привести к ложным срабатываниям при сканировании, в связи с чем утилита Nmap будет определять порты UDP в качестве открытых.
Большинство сканеров портов не сканируют все доступные порты и обычно имеют предварительно настроенный список «популярных портов».
Пентестеры часто забывают про сканирование портов UDP и реализуют только сканирования портов TCP
, теряя из виду важные сервисы.
Ниже приведена суммарная таблица ключей сканирования (табл. 3.1).
3.1. Суммарная таблица ключей сканирования
Команда Описание
-sT Connect-сканирование
-sS SYN-сканирование
-sF FIN-сканирование
-sX XMAS-сканирование
-sN Нулевое сканирование
-sU Сканирование UDP
-sA ACK-сканирование
62
Команда Описание
-sI Сканирование IDLE
-sV Определение версий служб
-O Получение отпечатков ОС
-oN Нормальный вывод
-oX XML-вывод
-oG Вывод формата утилиты grep
-T Paranoid Последовательное сканирование, 300 с между попытками
-T Sneaky Последовательное сканирование, 15 с между попытками
-T Polite Последовательное сканирование, 4 с между попытками
Продолжение табл. 3.1
-T Normal Параллельное сканирование
-T Aggressive Параллельное сканирование, 300 с таймаут и 1,25 с на попытку
-T Insane Параллельное сканирование, 75 с таймаут и 0,3 с на попытку

3.10. СЦЕНАРИИ NMAP SCRIPTING ENGINE (NSE)

Nmap Scripting Engine (NSE) – дополнение к утилите Nmap, которое по­зволяет писать сценарии для автоматизации различных сетевых задач. Скрипты включают в себя широкий спектр сценариев для перечисления DNS, реализа­ции атак методом перебора и даже сценариев идентификации уязвимостей. Все скрипты NSE можно найти в каталоге /usr/share/nmap/scripts.
Скрипты NSE запускаются следующим образом:
nmap ip-target --script=name-of-script --script-args=n1=v1,n2=v2, ...
Одним из сценариев является скрипт smb-os-discovery.nse, который пыта­ется подключиться к службе SMB целевой системы и определить версию опе­рационной системы.
Пример запуска:
root@kali:~# nmap 192.168.0.100 --script=smb-os-discovery.nse
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-03-15 23:18 MSK Nmap scan report for 192.168.0.104 Host is up (0.00030s latency). Not shown: 987 closed ports
63
PORT STATE SERVICE 135/tcp open msrpc 139/tcp open netbios-ssn 445/tcp open microsoft-ds 1947/tcp open sentinelsrm 2869/tcp open icslap 3389/tcp open ms-wbt-server 5357/tcp open wsdapi 49152/tcp open unknown 49153/tcp open unknown 49154/tcp open unknown 49155/tcp open unknown 49159/tcp open unknown 49160/tcp open unknown MAC Address: 9C:4E:36:59:45:10 (Intel Corporate)
Host script results: | smb-os-discovery: | OS: Windows 7 Professional 7601 Service Pack 1 (Windows 7 Professional 6.1) | OS CPE: cpe:/o:microsoft:windows_7::sp1:professional | Computer name: samokrutov | NetBIOS computer name: SAMOKRUTOV | Domain name: yugovostok.transtk.ru | Forest name: yugovostok.transtk.ru | FQDN: samokrutov.yugovostok.transtk.ru |_ System time: 2017-03-15T23:18:08+03:00
Nmap done: 1 IP address (1 host up) scanned in 7.01 seconds
Пример запуска другого сценария NSE, предназначенного для проверки передачи зоны DNS:
root@kali:~# nmap --script=dns-zone-transfer -p 53 ns1.megacorpone.com

3.11. ЗАДАНИЯ

1. Расположите виртуальные машины с ОС Ubuntu и Kali в одной сети. Запустите на целевой системе с ОС Ubuntu сервер SSH и RADIUS. Дополни­тельно установите в ОС Ubuntu веб-сервер Apache и запустите его:
sudo apt-get install apache2 sudo service apache2 start
2. Используйте сканер Nmap для проведения ping-разведки целевого диа­пазона IP-адресов, в котором работает система с ОС Kali. Используйте Nmap, arping, netdiscover (в активном и пассивном режимах) для реализации ARP­сканирования целевого диапазона.
3. Просканируйте IP-адреса, обнаруженные в упражнении 2, на предмет открытых TCP-портов. Используйте виды сканирования Connect и SYN.
4. Просканируйте IP-адреса, обнаруженные в упражнении 2, на предмет открытых TCP-портов, используя ви
ды сканирования NULL, FIN, XMAS.
Сравните полученные результаты с результатами выполнения задания номер 3.
5. Просканируйте IP-адреса, обнаруженные в упражнении 2, на предмет открытых UDP-портов.
6. Просканируйте IP-адреса, обнаруженные в упражнении 2, в целях оп­ределения версий приложений и служб, запущенных на них (SSH, RADIUS,
64
Apache). Выполните сканирование IP-адресов в целях определения версии ОС целевой системы. Сравните полученный результат с действительными значе­ниями версий.
7. Выполните сканирование целевых адресов методами, потенциально по­зволяющими обойти неверно сконфигурированные файерволы. Используйте технику таймингов, генерацию фрагментированных пакетов, изменение порта источника, изменение значения MTU, генерацию неверных контрольных сумм.
8. Используйте следующие сценарии NSE для сканирования целевых сис­тем в лабораторных условиях:
− broadcast-dhcp-disc
over – для поиска и получения сведений о запу-
щенном DHCP-сервере в сети;
− ssh2-enum-algos – для перечисления поддерживаемых сервером SSH алгоритмов обмена ключами, аутентификации, шифрования и хеширования.
65

4. ЭКСПЛУАТАЦИЯ СОЕДИНЕНИЙ УДАЛЁННОГО ДОСТУПА

В этой главе мы сосредоточимся на изучении способов компрометации
соединений удалённого доступа к устройствам и приложениям.
Злоумышленники используют преимущества наличия сервисов удалённо-
го доступа для достижения следующих целей:
− эксплуатация уже существующих каналов связи для получения уда-
лённого доступа к целевым системам;
− перехват сообщений;
− запрет доступа авторизованным пользователям к защищённым со-
единениям с целью застави уязвимы для других атак.
В этой главе основное внимание будет уделено действиям злоумышлен­ников на этапах разведки и эксплуатации, имеющим отношение к соединениям удалённого доступа.

4.1. ОБЩИЕ ОСОБЕННОСТИ ЭКСПЛУАТАЦИИ

В некоторых сетевых протоколах учётные данные передаются в открытом виде (например, Telnet и FTP). Использование анализатора пакетов, такого как Wireshark, позволит злоумышленнику перехватить и повторно использовать учётные данные.
Тем не менее большинство протоколов удалённого доступа, особенно встроенные в операционную систему, имеют сервисы безопасности в виде ме­ханизмов контроля доступа и шифрования. Несмотря на то, что на ных сервисов увеличивает их защищённость, они по-прежнему подвергаются атакам по причине возможных ошибок, допущенных при конфигурировании или использовании криптографически слабых механизмов шифрования.

4.2. КОМПРОМЕТАЦИЯ ПРОТОКОЛА RDP

Протокол Remote Desktop Protocol (RDP) представляет собой проприе­тарный протокол компании Microsoft, который позволяет клиенту установить соединение с удалённым компьютером с использованием графического интер­фейса. Хотя данные протокола шифруются, злоумышленник может получить доступ к серверу, если подберёт имя пользователя и пароль.
Следует отметить, что наиболее распространённый способ компромета­ции RDP заключается в использовании методов социальной инженерии. С пользователем св
язывается сотрудник технической поддержки, который убе­ждает пользователя в необходимости предоставить удалённый доступ для ис­правления каких-то неполадок на рабочей станции. Так же достаточно попу­лярны атаки, реализуемые с помощью вредоносных программ, нацеленных не­посредственно на протокол RDP.
С точки зрения тестировщика (или злоумышленника), первый шаг ком-
прометации атакуемого сервиса RDP
ть их использовать небезопасные каналы, которые
личие подоб-
заключается в том, чтобы найти сервер
66
RDP и определить стойкость используемых криптографических алгоритмов. Этот шаг обычно реализуется с использованием сканера портов, например Nmap, запущенного в целях сканирования стандартного порта RDP 3389.
Сканер Nmap в настоящее время включает в себя специализированные скрипты, с помощью которых можно получить дополнительные сведения о протоколе RDP, в том числе о конфигурации механизмов шифрования. Если позволяет время, то их следует использовать на начально
м этапе сканирования. Команда Nmap для вызова скрипта перечисления поддерживаемых сервисом RDP протоколов шифрования выглядит следующим образом:
nmap -p3389 --script=rdp-enum-encryption target
Результат выполнения этой команды показан ниже:
root@kali:~# nmap -p3389 --script=rdp-enum-encryption 192.168.0.103
Starting Nmap 7.60 ( https://nmap.org ) at 2018-12-05 23:33 MSK Nmap scan report for 192.168.0.103 Host is up (0.0012s latency).
PORT STATE SERVICE 3389/tcp open ms-wbt-server | rdp-enum-encryption: | Security layer | CredSSP: SUCCESS |_ SSL: SUCCESS
В примере показано, как можно оценить параметры защищённой переда­чи данных серверу RDP с использованием сценария Nmap rdp-enum-encryption. Серверы, поддерживающие наборы шифрования с длиной ключа менее 128 бит, могут быть использованы для компрометации данных сеанса.
Некоторые уязвимости протокола RDP могут быть идентифицированы вручную. Для того чтобы определить, является ли текущая версия протокола RDP уязвимой, используйте соответствующий скрипт Nmap, выполнив сле­дующую команду:
root@kali:~# nmap –sV -p 3389 --script rdp-vuln-ms12-020 target
После того как с помощью Nmap была обнаружена уязвимость RDP, её можно проэксплуатировать с помощью дополнительного модуля Metasploit Framework с именем auxiliary/dos/windows/rdp/ms12_020_maxchannelids в целях реализации атаки типа отказ в обслуживании.
Наиболее распространённый метод компрометации протокола RDP – ата­ка перебором, основанная на словаре наиболее распространённых имён пользо­вателей и паролей (можно создать специфические словари, ориентированные на конкретные используемые инструменты, с помощью у
тилит CeWL и crunch; перебор с использованием таких словарей происходит быстрее, чем с использо­ванием стандартных словарей, а сам процесс является чуть более скрытным, поскольку требует меньше сетевого трафика).
В Kali есть несколько инструментов для реализации атаки методом пере­бора, в том числе утилиты Hydra, Medusa, Ncrack и Patator. Испытания показа­ли, что Ncrack является самы
м надёжным решением с точки зрения скорости и
эффективности.
67
Большинство инструментов, в частности Hydra, Ncrack, и John (John the Ripper), поставляются вместе со словарями, которые располагаются в домаш-
ней директории соответствующих приложений. Тестировщики могут также за­гружать словари различных типов из интернет-источников. Словари, получен­ные на основе скомпрометированных учётных записей пользователей различ­ных сервисов, особенно полезны, потому что они отражают использование ре­альной аутентификационной информации. Нез
ависимо от того, какой словарь используется, его всегда можно персонализировать перед тестированием, доба­вив имена действующих и бывших сотрудников (в качестве имён пользовате­лей) или списки слов, которые были созданы с помощью таких инструментов, как CeWL, задача которого заключается в анализе веб-сайта в целях создания словаря слов определённой длины.
Инструмент Ncrack являет
ся инструментом для подбора аутентификаци­онных данных и поддерживает протоколы FTP, HTTP (S), POP3, RDP, SMB, SSH, Telnet и VNC. Инструмент Ncrack вызывается с помощью следующей команды:
ncrack -vv -U user.lst -P password.list taget_IP:target_port
Пример запуска Ncrack:
root@kali ncrack –v –u administrator –P /pentest/passwords/wordlists/darkc0de.lst rdp://192.168.75.140
Параметр -v используется для вывода дополнительной информации, за ним следует параметр -u для задания имени пользователя, -P – для задания спи­ска паролей и, наконец, параметр rdp://, за которым следует IP-адрес цели. По­сле того как учётные данные будут подобраны, можно использовать утилиту rdesktop из командной строки для подключения по протоколу RDP:
rdesktop –u login –p password
Особенно важно, что учётную запись администратора, с которой запуска­ется сеанс RDP, нельзя заблокировать локально при нескольких неудачных по­пытках входа в систему.
Утилита Hydra тоже поддерживает протокол RDP. Пример запуска пока­зан ниже:
root@kali:~# hydra -t 1 -V -f -l administrator -P common.txt rdp://192.168.67.132 Hydra v7.6 (c)2013 by van Hauser/THC & David Macie­jak - for legal purposes only Hydra (http://www.thc.org/thc-hydra) starting at 2014-01-07 13:24:21 [DATA] 1 task, 1 server, 933 login tries (l:1/p:933), ~933 tries per task [DATA] attacking service rdp on port 3389 [ATTEMPT] target 192.168.67.132 - login "administrator" - pass "Admin" ­1 of 933 [child 0] [3389][rdp] host: 192.168.67.132 login: administrator password: youradmin [STATUS] attack finished for 192.168.67.132 (valid pair found) 1 of 1 target successfully completed, 1 valid password found Hydra (http://www.thc.org/thc-hydra) finished at 2014-01-07 13:24:46
68
Протокол Secure Shell (SSH) является сетевым протоколом, который ис­пользуется для создания шифрованного канала поверх открытой сети передачи данных между сервером и клиентом. В общем случае пара открытый– секретный ключ позволяет пользователям войти в систему без пароля. Откры­тый ключ присутствует на всех системах, которые требуют наличия защищён-

4.3. КОМПРОМЕТАЦИЯ ПРОТОКОЛА SSH

ного соединения, в то время как пользователь де
ржит закрытый ключ в секрете. Аутентификация в SSH основана на секретном ключе; сервер SSH проверяет закрытый ключ в отношении открытого ключа. На атакуемых системах откры­тый ключ проверяется по списку авторизованных ключей, разрешённых для удалённого доступа к системе. Такой предположительно безопасный канал свя­зи перестаёт быть безопасным, если открытый ключ оказывается не крипто­стойким ил
и его можно легко угадать.
Службы SSH обеспечивают шифрованный доступ к системам, включая встроенные устройства и хосты на базе Linux. Ниже представлены три подсис­темы, которые обычно используются на удалённых устройствах:
− Secure shell (SSH) – обеспечивает локальный доступ посредством
командной оболочки;
− Secure copy (SCP) – позволяет пользователям безопасно отправлять и
получать файлы;
− Secure FTP (SFTP) – обеспечивает многофункциональный механиз
м
передачи файлов.
Службы SSH и SCP работают по одному и тому же порту (по умолчанию,
TCP-порт 22), а SFTP – это отдельная служба, которая обычно запускается на TCP-порту 115. SSH также поддерживает туннелирование и переадресацию се-
тевых подключений и поэтому может использоваться как VPN для доступа к другим ресурсам.
Протокол SSH работает аналогично TLS:
− алгоритм Диффи–Хеллмана используется для выработки общего
секр
ета;
− псевдослучайная (хеш) функция (например, SHA-1 или SHA-256)
используется как клиентом, так и сервером для получения трёх пар ключей из общего секрета (по одному для каждой стороны):
• два значения вектора инициализации (IV);
• два ключа шифрования;
• два ключа подписи;
− сервер отправляет свой открытый ключ клиенту вместе со случ
ным значением;
− клиент проверяет цифровую подпись случайного значения (аутенти-
фикация сервера клиентов);
− затем аутентификация клиента выполняется сервером;
− после аутентификации создаются каналы для обеспечения доступа к
ресурсам.
Службы SSH уязвимы для следующих классов атак:
ай-
69
− подбор пароля методом грубой силы;
− раскрытие закрытого ключа или слабая генерация закрытого ключа;
− удалённая анонимная эксплуатация известных уязвимостей про-
граммного обеспечения (не требует учётных данных);
− использование известных уязвимостей при аутентификации, что
приводит к эскалации привилегий.
Практическая эксплуатация указанных атак зависит от того, какие функ­ции включены или использу
ются на удалённом устройстве. Таким образом,
важно для начала изучить конфигурацию службы SSH.
Серверы SSH возвращают баннер при подключении к ним, как показано в примере ниже. В примере сервер работает под управлением Debian Linux с OpenSSH версии 6.0p1 и поддерживает протокол SSH версии 2.0:
$ telnet 192.168.208.129 22 Trying 192.168.208.129... Connected to 192.168.208.129. Escape character is '^]'. SSH-2.0-OpenSSH_6.0p1 Debian-4+deb7u2
Администраторы безопасности могут изменить баннер, чтобы предста­вить ложную информацию о службе. Пример ниже демонстрирует подобный такой подход: сервер поддерживает версию 2.0, но его реализация неизвестна:
$ telnet 192.168.189.2 22 Trying 192.168.189.2... Connected to 192.168.189.2. Escape character is '^]'. SSH-2.0-0.0.0

4.3.1. Получение ключей хоста RSA и DSA

Сценарий ssh-hostkey в Nmap служит для извлечения значения открытого ключа с сервера, как показано в примере ниже. Ключи SSH уникальны для сер­вера, поэтому этот материал также можно использовать для идентификации систем с множественными подключениями:
root@kali:~# nmap -Pn -n -p22 -A 192.168.0.12 Starting Nmap 6.46 ( http://nmap.org ) at 2014-11-14 11:21 UTC Nmap scan report for 192.168.0.12 PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 5.3 (protocol 2.0) | ssh-hostkey: | 1024 6d:c9:1f:94:0b:ca:db:27:24:c2:d1:80:26:5b:0d:4d (DSA) | ssh-dss AAAAB3NzaC1kc3MAAACBAJw3oACWDJW0QZTa+DYPuZimBq6cVAJNYpnRV4bfOS/Ehkp6NTT4P XX5G2h06by 5D4FPzIwW8pWePxdtWLkzwnt4ypIUhET1JiSvhcR8Tu/a0uW/DvV+k4Qh8t3sQE2dyD2m6Qq+ 66Y37CAsgo DpxxEuoos3cqt8b9AL75hn1H/LAAAAFQC/YpdO+5skoi9mqs/JUp9SS2xCDQAAAIB6JB3BidO P+L/w1HCaH nr0KV/qhIBt6Z6sgIkqd33ACixlJ+PKe+XvLVGtQINRdAGDhGXOBFPYrXQTMI/TkHDba/O0t5 8CW7i13reh b9GSJdy1c8kNHi3mjXJ+32jAE4rMd5ijT8WcZIjOTFcbuDss9fU0kktLIt5SbDnC0on4UQAAA IADcNvbH4r Kn1LsJdiKMhbNix40D7h864lj/6OCt8LxHTlQ0h1nuFzFjTnVyNpT01uWw06PO0SChhd/tLGA DquPWcdaBq
70
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]