Сколько времени потребуется для выполнения сканирования различных портов на всех 65536 портах?

1233
rshah

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

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

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

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

1
Итак, если у вас есть nmap и вы используете его, почему бы просто не протестировать его? 6 лет назад 0
Ну, Nmap может сделать все это, но мне было интересно, есть ли какие-либо уравнения или пропорции, которые я мог бы также использовать для построения графиков, как если бы я не использовал Nmap, а 6 лет назад 0
Вы можете увеличить скорость. Это также зависит от количества переходов и скорости сети. Просмотрите nmap [методы сканирования портов] (https://nmap.org/book/man-port-scanning-techniques.html). Biswapriyo 6 лет назад 0

1 ответ на вопрос

0
Spiff

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

Итак, давайте предположим, что сканер и цель находятся в одном и том же гигабитном 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 секунд.

Есть ли какие-либо четкие корреляции относительно времени сканирования? rshah 6 лет назад 0