Иллюстрированный самоучитель по Secure Web

         

сканирования утилиты netcat не работает


Метод UDP- сканирования утилиты netcat не работает в операционной системе Windows NT, поэтому пользователям этой ОС не стоит доверять полученным результатам.

# Алгоритм выявления факта сканирования

# Автор - Стюарт Мак-Клар (Stuart McClure)

# Данный алгоритм выявляет неудачные попытки сканирования портов,

# которые приводят к генерации сообщений ACK/RST.
В процессе настройки

# можно поэкспериментировать со значениями

# maxcount и maxtime.

port_schema = library_schema:new( 1, ["time", "ip", "ip",
"int"],

scope() };

time = 0;

count = 0;

maxcount =2; t Максимально допустимое количество ACK/RST.

maxtime =5; tt Максимально допустимое время, в течение

# которого может достигаться значение maxcount.
source = 0; port = 0; target = 0;

filter portscan ip ( )

{

if (tcp.is)

(

# Проверка АСК, RST и источника поступления.

if ( byte(ip.blob, 13) == 20 )
# Установлены флаги АСК, RST

{

count = count + 1;

source = ip.dest;
target = ip.source;
port = tcp.sport;
time = system.time;

} } on tick = timeout
( sec: maxtime, repeat )
call checkout;

}

func checkout {

if (count >= maxcount) {

echo("Попытка сканирования порта,
Время: ", time, "\n); record system.time, source, target,
port to the_recorder_portscan; count = 0; }

else

count = 0;

}

the_recorder_portscan=recorder("
bin/histogram packages/sandbox/portscan.cfg",

"port_schema"

);

Для выявления попыток сканирования портов можно также воспользоваться утилитой snort (www.snort.org) (см. также http://spyjurenet.com/linuxrc.org/projects/ snort/). Как вы могли догадаться, эта утилита является одной из предпочитаемых нами программ IDS (заметим, что ее версии 1.x не позволяют обнаруживать фрагментацию пакетов). Вот пример листинга, содержащего данные о попытке сканирования портов.

[**] spp_portscan: PORTSCAN DETECTED from 192.168.1.10 [**]

05/22-18:48:53.681227

[**] spp_portscan: portscan status from 192.168.1.10: 4 connections

Содержание  Назад  Вперед