Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Основы тестирования КИИ на проникновение. Учебное пособие.pdf
Скачиваний:
1
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
На самом деле утилита Nmap, запущенная с флагом -sP, отправляет не только ICMP-эхо-запросы на целевую систему, но и инициирует отправку TCP­сегментов на порты 80-й и 443-й целевой системы. Следовательно, Nmap сможет определить активен узел или нет по наличию открытых портов в системе.
Можно, например, использовать утилиту nping, входящую в комплект па­кета Nmap, чтобы выполнить простое обнаружение хоста с использованием протокол
nping --tcp google.com
а TCP:
Другим способом определения активности целевой системы является от­правка ARP-запросов. Этим методом сканирования могут быть обнаружены только компьютеры, находящиеся в одном широковещательном сегменте с хос­том, с которого выполняется сканирование. Для отсылки ARP-запросов целевой системе можно использовать команду arping:
arping 192.168.1.1 –с 1
С помощью утилиты Nmap тоже можно выполнить ARP-сканирование, используя ключ – PR:
nmap –PR 192.168.1.1
Следующая утилита – Netdiscover. Она используется для активного или пассивного ARP-сканирования сетей, в том числе беспроводных. При активном сканировании утилита использует отправку ARP-запросов, при пассивном – фиксирует получение ARP-запросов, идущих от активных систем.
Запуск активного и пассивного ARP-сканирования:
netdiscover –r 192.168.0.0/24 netdiscover –p
Другим методом сканирования узлов, находящихся в той же сети, что и хост, с которого выполняется сканирование, является обнаружение компьюте­ров, отвечающих на NetBIOS-запросы. С помощью этого метода можно выпол­нять поиск Windows-машин. Для реализации такого метода сканирования ис­пользуется утилита nbtscan:
nbtscan 192.168.15.0/24

3.2. СКАНИРОВАНИЕ ОТКРЫТЫХ ПОРТОВ И ОПРЕДЕЛЕНИЕ СЛУЖБ

Как только мы выявили активные хосты в сети, необходимо перейти к фазе определения открытых портов и запущенных сервисов на них. Сканирова­ние портов – это процесс обнаружения открытых портов протоколов TCP и UDP на целевом хосте. Открытые порты определяют службы, запущенные на устройстве и работающие в сети. Сканирование портов выполняется в целях поиска потенциальных точек входа в сист
ему. Одной из самых сложных задач
при сканировании портов является обход файерволов и механизмов обнаруже-
51
ния (IDS) и предотвращения вторжений (IPS). Главная цель при осуществлении сканирования – сделать его менее заметным. Далее мы обсудим разные методы сканирования, в том числе те, с помощью которых можно попытаться скрыть сам процесс сканирования.
Существует множество инструментов для сканирования портов, таких как
Nmap, hping3, netcat, masscan, Unicornscan и др., но мы остановимся на сканере Nmap. Основное внимание будет уделено именно этому скан
еру, поскольку это
один из наиболее мощных и популярных инструментов сканирования портов.
Nmap – бесплатный инструмент с открытым исходным кодом, который быстро и эффективно выполняет ping-разведку, сканирование портов, иденти­фикацию сервисов и операционных систем. Nmap поддерживает несколько ти­пов сканирования. Начнём с самых простых.

3.2.1. Типы сканирования портов

При сканировании портов используют два подхода: сканирование TCP­портов и UDP-портов. Сканер Nmap поддерживает широкий спектр методов сканирования, и мы обсудим некоторые из них. Формат команд при использо­вании Nmap выглядит следующим образом:
nmap [Scan Type(s)] [Options] {target specification}
Простое сканирование может быть запущено с помощью следующей ко­манды:
nmap target
Такая команда вернёт список портов, которые открыты на целевом хосте.
Мы также можем сканировать диапазон устройств, перечисляя их, либо используя нотацию CIDR, либо используя символ *.
Например:
nmap 192.168.1.1 192.168.1.2 nmap 192.168.1.1-100 nmap 192.168.1.1/24 nmap 192.168.1.*
После завершения работы утилита Nmap возвращает один из четырёх возможных статусов порта:
1) open – означает, что порт доступен, и приложение прослушивает его;
2) closed – означает, что порт недоступен, и ни одно приложение не
прослушивает его;
3) filtered – означает, что Nmap не может определить, открыт или за-
крыт порт, поскольку пакеты фильтруются; вероятно, цель находится за фай волом;
4) unfiltered – означает, что порты доступны nmap, но невозможно оп-
ределить, открыты они или закрыты.
Ключ -p можно использовать для указания портов сканирования:
ер-
nmap 192.168.1.1/24 –p 80
52

3.3. СКАНИРОВАНИЕ TCP

3.3.1. Connect-сканирование

Самый простой способ сканирования TCP-портов, обычно называемый Connect-сканированием, основан на трёхэтапном механизме установления сеан-
са в протоколе TCP. Этот механизм спроектирован таким образом, что два узла, пытающиеся установить соединение, согласуют параметры сетевого сокета
TCP-соединения перед непосредственной передачей данных. На системах с ОС Linux только пользователь с правами root, как правило, может посылать и при-
нимать «сырые» TCP-сег
менты. Для непривилегированного пользователя воз­можно инициирование только системного вызова connect. Connect-сканирова­ние портов – это попытка выполнить трёхэтапное рукопожатие с целевым уз­лом на указанном порту. Если процедура рукопожатия успешно завершена, значит, порт открыт.
Рисунок 3.1 иллюстрирует процесс Connect-сканирования:
− узел-источник отправляет SYN-сегмент на некоторый порт (напри-
мер, 80-й) целевого компьют
ера;
− если цель отвечает сегментом SYN/ACK, Nmap определяет, что кон-
кретный порт открыт на целевой машине;
− Nmap отправляет сегмент с флагом RST (Reset), чтобы закрыть со-
единение, поскольку он уже определил, что порт открыт;
− если после отправки сегмента SYN не будет получено ответа от ад-
ресата, Nmap определяет порт как фильтруемый;
− если после отправки сегмента SYN цел
евой компьютер отправляет в
ответ сегмент с флагом RST, Nmap определяет порт, как закрытый.
Connect-сканирование может быть выполнено утилитой Nmap путём ука-
зания ключа -sT .
Команда:
nmap -sT 192.168.1.100
Пример:
root@kali:~# nmap -sT 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 12:55 MSK Nmap scan report for 192.168.1.100 Host is up (0.0010s latency). Not shown: 998 closed ports PORT STATE SERVICE
22/tcp open ssh 80/tcp open http
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 0.53 seconds
Рис. 3.1. Connect-сканирование
53
Последующие примеры сканирования в режимах, поддерживаемых ути­литой Nmap, будут дополнены примерами использования других популярных утилит hping3 и netcat, если, конечно, эти утилиты поддерживают описываемые режимы.

3.3.2. SYN-cканирование (Стелс/stealth)

Сканирование SYN или стелс-сканирование – это метод сканирования TCP-портов, который предусматривает отправку сегментов SYN на порты це-
левой системы без завершения процесса рукопожатия. Если TCP-порт открыт, т.е. сегмент SYN-ACK получен в ответ от целевой машиной, завершающий сегмент ACK третьего шага рукопожатия не отправляется на целевую систему (рис. 3.2). В ранних и примитивных файерволах этот мето
д позволял обходить протоколирование сеансов, поскольку ведение журнала ограничивалось фикса­цией полностью установленных сеансов TCP. С современными файерволами такой подход, конечно, не сработает, и термин «стелс» имеет только историче­ское значение.
Рис. 3.2. SYN-cканирование
Команда для осуществления сканирования TCP SYN выглядит следую-
щим образом:
nmap -sS –n 192.168.1.100
Пример:
root@kali:~# nmap -sS 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 12:57 MSK Nmap scan report for 192.168.1.100 Host is up (0.00062s latency). Not shown: 998 closed ports PORT STATE SERVICE
22/tcp open ssh 80/tcp open http
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 1.69 seconds
Ключ -n запрещает Nmap выполнять разрешение имён (обычно использу-
ется для увеличения скорости сканирования).
Следующие виды сканирования NULL, FIN и XMAS похожи друг на дру­га. Основным преимуществом использования этих видов сканирования для тес­тирования на проникновение является возможность с их помощью обойти фай-
54

