1

В настоящее время я использую Nmap для отображения локальных сетей в части моей программы, и мне было интересно, сколько времени потребуется, чтобы выполнить различные сканирования портов на всех портах?

Каково время ожидания и средний размер пакета, отправляемого для проверки, открыт ли порт (если пакеты отправляются для проверки), и есть ли какая-либо корреляция со временем, затраченным на сканирование, на основании этих и любых других факторов?

Я хотел бы иметь возможность представить их в виде графика и, возможно, проверить эти результаты.

Я знаю, что в общем случае сканирование портов UDP занимает больше времени, чем TCP, потому что оно без установления соединения и использует гораздо больше ресурсов.

1 ответ1

0

Может быть задействовано множество факторов, включая скорость канала, дуплекс, минимальный размер пакета, время обхода, задержку целевого хоста, независимо от того, задействована ли система обнаружения / предотвращения вторжений, и сколько циклов обхода конкретного сканирования тип требует, насколько занята ссылка и т. д.

Итак, давайте предположим, что сканер и цель находятся в одном и том же гигабитном Ethernet, и мы оценим теоретическое минимальное время, которое может занять сканирование 65536 портов. GigE всегда полнодуплексный, имеет минимальный размер кадра 64 байта, а после расчета обязательных межкадровых промежутков имеет максимальную частоту кадров 1 488 000 кадров минимального размера в секунду. TCP Syns, Syn-Acks, (пустые) Acks, Fins и Rsts являются кадрами минимального размера. На GigE, в котором я сейчас нахожусь, RTT составляет 0,3 мс (300 мкс), поэтому давайте предположим, что целевой хост отвечает на Syns с Syn-Ack или Rst в пределах той же задержки 0,3 мс. Далее предположим, что он ответит тем или иным; что не будет никаких "отфильтрованных" портов, для которых нам просто нужно ждать некоторого произвольного тайм-аута.

Таким образом, время отправки TCP Syns на все порты составляет:65 536/1 488 000 = 44 мс

Поскольку GigE является полнодуплексным, первые ответы начнут поступать по мере выхода более поздних Syns, но нам придется ждать 1 RTT между последним отправленным Syn и последним ответом, поэтому добавьте 1 RTT, что составляет 0.3 мс, для в общей сложности 44,3 мс.

Даже если бы у вас было сканирование, которое должно было сделать два обхода, весь ваш сетевой трафик мог бы быть выполнен менее чем за секунду.

Обратите внимание, что если целевой хост не отвечает Syns для некоторых портов, вы должны сделать свой собственный выбор, как долго устанавливать тайм-аут "без ответа" в своем собственном алгоритме. Но вы можете думать об этом как RTT. Допустим, вы хотите использовать 10-секундный таймаут. Вы все равно можете отправить все свои Syns за 44 мс, но вам, возможно, придется подождать 10 секунд с момента последнего отправленного Syn, чтобы определить, что вы вряд ли получите ответ от этого порта. Таким образом, даже в случае, если все 2 ^ 16 портов не отвечают, а время ожидания составляет 10 секунд, ваше общее время составит 44 мс + 10 секунд = 10,044 секунды.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .