
- •Воронеж 2008
- •Воронеж 2008
- •Введение
- •1 Подбор пароля
- •1.1 Общие понятия парольной защиты
- •1.1.1 Парольная система
- •1.1.2 Методы подбора паролей
- •1.1.3 Методы количественной оценки стойкости паролей
- •1.2 Парольная защита операционных систем
- •1.2.1 Подбор паролей в ос Windows
- •1.2.1.1 База данных учетных записей пользователей
- •1.2.1.2 Хранение паролей пользователей
- •1.2.1.3 Использование пароля
- •1.2.1.4 Возможные атаки на базу данных sam
- •1.2.2 Подбор паролей в ос unix
- •1.3 Классификация и принцип работы программного обеспечения для подбора паролей
- •1.3.1 Подбор паролей в oc Windows
- •1.3.2 Подбор паролей в oc unix
- •1.3.3 Подбор паролей в архивах zip, rar и arj
- •1.3.4 Подбор паролей документов ms Office
- •1.3.5 Подбор паролей pdf документов
- •1.4 Противодействие подбору паролей
- •1.4.1 Требования к паролю
- •1.4.2 Правила назначения/изменения паролей
- •1.4.3 Требования к генерации паролей
- •1.4.4 Хранение пароля пользователем
- •1.4.5 Хранение паролей компьютерной системой
- •1.4.6 Противодействие попыткам подбора паролей
- •1.4.7 Защита Windows nt и Unix от подбора паролей
- •2.1.2 Протокол tcp
- •2.1.2.1 Функции протокола tcp
- •2.1.2.2 Базовая передача данных
- •2.1.2.3 Разделение каналов
- •2.1.2.4 Управление соединениями
- •2.1.2.5 Заголовок тср-сегмента
- •2.1.2.6 Состояния соединения
- •2.2 Основные методы, применяемые при сканировании портов
- •2.2.1 Методы сканирования tcp-портов
- •2.2.1.1 Методы открытого сканирования
- •2.2.1.1.1 Метод icmp-сканирования
- •2.2.1.1.2 Сканирование tcp-портов функцией connect()
- •2.2.1.1.3 Сканирование tcp-портов флагом syn
- •2.2.1.1.4 Сканирование tcp-портов флагом fin
- •2.2.1.1.5 Сканирование с использованием ip-фрагментации
- •2.2.1.1.6 Сканирование tcp-портов методом reverse-ident (обратной идентификации)
- •2.2.1.1.7 Сканирование Xmas
- •2.2.1.1.8 Null сканирование
- •2.2.1.2 Методы "невидимого" удаленного сканирования
- •2.2.1.2.1 Скрытая атака по ftp
- •2.2.1.2.2 Сканирование через proxy-сервер
- •2.2.1.2.3 Скрытное сканирование портов через системы с уязвимой генерацией ip id
- •2.2.1.2.3.1 Исторические предпосылки
- •2.2.1.2.3.2 Описание базового метода ip id сканирования
- •2.2.1.2.3.3 Исследование правил и обход брандмауэра при сканировании
- •2.2.1.2.3.4 Сканирование машин с приватными адресами
- •2.2.1.2.3.5 Использование ip id при сканирование udp сервисов за брандмауэром
- •2.2.2 Методы сканирования udp-портов
- •2.2.2.1 Сканирование udp-портов проверкой icmp-сообщения «Порт недостижим»
- •2.2.2.2 Сканирование udp-портов с использованием функций recvfrom() и write()
- •2.3.1 Сканирование портов в ос семейства Windows
- •2.3.2 Сканирование портов в ос семейства Unix
- •2.4 Защита от сканирования портов
- •3 Анализ сетевого трафика
- •3.1 Анализ сетевого трафика сети Internet
- •3.1.1 Ложные arp-ответы
- •3.1.2 Навязывание ложного маршрутизатора
- •3.1.3 Атака при конфигурировании хоста
- •3.1.4 Атака на протоколы маршрутизации
- •3.2 Протокол telnet
- •3.2.1 Протокол ftp
- •3.2.3 Программы анализаторы сетевого трафика (сниффиры)
- •3.2.4 Принцип работы сниффира
- •3.3 Методы противодействия сниффирам
- •3.3.1 Протокол ssl
- •3.3.2 Протокол skip
- •3.3.3 Устройство обеспечения безопасности локальной сети skipBridge
- •4 Внедрение ложного доверенного объекта
- •4.1 Особенности атаки «Внедрение ложного доверенного объекта»
- •4.2 Внедрение ложного объекта путем использования недостатков алгоритмов удаленного поиска
- •4.2.1.1 Протокол arp и алгоритм его работы
- •4.2.1.2 Техника выполнения arp-spoofing
- •4.2.1.3 Методы обнаружения
- •4.2.1.4 Методы противодействия
- •4.2.2.1 Принцип работы Domain Name System
- •4.2.2.2 Внедрение dns-сервера путем перехвата dns-запроса
- •4.2.2.3 «Шторм» ложных dns ответов на атакуемый хост
- •4.2.2.4 Перехват dns-запроса или создание направленного «шторма» ложных dns-ответов непосредственно на атакуемый dns-сервер
- •4.2.2.5 Обнаружение и защита от внедрения ложного dns-сервера
- •4.3.1.2 Внедрение ложного доверенного объекта путем навязывания ложного маршрута с помощью протокола icmp
- •4.3.1.3 Обнаружение и методы противодействия
- •5 Отказ в обслуживании
- •5.1 Модель DoS атаки
- •5.1.1 Отказ в обслуживании (DoS)
- •5.1.2 Распределенный отказ в обслуживании (dDoS)
- •5.2.1.1 Описание утилиты для реализации icmp – флуда и атаки Smurf
- •5.2.1.2 Реализация атаки icmp-flooding, на основе отправки icmp-пакетов
- •5.2.1.3 Реализация атаки Smurf
- •5.2.3 Низкоскоростные dos-атаки
- •5.2.3.1 Механизм таймаута tcp-стека
- •5.2.3.2 Моделирование и реализация атаки
- •5.2.3.2.1 Минимальная скорость DoS-атаки
- •5.2.3.3 Многопоточность и синхронизация потоков
- •5.2.3.5 Атаки в сети интернет
- •5.2.4 Syn атака
- •5.3 Анализ средств и методов сетевой защиты
- •5.3.1 Настройка tcp/ip стека
- •5.3.4 Межсетевые экраны (FireWall)
- •5.3.5 Системы обнаружения атак (ids)
- •5.3.6 Система Sink Holes
- •Заключение
- •Список информационных источников
- •394026 Воронеж, Московский просп., 14
2.3.1 Сканирование портов в ос семейства Windows
Для сканирования портов в операционной системе Windows существует большое количество программ. Наиболее оптимальной является программа Nmap с графической надстройкой Zenmap.
Программа Nmap предназначена для сканирования сетей с любым количеством объектов, определения состояния объектов сканируемой сети, а также портов и соответствующих им служб. Для этого Nmap использует много различных методов сканирования, таких, как UDP, TCP connect(), TCP SYN, FTP proxy, Reverse-ident, ICMP (ping), FIN, ACK, Xmas tree, SYN и NULL-сканирование.
Nmap также поддерживает большой набор дополнительных возможностей, а именно: определение операционной системы удаленного хоста с использованием отпечатков стека TCP/IP, "невидимое" сканирование, динамическое вычисление времени задержки и повтор передачи пакетов, параллельное сканирование, определение неактивных хостов методом параллельного ping-опроса, сканирование с использованием ложных хостов, определение наличия пакетных фильтров, прямое (без использования portmapper) RPC-сканирование, сканирование с использованием IP-фрагментации, а также произвольное указание IP-адресов и номеров портов сканируемых сетей [9].
Результатом работы Nmap является список отсканированных портов удаленной машины с указанием номера и состояния порта, типа используемого протокола, а также названия службы, закрепленной за этим портом. Порт характеризуется тремя возможными состояниями: "открыт", "фильтруемый" и "нефильтруемый". Состояние "открыт" означает, что удаленная машина прослушивает данный порт. Состояние "фильтруемый" означает, что брандмауэр, пакетный фильтр или другое устройство блокирует доступ к этому порту и Nmap не смог определить его состояние. "Нефильтруемый" означает, что по результатам сканирования Nmap воспринял данный порт как закрытый, при этом средства защиты не помешали Nmap определить его состояние. Это состояние Nmap определяет в любом случае (даже если большинство сканируемых портов хоста фильтруются).
В зависимости от указанных опций, Nmap также может определить следующие характеристики сканируемого хоста: метод генерации TCP ISN, имя пользователя (username) владельца процесса, зарезервировавшего сканируемый порт, символьные имена, соответствующие сканируемым IP-адресам и т.д [5].
Zenmap — официальный графический интерфейс пользователя для программы Nmap Security Scanner. Программа написана на языке Python, и работает на платформах, на которых работают Python и nmap. Распространяется на условиях свободной GNU General Public License.
Часто используемые настройки сканирования могут быть сохранены как профили для повторного использования. Мастер команд поддерживает интерактивное создание командных строк Nmap. Сканированные результаты сохраняются и могут быть просматриваться позже, сравниваться с другими результатами на факт изменений. Результаты сохраняются в поисковой базе данных. Внешний вид работы программы представлен на рисунок 2.24.
Рисунок 2.24 - Внешний вид работы программы Zenmap
Для просмотра содержимого в отсылаемых пакетах применяются декодеры протоколов, с помощью которых можно просматривать заголовки и содержимое сетевых пакетов в читаемом виде. Sniffer Pro LAN позволяет анализировать сетевой трафик в реальном времени. После запуска Sniffer переводит сетевой интерфейс в режим прослушивания и накапливает статистическую информацию о трафике, позволяя отображать ее в табличном или графическом виде. Важной особенностью пакета Sniffer Pro LAN является возможность анализа сетевого трафика за длительный период времени с представлением данных в графическом формате. Sniffer Pro LAN собирает и накапливает статистику, которая может быть отображена в реальном времени в виде "моментального снимка" сетевой активности, сохранена для дальнейшего использования или экспортирования. На рисунке 2.25 представлен внешний вид окна, в котором отображаются результаты работы программы.
Рисунок 2.25 - Внешний вид работы программы Sniffer Pro LAN
Для сканирования портов программой Zenmap необходимо с помощью программы-мастера создать специальные файлы сценариев, в которых указываются методы сканирования. Далее, указав адрес назначения, производится опрос портов. Например, результаты работы могут выглядеть следующим образом:
Starting Nmap 4.62 ( http://nmap.org ) at 2008-04-23 16:30 (Interesting ports on 192.168.50.254:
Not shown: 1699 filtered ports
PORT STATE SERVICE
53/tcp open domain
88/tcp open kerberos-sec
135/tcp open msrpc
389/tcp open ldap
445/tcp open microsoft-ds
464/tcp open kpasswd5
593/tcp open http-rpc-epmap
636/tcp open ldapssl
1026/tcp open LSA-or-nterm
1027/tcp open IIS
1723/tcp open pptp
2301/tcp open compaqdiag
3268/tcp open globalcatLDAP
3269/tcp open globalcatLDAPssl
3389/tcp open ms-term-serv
8080/tcp open http-proxy
MAC Address: 00:1C:C4:79:A1:60 (Hewlett Packard)
Nmap done: 1 IP address (1 host up) scanned in 82.328 seconds
Если определить открытые порты не удалось, результаты могут выглядеть так:
Starting Nmap 4.62 ( http://nmap.org ) at 2008-04-23 16:38 (All 1715 scanned ports on 192.168.50.252 are closed)
MAC Address: 00:1C:C4:79:A1:60 (Hewlett Packard)
Nmap done: 1 IP address (1 host up) scanned in 8.640 seconds
Применяя метод ICMP сканирования, полученные данные выглядят так:
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2008-04-25 12:40 EDT
Host 192.168.0.10 appears to be up.
MAC Address: 00:30:48:11:AB:5A (Supermicro Computer)
Nmap finished: 1 IP address (1 host up) scanned in 0.778 seconds
Raw packets sent: 2 (68B) | Rcvd: 1 (46B)#
Метод TCP connect:
Starting nmap 3.81 ( http://www.in secure.org/nmap:/) at 2008-05-10 12:30 EDT
Initiating Connect() Scan against 192.168.0.10 [1663 ports] at 12:30 Discovered open port 3389/tcp on 192.168.0.10
Discovered open port 80/tcp on 192.168.0.10
Discovered open poit 3306/tcp on 192.168.0.10
Discovered open port 445/tcp on 192.168.0.10
Discovered open port 139/tcp on 192.168.0.10
Discovered open port 520/tcp on 192.168.0.10
Discovered open port 135/tcp on 192.168.0.10
The Connect() Scan took 1.45s to scan 1663 total ports.
Host 192.168.0.10 appears to be up ... good.
Interesting ports on 192.168.0.10:
(The 1656 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
520/tcp open efs
3306/tcp open mysql
3389/tcp open ms-term-serv
MAC Address: 00:30:48:11:AB:5A (Supermicro Computer)
Nmap finished: 1 IP address (1 host up) scanned in 2.242 seconds
Raw packets sent: 2 (68B) | Rcvd: 1 (46B)
Метод SYN сканирование:
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2008-05-10 12:25 EDT Initiating SYN Stealth Scan against 192.168.0.10 [1663 ports] at 12:25 Discovered open port 80/tcp on 192.168.0.10
Discovered open port 3389/tcp on 192.168.0.10
Discovered open piort 3306/tcp> on 192.168.0.10
Discovered open port 139/tcp on 192.168.0.10
Discovered open port 135/tcp on 192.168.0.10
Discovered open port 520/tcp on 192.168.0.10
Discovered open port 445/tcp on 192.168.0.10
The SYN Stealth Scan took 1.35s to scan 1663 total ports.
Host 192.168.0.10 appears to be up ... good.
Interesting ports on 192.168.0.10:
(The 165 6 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
80/tcp open http
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
520/tcp open efs
3306/tcp open mysql
3389/tcp open ms-term-serv
MAC Address: 00:30:48:11:AB:5A (Supermicro Computer)
Nmap finished: 1 IP address (1 host up) scanned in 2.117 seconds Raw packets sent: 1705 (68.2KB) | Rcvd: 1664 (76.5KB)
Метод FIN сканирование:
Starting nmap 3.81 (http://www.insecure.org/nmap/) at 2008-05-10 21:17 EDT
Initiating FIN Scan against 192.168.0.7 [1663 ports] at 21:17
The FIN Scan took 1.51s to scan 1663 total ports.
Host 192.168.0.7 appears to be up ... good.
Interesting ports on 192.168.0.7:
(The 1654 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
514/tcp open|filtered she
ll886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.276 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
Метод Xmas сканирование:
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2008-05-10 21:18 EDT
Initiating XMAS Scan against 192.168.0.7 [1663 ports] at 21:18
The XMAS Scan took 1.55s to scan 1663 total ports.
Host 192.168.0.7 appears to be up ... good.
Interesting ports on 192.168.0.7:
(The 165 4 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open filtered ssh
23/tcp open filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open filtered rpcbind
514/tcp open filtered shell
886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.432 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
Метод Null сканирование:
Starting nmap 3.81 ( http://www.insecure.org/nmap/ ) at 2008-05-10 21:19 EDT
Initiating NULL Scan against 192.168.0.7 [1663 ports] at 21:19
The NULL Scan took 1.42s to scan 1663 total ports.
Host 192.168.0.7 appears to be up ... good.
Interesting ports on 192.168.0.7:
(The 165 4 ports scanned but not shown below are in state: closed)
PORT STATE SERVICE
21/tcp open|filtered ftp
22/tcp open|filtered ssh
23/tcp open|filtered telnet
79/tcp open|filtered finger
110/tcp open|filtered pop3
111/tcp open|filtered rpcbind
514/tcp open|filtered shell
886/tcp open|filtered unknown
2049/tcp open|filtered nfs
MAC Address: 00:03:47:6D:28:D7 (Intel)
Nmap finished: 1 IP address (1 host up) scanned in 2.251 seconds
Raw packets sent: 1674 (66.9KB) | Rcvd: 1655 (76.1KB)
Используя программу Sniffer Pro LAN можно проанализировать отсылаемые и принимаемые пакеты при различных методах сканирования. Например, при сканировании рабочей станции, которая в данный момент не доступна, методом ICMP результат будет следующим:
ICMP: Echo
Если машина подключена к сети:
ICMP: Echo
ICMP: Echo reply
При сканировании методом TCP connect, ответ с закрытого порта:
TCP: D=80 S=41441 SYN SEQ=3365539736 LEN=0 WIN=5840
TCP: D=41441 S=80 RST ACK=3365539737 WIN=0
Открытый порт:
TCP: D=21 S = 2900 SYN SEQ=121585238 LEN=0 WIN=65535
TCP: D=2900 S = 21 SYN SEQ=121585239 SEQ=2001273213 LEN=0 WIN=33580
TCP: D=21 S = 2900 ACK=2001273214 WIN=65535
TCP: D=21 S = 2900 RST ACK=2001273214 WIN=0
SYN сканирование. Закрытый порт:
TCP: D=113 S=57283 SYN SEQ=2360927338 LEN=0 WIN=3072
TCP: D=57283 S=113 RST ACK=2360927339 WIN=0
SYN сканирование. Открытый порт:
TCP: D=80 S=57283 SYN SEQ=2360927338 LEN=0 WIN=3072
TCP: D=57283 S=80 SYN ACK=2360927339 SEQ=1622899389
TCP: D=80 S=57283 RST WIN=0
FIN сканирование. Закрытый порт:
TCP: D=443 S=62178 FIN SEQ=3532094343 LEN=0
TCP: D=62178 S=443 RST ACK=3532094343 WIN=0
FIN сканирование. Открытый порт:
TCP: D=23 S=62178 FIN SEQ=3532094343 LEN=0 WIN=2048
Xmas сканирование. Закрытый порт:
TCP: D=618 S=36793 FIN URG PUSH SEQ=3378228596 LEN=0 WIN=1024
TCP: D=36793 S=618 RST ACK=3378228596 WIN=0
Xmas сканирование. Открытый порт:
TCP: D=79 S=36793 FIN URG PUSH SEQ=3378228596 LEN=0 WIN=2048
Null сканирование. Закрытый порт:
TCP: D=438 S=36860 WIN=4096
TCP: D=36860 S=438 RST ACK=2135565682 WIN=0
Null сканирование. Открытый порт:
TCP: D=110 S=36860 WIN=1024