3.3.3. Другие виды сканирования

ерволы и IDS. Эти виды сканирования могут быть очень полезны, если цель имеет ОС на базе Linuх, поскольку они не работают для операционных систем на базе Windows (ОС Windows на сегменты NULL, FIN и XMAS отправляет сегмент RST, независимо от того, открыт или закрыт порт). Недостаток скани­рования NULL, FIN и XMAS заключается в том, что эти приёмы не могут точно определить открыт порт или фильтруется. Однако это можно сделать вручную с помощью других типов сканирования.
3.3.3.1. Нулевое сканирование (NULL Scan)
Нулевое сканирование выполняется путём отправки сегмента без флагов заголовка TCP (рис. 3.3). Если ответа нет, значит, порт открыт. Если в ответ по­лучен сегмент RST, это означает, что порт закрыт или фильтруется.
Рис. 3.3. Нулевое сканирование
Команда:
nmap -sN –n 192.168.1.100
Пример:
root@kali:~# nmap -sN 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 12:59 MSK Nmap scan report for 192.168.1.100 Host is up (0.00075s latency). Not shown: 998 closed ports PORT STATE SERVICE
22/tcp open|filtered ssh 80/tcp open|filtered http
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 95.51 seconds
3.3.3.2. FIN-сканирование (FIN Scan)
Флаг FIN в сегменте и соответствующий сегмент используется для закры­тия текущего активного сеанса связи (рис. 3.4). При FIN-сканировании источ­ник отправляет сегмент с флагом FIN на целевую систему. Если от целевой системы ответ не поступает, значит, порт открыт. Если целевой компьютер от­вечает сегментом RST, значит, порт закрыт.
Рис. 3.4. FIN-сканирование
55
Команда:
nmap –sF 192.168.1.100
Пример:
root@kali:~# nmap -sF 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:02 MSK Nmap scan report for 192.168.1.100 Host is up (0.0015s latency). Not shown: 998 closed ports PORT STATE SERVICE
22/tcp open|filtered ssh 80/tcp open|filtered http
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 89.95 seconds
3.3.3.3. XMAS-сканирование (XMAS Scan)
При сканировании XMAS на целевую систему отправляется сегмент с комбинацией флагов FIN, URG и PUSH (рис. 3.5). Этот тип сканирования рабо­тает так же, как сканирование FIN и NULL. Если ответа нет, порт открыт. Если целевой компьютер отвечает пакетом RST, порт закрыт.
Рис. 3.5. XMAS-сканирование
Команда:
nmap -sX 192.168.1.100
Пример:
root@kali:~# nmap -sX 192.168.0.103
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:04 MSK Nmap scan report for 192.168.0.103 Host is up (0.00072s latency). Not shown: 998 closed ports PORT STATE SERVICE
22/tcp open|filtered ssh 80/tcp open|filtered http
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 88.34 seconds
Вид сканирования TCP ACK не используется для определения состояния портов. Он обычно используется для определения правил файервола и ACL, и для определения того, способен ли файервол отслеживать состояния соедине­ния (рис. 3.6). Способ, с помощью которого осуществляется такая проверка, за­ключается в том, что источник отправляет сегмент подтверждения (ACK) вме­сто сегмента SYN. Если файервол хранит состояния соединений (т.е. являе
3.3.3.4. ACK-сканирование (TCP ACK Scan)
тся
56
Рис. 3.6. ACK-сканирование
stateful), он определит, что ранее не было отправлено SYN-сегмента, и не по­зволит сегменту ACK достичь целевого узла.
Если ответа не последовало, значит, файервол отслеживает состояния и фильтрует сегменты. Если в ответ был получен сегмент RST, значит, сегмент достиг узла назначения.
Команда:
nmap -sA 192.168.1.100
Пример:
root@kali:~# nmap -sA 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:06 MSK Nmap scan report for 192.168.1.100 Host is up (0.00060s latency). All 1000 scanned ports on 192.168.1.100 are unfiltered MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 1.88 seconds

