'

АБСОЛЮТНО НЕВИДИМОЕ сканирование портов с поддельным IP-адресом

Понравилась презентация – покажи это...





Слайд 0

АБСОЛЮТНО НЕВИДИМОЕ сканирование портов с поддельным IP-адресом © Thomas Olofsson, C.T.O, Defcom. Алексей Волков, © 2003


Слайд 1

Основные вопросы: Техника TCP ip - хэндшейкинга Техника традиционных методов сканирования ID-последовательности и их предсказание Сканирование с подменой IP в теории и на практике Исходный код и примеры Демонстрация Ответы на вопросы


Слайд 2

Техника TCP - хэндшейкинга Определения Заголовок Tcp Традиционная схема 3-х стороннего хэндшейкинга


Слайд 3

Определения Открытое соединение между двумя компьютерами в протоколе TCP/IP называется сокетом и определяется: IP-адресом источника Номером порта источника IP-адресом приемника Номером порта приемника Начальным значением SEQ источника Начальным значением SEQ приемника И номером ID который увеличивается с каждым переданным пакетом 2.6.1.1


Слайд 4

Заголовок TCP пакета 16-bit source port number 16-bit destination port number 32-bit sequence number 32-bit acknowledgement number length unused flags 16-bit window size 16-bit TCP checksum 16-bit urgent offset Options (if any) Data (if any)


Слайд 5

TCP/IP-хэндшейкинг жертва атакующий syn Src ip,Dst ip Src prt, Dst Prt Syn = in seq# Ack = NULL Flags = S Src ID = src ID + 1


Слайд 6

TCP/IP - хэндшейкинг цель атакующий syn Src ip,Dst ip Src prt, Dst Prt Syn = src seq# Ack = NULL Flags = S Syn / Ack Src ip,Dst ip Src prt, Dst Prt Syn = Dst seq# Ack = src seq# +1 Flags = Dst ID = Dst ID + 1


Слайд 7

TCP/IP-хэндшейкинг цель атакующий syn Src ip,Dst ip Src prt, Dst Prt Syn = src seq# Ack = dst seq# +1 Flags = A Src ID = src ID + 1 Syn / Ack Ack


Слайд 8

Установление сокета A B SYN (seqa) SYN/ACK (seqb/ack= seqa+1) ACK (ack= seqb+1)


Слайд 9

Традиционное сканирование цель атакующий syn Syn / Ack Ack


Слайд 10

цель атакующий syn Syn / Ack Невидимое SYN-сканирование


Слайд 11

Невидимое SYN-сканирование 2 цель атакующий syn Syn / Ack Rst


Слайд 12

Что такое IPID? Специальным образом сгенерированная последовательность, число, характеризующее номер пакета. Используется для упрощения процедуры «сборки» пакетов на стороне приемника после фрагментации. Увеличивается с каждым посланным пакетом. Существуют различные схемы увеличения этого номера.


Слайд 13

Что такое ID – флаг ? Идентифицирует каждую TCP-сессию. В некоторых случаях используется для «сборки» пакетов Счетчик ID увеличивается с каждым посланным пакетом Его содержат все пакеты, включая RST


Слайд 14

Предсказание значения ID-флага Большинство UNIX-систем дают случайное или псевдо-случайное приращение этому счетчику. До сегодняшнего дня не было случая, чтобы ID-флаг представлял угрозу с точки зрения безопасности. Windows 95 увеличивает id# на 1 Windows 2000 увеличивает id# на 254 Вот почему в этих ОС применяется обратный порядок бит в id#.


Слайд 15

«Поддельное» сканирование в теории Постоянно опрашивая ложный хост на предмет увеличения его id можно увидеть, отправил ли сканируемый хост syn/ack или reset. Анализируя это можно определить, какой порт открыт, а какой нет На стороне сканируемого хоста эта операция абсолютно невидима.


Слайд 16

«Поддельное» сканирование в теории Поскольку известно, что Windows увеличивает значение id# при отправке пакета, опрашивая хост, можно определить сколько пакетов он передал между нашими тестами Это производится путем мониторинга увеличения ID#


Слайд 17

«Поддельное» сканирование в теории Если порт открыт, хост или сервер ответит пакетом syn/ack Если порт закрыт, в ответ придет rst


Слайд 18

«Поддельное» сканирование в теории Если хост принял syn ack от неизвестного источника, он отправляет в ответ rst Если хост принял rst пакет от неизвестного источника, он НЕ ОТВЕЧАЕТ на пакет.


Слайд 19

«Поддельное» сканирование на практике Или как все это работает


Слайд 20

Представляем участников Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1


Слайд 21

Зачем трое? Цель Атакующий Ложный хост www.anycompany.com:80 unknowing.com 3vil.org


Слайд 22

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий Ложный хост www.anycompany.com:80 unknowing.com 3vil.org Syn:80


Слайд 23

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий Ложный хост www.anycompany.com:80 unknowing.com 3vil.org Syn/ack


Слайд 24

