А АSaturday 7 November 2020

Nping - еще один универсальный пинглер.

Всем привет.

Я уже говорил о разных утилитах для тестирования сети, таких как iperf, hping, fping и других. Оказывается существует утилита под именем nping. Nping является частью пакета nmap и устанавливается по умолчанию. Nping имеет несколько режимов работы.

ICMP mode.

Существует несколько утилит ICMP, и большинство из них выполняют основы отправки пакета эхо-запроса, ожидания эхо-ответа и устранения задержки. Разумеется Nping включает эту функцию, как показано ниже.

admin1@admin1-VirtualBox$ sudo nping --icmp -c 2 google.com

Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-08-31 22:21 PDT

SENT (0.0794s) ICMP [172.31.0.69 > 1.1.1.1 Echo request (type=8/code=0) id=63051 seq=1] IP [ttl=64 id=16703 iplen=28 ]

RCVD (0.2469s) ICMP [1.1.1.1 > 172.31.0.69 Echo reply (type=0/code=0) id=63051 seq=1] IP [ttl=55 id=62721 iplen=28 ]

SENT (1.0800s) ICMP [172.31.0.69 > 1.1.1.1 Echo request (type=8/code=0) id=63051 seq=2] IP [ttl=64 id=16703 iplen=28 ]

RCVD (1.2969s) ICMP [1.1.1.1 > 172.31.0.69 Echo reply (type=0/code=0) id=63051 seq=2] IP [ttl=55 id=39803 iplen=28 ]


Max rtt: 216.656ms | Min rtt: 167.355ms | Avg rtt: 192.005ms

Raw packets sent: 2 (56B) | Rcvd: 2 (92B) | Lost: 0 (0.00%)

Nping done: 1 IP address pinged in 1.44 seconds


Опция -c говорит nping посылать 2 пакета вместо 5 по умолчанию.


TCP connect mode.

Проверить порт TCP очень просто с параметром --tcp-connect. С помощью этой опции вы можете изменить некоторые основные параметры TCP-соединения, такие как порт источника и назначения.

admin1@admin1-VirtualBox$ nping --tcp-connect -c 2 -p 80 google.com

Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-08-31 22:15 PDT

SENT (0.0045s) Starting TCP Handshake > google.com:80 (1.1.1.1:80)

RCVD (0.0167s) Handshake with google.com:80 (1.1.1.1:80) completed

SENT (1.0074s) Starting TCP Handshake > google.com:80 (1.1.1.1:80)

RCVD (1.0192s) Handshake with google.com:80 (1.1.1.1:80) completed


Max rtt: 12.612ms | Min rtt: 11.676ms | Avg rtt: 12.144ms

TCP connection attempts: 2 | Successful connections: 2 | Failed: 0 (0.00%)

Nping done: 1 IP address pinged in 1.02 seconds


TCP mode.

Режим TCP очень похож на режим TCР connect, но он позволяет вам управлять несколькими другими параметрами, такими как флаги пакетов и размер окна TCP системы. Ниже вы можете увидеть, как можно отправить TCP-пакет с установленным флагом SYN.

admin1@admin1-VirtualBox$ sudo nping --tcp -c 2 --flags S -p 80 google.com

Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-08-31 22:39 PDT

SENT (0.0926s) TCP 172.31.0.69:22537 > 1.1.1.1:80 S ttl=64 id=37825 iplen=40  seq=3213691949 win=1480

RCVD (0.2601s) TCP 1.1.1.1:80 > 172.31.0.69:22537 SA ttl=55 id=0 iplen=44  seq=3343970569 win=65535 <mss 1460>

SENT (1.0932s) TCP 172.31.0.69:22537 > 1.1.1.1:80 S ttl=64 id=37825 iplen=40  seq=3213691949 win=1480

RCVD (1.3101s) TCP 1.1.1.1:80 > 172.31.0.69:22537 SA ttl=55 id=0 iplen=44  seq=3359595746 win=65535 <mss 1460>


Max rtt: 216.664ms | Min rtt: 167.290ms | Avg rtt: 191.977ms

Raw packets sent: 2 (80B) | Rcvd: 2 (92B) | Lost: 0 (0.00%)

Nping done: 1 IP address pinged in 1.39 seconds


UDP mode.

Тоже, но с опросом по протоколу UDP.

admin1@admin1-VirtualBox$ sudo nping --udp -c 2  -p 5001 172.31.0.25


Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-08-31 22:41 PDT

SENT (0.0977s) UDP 172.31.0.69:53 > 172.31.0.25:5001 ttl=64 id=48591 iplen=28

SENT (1.0981s) UDP 172.31.0.69:53 > 172.31.0.25:5001 ttl=64 id=48591 iplen=28

RCVD (1.3151s) UDP 172.31.0.25:5001 > 172.31.0.69:53 ttl=64 id=42729 iplen=1498


Max rtt: 216.701ms | Min rtt: 216.701ms | Avg rtt: 216.701ms

Raw packets sent: 2 (56B) | Rcvd: 1 (1.498KB) | Lost: 1 (50.00%)

Nping done: 1 IP address pinged in 1.40 seconds


Echo mode.

Самая интересная особенность nping - "эхо-режим". Это отличная функция устранения неполадок в сети, которая использует сервер и клиент, которые обмениваются данными друг с другом по побочному TCP-каналу, одновременно отправляя тестовый трафик друг другу. Режим эха основан на архитектуре клиент/сервер. Оба конца запускают Nping, один из них в режиме сервера, а другой в режиме клиента. Клиент Nping выполняет начальное рукопожатие с сервером через некоторый стандартный порт (создавая побочный канал). Затем он уведомляет сервер о том, какие пакеты будут отправлены. Сервер устанавливает либеральный фильтр BPF, который перехватывает эти пакеты, и начинает их прослушивание. Когда сервер получает пакет, он инкапсулирует его (включая кадр канального уровня) в наш собственный пакет протокола и отправляет его обратно клиенту nping. По сути, это было бы похоже на запуск tcpdump на удаленном компьютере и получение от него отчета о пакетах, которые вы отправили ему с помощью Nping.

admin1@admin1-VirtualBox$ sudo nping -c 1 --echo-client "public" scanme.nmap.org

Starting Nping 0.7.40 ( https://nmap.org/nping ) at 2020-09-01 06:31 PDT

SENT (1.0132s) ICMP [172.31.0.69 > 45.33.32.156 Echo request (type=8/code=0) id=57924 seq=1] IP [ttl=64 id=51692 iplen=28 ]

CAPT (1.0774s) ICMP [99.xx.xx.xx > 45.33.32.156 Echo request (type=8/code=0) id=57924 seq=1] IP [ttl=54 id=51692 iplen=28 ]

RCVD (1.1608s) ICMP [45.33.32.156 > 172.31.0.69 Echo reply (type=0/code=0) id=57924 seq=1] IP [ttl=55 id=55773 iplen=28 ]


Max rtt: 147.395ms | Min rtt: 147.395ms | Avg rtt: 147.395ms

Raw packets sent: 1 (28B) | Rcvd: 1 (46B) | Lost: 0 (0.00%)| Echoed: 1 (46B)

Nping done: 1 IP address pinged in 2.09 seconds

где:

scanme.nmap.org - это тестовый эхо-сервер, который nmap.org поддерживает в целях тестирования.

SENT - сообщает нам, какие IP-адреса входят в исходящий тестовый трафик от клиента к серверу назначения.

CAPT - сообщает нам, что на самом деле получил целевой сервер. Целевой сервер видит исходный IP-адрес (99.xx.xx.xx), который отличается от фактического IP-адреса клиента (172.31.0.69), что указывает на наличие NAT между клиентом и сервером.

RCVD - это пакет, который клиент фактически получил от сервера.


И еще несколько примеров.

Are ports 80,443 listening on scanme.nmap.org and google.com?

$ nping -c 1 --tcp -p 80,443 scanme.nmap.org google.com

Is UDP port 123 (NTPD) open on scanme.nmap.org?

$ nping -c 1 --udp -p 123 scanme.nmap.org

Успехов.

No comments:

Post a Comment

А что вы думаете по этому поводу?

Версия на печать

Популярное