3.4. СКАНИРОВАНИЕ UDP

Сканирование портов UDP можно использовать для определения серви­сов, которые работают по протоколу UDP. Поскольку протокол UDP не имеет понятия состояния соединения и не требует трёхэтапного установления сеанса, механизм сканирования портов UDP отличается от сканирования TCP-портов. При сканировании портов целевой системе отправляется пустой UDP-заголо­вок. Любой ответ от целевого порта означает, что порт открыт. Если порт UDP закрыт, от целевой машины придёт пакет IC
MP с типом Port Unreachable Error.
Любой другой ответ ICMP означает, что порт фильтруется.
Команда:
nmap -sU 192.168.1.100
Пример:
root@kali:~# nmap -sU 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:09 MSK Nmap scan report for 192.168.1.100 Host is up (0.0011s latency). Not shown: 996 closed ports PORT STATE SERVICE 68/udp open|filtered dhcpc 161/udp open snmp 1812/udp open|filtered radius 1813/udp open|filtered radacct MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems)
Nmap done: 1 IP address (1 host up) scanned in 1081.29 seconds
57
В этом разделе речь пойдёт об использовании Nmap для определения вер­сий служб, запущенных на портах. Эта информация поможет найти потенци­альные эксплойты, применимые для конкретной версии сервиса.
Nmap имеет базу данных, называемую nmap-services, которая содержит более 2200 общеизвестных сервисов. Обнаружение версии службы может быть выполнено путём указания параметра -sV.
Команда:

3.5. ОПРЕДЕЛЕНИЕ ВЕРСИЙ СЛУЖБ

nmap -sV 192.168.1.100
Пример:
root@kali:~# nmap -sV 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:45 MSK Nmap scan report for 192.168.1.100 Host is up (0.00084s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol
2.0) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu))
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems) Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 10.68 seconds

3.6. ПОЛУЧЕНИЕ ОТПЕЧАТКОВ ОС (OS FINGERPRINTING)

Nmap имеет встроенную функцию, называемую отпечатком ОС (OS Fin­gerprinting) (параметр -O). Эта функция пытается угадать версию операционной
системы, просматривая пакеты, полученные от целевого объекта. Операцион­ные системы часто имеют немного разные реализации стека TCP/IP в значени­ях TTL по умолчанию или размере окна TCP. Эти незначительные различия создают отпечаток ОС, который часто может быть идентифицирован утилитой Nmap. Nmap имеет базу данных, содержащую более 2600 отпечатков ОС. Ск
а­нер отправляет сегменты TCP и UDP на целевую машину, и полученный ответ сравнивается с базой данных. Если отпечаток совпадает с имеющимся, Nmap определяет версию ОС цели.
Команда:
nmap -O 192.168.1.100
Пример:
root@kali:~# nmap -O 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:47 MSK Nmap scan report for 192.168.1.100 Host is up (0.0011s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh
58
80/tcp open http MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems) Device type: general purpose
Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.2 - 3.19
Network Distance: 1 hop OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 5.73 seconds
Также можно использовать ключ -A для выполнения как определения ОС,
так и версии служб:
nmap -n -A 192.168.1.100
Пример:
root@kali:~# nmap -A 192.168.1.100
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2017-05-09 13:49 MSK Nmap scan report for 192.168.1.100 Host is up (0.0015s latency). Not shown: 998 closed ports PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.8 (Ubuntu Linux; protocol
2.0) | ssh-hostkey: | 1024 3e:b5:aa:3d:3d:f6:dd:04:b1:66:0a:7f:f0:3a:3c:56 (DSA) | 2048 8c:ae:d5:35:23:c4:59:d8:c9:4c:a4:78:cd:98:c4:0c (RSA) |_ 256 fe:7d:55:88:64:cd:d2:7e:17:49:36:51:9c:0a:c2:a1 (ECDSA) 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |_http-server-header: Apache/2.4.7 (Ubuntu) |_http-title: Apache2 Ubuntu Default Page: It works
MAC Address: 08:00:27:D8:85:49 (Cadmus Computer Systems) Device type: general purpose
Running: Linux 3.X OS CPE: cpe:/o:linux:linux_kernel:3 OS details: Linux 3.2 - 3.19
Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE HOP RTT ADDRESS 1 1.49 ms 192.168.0.103
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 13.10 seconds

3.7. ВЫВОД РЕЗУЛЬТАТОВ

Сканер Nmap имеет различные опции для интерпретации вывода в удоб­ном для пользователя виде и читаемом формате. Сканер поддерживает не­сколько типов форматов вывода. Рассмотрим три популярных формата:
1. Нормальный формат (Normal Format).
2. Формат утилиты grep (Greppable Format).
3. Формат XML (XML Format).
Нормальный формат используется для вывода результатов работы скане­ра в любой текстовый файл. Ниже приведён пример простого сканирования SYN. Р
езультаты будут выведены в файл с именем out.txt:
59
nmap -sS -PN 192.168.1.100 -oN out.txt
В операционных системах на базе Linux есть очень полезная команда grep, которая позволяет искать конкретные строки в выводе (например, осуще-
ствлять фильтрацию по портам и хостам). В формате grepable результаты пред­ставляются с информацией по одному хосту в каждой строке.
Пример:
nmap -sS 192.168.15.1 -oG out
Формат XML является наиболее удобным форматом вывода результатов работы Nmap. Причина в том, что вывод в формате XML, созданный утилитой
Nmap, может быть легко перенесён в другие приложения, например dradis и armitage.
Пример:
nmap -sS 192.168.15.1 -oX out.xml

3.8. МЕТОДЫ ОБХОДА ФАЕЙРВОЛОВ/IDS

Методы сканирования, которые обсуждались ранее, легко обнаруживают­ся фаейрволами и IPS/IDS. А такие методы сканирования, как XMAS, FIN и NULL, не являются достаточно точными. Кроме того, они не работают для опе­рационных систем семейства Windows, поэтому имеют ограниченные возмож­ности обхода фаейрволов и IPS/IDS.
Далее будут рассмотрены некоторые подходы, которые можно использо­вать для обхода обнаружения сканирования фаейрволами. Универсального ре­шения данной задачи нет. Одни методы могут работать c некоторыми ве
рсиями фаейрволов и IPS/IDS, а с другими – нет. Всё зависит от того, как фаейрволы были сконфигурированы.
Кратко рассмотрим некоторые способы обхода фаейрволов:
1. Техника таймингов.
2. Использование фрагментированных пакетов.
3. Изменение порта источника.
4. Изменение MTU.
5. Использование неверных контрольных сумм.
3.8.1. Тех
ника таймингов
Техника таймингов – один из простых способов обхода фаейрволов. Идея этого метода состоит в том, чтобы отправлять пакеты с большими задержками так, чтобы процесс сканирования не удавалось обнаружить файерволом.
В Nmap техника таймингов используется указанием ключа -T, за которым следует число от 0 до 5. Изменение значения от -T0 до -T5 увеличивает ско­рость сканирования.
Значения таймингов:
1. T0 – Paranoid.
2. T1– Sneaky.
3. T2 – Polite.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]