Зачем это надо? Теперь атакующему известно начальное значение ID# ложного хоста и характер его изменения


Слайд 25

Шаг 2 (подделываем источник) Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1 Syn src = 172.0.0.1 Dst = 192.0.0.1


Слайд 26

Шаг 3 (сброс ответов) Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1 Syn/Ack src = 192.0.0.1 Dst = 172.0.0.1


Слайд 27

Шаг 3 (сброс ответов) Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1 Rst src == 172.0.0.1 Dst = 192.0.0.1


Слайд 28

Шаг 4 (тест ID ложного хоста) Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1 Syn:80


Слайд 29

Шаг 4 (тест ID ложного хоста) Цель Атакующий Ложный хост 10.0.0.1 192.0.0.1 172.0.0.1 Syn:80 Syn/ack


Слайд 30

Если порт открыт: Значение ID будет увеличено. Смотрим пример:


Слайд 31

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий unknowing.com 3vil.org Syn:80 Ложный хост ID =0 172.0.0.1


Слайд 32

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий unknowing.com 3vil.org Syn/ack Ложный хост ID =1 172.0.0.1


Слайд 33

Шаг 2 (подделываем источник) Цель Атакующий Ложный хост ID =1 10.0.0.1 192.0.0.1 172.0.0.1 Syn src = 172.0.0.1 Dst = 192.0.0.1


Слайд 34

Шаг 3 (сброс ответов) Цель Атакующий 10.0.0.1 192.0.0.1 Syn/Ack src = 192.0.0.1 Dst = 172.0.0.1 Ложный хост ID =1 172.0.0.1


Слайд 35

Шаг 3 (сброс ответов) Цель Атакующий 10.0.0.1 192.0.0.1 Rst src == 172.0.0.1 Dst = 192.0.0.1 Ложный хост ID =2 172.0.0.1


Слайд 36

Шаг 4 (тест ID ложного хоста) Цель Атакующий 10.0.0.1 192.0.0.1 Syn:80 Ложный хост ID =2 172.0.0.1


Слайд 37

Шаг 4 (тест ID ложного хоста) Цель Атакующий 10.0.0.1 192.0.0.1 Syn:80 Syn/ack Ложный хост ID =3 172.0.0.1


Слайд 38

Если порт закрыт: Значение ID не увеличивается. Смотрим пример:


Слайд 39

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий unknowing.com 3vil.org Syn:80 Л.Х. ID =0 172.0.0.1


Слайд 40

Первый шаг (синхронизация с id# ложного хоста) Цель Атакующий unknowing.com 3vil.org Syn/ack Л.Х. ID =1 172.0.0.1


Слайд 41

Шаг 2 (подделываем источник) Цель Атакующий Л.Х. ID =1 10.0.0.1 192.0.0.1 172.0.0.1 Syn src = 172.0.0.1 Dst = 192.0.0.1


Слайд 42

Шаг 3 (сброс ответов) Цель Атакующий 10.0.0.1 192.0.0.1 Rst src = 192.0.0.1 Dst = 172.0.0.1 Л.Х. ID =1 172.0.0.1


Слайд 43

Шаг 4 (тест ID ложного хоста) Цель Атакующий 10.0.0.1 192.0.0.1 Syn:80 Л.Х. ID =1 172.0.0.1


Слайд 44

Шаг 4 (тест ID ложного хоста) Цель Атакующий 10.0.0.1 192.0.0.1 Syn:80 Syn/ack Л.Х. ID =2 172.0.0.1


Слайд 45

Итоги: Постоянно опрашивая ложный хост на предмет увеличения его id можно увидеть, отправил ли сканируемый хост syn/ack или reset. Анализируя это можно определить, какой порт сканируемого хоста открыт, а какой нет На стороне сканируемого хоста эта операция абсолютно невидима.


Слайд 46

Недостатки этой техники Если ложный хост активен и имеет несколько подключений, значение id# будет увеличиваться для каждого отправляемого пакета. Это приведет к ложным «открытым» портам. Этого можно избежать, отправляя несколько тестов на один порт. Затем вычислить увеличение Порт будет открыт, если увеличение будет > (#число_отпр_пакетов*255)/2


Слайд 47

Шаг 2 (подделываем источник) target attacker Spoof host ID =1 10.0.0.1 192.0.0.1 172.0.0.1 (Syn src = 172.0.0.1 Dst = 192.0.0.1) * 20


Слайд 48

Шаг 3 (сброс ответов) target attacker 10.0.0.1 192.0.0.1 Syn /Ack src = 192.0.0.1 Dst = 172.0.0.1 Spoof host ID=1+20 172.0.0.1


Слайд 49

Вот и все!!! Теперь наш хост успешно просканирован. © Thomas Olofsson, C.T.O, Defcom. Эта техника реализована в сканере RuNmap v. 3.27 © 2003 Алексей Волков alex@cherepovets-city.ru © 2003 Insecure.COM LLC http://www.cherepovets-city.ru/insecure


×

HTML:





Ссылка: