nping - ابزار
تولید
بستههای
شبکه و
ابزار سنجش
ارتباط (ping)
nping
[گزینهها]
{هدفها}
برنامهٔ Nping
یک ابزار
متنباز
برای تولید
بستههای
شبکه،
تحلیل پاسخ
و
اندازهگیری
زمان پاسخ
است. Nping به
کاربران
اجازه
میدهد
بستههای
شبکه را با
طیف
گستردهای
از
پروتکلها
تولید کنند
و تقریباً
هر فیلدی از
سرایندهای
پروتکل را
تنظیم
نمایند. در
حالی که Nping
میتواند
به عنوان یک
ابزار
سادهٔ ping
برای تشخیص
میزبانهای
فعال به کار
رود،
میتواند
به عنوان یک
تولیدکنندهٔ
بستهٔ خام
برای
آزمونهای
تنش و
بارگذاری
پشتهٔ
شبکه،
مسمومسازی
ARP (ARP poisoning)، حملات
محرومسازی
از سرویس (Denial of
Service)، ردیابی
مسیر و
اهداف دیگر
نیز
استفاده
شود.
علاوه بر
این، Nping حالت
عملکرد
ویژهای به
نام «حالت
پژواک» (Echo Mode)
ارائه
میدهد که
به کاربران
امکان
میدهد
چگونگی
تغییر
کاوشگرهای
تولیدشده
را در حین
انتقال
مشاهده
کرده و
تفاوتهای
میان
بستههای
ارسالی و
بستههای
دریافتی در
سمت دیگر را
آشکار
سازند. برای
جزئیات به
بخش «Echo Mode»
مراجعه
کنید.
خروجی Nping
فهرستی از
بستههایی
است که
ارسال و
دریافت
میشوند.
میزان
جزئیات به
گزینههای
استفادهشده
بستگی
دارد.
یک نمونهٔ
معمول از
اجرای Nping در
مثال ۱
نشان داده
شده است.
تنها
آرگومانهای
Nping که در این
مثال
استفاده
شدهاند
عبارتند از
-c، برای
مشخص کردن
تعداد
دفعات
هدفگیری
هر میزبان،
--tcp برای
مشخص کردن
حالت کاوش
TCP، -p 80,433 برای
تعیین
درگاههای
هدف؛ و سپس
نام دو
میزبان
هدف.
مثال ۱. یک
اجرای
نمونه از Nping
# nping -c 1 --tcp -p 80,433 scanme.nmap.org google.com
Starting Nping ( https://nmap.org/nping )
SENT (0.0120s) TCP 96.16.226.135:50091 > 64.13.134.52:80 S ttl=64 id=52072 iplen=40 seq=1077657388 win=1480
RCVD (0.1810s) TCP 64.13.134.52:80 > 96.16.226.135:50091 SA ttl=53 id=0 iplen=44 seq=4158134847 win=5840 <mss 1460>
SENT (1.0140s) TCP 96.16.226.135:50091 > 74.125.45.100:80 S ttl=64 id=13932 iplen=40 seq=1077657388 win=1480
RCVD (1.1370s) TCP 74.125.45.100:80 > 96.16.226.135:50091 SA ttl=52 id=52913 iplen=44 seq=2650443864 win=5720 <mss 1430>
SENT (2.0140s) TCP 96.16.226.135:50091 > 64.13.134.52:433 S ttl=64 id=8373 iplen=40 seq=1077657388 win=1480
SENT (3.0140s) TCP 96.16.226.135:50091 > 74.125.45.100:433 S ttl=64 id=23624 iplen=40 seq=1077657388 win=1480
Statistics for host scanme.nmap.org (64.13.134.52):
| Probes Sent: 2 | Rcvd: 1 | Lost: 1 (50.00%)
|_ Max rtt: 169.720ms | Min rtt: 169.720ms | Avg rtt: 169.720ms
Statistics for host google.com (74.125.45.100):
| Probes Sent: 2 | Rcvd: 1 | Lost: 1 (50.00%)
|_ Max rtt: 122.686ms | Min rtt: 122.686ms | Avg rtt: 122.686ms
Raw packets sent: 4 (160B) | Rcvd: 2 (92B) | Lost: 2 (50.00%)
Tx time: 3.00296s | Tx bytes/s: 53.28 | Tx pkts/s: 1.33
Rx time: 3.00296s | Rx bytes/s: 30.64 | Rx pkts/s: 0.67
Nping done: 2 IP addresses pinged in 4.01 seconds
جدیدترین
نسخهٔ Nping را
میتوان
همراه با Nmap
از https://nmap.org
دریافت کرد.
جدیدترین
نسخهٔ این
صفحهٔ
راهنما در
https://nmap.org/book/nping-man.html در
دسترس است.
این
خلاصهٔ
گزینهها
هنگامی که Nping
بدون هیچ
آرگومانی
اجرا شود
چاپ میشود.
این بخش به
یادآوری
رایجترین
گزینهها
کمک
میکند،
اما
جایگزینی
برای
مستندات
جامع در
ادامهٔ این
کتابچهٔ
راهنما
نیست. برخی
گزینههای
کمکاربرد
حتی در
اینجا
گنجانده
نشدهاند.
Nping 0.7.92SVN ( https://nmap.org/nping )
Usage: nping [Probe mode] [Options] {target specification}
TARGET SPECIFICATION:
Targets may be specified as hostnames, IP addresses, networks, etc.
Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.*.1-24
PROBE MODES:
--tcp-connect : Unprivileged TCP connect probe mode.
--tcp : TCP probe mode.
--udp : UDP probe mode.
--icmp : ICMP probe mode.
--arp : ARP/RARP probe mode.
--tr, --traceroute : Traceroute mode (can only be used with
TCP/UDP/ICMP modes).
TCP CONNECT MODE:
-p, --dest-port <port spec> : Set destination port(s).
-g, --source-port <portnumber> : Try to use a custom source port.
TCP PROBE MODE:
-g, --source-port <portnumber> : Set source port.
-p, --dest-port <port spec> : Set destination port(s).
--seq <seqnumber> : Set sequence number.
--flags <flag list> : Set TCP flags (ACK,PSH,RST,SYN,FIN...)
--ack <acknumber> : Set ACK number.
--win <size> : Set window size.
--badsum : Use a random invalid checksum.
UDP PROBE MODE:
-g, --source-port <portnumber> : Set source port.
-p, --dest-port <port spec> : Set destination port(s).
--badsum : Use a random invalid checksum.
ICMP PROBE MODE:
--icmp-type <type> : ICMP type.
--icmp-code <code> : ICMP code.
--icmp-id <id> : Set identifier.
--icmp-seq <n> : Set sequence number.
--icmp-redirect-addr <addr> : Set redirect address.
--icmp-param-pointer <pnt> : Set parameter problem pointer.
--icmp-advert-lifetime <time> : Set router advertisement lifetime.
--icmp-advert-entry <IP,pref> : Add router advertisement entry.
--icmp-orig-time <timestamp> : Set originate timestamp.
--icmp-recv-time <timestamp> : Set receive timestamp.
--icmp-trans-time <timestamp> : Set transmit timestamp.
ARP/RARP PROBE MODE:
--arp-type <type> : Type: ARP, ARP-reply, RARP, RARP-reply.
--arp-sender-mac <mac> : Set sender MAC address.
--arp-sender-ip <addr> : Set sender IP address.
--arp-target-mac <mac> : Set target MAC address.
--arp-target-ip <addr> : Set target IP address.
IPv4 OPTIONS:
-S, --source-ip : Set source IP address.
--dest-ip <addr> : Set destination IP address (used as an
alternative to {target specification} ).
--tos <tos> : Set type of service field (8bits).
--id <id> : Set identification field (16 bits).
--df : Set Don't Fragment flag.
--mf : Set More Fragments flag.
--evil : Set Reserved / Evil flag.
--ttl <hops> : Set time to live [0-255].
--badsum-ip : Use a random invalid checksum.
--ip-options <S|R [route]|L [route]|T|U ...> : Set IP options
--ip-options <hex string> : Set IP options
--mtu <size> : Set MTU. Packets get fragmented if MTU is
small enough.
IPv6 OPTIONS:
-6, --IPv6 : Use IP version 6.
--dest-ip : Set destination IP address (used as an
alternative to {target specification}).
--hop-limit : Set hop limit (same as IPv4 TTL).
--traffic-class <class> : : Set traffic class.
--flow <label> : Set flow label.
ETHERNET OPTIONS:
--dest-mac <mac> : Set destination mac address. (Disables
ARP resolution)
--source-mac <mac> : Set source MAC address.
--ether-type <type> : Set EtherType value.
PAYLOAD OPTIONS:
--data <hex string> : Include a custom payload.
--data-string <text> : Include a custom ASCII text.
--data-length <len> : Include len random bytes as payload.
ECHO CLIENT/SERVER:
--echo-client <passphrase> : Run Nping in client mode.
--echo-server <passphrase> : Run Nping in server mode.
--echo-port <port> : Use custom <port> to listen or connect.
--no-crypto : Disable encryption and authentication.
--once : Stop the server after one connection.
--safe-payloads : Erase application data in echoed packets.
TIMING AND PERFORMANCE:
Options which take <time> are in seconds, or append 'ms' (milliseconds),
's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m, 0.25h).
--delay <time> : Adjust delay between probes.
--rate <rate> : Send num packets per second.
MISC:
-h, --help : Display help information.
-V, --version : Display current version number.
-c, --count <n> : Stop after <n> rounds.
-e, --interface <name> : Use supplied network interface.
-H, --hide-sent : Do not display sent packets.
-N, --no-capture : Do not try to capture replies.
--privileged : Assume user is fully privileged.
--unprivileged : Assume user lacks raw socket privileges.
--send-eth : Send packets at the raw Ethernet layer.
--send-ip : Send packets using raw IP sockets.
--bpf-filter <filter spec> : Specify custom BPF filter.
OUTPUT:
-v : Increment verbosity level by one.
-v[level] : Set verbosity level. E.g: -v4
-d : Increment debugging level by one.
-d[level] : Set debugging level. E.g: -d3
-q : Decrease verbosity level by one.
-q[N] : Decrease verbosity level N times
--quiet : Set verbosity and debug level to minimum.
--debug : Set verbosity and debug to the max level.
EXAMPLES:
nping scanme.nmap.org
nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1
nping --icmp --icmp-type time --delay 500ms 192.168.254.254
nping --echo-server "public" -e wlan0 -vvv
nping --echo-client "public" echo.nmap.org --tcp -p1-1024 --flags ack
SEE THE MAN PAGE FOR MANY MORE OPTIONS, DESCRIPTIONS, AND EXAMPLES
هر چیزی در
خط فرمان Nping
که یک گزینه
یا
آرگومانِ
گزینه
نباشد، به
عنوان
مشخصات
میزبان هدف
در نظر
گرفته
میشود. Nping از
همان
ساختار
نحوی Nmap برای
مشخص کردن
هدف
استفاده
میکند.
سادهترین
حالت، یک
هدف منفرد
است که با
آدرس IP یا
نام میزبان
(hostname) مشخص
میشود.
Nping از
آدرسدهی
به شیوهٔ CIDR
پشتیبانی
میکند.
میتوانید
/numbits را به یک
آدرس IPv4 یا
نام میزبان
اضافه کنید
و Nping به هر
آدرس IP که numbits
بیت نخست آن
با IP مرجع یا
نام میزبان
دادهشده
یکسان
باشد،
کاوشگر (probe)
ارسال
خواهد کرد.
برای
نمونه، 192.168.10.0/24
کاوشگرها
را به ۲۵۶
میزبان از
192.168.10.0 (دودویی: 11000000
10101000 00001010 00000000) تا 192.168.10.255
(دودویی: 11000000 10101000
00001010 11111111)، شامل هر
دو، ارسال
میکند. 192.168.10.40/24
دقیقاً
همین اهداف
را پینگ
میکند. با
توجه به
اینکه
میزبان scanme.nmap.org
روی آدرس IP
به نشانی 64.13.134.52
قرار دارد،
مشخصهٔ scanme.nmap.org/16
کاوشگرها
را به
۶۵٬۵۳۶
آدرس IP میان
64.13.0.0 و 64.13.255.255 ارسال
خواهد کرد.
کوچکترین
مقدار
مجاز، /0 است
که کل
اینترنت را
هدف قرار
میدهد.
بزرگترین
مقدار، /32
است که تنها
میزبان
نامبرده
یا آدرس IP
مشخصشده
را هدف قرار
میدهد،
چرا که تمام
بیتهای
آدرس ثابت
هستند.
نشانهگذاری
CIDR کوتاه است
اما همیشه
بهاندازهٔ
کافی
انعطافپذیر
نیست. برای
نمونه،
شاید
بخواهید
کاوشگرها
را به 192.168.0.0/16
بفرستید
اما از هر IP
که با .0 یا .255
ختم میشود
صرفنظر
کنید، زیرا
ممکن است به
عنوان
آدرسهای
شبکه و
پخشیِ
زیرشبکه
استفاده
شوند. Nping با
استفاده از
آدرسدهی
بازهٔ
هشتبیتی (octet
range) از این کار
پشتیبانی
میکند. به
جای مشخص
کردن یک
آدرس IP
معمولی،
میتوانید
فهرستی از
اعداد یا
بازههای
جداشده با
کاما را
برای هر
هشتبیت
مشخص کنید.
برای
نمونه، 192.168.0-255.1-254
از تمامی
آدرسهای
موجود در
بازه که به .0
یا .255 ختم
میشوند
صرفنظر
میکند، و
192.168.3-5,7.1 چهار
آدرس 192.168.3.1، 192.168.4.1،
192.168.5.1 و 192.168.7.1 را هدف
قرار
میدهد. هر
یک از دو طرف
یک بازه
میتواند
حذف شود؛
مقادیر
پیشفرض در
سمت چپ 0 و در
سمت راست 255
است.
استفاده از -
به تنهایی
همانند 0-255
است، اما به
یاد داشته
باشید که در
هشتبیت
نخست از 0-
استفاده
کنید تا
مشخصهٔ هدف
شبیه به یک
گزینهٔ خط
فرمان به
نظر نرسد.
بازهها
نیازی نیست
محدود به
هشتبیتهای
پایانی
باشند:
مشخصهٔ 0-.-.13.37
کاوشگرها
را به تمامی
آدرسهای IP
در اینترنت
که به .13.37 ختم
میشوند
ارسال
میکند. این
گونه
نمونهبرداری
گسترده
میتواند
برای
پیمایشها
و
پژوهشهای
اینترنتی
سودمند
باشد.
آدرسهای
IPv6 را فقط
میتوان با
آدرس کامل IPv6
یا نام
میزبان
مشخص کرد.
بازههای CIDR
و بازههای
هشتبیتی
برای IPv6
پشتیبانی
نمیشوند
زیرا به
ندرت مفید
واقع
میشوند.
دستور Nping
چندین
مشخصهٔ
میزبان را
در خط فرمان
میپذیرد،
و لزومی
ندارد همگی
از یک نوع
باشند.
دستور nping scanme.nmap.org
192.168.0.0/8 10.0.0,1,3-7.-
دقیقاً
همان کاری
را انجام
میدهد که
انتظار
میرود.
ابزار Nping
طوری طراحی
شده که
بسیار
انعطافپذیر
باشد و
نیازهای
گوناگونی
را برآورده
سازد.
همانند
بیشتر
ابزارهای
خط فرمان،
رفتار آن
میتواند
با
گزینههای
خط فرمان
تنظیم شود.
این اصول
کلی بر
آرگومانهای
گزینهها
اعمال
میشوند،
مگر اینکه
خلاف آن ذکر
شده باشد.
گزینههایی
که اعداد
صحیح
دریافت
میکنند
میتوانند
مقادیر را
در مبنای
دهدهی،
هشتهشتی
یا
شانزدهشانزدهی
بپذیرند.
هنگامی که
یک عدد با 0x
آغاز
میشود، با
آن به عنوان
مبنای ۱۶
رفتار
میشود؛
هنگامی که
صرفاً با 0
آغاز
میشود، به
عنوان
مبنای ۸ در
نظر گرفته
میشود. در
غیر این
صورت، Nping فرض
میکند عدد
در مبنای ۱۰
وارد شده
است.
تقریباً
تمامی
اعدادی که
میتوان از
خط فرمان
مشخص کرد
بدون علامت
هستند،
بنابراین
به عنوان یک
قاعدهٔ
کلی،
کمترین
مقدار صفر
است.
کاربران
همچنین
میتوانند
کلمهٔ random یا rand
را وارد
کنند تا Nping یک
مقدار
تصادفی در
بازهٔ مورد
انتظار
تولید کند.
آدرسهای
IP میتوانند
به صورت
آدرسهای IPv4
(مانند 192.168.1.1)،
آدرسهای IPv6
(مانند
2001:db8:85a3::8e4c:760:7146)، یا
نامهای
میزبان
ارائه شوند
که با
استفاده از
کارساز DNS
پیشفرضِ
پیکربندیشده
در سیستم
میزبان حل (resolve)
خواهند شد.
گزینههایی
که آدرس MAC
میپذیرند
قالب معمول
۶ بایت
شانزدهشانزدهی
جداشده با
دو نقطه را
قبول
میکنند
(مانند 00:50:56:d4:01:98).
میتوان به
جای دو نقطه
از خط پیوند
نیز
استفاده
کرد (مانند
00-50-56-c0-00-08). کلمهٔ
ویژهٔ random یا rand
یک آدرس
تصادفی
تنظیم
میکند و
کلمهٔ broadcast یا bcast
مقدار ff:ff:ff:ff:ff:ff را
تنظیم
مینماید.
برخلاف
دیگر
ابزارهای
پینگ و
تولید
بسته، Nping از
مشخص کردن
چندین
میزبان و
پورت هدف
پشتیبانی
میکند.
هرچند این
قابلیت
انعطافپذیری
فوقالعادهای
به همراه
دارد، اما
چگونگی
رفتار Nping در
موقعیتهایی
که بیش از یک
میزبان و/یا
بیش از یک
پورت برای
ارسال
کاوشگر
وجود دارد
ممکن است
بدیهی
نباشد. این
بخش رفتار Nping
را در این
حالتها
توضیح
میدهد.
هنگامی که
چندین
میزبان هدف
مشخص شده
باشند، Nping به
شیوهٔ
نوبتگردشی
(round-robin) میان
آنها
جابهجا
میشود. این
کار به
میزبانهای
کُند زمان
بیشتری
برای ارسال
پاسخهایشان
پیش از
ارسال
کاوشگر
بعدی
میدهد.
پورتها
نیز با
استفاده از
نوبتگردشی
زمانبندی
میشوند.
بنابراین،
مگر اینکه
تنها یک
پورت مشخص
شده باشد، Nping
هرگز دو
کاوشگر را
پشت سر هم به
همان
میزبان و
پورتِ
یکسان
ارسال
نمیکند.
حلقهٔ
چرخش روی
اهداف،
“حلقهٔ
درونی” و
حلقهٔ چرخش
روی
پورتها،
“حلقهٔ
بیرونی”
است. برای یک
پورت معین،
به همهٔ
اهداف یک
کاوشگر
ارسال
میشود پیش
از آنکه به
پورت بعدی
برود. میان
ارسال هر دو
کاوشگر، Nping
مقدار زمان
قابل
تنظیمی را
که “تأخیر
میانکاوشگری”
نام دارد،
درنگ
میکند؛
این زمان با
گزینهٔ --delay
کنترل
میشود. این
مثالها
نحوهٔ
کارکرد آن
را نشان
میدهند.
# nping --tcp -c 2 1.1.1.1 -p 100-102
Starting Nping ( https://nmap.org/nping )
SENT (0.0210s) TCP 192.168.1.77 > 1.1.1.1:100
SENT (1.0230s) TCP 192.168.1.77 > 1.1.1.1:101
SENT (2.0250s) TCP 192.168.1.77 > 1.1.1.1:102
SENT (3.0280s) TCP 192.168.1.77 > 1.1.1.1:100
SENT (4.0300s) TCP 192.168.1.77 > 1.1.1.1:101
SENT (5.0320s) TCP 192.168.1.77 > 1.1.1.1:102
# nping --tcp -c 2 1.1.1.1 2.2.2.2 3.3.3.3 -p 8080
Starting Nping ( https://nmap.org/nping )
SENT (0.0230s) TCP 192.168.0.21 > 1.1.1.1:8080
SENT (1.0240s) TCP 192.168.0.21 > 2.2.2.2:8080
SENT (2.0260s) TCP 192.168.0.21 > 3.3.3.3:8080
SENT (3.0270s) TCP 192.168.0.21 > 1.1.1.1:8080
SENT (4.0290s) TCP 192.168.0.21 > 2.2.2.2:8080
SENT (5.0310s) TCP 192.168.0.21 > 3.3.3.3:8080
# nping --tcp -c 1 --delay 500ms 1.1.1.1 2.2.2.2 3.3.3.3 -p 137-139
Starting Nping ( https://nmap.org/nping )
SENT (0.0230s) TCP 192.168.0.21 > 1.1.1.1:137
SENT (0.5250s) TCP 192.168.0.21 > 2.2.2.2:137
SENT (1.0250s) TCP 192.168.0.21 > 3.3.3.3:137
SENT (1.5280s) TCP 192.168.0.21 > 1.1.1.1:138
SENT (2.0280s) TCP 192.168.0.21 > 2.2.2.2:138
SENT (2.5310s) TCP 192.168.0.21 > 3.3.3.3:138
SENT (3.0300s) TCP 192.168.0.21 > 1.1.1.1:139
SENT (3.5330s) TCP 192.168.0.21 > 2.2.2.2:139
SENT (4.0330s) TCP 192.168.0.21 > 3.3.3.3:139
ابزار Nping از
طیف
گستردهای
از
پروتکلها
پشتیبانی
میکند.
اگرچه در
برخی موارد
Nping میتواند
حالت را
بهطور
خودکار از
روی
گزینههای
استفادهشده
تشخیص دهد،
اما
معمولاً
بهتر است آن
را بهصورت
صریح مشخص
کنید.
--tcp-connect (حالت TCP
Connect)
حالت TCP connect
زمانی که
کاربر
دسترسیهای
بستهٔ خام (raw packet)
را ندارد،
حالت
پیشفرض
است. بهجای
نوشتن
مستقیم
بستههای
خام مانند
اغلب
حالتهای
دیگر، Nping با
فراخوانی
فراخوان
سیستمی connect از
سیستمعامل
زیرین
میخواهد
تا با ماشین
و درگاه هدف
اتصالی
برقرار کند.
این همان
فراخوان
سیستمی سطح
بالایی است
که
مرورگرهای
وب،
کلاینتهای
P2P و بیشتر
برنامههای
تحت شبکه
برای
برقراری
اتصال از آن
استفاده
میکنند.
این
فراخوان
بخشی از
رابط
برنامهنویسی
موسوم به Berkeley Sockets API
است. ابزار Nping
بهجای
خواندن
پاسخهای
بستههای
خام از روی
خط
ارتباطی،
از این API برای
دریافت
اطلاعات
وضعیت در هر
تلاش برای
برقراری
اتصال
استفاده
میکند. به
همین دلیل،
شما قادر به
مشاهدهٔ
محتویات
بستههای
ارسالی یا
دریافتی
نخواهید
بود، بلکه
صرفاً
اطلاعات
وضعیتی
پیرامون
برقراری
اتصال TCP را
مشاهده
خواهید
کرد.
--tcp (حالت TCP)
حالت TCP به
کاربران
امکان
میدهد هر
نوع بستهٔ TCP
را بسازند و
ارسال کنند.
بستههای TCP
بهصورت
تعبیهشده
درون
بستههای IP
ارسال
میشوند که
خود
بستههای IP
نیز قابل
تنظیم
هستند. این
حالت
میتواند
برای اهداف
گوناگونی
استفاده
شود. برای
نمونه،
میتوانید
با ارسال
پیامهای TCP SYN
بدون تکمیل
مصافحهٔ
سهمرحلهای
(three-way handshake)، برای
کشف
درگاههای
باز تلاش
کنید. این
روش
معمولاً
پویش
نیمهباز (half-open
scanning) نامیده
میشود،
چرا که شما
یک اتصال TCP
کامل را باز
نمیکنید.
شما یک
بستهٔ SYN
ارسال
میکنید،
گویی قصد
باز کردن یک
اتصال
واقعی را
دارید، و
سپس منتظر
پاسخ
میمانید.
دریافت SYN/ACK
نشاندهندهٔ
باز بودن
درگاه است،
در حالی که RST
نشان
میدهد
درگاه بسته
است. اگر
پاسخی
دریافت
نشود،
میتوان
نتیجه گرفت
که یک
دستگاه
شبکه در
مسیر،
پاسخها را
پالایش
(فیلتر)
میکند.
کاربرد
دیگر
میتواند
مشاهدهٔ
رفتار
پشتهٔ TCP/IP
میزبان
دوردست در
هنگام
دریافت
بستههای
ناسازگار
با
استاندارد RFC
باشد؛
مانند
بستهای که
هر دو پرچم SYN
و RST در آن
فعال باشند.
همچنین
میتوان با
ساخت
بستههای RST
سفارشی با
استفاده از
یک نشانی IP
جعلشده (spoofed) و
با هدف قطع
یک اتصال TCP
فعال،
اقدام
مخربی
انجام داد.
--udp (حالت UDP)
حالت UDP
میتواند
دو رفتار
متفاوت
داشته باشد.
در شرایط
عادی، به
کاربران
اجازه
میدهد
بستههای
سفارشی IP/UDP
بسازند. اما
اگر Nping توسط
کاربری
بدون
دسترسیهای
بستهٔ خام
اجرا شود و
هیچ تغییری
در
سرایندهای
پیشفرض
پروتکل
درخواست
نشده باشد،
Nping وارد حالت UDP
فاقد
امتیاز
میشود که
اساساً
بستههای UDP
را با
استفاده از
فراخوان
سیستمی sendto به
میزبانها
و
درگاههای
هدف
تعیینشده
ارسال
میکند.
توجه داشته
باشید که در
این حالت
فاقد
امتیاز،
مشاهدهٔ
اطلاعات
سطح پایین
سرآیند
بستهها بر
روی خط
ارتباطی
امکانپذیر
نیست و فقط
اطلاعات
وضعیتی
دربارهٔ
میزان
بایتهای
ارسال و
دریافتشده
ارائه
میشود.
حالت UDP
میتواند
برای تعامل
با هر سرور
مبتنی بر UDP
استفاده
شود؛ مانند
سرورهای DNS،
سرورهای
پخش رسانه
(streaming)، سرورهای
بازیهای
برخط و
دیمنهای
کوبیدن
درگاه/احراز
هویت
تکبستهای
(port knocking/single-packet authorization).
--icmp (حالت ICMP)
حالت ICMP
حالت
پیشفرض در
زمانی است
که کاربر Nping
را با
دسترسیهای
بستهٔ خام
اجرا
میکند. در
این حالت هر
نوع پیام ICMP
را میتوان
تولید کرد.
نوع
پیشفرض ICMP
پیام Echo یا
همان ping است.
حالت ICMP
میتواند
برای اهداف
مختلفی
استفاده
شود؛ از یک
درخواست
ساده برای
برچسب
زمانی (timestamp) یا
ماسک شبکه (netmask)
گرفته تا
ارسال
پیامهای
جعلی مقصد
غیرقابل
دسترس (destination unreachable)،
تغییر
مسیرهای
سفارشی (redirects) و
اعلانات
مسیریاب (router
advertisements).
--arp (حالت ARP/RARP)
گزینهٔ ARP
به شما
امکان
میدهد
چندین
بستهٔ
مختلف
مرتبط با ARP را
بسازید و
ارسال کنید.
این موارد
شامل
درخواستها
و پاسخهای
ARP، RARP، DRARP و InARP است.
این حالت
میتواند
برای انجام
کشف میزبان
در سطح
پایین و
پیادهسازی
حملات
مسمومسازی
حافظهٔ
موقت ARP (ARP-cache poisoning)
استفاده
شود.
--traceroute (حالت
Traceroute)
حالت
ردیابی
مسیر (Traceroute)
بهخودیخود
یک حالت
مستقل
نیست، بلکه
مکملی برای
حالتهای TCP،
UDP و ICMP است.
هنگامی که
این گزینه
مشخص شود، Nping
مقدار IP TTL
نخستین
کاوشگر را
برابر با ۱
قرار
میدهد.
زمانی که
مسیریاب
بعدی بسته
را دریافت
میکند، به
دلیل منقضی
شدن مقدار TTL
آن را دور
انداخته و
یک پیام ICMP destination unreachable
تولید
میکند.
کاوشگر
بعدی مقدار TTL
برابر با ۲
خواهد
داشت،
بنابراین
نخستین
مسیریاب
بسته را
هدایت کرده
و این بار
دومین
مسیریاب
بسته را دور
انداخته و
پیام ICMP تولید
میکند.
سومین
کاوشگر
دارای
مقدار TTL
برابر با ۳
خواهد بود و
این روند
ادامه
مییابد. با
بررسی
نشانیهای
مبدأ تمامی
آن
پیامهای ICMP
Destination Unreachable،
میتوان
مسیری را که
کاوشگرها
تا رسیدن به
مقصد نهایی
طی میکنند
تعیین کرد.
-p port_spec، --dest-port
port_spec
(درگاههای
هدف)
این
گزینه مشخص
میکند که
قصد دارید
برای اتصال
به کدام
درگاهها
تلاش کنید.
این مقدار
میتواند
یک درگاه
منفرد،
فهرستی از
درگاهها
با ویرگول
(مانند 80,443,8080)،
یک بازه
(مانند 1-1023) یا
هر ترکیبی
از آنها
باشد (مانند
21-25,80,443,1024-2048). مقادیر
آغاز و/یا
پایان یک
بازه
میتوانند
حذف شوند که
باعث
میشود Nping
بهترتیب
از مقادیر ۱
و ۶۵۵۳۵
استفاده
کند.
بنابراین
میتوانید
برای هدف
قرار دادن
درگاههای
۱ تا ۶۵۵۳۵
مقدار -p- را
مشخص کنید.
استفاده از
درگاه صفر
در صورتی که
بهطور
صریح مشخص
شود مجاز
است.
-g portnumber، --source-port
portnumber (جعل
درگاه
مبدأ)
این
گزینه از Nping
میخواهد
تا از درگاه
مشخصشده
بهعنوان
درگاه مبدأ
برای
اتصالات TCP
استفاده
کند. توجه
داشته
باشید که
این گزینه
ممکن است
روی همهٔ
سیستمها
کار نکند یا
نیازمند
دسترسیهای
ریشه (root) باشد.
مقدار
مشخصشده
باید یک عدد
صحیح در
بازهٔ [0–65535]
باشد.
-p port_spec، --dest-port
port_spec
(درگاههای
هدف)
این
گزینه
درگاههای
مقصدی را که
میخواهید
کاوشگرها
را به آنها
ارسال کنید
مشخص
میکند.
مقدار آن
میتواند
یک درگاه
منفرد،
فهرستی از
درگاهها
جداشده با
ویرگول
(مانند 80,443,8080)،
یک بازه
(مانند 1-1023) یا
هر ترکیبی
از آنها
باشد (مانند
21-25,80,443,1024-2048). مقادیر
ابتدا و/یا
انتهای یک
بازه
میتوانند
حذف شوند که
در این صورت
Nping بهترتیب
از ۱ و ۶۵۵۳۵
استفاده
خواهد کرد.
بنابراین
میتوانید
از -p- برای هدف
قرار دادن
درگاههای
۱ تا ۶۵۵۳۵
استفاده
کنید.
استفاده از
درگاه صفر
نیز در صورت
تعیین صریح
مجاز است.
-g portnumber، --source-port
portnumber (جعل
درگاه
مبدأ)
این
گزینه از Nping
میخواهد
تا از درگاه
تعیینشده
بهعنوان
درگاه مبدأ
برای
اتصالات TCP
استفاده
کند. توجه
داشته
باشید که
این قابلیت
ممکن است در
تمامی
سیستمها
کار نکند یا
به
دسترسیهای
ریشه (root) نیاز
داشته باشد.
مقدار
ارائهشده
باید یک عدد
صحیح در
بازهٔ [0–65535]
باشد.
--seq seqnumber
(شماره
توالی)
شماره
توالی TCP را
مشخص
میکند. در
بستههای SYN،
این مقدار
همان شماره
توالی
اولیه (ISN) است.
در یک
انتقال
دادهٔ
عادی، این
مقدار با
شماره
توالی
نخستین
بایت داده
در قطعه (segment)
همخوانی
دارد. seqnumber
باید عددی
در بازهٔ
[0–4294967295] باشد.
--flags flags
(پرچمهای TCP)
این
گزینه مشخص
میکند که
چه
پرچمهایی
باید در
بستهٔ TCP
تنظیم شوند.
flags میتواند
به سه روش
مختلف
تعیین شود:
1.بهصورت
فهرستی از
پرچمها که
با ویرگول
از هم جدا
شدهاند؛
مانند --flags syn,ack,rst
2.بهصورت
فهرستی از
حروف اول
یکنویسهای
پرچمها؛
مانند --flags SAR که
به Nping دستور
میدهد
پرچمهای SYN،
ACK و RST را تنظیم
کند.
3.بهصورت یک
عدد
هگزادسیمال
۸ بیتی، که
در آن مقدار
واردشده
دقیقاً
همان
مقداری است
که در فیلد
پرچمهای
سرآیند TCP
قرار
میگیرد.
این مقدار
باید با
پیشوند 0x
آغاز شده و
در بازهٔ [0x00–0xFF]
باشد؛ برای
نمونه --flags 0x20
پرچم URG را
تنظیم
میکند،
زیرا 0x20 معادل
با مقدار
باینری 00100000
بوده و پرچم URG
با بیت سوم
نشان داده
میشود.
۸ پرچم
ممکن برای
تنظیم وجود
دارد: CWR، ECN، URG،
ACK، PSH، RST، SYN و FIN.
مقدار
ویژهٔ ALL به
معنای
تنظیم تمام
پرچمها
است. NONE به
معنای فعال
نکردن هیچ
پرچمی است.
توجه به این
نکته ضروری
است که اگر
مایل
نیستید هیچ
پرچمی
تنظیم شود،
باید آن را
بهطور
صریح مشخص
کنید؛ زیرا
در برخی
موارد پرچم
SYN ممکن است
بهصورت
پیشفرض
تنظیم گردد.
در ادامه
شرح کوتاهی
از مفهوم هر
پرچم آمده
است:
CWR (کاهش
پنجرهٔ
ازدحام)
توسط
فرستندهای
با توانایی
ECN، هنگامی که
پنجرهٔ
ازدحام خود
را (به دلیل
انقضای
مهلت
بازفرست،
بازفرست
سریع، یا در
پاسخ به یک
اعلان ECN) کاهش
میدهد،
تنظیم
میشود.
ECN (اعلان
صریح
ازدحام)
در طول
مصافحهٔ
سهمرحلهای
نشان
میدهد
فرستنده
توانایی
انجام
اعلان صریح
ازدحام را
دارد. در
شرایط عادی
نشان
میدهد
بستهای با
پرچم IP Congestion Experienced در
طول انتقال
عادی
دریافت شده
است. برای
اطلاعات
بیشتر به RFC 3168
مراجعه
کنید.
URG (اضطراری)
قطعه
اضطراری
است و فیلد
اشارهگر
اضطراری (urgent pointer)
حامل
اطلاعات
معتبر است.
ACK (تصدیق)
قطعه
حامل یک
تصدیق بوده
و مقدار
فیلد
شمارهٔ
تصدیق
معتبر است و
شماره
توالی بعدی
مورد
انتظار از
گیرنده را
در بر دارد.
PSH (ارسال
فوری)
دادههای
موجود در
این قطعه
باید
بلافاصله
پس از
رسیدن، به
لایهٔ
کاربرد
تحویل داده
شوند (push
شوند).
RST
(راهاندازی
مجدد /
بازنشانی)
مشکلی رخ
داده است و
فرستنده
میخواهد
اتصال را
لغو و متوقف
کند.
SYN
(همگامسازی)
قطعه
درخواستی
برای
همگامسازی
شمارههای
توالی و
برقراری
اتصال است.
فیلد شماره
توالی حاوی
شماره
توالی
اولیهٔ
فرستنده
است.
FIN (پایان)
فرستنده
میخواهد
اتصال را
ببندد.
--win size
(اندازهٔ
پنجره)
اندازهٔ
پنجرهٔ TCP را
مشخص
میکند؛
یعنی تعداد
بایتهایی
که
فرستندهٔ
قطعه تمایل
دارد در یک
نوبت از
گیرنده
بپذیرد. این
مقدار
معمولاً
اندازهٔ
بافر
دریافتی
است که
سیستمعامل
به یک اتصال
معین
اختصاص
میدهد. size
باید عددی
در بازهٔ [0–65535]
باشد.
--badsum (مجموع
مقابلهای
نامعتبر)
از Nping
میخواهد
تا برای
بستههای
ارسالی به
میزبانهای
هدف از یک
مجموع
مقابلهای
(checksum) نامعتبر TCP
استفاده
کند. از آنجا
که تقریباً
تمامی
پشتههای IP
میزبانها
این
بستهها را
بهدرستی
دور
میاندازند،
هر پاسخی که
دریافت شود
احتمالاً
از سوی یک
دیوار آتش
یا یک سیستم
تشخیص نفوذ
(IDS) است که
زحمت
اعتبارسنجی
مجموع
مقابلهای
را به خود
نداده است.
برای
جزئیات
بیشتر
پیرامون
این روش،
ببینید:
https://nmap.org/p60-12.html.
-p port_spec, --dest-port
port_spec
(درگاههای
هدف)
این
گزینه مشخص
میکند که
قصد دارید
دیتاگرامهای
UDP به کدام
درگاهها
ارسال شوند.
این مقدار
میتواند
یک درگاه
منفرد،
فهرستی از
درگاهها
که با کاما
از هم جدا
شدهاند
(مانند 80,443,8080)،
یک محدوده
(مانند 1-1023) و هر
ترکیبی از
آنها
(مانند 21-25,80,443,1024-2048)
باشد.
مقادیر
آغاز و/یا
پایان یک
محدوده را
میتوان
حذف کرد که
در این حالت
Nping بهترتیب
از 1 و 65535
استفاده
میکند.
بنابراین
میتوانید -p-
را برای
هدفگیری
درگاههای 1
تا 65535 مشخص
کنید.
استفاده از
درگاه صفر
نیز در
صورتی که
صراحتاً
مشخص شود،
مجاز است.
-g portnumber, --source-port
portnumber (جعل
درگاه
مبدأ)
این
گزینه از Nping
میخواهد
از درگاه
مشخصشده
به عنوان
درگاه مبدأ
برای
دیتاگرامهای
ارسالی
استفاده
کند. توجه
داشته
باشید که
این کار
ممکن است در
همه
سامانهها
کار نکند یا
نیازمند
امتیازات
ریشه (root) باشد.
مقدار
مشخصشده
باید یک عدد
صحیح در
محدوده [0–65535]
باشد.
--badsum (چکسام
نامعتبر)
از Nping
میخواهد
از یک
چکسام UDP
نامعتبر
برای
بستههای
ارسالی به
میزبانهای
هدف
استفاده
کند. از آنجا
که تقریباً
پشتههای IP
تمام
میزبانها
به درستی
این
بستهها را
دور
میاندازند،
هرگونه
پاسخ
دریافتی
احتمالاً
از سوی یک
دیوار آتش
یا یک IDS
میآید که
زحمت
اعتبارسنجی
چکسام را
به خود
نداده است.
برای
جزئیات
بیشتر
درباره این
روش، به
https://nmap.org/p60-12.html
مراجعه
کنید.
--icmp-type type (نوع
ICMP)
این
گزینه مشخص
میکند
کدام نوع از
پیامهای ICMP
باید تولید
شوند. type
میتواند
به دو شیوه
مختلف
ارائه شود.
میتوانید
از
شمارههای
رسمی نوع
تعیینشده
توسط IANA[1]
(مانند --icmp-type 8
برای ICMP Echo Request)
استفاده
کنید، یا از
هر یک از
نامهای
کوتاه
فهرستشده
در بخش “ICMP Types”
بهره
بگیرید.
--icmp-code code (کد ICMP)
این
گزینه مشخص
میکند
کدام کد ICMP
باید در
پیامهای ICMP
تولیدشده
گنجانده
شود. code
میتواند
به دو شیوه
مختلف
ارائه شود.
میتوانید
از
شمارههای
رسمی کد
تعیینشده
توسط IANA[1]
(مانند --icmp-code 1
برای Fragment Reassembly Time Exceeded)
استفاده
کنید، یا از
هر یک از
نامهای
کوتاه
فهرستشده
در بخش “ICMP Codes”
بهره
بگیرید.
--icmp-id id
(شناسه ICMP)
این
گزینه
مقدار
شناسه مورد
استفاده در
برخی
پیامهای ICMP
را مشخص
میکند.
بهطور کلی
برای تطبیق
دادن
پیامهای
درخواست و
پاسخ به کار
میرود. id
باید عددی
در محدوده
[0–65535] باشد.
--icmp-seq seq
(توالی ICMP)
این
گزینه
مقدار فیلد
شماره
توالی
استفادهشده
در برخی
پیامهای ICMP
را مشخص
میکند.
بهطور کلی
برای تطبیق
دادن
پیامهای
درخواست و
پاسخ به کار
میرود. id
باید عددی
در محدوده
[0–65535] باشد.
--icmp-redirect-addr addr
(نشانی
تغییرمسیر
ICMP)
این
گزینه فیلد
نشانی را در
پیامهای ICMP Redirect
مقداردهی
میکند. به
عبارت
دیگر،
نشانی IP
مسیریابی
را تعیین
میکند که
هنگام
ارسال
دیتاگرامهای
IP به مقصد
اصلی باید
استفاده
شود. addr
میتواند
یک نشانی IPv4
یا یک نام
میزبان
باشد.
--icmp-param-pointer pointer
(اشارهگر
اشکال در
پارامتر ICMP)
این
گزینه
اشارهگری
را مشخص
میکند که
محل بروز
مشکل را در
پیامهای ICMP
Parameter Problem نشان
میدهد. pointer
باید عددی
در محدوده
[0–255] باشد.
معمولاً
این گزینه
تنها زمانی
استفاده
میشود که
کد ICMP روی 0 ("Pointer indicates the
error") تنظیم شده
باشد.
--icmp-advert-lifetime ttl
(طولعمر
اعلان
مسیریاب ICMP)
این
گزینه
طولعمر
اعلان
مسیریاب را
مشخص
میکند؛
یعنی تعداد
ثانیههایی
که اطلاعات
ارائهشده
در یک ICMP Router Advertisement
معتبر در
نظر گرفته
میشوند. ttl
باید یک عدد
صحیح مثبت
در محدوده
[0–65535] باشد.
--icmp-advert-entry
addr,pref
(مدخل اعلان
مسیریاب ICMP)
این
گزینه یک
مدخل اعلان
مسیریاب را
به پیام ICMP Router Advertisement
اضافه
میکند. این
پارامتر
باید شامل
دو مقدار
باشد که با
کاما از
یکدیگر جدا
شدهاند. addr
نشانی IP
مسیریاب
است و
میتواند
به عنوان یک
نشانی IP در
قالب
دهدهی
نقطهدار
یا به عنوان
یک نام
میزبان
مشخص شود. pref
سطح اولویت
برای IP
مشخصشده
است. این
مقدار باید
عددی در
محدوده [0–4294967295]
باشد. به
عنوان مثال:
--icmp-advert-entry 192.168.128.1,3.
--icmp-orig-time timestamp
(برچسب
زمانی
ایجاد ICMP)
این
گزینه
برچسب
زمانی
ایجاد (Originate Timestamp)
را در
پیامهای ICMP
Timestamp تنظیم
میکند.
برچسب
زمانی
ایجاد به
صورت تعداد
میلیثانیهها
از نیمهشب UTC
بیان
میشود و
متناظر با
زمانی است
که فرستنده
آخرین بار
پیش از
ارسال،
پیام Timestamp را
لمس کرده
است. timestamp
میتواند
به صورت یک
زمان عادی
مشخص شود
(مانند 10s، 3h،
1000ms)، یا رشته
ویژه now.
میتوانید
مقادیری را
به now اضافه یا
از آن کم
کنید؛ برای
مثال --icmp-orig-time now-2s،
--icmp-orig-time now+1h، --icmp-orig-time
now+200ms.
--icmp-recv-time timestamp
(برچسب
زمانی
دریافت ICMP)
این
گزینه
برچسب
زمانی
دریافت (Receive Timestamp)
را در
پیامهای ICMP
Timestamp تنظیم
میکند.
برچسب
زمانی
دریافت به
صورت تعداد
میلیثانیهها
از نیمهشب UTC
بیان
میشود و
متناظر با
زمانی است
که
پژواکدهنده
هنگام
دریافت،
اولین بار
پیام Timestamp را
لمس کرده
است. timestamp
مشابه با
--icmp-orig-time است.
--icmp-trans-time timestamp
(برچسب
زمانی
ارسال ICMP)
این
گزینه
برچسب
زمانی
ارسال (Transmit Timestamp) را
در
پیامهای ICMP
Timestamp تنظیم
میکند.
برچسب
زمانی
ارسال به
صورت تعداد
میلیثانیهها
از نیمهشب UTC
بیان
میشود و
متناظر با
زمانی است
که
پژواکدهنده
آخرین بار
پیش از
ارسال،
پیام Timestamp را
لمس کرده
است.
timestamp
مشابه با
--icmp-orig-time است.
این
شناسهها
میتوانند
به عنوان
نمادهای
یادافزا
برای
شمارههای
نوع ICMP
دادهشده
به گزینهٔ
--icmp-type استفاده
شوند. به طور
کلی سه شکل
برای هر
شناسه وجود
دارد: نام
کامل (مانند
destination-unreachable)، نام
کوتاه
(مانند dest-unr)، یا
حروف
اختصاری
(مانند du). در
انواع ICMP که
درخواستی
را مطرح
میکنند،
واژهٔ "request"
حذف شده
است.
echo-reply, echo-rep, er
Echo Reply (نوع 0).
این پیام در
پاسخ به یک
پیام Echo Request
ارسال
میشود.
destination-unreachable, dest-unr, du
Destination Unreachable (نوع 3).
این پیام
نشان
میدهد که
یک
دیتاگرام
نتوانست به
مقصد خود
تحویل داده
شود.
source-quench, sour-que, sq
Source Quench (نوع 4).
این پیام
توسط یک
دستگاه IP
دچار تراکم
ترافیک به
کار میرود
تا به
دستگاه
دیگر اعلام
کند که
بستهها را
بسیار سریع
ارسال
میکند و
باید سرعت
را کاهش
دهد.
redirect, redi, r
Redirect (نوع 5).
این پیام
معمولاً
توسط
مسیریابها
استفاده
میشود تا
به یک
میزبان
اطلاع دهند
مسیر بهتری
برای ارسال
دیتاگرامها
وجود دارد.
همچنین
گزینهٔ --icmp-redirect-addr
را ببینید.
echo-request, echo, e
Echo Request (نوع 8).
این پیام
برای
آزمودن
اتصالپذیری
دستگاه
دیگری در
شبکه
استفاده
میشود.
router-advertisement, rout-adv, ra
Router Advertisement (نوع 9).
این پیام
توسط
مسیریابها
استفاده
میشود تا
میزبانها
را از وجود و
توانمندیهای
خود مطلع
سازند.
همچنین
گزینهٔ --icmp-advert-lifetime
را ببینید.
router-solicitation, rout-sol, rs
Router Solicitation (نوع 10).
این پیام
توسط
میزبانها
استفاده
میشود تا
پیامهای Router
Advertisement را از هر
مسیریاب
شنودکنندهای
درخواست
کنند.
time-exceeded, time-exc, te
Time Exceeded (نوع 11).
این پیام
توسط یک
دستگاه
میانی
(معمولاً یک
مسیریاب)
تولید
میشود تا
نشان دهد یک
دیتاگرام
پیش از
رسیدن به
مقصد دور
انداخته
شده است،
زیرا IP TTL آن
منقضی شده
است.
parameter-problem, member-pro, pp
Parameter Problem (نوع 12).
این پیام
زمانی
استفاده
میشود که
یک دستگاه
مشکلی در
یکی از
پارامترهای
سرآیند IP
بیابد و
نتواند به
پردازش آن
ادامه دهد.
همچنین
گزینهٔ --icmp-param-pointer
را ببینید.
timestamp, time, tm
Timestamp Request (نوع 13).
این پیام
برای
درخواست از
یک دستگاه
جهت ارسال
مقدار
برچسب
زمانی برای
محاسبهٔ
زمان
انتشار و
همگامسازی
ساعت
استفاده
میشود.
همچنین
گزینههای
--icmp-orig-time، --icmp-recv-time و
--icmp-trans-time را
ببینید.
timestamp-reply, time-rep, tr
Timestamp Reply (نوع 14).
این پیام در
پاسخ به یک
پیام Timestamp Request
ارسال
میشود.
information, info, i
Information Request (نوع 15).
این پیام
اکنون
منسوخ شده
است، اما در
ابتدا برای
درخواست
اطلاعات
پیکربندی
از دستگاهی
دیگر
استفاده
میشد.
information-reply, info-rep, ir
Information Reply (نوع 16).
این پیام
اکنون
منسوخ شده
است، اما در
ابتدا در
پاسخ به یک
پیام Information Request جهت
ارائهٔ
اطلاعات
پیکربندی
ارسال
میشد.
mask-request, mask, m
Address Mask Request (نوع 17).
این پیام
برای
درخواست از
یک دستگاه
جهت ارسال subnet mask
آن استفاده
میشود.
mask-reply, mask-rep, mr
Address Mask Reply (نوع 18).
این پیام
حاوی یک subnet mask
است و در
پاسخ به یک
پیام Address Mask Request
ارسال
میشود.
traceroute, trace, tc
Traceroute (نوع 30).
این پیام
معمولاً
توسط یک
دستگاه
میانی
هنگامی
ارسال
میشود که
یک
دیتاگرام IP
با گزینهٔ traceroute
دریافت کند.
پیامهای ICMP
Traceroute هنوز
آزمایشی
هستند؛
برای
اطلاعات
بیشتر RFC 1393 را
ببینید.
این
شناسهها
میتوانند
به عنوان
نمادهای
یادافزا
برای
شمارههای
کد ICMP
دادهشده
به گزینهٔ
--icmp-code استفاده
شوند. این
شناسهها
بر اساس نوع
ICMP
متناظرشان
فهرست
شدهاند.
Destination Unreachable
network-unreachable, netw-unr, net
کد 0.
دیتاگرام
نتوانست به
شبکهٔ مقصد
تحویل داده
شود
(احتمالاً
به دلیل
مشکل در
مسیریابی).
host-unreachable, host-unr, host
کد 1.
دیتاگرام
به شبکهٔ
مقصد تحویل
داده شد اما
دسترسی به
میزبان
مشخصشده
امکانپذیر
نبود
(احتمالاً
به دلیل
مشکل در
مسیریابی).
protocol-unreachable, prot-unr, proto
کد 2.
پروتکل
مشخصشده
در فیلد Protocol
دیتاگرام IP
توسط
میزبانی که
دیتاگرام
به آن تحویل
داده شده
پشتیبانی
نمیشود.
port-unreachable, port-unr, port
کد 3. پورت
مقصد TCP/UDP
نامعتبر
بود.
needs-fragmentation, need-fra, frag
کد 4. بیت DF
در
دیتاگرام
تنظیم شده
بود اما
اندازهٔ آن
برای MTU شبکهٔ
فیزیکی
بعدی بیش از
حد بزرگ
بود،
بنابراین
باید دور
انداخته
میشد.
source-route-failed, sour-rou, routefail
کد 5.
دیتاگرام IP
دارای
گزینهٔ Source Route
بود اما
مسیریاب
نتوانست آن
را به گام
بعدی (next hop) عبور
دهد.
network-unknown, netw-unk, net?
کد 6.
شبکهٔ مقصد
ناشناخته
است. این کد
هرگز
استفاده
نمیشود؛
در عوض از Network Unreachable
استفاده
میشود.
host-unknown, host-unk, host?
کد 7.
میزبان
مشخصشده
ناشناخته
است.
معمولاً
توسط یک
مسیریاب
محلی برای
میزبان
مقصد تولید
میشود تا
دربارهٔ یک
نشانی
نادرست
اطلاعرسانی
کند.
host-isolated, host-iso, isolated
کد 8. Source Host Isolated
(میزبان
مبدا
ایزولهشده).
استفاده
نمیشود.
network-prohibited, netw-pro, !net
کد 9.
ارتباط با
شبکهٔ مقصد
از نظر
مدیریتی
ممنوع است
(دستگاه
مبدأ مجاز
به ارسال
بستهها به
شبکهٔ مقصد
نیست).
host-prohibited, host-pro, !host
کد 10.
ارتباط با
میزبان
مقصد از نظر
مدیریتی
ممنوع است
(دستگاه
مبدأ مجاز
به ارسال
بستهها به
شبکهٔ مقصد
هست، اما به
دستگاه
مقصد مجاز
نیست).
network-tos, unreachable-network-tos, netw-tos, tosnet
کد 11.
شبکهٔ مقصد
غیرقابل
دسترس است
زیرا
نمیتواند
نوع سرویس
مشخصشده
در فیلد IP TOS را
ارائه دهد.
host-tos, unreachable-host-tos, toshost
کد 12.
میزبان
مقصد
غیرقابل
دسترس است
زیرا
نمیتواند
نوع سرویس
مشخصشده
در فیلد IP TOS را
ارائه دهد.
communication-prohibited, comm-pro, !comm
کد 13.
دیتاگرام
به دلیل
فیلتر
کردنی که
پیام را بر
اساس
محتوایش
مسدود
میکند،
نتوانست
فوروارد
شود.
host-precedence-violation, precedence-violation, prec-vio,
violation
کد 14.
مقدار
اولویت (Precedence) در
فیلد IP TOS مجاز
نیست.
precedence-cutoff, prec-cut, cutoff
کد 15.
مقدار
اولویت (Precedence) در
فیلد IP TOS کمتر
از حداقل
مجاز برای
شبکه است.
Redirect
redirect-network, redi-net, net
کد 0.
تغییر مسیر
همه
دیتاگرامهای
آینده با
شبکه مقصد
مشابه
دیتاگرام
اصلی، به
مسیریابی
که در فیلد Address
مشخص شده
است.
استفاده از
این کد بر
اساس RFC 1812
ممنوع است.
redirect-host, redi-host, host
کد 1.
تغییر مسیر
همه
دیتاگرامهای
آینده با
میزبان
مقصد مشابه
دیتاگرام
اصلی، به
مسیریابی
که در فیلد Address
مشخص شده
است.
redirect-network-tos, redi-ntos, redir-ntos
کد 2.
تغییر مسیر
همه
دیتاگرامهای
آینده با
شبکه مقصد و
مقدار IP TOS
مشابه با
دیتاگرام
اصلی، به
مسیریابی
که در فیلد Address
مشخص شده
است.
استفاده از
این کد بر
اساس RFC 1812
ممنوع است.
redirect-host-tos, redi-htos, redir-htos
کد 3.
تغییر مسیر
همه
دیتاگرامهای
آینده با
میزبان
مقصد و
مقدار IP TOS
مشابه با
دیتاگرام
اصلی، به
مسیریابی
که در فیلد Address
مشخص شده
است.
اعلان
مسیریاب (Router
Advertisement)
normal-advertisement, norm-adv, normal, zero, default, def
کد 0.
اعلان عادی
مسیریاب. در
Mobile IP: کارگزار
پویایی (Mobility agent)
میتواند
به عنوان یک
مسیریاب
برای
دیتاگرامهای
IP غیرمرتبط
با گرههای
متحرک عمل
کند.
not-route-common-traffic, not-rou, mobile-ip, !route,
!commontraffic
کد 16. مورد
استفاده در
Mobile IP. کارگزار
پویایی،
ترافیک
عمومی را
هدایت (route)
نمیکند.
تمام
کارگزارهای
خارجی (foreign agents)
باید
هرگونه
دیتاگرام
دریافتشده
از یک گره
متحرک
ثبتشده را
به یک
مسیریاب
پیشفرض
فوروارد
کنند.
اتمام
مهلت زمانی
(Time Exceeded)
ttl-exceeded-in-transit, ttl-exc, ttl-transit
کد 0. زمان
حیات (Time To Live یا TTL)
پروتکل IP در
حین انتقال
منقضی شده
است.
fragment-reassembly-time-exceeded, frag-exc, frag-time
کد 1. مهلت
زمان
بازترکیب
قطعات (fragment reassembly)
منقضی شده
است.
مشکل در
پارامتر (Parameter
Problem)
pointer-indicates-error, poin-ind, pointer
کد 0. فیلد
اشارهگر (pointer)
محل بروز
مشکل را
نشان
میدهد.
گزینه --icmp-param-pointer
را ببینید.
missing-required-option, miss-option, option-missing
کد 1.
انتظار
میرفت
دیتاگرام IP
گزینهای
داشته باشد
که وجود
ندارد.
bad-length, bad-len, badlen
کد 2. طول
دیتاگرام IP
نامعتبر
است.
--arp-type type (نوع
ICMP)
این
گزینه مشخص
میکند که
چه نوعی از
پیامهای ARP
باید تولید
شوند. type
میتواند
به دو روش
مختلف
ارائه شود.
میتوانید
از
شمارههای
رسمی
تعیینشده
توسط IANA[2] (برای
مثال --arp-type 1
برای ARP Request)
استفاده
کنید، یا از
یکی از
نامهای
اختصاری در
بخش موسوم
به “ARP Types” بهره
ببرید.
--arp-sender-mac mac
(آدرس MAC
فرستنده)
این
گزینه فیلد
Sender Hardware Address از هدر ARP
را تنظیم
میکند.
اگرچه ARP از
انواع
مختلفی از
آدرسهای
لایه پیوند
پشتیبانی
میکند،
اما در حال
حاضر Nping تنها
از
آدرسهای MAC
پشتیبانی
میکند. mac
باید با
استفاده از
قالب سنتی MAC
مشخص شود
(برای مثال
00:0a:8a:32:f4:ae). همچنین
میتوانید
از خط پیوند
به عنوان
جداکننده
استفاده
کنید (برای
مثال 00-0a-8a-32-f4-ae).
--arp-sender-ip addr
(آدرس IP
فرستنده)
این
گزینه فیلد
Sender IP از هدر ARP را
تنظیم
میکند. addr
میتواند
به عنوان یک
آدرس IPv4 یا یک
نام میزبان
(hostname) مشخص شود.
--arp-target-mac mac
(آدرس MAC هدف)
این
گزینه فیلد
Target Hardware Address از هدر ARP
را تنظیم
میکند.
--arp-target-ip addr
(آدرس IP هدف)
این
گزینه فیلد
Target IP از هدر ARP را
تنظیم
میکند.
این
شناسهها
میتوانند
به عنوان
کدهای
یادافزا (mnemonics)
برای
شمارههای
نوع ARP که به
گزینهٔ --arp-type
داده
میشوند،
استفاده
شوند.
arp-request, arp, a
درخواست
ARP (نوع ۱).
درخواستهای
ARP برای تبدیل
آدرسهای
لایه شبکه
(معمولاً
آدرسهای IP)
به
آدرسهای
لایه پیوند
(معمولاً
آدرسهای MAC)
استفاده
میشوند.
اساساً یک
درخواست ARP
پیامی
همگانی (broadcast)
است که از
میزبانِ
دارای یک
آدرس IP مشخص
در همان
قطعه شبکه
میخواهد
تا آدرس MAC خود
را ارائه
دهد.
arp-reply, arp-rep, ar
پاسخ ARP
(نوع ۲). یک
پاسخ ARP پیامی
است که
میزبان در
پاسخ به یک
درخواست ARP
برای ارائه
آدرس لایه
پیوند خود
ارسال
میکند.
rarp-request, rarp, r
درخواستهای
RARP (نوع ۳).
درخواستهای
RARP برای تبدیل
یک آدرس
لایه پیوند
(معمولاً
آدرس MAC) به یک
آدرس لایه
شبکه
(معمولاً
آدرس IP)
استفاده
میشوند.
اساساً یک
درخواست RARP
پیامی
همگانی است
که توسط
میزبانی
ارسال
میشود که
میخواهد
آدرس IP خود را
بداند زیرا
فاقد آن است.
این نخستین
پروتکلی
بود که برای
حل مشکل
راهاندازی
اولیه (bootstrapping)
طراحی شد. با
این حال، RARP
اکنون
منسوخ شده و
به جای آن از
DHCP استفاده
میشود.
برای
اطلاعات
بیشتر
دربارهٔ RARP به
RFC 903 مراجعه
کنید.
rarp-reply, rarp-rep, rr
پاسخ RARP
(نوع ۴). یک
پاسخ RARP پیامی
است که در
پاسخ به یک
درخواست RARP
فرستاده
میشود تا
آدرس IP را به
میزبانی که
در ابتدا
درخواست RARP را
فرستاده
است ارائه
دهد.
drarp-request, drarp, d
درخواست
Dynamic RARP (نوع ۵).
پروتکل RARP
پویا (Dynamic RARP)
توسعهای
بر RARP است که
برای
دریافت یا
تخصیص یک
آدرس لایه
شبکه از یک
آدرس ثابت
لایه پیوند
به کار
میرود.
پروتکل DRARP
عمدتاً در
اواخر دهه
۹۰ در
بسترهای Sun Microsystems
استفاده
میشد اما
اکنون دیگر
کاربردی
ندارد. برای
اطلاعات
بیشتر به RFC 1931
مراجعه
کنید.
drarp-reply, drarp-rep, dr
پاسخ Dynamic RARP
(نوع ۶). یک
پاسخ DRARP
پیامی است
که در پاسخ
به یک
درخواست RARP
برای ارائه
آدرس لایه
شبکه
فرستاده
میشود.
drarp-error, drarp-err, de
خطای DRARP
(نوع ۷).
پیامهای
خطای DRARP
معمولاً در
پاسخ به
درخواستهای
DRARP برای
اعلام بروز
یک خطا
ارسال
میشوند. در
پیامهای
خطای DRARP،
فیلد Target Protocol Address
برای حمل یک
کد خطا
(معمولاً در
اولین بایت)
استفاده
میشود. کد
خطا برای
این است که
توضیح دهد
چرا هیچ
آدرس
پروتکل
هدفی
برگردانده
نمیشود.
برای
اطلاعات
بیشتر به RFC 1931
مراجعه
کنید.
inarp-request, inarp, i
درخواست
Inverse ARP (نوع ۸).
درخواستهای
InARP برای
تبدیل یک
آدرس لایه
پیوند به یک
آدرس لایه
شبکه
استفاده
میشوند.
این
سازوکار
مشابه
درخواست RARP
است اما در
این مورد،
فرستندهٔ
درخواست InARP
میخواهد
آدرس لایه
شبکه یک گره
دیگر را
بداند، نه
آدرس خودش
را. پروتکل InARP
عمدتاً در
شبکههای Frame Relay
و ATM استفاده
میشود.
برای
اطلاعات
بیشتر به RFC 2390
مراجعه
کنید.
inarp-reply, inarp-rep, ir
پاسخ Inverse ARP
(نوع ۹).
پیامهای
پاسخ InARP در
پاسخ به
درخواستهای
InARP ارسال
میشوند تا
آدرس لایه
شبکه مرتبط
با میزبانی
که دارای
آدرس لایه
پیوند
مشخصی است
را ارائه
دهند.
arp-nak, an
پیام ARP NAK
(نوع ۱۰).
پیامهای ARP NAK
افزونهای
بر پروتکل ATMARP
هستند و
برای بهبود
پایداری
سازوکار
کارساز ATMARP
استفاده
میشوند. با ARP
NAK، کلاینت
میتواند
تفاوت بین
خطای
فاجعهبار
سرور و شکست
در جستجوی
جدول ATMARP را
تشخیص دهد.
برای
اطلاعات
بیشتر به RFC 1577
مراجعه
کنید.
-S addr, --source-ip
addr (آدرس IP
مبدأ / Source IP Address)
آدرس IP
مبدأ را
تعیین
میکند. این
گزینه به
شما امکان
میدهد تا
یک آدرس IP
سفارشی را
برای
استفاده به
عنوان آدرس IP
مبدأ در
بستههای
ارسالی
مشخص کنید.
این کار
اجازه جعل
فرستنده
بستهها را
میدهد. addr
میتواند
یک آدرس IPv4 یا
یک نام
میزبان
باشد.
--dest-ip addr
(آدرس IP مقصد /
Destination IP Address)
یک هدف
به فهرست
اهداف Nping
اضافه
میکند. این
گزینه برای
سازگاری
ارائه شده
است اما
استفاده از
آن به نفع
مشخصکردن
ساده اهداف
منسوخ شده
است. به بخش
“تعیین هدف
(TARGET SPECIFICATION)”
مراجعه
کنید.
--tos tos (نوع
سرویس / Type of Service)
فیلد IP TOS را
تنظیم
میکند.
فیلد TOS برای
حمل
اطلاعاتی
جهت ارائه
ویژگیهای
کیفیت
سرویس (QoS)
استفاده
میشود. این
فیلد
معمولاً
برای
پشتیبانی
از روشی به
نام Differentiated Services به
کار میرود.
برای
اطلاعات
بیشتر به RFC 2474
مراجعه
کنید. tos باید
عددی در
بازهٔ [0–255]
باشد.
--id id
(شناسه / Identification)
فیلد Identification
در IPv4 را
تنظیم
میکند.
فیلد Identification یک
مقدار ۱۶
بیتی است که
بین تمام
قطعات
متعلق به یک
پیام مشخص
مشترک است.
این مقدار
توسط
گیرنده
برای
سرهمکردن
مجدد پیام
اصلی از روی
قطعات
دریافتی
استفاده
میشود. id
باید عددی
در بازهٔ [0–65535]
باشد.
--df
(قطعهقطعه
نکن / Don't Fragment)
بیت Don't Fragment را
در
بستههای
ارسالی
فعال
میکند.
هنگامی که
پرچم DF یک
دیتاگرام IP
فعال است،
دستگاههای
میانی مجاز
به
قطعهقطعه
کردن آن
نیستند؛
بنابراین
اگر نیاز
باشد که از
شبکهای با MTU
کوچکتر از
طول
دیتاگرام
عبور کند،
دیتاگرام
باید دور
انداخته
شود. در حالت
عادی یک
پیام ICMP Destination Unreachable
تولید و به
فرستنده
بازگردانده
میشود.
--mf (قطعات
بیشتر / More Fragments)
بیت More Fragments را
در
بستههای
ارسالی
تنظیم
میکند.
پرچم MF بدین
منظور
تنظیم
میشود که
به گیرنده
نشان دهد
دیتاگرام
فعلی،
قطعهای از
یک
دیتاگرام
بزرگتر
است. صفر
بودن آن
نشان
میدهد که
دیتاگرام
فعلی یا
آخرین قطعه
از این
مجموعه است
یا تنها
قطعهٔ آن
است.
--evil (رزرو
شده / خبیث - Reserved /
Evil)
بیت Reserved / Evil را
در
بستههای
ارسالی
فعال
میکند.
پرچم Evil به
دیوارهای
آتش و سایر
سیستمهای
امنیت شبکه
کمک میکند
تا بین
دیتاگرامهایی
با قصد مخرب
و آنهایی
که صرفاً
غیرعادی
هستند
تمایز قائل
شوند. در
صورت فعال
بودن، نشان
میدهد که
دیتاگرام
نیت پلید
دارد و به
سیستمهای
ناامن
دستور
میدهد
تسلیم شوند.
تنظیم آن
روی صفر
بیانگر عدم
وجود نیت
خبیثانه
است. در
صورتی که
متغیر
محیطی SCRIPT_KIDDIE
روی مقداری
غیر از صفر
تنظیم شده
باشد، این
گزینه به
طور ضمنی
فعال
میشود.
--ttl hops (طول
عمر / Time To Live)
فیلد Time-To-Live (TTL)
را در
بستههای
ارسالی IPv4 روی
مقدار داده
شده تنظیم
میکند.
فیلد TTL مشخص
میکند که
یک
دیتاگرام
چه مدت مجاز
به بقا در
شبکه است. در
اصل برای
نشان دادن
تعداد
ثانیهها
در نظر
گرفته شده
بود، اما در
عمل
نشاندهنده
تعداد
گامهایی (hops)
است که یک
بسته
میتواند
پیش از دور
انداخته
شدن طی کند.
فیلد TTL تلاش
میکند از
وضعیتی
جلوگیری
کند که در آن
دیتاگرامهای
تحویلنشده
تا ابد از یک
مسیریاب به
مسیریاب
دیگر
بازفرستاده
شوند. hops باید
عددی در
بازهٔ [0–255]
باشد.
--badsum-ip
(چکسام
نامعتبر IP / Invalid IP
checksum)
از Nping
میخواهد
که برای
بستههای
ارسالی به
میزبانهای
هدف از
چکسام
نامعتبر IP
استفاده
کند. توجه
داشته
باشید که
برخی
سیستمها
(مانند
بیشتر
هستههای
Linux)، ممکن است
چکسام را
پیش از قرار
دادن بسته
روی بستر
شبکه اصلاح
کنند؛
بنابراین
حتی اگر Nping در
خروجی خود
چکسام
نادرست را
نشان دهد،
بستهها
ممکن است به
صورت شفاف
توسط هسته
تصحیح
شوند.
--ip-options R|S [route]|L [route]|T|U ...,
--ip-options hex string
(گزینههای IP
/ IP Options)
پروتکل IP
گزینههای
متعددی را
ارائه
میدهد که
میتوانند
در سرآیند
بسته قرار
گیرند.
برخلاف
گزینههای
همهجا
حاضر TCP،
گزینههای IP
به دلایل
کاربردی و
امنیتی
بهندرت
دیده
میشوند. در
واقع،
بسیاری از
مسیریابهای
اینترنت
خطرناکترین
گزینهها
مانند
مسیریابی
مبدأ (source routing) را
مسدود
میکنند. با
این حال،
این
گزینهها
همچنان
میتوانند
در برخی
موارد برای
تعیین و
دستکاری
مسیر شبکه
به سمت
ماشینهای
هدف مفید
باشند. برای
مثال، حتی
زمانی که
روشهای
سنتیتر به
سبک traceroute با
شکست مواجه
میشوند،
ممکن است
بتوانید از
گزینهٔ record route
برای تعیین
مسیر به یک
هدف
استفاده
کنید. یا اگر
بستههای
شما توسط یک
دیوار آتش
خاص دور
انداخته
میشوند،
ممکن است
بتوانید با
استفاده از
گزینههای
strict یا loose source routing مسیر
متفاوتی را
مشخص
نمایید.
قدرتمندترین
روش برای
تعیین
گزینههای
IP، ارسال
مستقیم
دادههای
شانزدهشانزدهی
(هگزادسیمال)
به عنوان
آرگومان به
--ip-options است. قبل
از هر مقدار
بایت
هگزادسیمال
از \x استفاده
کنید.
میتوانید
کاراکترهای
مشخصی را با
آوردن یک
ستاره و سپس
تعداد
دفعات
تکرار
دلخواه،
تکرار کنید.
برای مثال،
\x01\x07\x04\x00*4 مشابه
\x01\x07\x04\x00\x00\x00\x00 است.
توجه
داشته
باشید که
اگر تعداد
بایتی را
مشخص کنید
که مضربی از
چهار
نباشد، طول
سرآیند IP
نادرستی در
بستهٔ IP
تنظیم
خواهد شد.
دلیل این
امر این است
که فیلد طول
سرآیند IP
تنها
میتواند
مضربهای
چهار را
بیان کند. در
این
حالتها،
طول با
تقسیم طول
سرآیند بر ۴
و گرد کردن
به پایین
محاسبه
میشود. این
امر بر
نحوهٔ
تفسیر
سرآیندی که
پس از
سرآیند IP
میآید
تأثیر
گذاشته و
اطلاعات
جعلی در Nping یا
در خروجی هر
برنامه
شنود
بستهای (sniffer)
نمایش
میدهد.
اگرچه این
وضعیت ممکن
است برای
برخی
آزمایشهای
فشار پشته (stack
stress tests) مفید
باشد،
کاربران
معمولاً
میخواهند
لایهٔ
پرکننده (padding)
صریح تعیین
کنند تا طول
سرآیند به
درستی
تنظیم شود.
ابزار Nping
همچنین
سازوکار
میانبُری
را برای
تعیین
گزینهها
ارائه
میدهد.
کافی است
حرف R، T یا U را
به ترتیب
برای
درخواست
record-route، record-timestamp یا هر
دوی این
گزینهها
با هم وارد
کنید.
مسیریابی
مبدأ آزاد (loose)
یا صلب (strict) را
میتوان با
یک L یا S مشخص
کرد که پس از
آن یک فاصله
و سپس
فهرستی از
آدرسهای IP
جدا شده با
فاصله قرار
میگیرد.
برای
اطلاعات
بیشتر و
مشاهده
مثالهایی
از نحوهٔ
استفاده از
گزینههای IP
در Nping، به پست
فهرست پستی
در https://seclists.org/nmap-dev/2006/q3/0052.html
مراجعه
کنید.
--mtu size
(بزرگترین
واحد
انتقال / Maximum Transmission
Unit)
این
گزینه یک MTU
ساختگی را
در Nping تنظیم
میکند تا
دیتاگرامهای
IP بزرگتر از
size پیش از
ارسال
قطعهقطعه
شوند.
size باید
بر حسب بایت
مشخص شود و
متناظر با
تعداد
هشتبیتهایی
(octets) است که
میتوانند
در یک
تکفریم
لایه پیوند
حمل شوند.
-6, --ipv6
(استفاده از
IPv6)
به Nping
میگوید که
به جای IPv4
پیشفرض از IP
نسخه ۶
استفاده
کند. بهطور
کلی ایده
خوبی است که
این گزینه
را تا حد
امکان در
ابتدای خط
فرمان مشخص
کنید تا Nping
بتواند آن
را زودتر
تجزیه کرده
و از قبل
بداند که
باقی
پارامترها
به IPv6 اشاره
دارند. نحو
دستور
مانند
همیشه است،
با این
تفاوت که
گزینه
-6 را
نیز اضافه
میکنید.
البته، اگر
به جای یک
نام
میزبان، یک
نشانی را
مشخص
میکنید،
باید از نحو
IPv6 استفاده
کنید. نشانی
ممکن است
شبیه به
3ffe:7501:4819:2000:210:f3ff:fe03:14d0
باشد،
بنابراین
استفاده از
نام میزبان
پیشنهاد
میشود.
اگرچه IPv6
هنوز جهان
را کاملاً
تسخیر
نکرده است،
اما در برخی
کشورها
(معمولاً
آسیایی)
استفاده
چشمگیری
دارد و
بیشتر
سیستمعاملهای
امروزی از
آن
پشتیبانی
میکنند.
برای
استفاده از
Nping با IPv6، باید
هم مبدأ و هم
مقصد
بستههای
شما برای IPv6
پیکربندی
شده باشند.
اگر
ارائهدهنده
خدمات
اینترنت
شما (ISP) (مانند
بیشتر
آنها)
نشانیهای
IPv6 به شما
اختصاص
نمیدهد،
کارگزارهای
رایگان
تونل (tunnel brokers)
بهطور
گسترده در
دسترس
هستند و
بهخوبی با
Nping کار
میکنند.
میتوانید
از سرویس
رایگان
کارگزار
تونل IPv6 در
http://www.tunnelbroker.net
استفاده
کنید.
لطفاً
توجه داشته
باشید که
پشتیبانی
از IPv6 هنوز
بسیار
آزمایشی
است و ممکن
است بسیاری
از حالتها
و گزینهها
با آن کار
نکنند.
-S addr, --source-ip
addr (نشانی IP
مبدأ)
نشانی IP
مبدأ را
تنظیم
میکند. این
گزینه به
شما اجازه
میدهد
نشانی IP
دلخواهی را
مشخص کنید
تا به عنوان
نشانی IP مبدأ
در
بستههای
ارسالی
استفاده
شود. این کار
امکان جعل (spoofing)
فرستنده
بستهها را
فراهم
میکند. addr
میتواند
یک نشانی IPv6
یا یک نام
میزبان
باشد.
--dest-ip addr
(نشانی IP
مقصد)
هدفی را
به فهرست
اهداف Nping
اضافه
میکند. این
گزینه برای
حفظ
سازگاری
ارائه شده
است، اما
استفاده از
آن به نفع
مشخص کردن
مستقیم و
ساده هدف
منسوخ شده
است. بخش “TARGET
SPECIFICATION” را
ببینید.
--flow label
(برچسب
جریان)
فیلد Flow Label
در IPv6 را
تنظیم
میکند.
فیلد Flow Label طولی
معادل ۲۰
بیت دارد و
هدف آن
ارائه برخی
ویژگیهای
کیفیت
خدمات (QoS)
برای تحویل
بیدرنگ
دیتاگرام
است. با این
حال، هنوز
بهطور
گسترده
مورد پذیرش
قرار
نگرفته است
و همه
مسیریابها
یا نقاط
پایانی از
آن
پشتیبانی
نمیکنند.
برای
اطلاعات
بیشتر RFC 2460 را
بررسی کنید.
label باید یک
عدد صحیح در
بازه [0–1048575]
باشد.
--traffic-class class
(کلاس
ترافیک)
فیلد Traffic Class
در IPv6 را
تنظیم
میکند. این
فیلد مشابه
فیلد TOS در IPv4
است و هدف آن
ارائه روش
Differentiated Services است که
تفکیک
مقیاسپذیر
خدمات در
اینترنت را
بدون نیاز
به حفظ
وضعیت در هر
جریان و
سیگنالدهی
در هر گام
ممکن
میسازد.
برای
اطلاعات
بیشتر RFC 2474 را
بررسی کنید.
class باید یک
عدد صحیح در
بازه [0–255]
باشد.
--hop-limit hops (حد
گام)
فیلد Hop Limit در IPv6
را در
بستههای
ارسالی روی
مقدار
دادهشده
تنظیم
میکند.
فیلد Hop Limit مشخص
میکند که
دیتاگرام
چه مدت مجاز
است در شبکه
وجود داشته
باشد. این
مقدار
نشاندهنده
تعداد
گامهایی
است که یک
بسته
میتواند
پیش از دور
انداخته
شدن طی کند.
همانند TTL در
IPv4، فیلد Hop Limit در
IPv6 نیز سعی
میکند از
شرایطی که
در آن
دیتاگرامهای
غیرقابلتحویل
بهطور
بیپایان
از یک
مسیریاب به
مسیریاب
دیگر
بازفرستاده
میشوند،
جلوگیری
کند. hops باید
عددی در
بازه [0–255]
باشد.
در بیشتر
موارد Nping
بستهها را
در سطح خام IP
ارسال
میکند. این
بدان
معناست که Nping
بستههای IP
خود را
میسازد و
آنها را از
طریق یک
سوکت خام (raw socket)
مخابره
میکند. با
این حال، در
برخی موارد
ممکن است
ارسال
بستهها در
سطح خام
اترنت
ضروری باشد.
این حالت،
برای مثال،
زمانی رخ
میدهد که Nping
در Windows اجرا
شود (چرا که
Microsoft پشتیبانی
از سوکت خام
را از زمان Windows
XP SP2 غیرفعال
کرده است)،
یا زمانی که
از Nping خواسته
شود
بستههای ARP
ارسال کند.
از آنجا که
در برخی
موارد ساخت
فریمهای
اترنت
ضروری است،
Nping
گزینههایی
را برای
دستکاری
فیلدهای
مختلف
ارائه
میدهد.
--dest-mac mac
(نشانی MAC
مقصد در
اترنت)
این
گزینه
نشانی MAC
مقصدی را که
باید در
فریمهای
اترنت
خروجی قرار
گیرد،
تنظیم
میکند. این
ویژگی
زمانی مفید
است که Nping
نتواند
نشانی MAC گام
بعدی را
تعیین کند
یا زمانی که
بخواهید
کاوشها را
از طریق
مسیریابی
غیر از
دروازه
پیشفرض
پیکربندیشده
عبور دهید.
نشانی MAC باید
قالب معمول
شش بایت
جداشده با
دونقطه را
داشته
باشد،
مانند 00:50:56:d4:01:98.
علاوه بر
این،
میتوان به
جای دونقطه
از خط تیره
استفاده
کرد. از کلمه
random یا rand برای
ایجاد یک
نشانی
تصادفی، و
از broadcast یا bcast
برای
استفاده از
ff:ff:ff:ff:ff:ff استفاده
کنید. اگر یک
نشانی MAC مقصد
ساختگی
تنظیم
کنید، ممکن
است
کاوشهای
شما به
اهداف مورد
نظر نرسند.
--source-mac mac
(نشانی MAC
مبدأ در
اترنت)
این
گزینه
نشانی MAC
مبدأیی را
که باید در
فریمهای
اترنت
خروجی قرار
گیرد،
تنظیم
میکند. این
ویژگی
زمانی مفید
است که Nping
نتواند
نشانی MAC رابط
شبکه شما را
تعیین کند
یا زمانی که
بخواهید
ترافیک را
ضمن
پنهانسازی
نشانی
واقعی کارت
شبکه خود به
درون شبکه
تزریق کنید.
نحو این
گزینه
مشابه --dest-mac است.
اگر یک
نشانی MAC مبدأ
ساختگی
تنظیم
کنید، ممکن
است پاسخ
کاوشها را
دریافت
نکنید.
--ether-type type (Ethertype)
این
گزینه فیلد
Ethertype فریم
اترنت را
تنظیم
میکند. Ethertype
برای مشخص
کردن
پروتکلی که
در بار
بارگذاریشده
(payload)
کپسولهسازی
شده،
استفاده
میشود. type
میتواند
به دو روش
مختلف
ارائه شود.
میتوانید
از
شمارههای
رسمی
فهرستشده
توسط IEEE[3]
(مانند --ether-type 0x0800
برای IP نسخه ۴)
یا یکی از
نامهای
اختصاری در
بخش “Ethernet Types”
استفاده
کنید.
این
شناسهها
ممکن است به
عنوان
نامهای
اختصاری
برای
شمارههای
Ethertype دادهشده
به گزینه --arp-type
استفاده
شوند.
ipv4, ip, 4
Internet Protocol version 4 (نوع
0x0800).
ipv6, 6
Internet Protocol version 6 (نوع
0x86DD).
arp
Address Resolution Protocol (نوع
0x0806).
rarp
Reverse Address Resolution Protocol
(نوع 0x8035).
frame-relay, frelay, fr
Frame Relay (نوع 0x0808).
ppp
Point-to-Point Protocol (نوع
0x880B).
gsmp
General Switch Management Protocol
(نوع 0x880C).
mpls
Multiprotocol Label Switching (نوع
0x8847).
mps-ual, mps
Multiprotocol Label Switching with Upstream-assigned
Label (نوع 0x8848).
mcap
Multicast Channel Allocation Protocol
(نوع 0x8861).
pppoe-discovery, pppoe-d
PPP over Ethernet Discovery Stage
(نوع 0x8863).
pppoe-session, pppoe-s
PPP over Ethernet Session Stage (نوع
0x8864).
ctag
Customer VLAN Tag Type (نوع
0x8100).
epon
Ethernet Passive Optical Network
(نوع 0x8808).
pbnac
Port-based network access control
(نوع 0x888E).
stag
Service VLAN tag identifier (نوع
0x88A8).
ethexp1
Local Experimental Ethertype 1 (نوع
0x88B5).
ethexp2
Local Experimental Ethertype 2 (نوع
0x88B6).
ethoui
OUI Extended Ethertype (نوع
0x88B7).
preauth
Pre-Authentication (نوع
0x88C7).
lldp
Link Layer Discovery Protocol (نوع
0x88CC).
mac-security, mac-sec, macsec
Media Access Control Security (نوع
0x88E5). mvrp
پروتکل Multiple
VLAN Registration Protocol (نوع 0x88F5).
mmrp
پروتکل Multiple
Multicast Registration Protocol (نوع 0x88F6).
frrr
پروتکل Fast
Roaming Remote Request (نوع 0x890D).
--data hex string
(پیوست
دادههای
دودویی
سفارشی به
بستههای
ارسالی)
این
گزینه به
شما اجازه
میدهد
دادههای
دودویی را
بهعنوان
بار داده (payload)
در
بستههای
ارسالی
قرار دهید. hex
string میتواند
در هر یک از
قالبهای
زیر مشخص
شود: 0xAABBCCDDEEFF...،
AABBCCDDEEFF... یا \xAA\xBB\xCC\xDD\xEE\xFF....
نمونههایی
از کاربرد
عبارتند از
--data 0xdeadbeef و --data \xCA\xFE\x09.
توجه داشته
باشید که
اگر عددی
مانند 0x00ff را
مشخص کنید،
هیچ تبدیلی
در ترتیب
بایتها (byte-order)
انجام
نمیشود.
مطمئن شوید
اطلاعات را
در ترتیب
بایتی مورد
انتظار
گیرنده
مشخص
میکنید.
--data-string string
(پیوست رشته
سفارشی به
بستههای
ارسالی)
این
گزینه به
شما اجازه
میدهد یک
رشته
معمولی را
بهعنوان
بار داده در
بستههای
ارسالی
بگنجانید.
string میتواند
شامل هر
رشتهای
باشد. با این
حال، توجه
داشته
باشید که
برخی
نویسهها
ممکن است به
محلیسازی
(locale) سیستم شما
وابسته
باشند و
گیرنده
همان
اطلاعات را
نبیند.
همچنین،
مطمئن شوید
رشته را
درون
علامتهای
نقلقول
دوتایی
قرار داده و
نویسههای
خاص را برای
شل گریزدهی
(escape) کنید. مثال:
--data-string "Jimmy Jazz...".
--data-length len
(پیوست
دادههای
تصادفی به
بستههای
ارسالی)
این
گزینه به
شما اجازه
میدهد len
بایت داده
تصادفی را
بهعنوان
بار داده در
بستههای
ارسالی
بگنجانید. len
باید یک عدد
صحیح در
بازه [0–65400]
باشد. با این
حال،
مقادیر
بیشتر از 1400
توصیه
نمیشوند
زیرا ممکن
است به دلیل
محدودیتهای
MTU شبکه،
ارسال
بستهها
امکانپذیر
نباشد.
«حالت
اکو» (Echo Mode) یک
تکنیک
نوآورانه
پیادهسازیشده
در Nping است که
به کاربران
اجازه
میدهد
چگونگی
تغییر
بستههای
شبکه را
هنگام عبور
در مسیر، از
میزبان
مبدأ تا
دستگاه
مقصد
مشاهده
کنند.
اساساً،
حالت اکو Nping
را به دو بخش
متمایز
تبدیل
میکند:
کارساز اکو
(Echo server) و کلاینت
اکو (Echo client).
کارساز اکو
یک سرویس
شبکه است که
توانایی
جذب
بستهها از
شبکه و
ارسال یک
رونوشت از
آنها («اکو
کردن
آنها») به
کلاینت
مبدأ را از
طریق یک
کانال
جانبی TCP
دارد.
کلاینت اکو
بخشی است که
این
بستههای
شبکه را
تولید
کرده، به
کارساز
ارسال
میکند، و
نسخه
اکوشده
آنها را از
طریق کانال
جانبی TCP که
پیشتر با
کارساز اکو
برقرار
کرده،
دریافت
مینماید.
این طرح به
کلاینت
اجازه
میدهد
تفاوتهای
بین
بستههایی
را که ارسال
میکند و
آنچه در
واقع توسط
کارساز
دریافت
میشود را
مشاهده کند.
با ارسال
رونوشت
بستههای
دریافتی
توسط
کارساز از
طریق کانال
جانبی،
مواردی
مانند
دستگاههای
NAT بلافاصله
برای
کلاینت
آشکار
میشوند،
زیرا متوجه
تغییرات در
نشانی IP مبدأ
(و حتی
احتمالاً
درگاه مبدأ)
میشود.
دستگاههای
دیگر مانند
مواردی که
شکلدهی
ترافیک (traffic shaping)
انجام
میدهند،
اندازه
پنجرههای TCP
را تغییر
میدهند یا
گزینههای TCP
را بهصورت
شفاف بین
میزبانها
اضافه
میکنند
نیز آشکار
میشوند.
حالت اکو
همچنین
برای
عیبیابی
مشکلات
مسیریابی و
فایروال
مفید است. از
جمله موارد
دیگر،
میتوان از
آن برای
تعیین این
موضوع
استفاده
کرد که آیا
ترافیک
تولیدشده
توسط
کلاینت Nping در
مسیر عبور
دور ریخته
میشود و
هرگز به
مقصد
نمیرسد یا
اینکه
پاسخها
هستند که
برنمیگردند.
در درون،
کلاینت و
کارساز از
طریق یک
کانال
رمزگذاریشده
و احراز
هویتشده
با استفاده
از Nping Echo Protocol (NEP)
ارتباط
برقرار
میکنند،
که مشخصات
فنی آن را
میتوان در
https://nmap.org/svn/nping/docs/EchoProtoRFC.txt
یافت.
بندهای
زیر
گزینههای
گوناگون
موجود در
حالت اکوی Nping
را شرح
میدهند.
--ec passphrase, --echo-client
passphrase (اجرای
کلاینت
اکو)
این
گزینه به Nping
دستور
میدهد تا
بهعنوان
یک کلاینت
اکو اجرا
شود.
passphrase
دنبالهای
از
نویسههای ASCII
است که برای
تولید
کلیدهای
رمزنگاری
مورد نیاز
برای
رمزگذاری و
احراز هویت
در یک نشست
مشخص
استفاده
میشود.
عبارت عبور
باید رازی
باشد که
کارساز نیز
از آن مطلع
است، و
میتواند
شامل هر
تعداد
نویسه
چاپپذیر ASCII
باشد.
عبارتهای
عبوری که
دارای
فاصله یا
نویسههای
خاص هستند
باید داخل
علامتهای
نقلقول
دوتایی
قرار گیرند.
هنگام
اجرای Nping
بهعنوان
کلاینت
اکو، بیشتر
گزینههای
حالتهای
عادی کاوش
خام (raw probe)
اعمال
میشوند.
کلاینت
میتواند
برای ارسال
کاوشهای
خاص با
استفاده از
پرچمهایی
مانند --tcp، --icmp
یا --udp
پیکربندی
شود.
فیلدهای
سرایند
پروتکل را
میتوان
بهصورت
معمول با
گزینههای
مناسب
دستکاری
کرد (مانند
--ttl، --seq، --icmp-type و
غیره). تنها
استثنا
پرچمهای
مربوط به ARP
هستند که در
حالت اکو
پشتیبانی
نمیشوند،
زیرا
پروتکلهایی
مانند ARP
ارتباط
نزدیکی با
لایه پیوند
داده دارند
و کاوشهای
آن
نمیتوانند
از بخشهای
مختلف شبکه
عبور کنند.
--es passphrase, --echo-server
passphrase (اجرای
کارساز
اکو)
این
گزینه به Nping
دستور
میدهد تا
بهعنوان
یک کارساز
اکو اجرا
شود. passphrase
دنبالهای
از
نویسههای ASCII
است که برای
تولید
کلیدهای
رمزنگاری
مورد نیاز
برای
رمزگذاری و
احراز هویت
در یک نشست
مشخص
استفاده
میشود.
عبارت عبور
باید رازی
باشد که
کلاینتها
نیز از آن
مطلع
هستند، و
میتواند
شامل هر
تعداد
نویسه
چاپپذیر ASCII
باشد.
عبارتهای
عبوری که
دارای
فاصله یا
نویسههای
خاص هستند
باید داخل
علامتهای
نقلقول
دوتایی
قرار گیرند.
توجه داشته
باشید که
اگرچه
توصیه
نمیشود،
اما
استفاده از
عبارت عبور
خالی با
تعیین --echo-server ""
امکانپذیر
است. با این
حال، اگر
هدف شما
راهاندازی
یک کارساز
اکوی عمومی
است، بهتر
است از
گزینه --no-crypto
استفاده
کنید. برای
جزئیات به
بخش زیر
مراجعه
کنید.
--ep port, --echo-port
port (تنظیم
شماره
درگاه TCP اکو)
این
گزینه از Nping
میخواهد
تا شماره
درگاه TCP
مشخصشده
را برای
اتصال
کانال
جانبی اکو
استفاده
کند. اگر این
گزینه
همراه با --echo-server
استفاده
شود،
درگاهی را
مشخص
میکند که
کارساز روی
آن منتظر
اتصال
میماند.
اگر همراه
با --echo-client
استفاده
شود، درگاه
مورد نظر
برای اتصال
در میزبان
دوردست را
مشخص
میکند.
بهطور
پیشفرض،
از درگاه
شماره 9929
استفاده
میشود.
--nc, --no-crypto
(غیرفعالسازی
رمزگذاری و
احراز
هویت)
این
گزینه از Nping
میخواهد
که در طول
نشست اکو از
هیچ عملیات
رمزنگاری
استفاده
نکند. در
عمل، این
بدان
معناست که
دادههای
نشست کانال
جانبی اکو
بهصورت
متن آشکار (cleartext)
منتقل شده و
در طول
مرحله
برقراری
نشست، هیچ
احراز
هویتی توسط
کارساز یا
کلاینت
انجام
نخواهد شد.
هنگامی که
--no-crypto استفاده
میشود،
عبارت عبور
ارائهشده
با
--echo-server یا
--echo-client
نادیده
گرفته
میشود.
اگر Nping بدون
پشتیبانی
از openSSL
کامپایل
شده باشد،
این گزینه
باید مشخص
شود. توجه
داشته
باشید که به
دلایل فنی،
همچنان
لازم است یک
عبارت عبور
پس از
پرچمهای
--echo-client یا --echo-server
ارائه شود،
هرچند که
نادیده
گرفته
خواهد شد.
پرچم --no-crypto
ممکن است
هنگام
راهاندازی
یک کارساز
اکوی عمومی
مفید باشد،
زیرا به
کاربران
اجازه
میدهد
بدون نیاز
به هیچ
عبارت عبور
یا راز
مشترکی به
کارساز اکو
متصل شوند.
با این حال،
اکیداً
توصیه
میشود که
از --no-crypto
استفاده
نکنید مگر
اینکه
کاملاً
ضروری باشد.
کارسازهای
اکوی عمومی
باید طوری
پیکربندی
شوند که از
عبارت عبور
"public" یا عبارت
عبور خالی
(--echo-server "")
استفاده
کنند، چرا
که استفاده
از
رمزنگاری
نه تنها
محرمانگی و
احراز
هویت، بلکه
یکپارچگی
پیام را نیز
فراهم
میکند.
--once
(پاسخگویی
به یک
کلاینت و
خروج)
این
گزینه از
کارساز اکو
میخواهد
که پس از
پاسخگویی
به یک
کلاینت،
خارج شود.
این ویژگی
زمانی مفید
است که تنها
برقراری یک
نشست اکوی
تکی مد نظر
باشد، زیرا
نیاز به
دسترسی به
میزبان
دوردست
برای خاموش
کردن
کارساز را
از بین
میبرد.
--safe-payloads (صفر
کردن
دادههای
برنامه پیش
از اکو کردن
بسته)
این
گزینه از
کارساز اکو
میخواهد
پیش از اکو
کردن
بستههای
کلاینت،
هرگونه
داده لایه
کاربرد
موجود در
آنها را
پاک کند.
هنگامی که
این گزینه
فعال است،
کارساز اکو
بستههای
دریافتی از
کلاینتهای
اکو را
تجزیه کرده
و تلاش
میکند
مشخص کند که
آیا
دادهای
فراتر از
لایه
انتقال
دارند یا
خیر. در صورت
یافتن چنین
دادههایی،
پیش از
ارسال
بستهها به
کلاینت
اکوی
مربوطه،
روی آنها
با صفر
رونویسی
میشود.
کارسازهای
اکو
میتوانند
چندین
کلاینت
همزمان را
مدیریت
کنند که
چندین نشست
اکو را
بهطور
موازی اجرا
میکنند.
برای تعیین
اینکه کدام
بسته باید
به کدام
کلاینت و از
طریق کدام
نشست اکو
شود،
کارساز اکو
از یک
الگوریتم
اکتشافی (heuristic)
استفاده
میکند.
گرچه ما
تمام
تدابیر
امنیتی
ممکنی را که
به ذهنمان
میرسید
برای
جلوگیری از
دریافت
بسته
اکوشدهای
که کلاینت
آن را ایجاد
نکرده
اتخاذ
کردهایم،
اما همواره
این ریسک
وجود دارد
که
الگوریتم
دچار خطا
شده و
بستهای را
به کلاینت
اشتباهی
تحویل دهد.
گزینه --safe-payloads
برای
کارسازهای
اکوی عمومی
یا
استقرارهای
حیاتی که
تحمل چنین
خطایی در
آنها وجود
ندارد،
مفید است.
مثالهای
زیر نشان
میدهند
چگونه
میتوان از
حالت اکوی Nping
برای کشف
دستگاههای
میانی
استفاده
کرد.
مثال ۲. کشف
دستگاههای
NAT
# nping --echo-client "public" echo.nmap.org --udp
Starting Nping ( https://nmap.org/nping )
SENT (1.0970s) UDP 10.1.20.128:53 > 178.79.165.17:40125 ttl=64 id=32523 iplen=28
CAPT (1.1270s) UDP 80.38.10.21:45657 > 178.79.165.17:40125 ttl=54 id=32523 iplen=28
RCVD (1.1570s) ICMP 178.79.165.17 > 10.1.20.128 Port unreachable (type=3/code=3) ttl=49 id=16619 iplen=56
[...]
SENT (5.1020s) UDP 10.1.20.128:53 > 178.79.165.17:40125 ttl=64 id=32523 iplen=28
CAPT (5.1335s) UDP 80.38.10.21:45657 > 178.79.165.17:40125 ttl=54 id=32523 iplen=28
RCVD (5.1600s) ICMP 178.79.165.17 > 10.1.20.128 Port unreachable (type=3/code=3) ttl=49 id=16623 iplen=56
Max rtt: 60.628ms | Min rtt: 58.378ms | Avg rtt: 59.389ms
Raw packets sent: 5 (140B) | Rcvd: 5 (280B) | Lost: 0 (0.00%)| Echoed: 5 (140B)
Tx time: 4.00459s | Tx bytes/s: 34.96 | Tx pkts/s: 1.25
Rx time: 5.00629s | Rx bytes/s: 55.93 | Rx pkts/s: 1.00
Nping done: 1 IP address pinged in 6.18 seconds
خروجی
بهوضوح
حضور یک
دستگاه NAT را
در شبکه
محلی
کلاینت
نشان
میدهد.
توجه کنید
که چگونه
بسته
جذبشده (CAPT)
با بسته
ارسالی (SENT)
تفاوت دارد:
نشانی مبدأ
بستههای
اصلی در
محدوده
رزروشده 10.0.0.0/8
قرار دارد،
در حالی که
نشانی
دیدهشده
توسط
کارساز 80.38.10.21،
یعنی نشانی
سمت
اینترنت
دستگاه NAT
است. درگاه
مبدأ نیز
توسط
دستگاه
تغییر
یافته است.
خطی که با RCVD
شروع
میشود،
مربوط به
پاسخهای
تولیدشده
توسط پشته TCP/IP
دستگاهی
است که
کارساز اکو
روی آن اجرا
میشود.
مثال ۳. کشف
یک پراکسی
شفاف
# nping --echo-client "public" echo.nmap.org --tcp -p80
Starting Nping ( https://nmap.org/nping )
SENT (1.2160s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40 seq=567704200 win=1480
RCVD (1.2180s) TCP 178.79.165.17:80 > 10.0.1.77:41659 SA ttl=128 id=13177 iplen=44 seq=3647106954 win=16384 <mss 1460>
SENT (2.2150s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40 seq=567704200 win=1480
SENT (3.2180s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40 seq=567704200 win=1480
SENT (4.2190s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40 seq=567704200 win=1480
SENT (5.2200s) TCP 10.0.1.77:41659 > 178.79.165.17:80 S ttl=64 id=3317 iplen=40 seq=567704200 win=1480
Max rtt: 2.062ms | Min rtt: 2.062ms | Avg rtt: 2.062ms
Raw packets sent: 5 (200B) | Rcvd: 1 (46B) | Lost: 4 (80.00%)| Echoed: 0 (0B)
Tx time: 4.00504s | Tx bytes/s: 49.94 | Tx pkts/s: 1.25
Rx time: 5.00618s | Rx bytes/s: 9.19 | Rx pkts/s: 0.20
Nping done: 1 IP address pinged in 6.39 seconds
در این
مثال،
تحلیل
خروجی
اندکی
پیچیدهتر
است. عدم
وجود
پیامهای
خطا نشان
میدهد که
کلاینت اکو
با موفقیت
یک نشست اکو
با کارساز
برقرار
کرده است. با
این وجود،
هیچ بسته CAPT
در خروجی
دیده
نمیشود.
این بدان
معناست که
هیچیک از
بستههای
ارسالی به
کارساز
نرسیدهاند.
جالب
اینجاست که
یک بسته TCP SYN-ACK
در پاسخ به
نخستین
بسته TCP-SYN
دریافت شده
است (و
همچنین
مشخص است که
میزبان هدف
درگاه 80 باز
ندارد). این
رفتار حضور
یک کارساز
حافظه
پنهان
پراکسی وب
شفاف (که در
این مورد،
یک سرور
قدیمی MS ISA است)
را آشکار
میسازد..SH
"گزینههای
زمانبندی
و کارایی (TIMING AND
PERFORMANCE OPTIONS)"
--delay time
(تأخیر بین
پروبها)
این
گزینه به
شما امکان
میدهد
کنترل کنید
که Nping چه مدت
پیش از
ارسال پروب
بعدی منتظر
بماند.
مانند
بسیاری از
ابزارهای ping
دیگر،
تأخیر
پیشفرض یک
ثانیه است. time
باید یک عدد
صحیح مثبت
یا عدد ممیز
شناور باشد.
بهطور
پیشفرض بر
حسب ثانیه
مشخص
میشود، با
این حال
میتوانید
با افزودن ms
برای
میلیثانیه،
s برای
ثانیه، m
برای
دقیقه، یا h
برای ساعت،
یک واحد
صریح تعیین
کنید (مانند
2.5s، 45m، 2h).
--rate rate
(ارسال
پروبها با
نرخ مشخص)
این
گزینه
تعداد
پروبهایی
را که Nping باید
در هر ثانیه
ارسال کند
مشخص
میکند. این
گزینه و --delay
معکوس
یکدیگرند؛
--rate 20 همانند --delay
0.05 است. اگر هر
دو گزینه
استفاده
شوند، تنها
آخرین مورد
در فهرست
پارامترها
اعمال
میشود.
-h، --help
(نمایش
راهنما)
اطلاعات
راهنما را
نمایش
میدهد و
خارج
میشود.
-V، --version
(نمایش
نسخه)
شماره
نسخهٔ
برنامه را
نمایش
میدهد و
خارج
میشود.
-c rounds، --count
rounds (توقف پس
از تعداد
مشخصی دور)
این
گزینه به
شما امکان
میدهد
تعداد
دفعاتی را
که Nping باید
روی
میزبانهای
مقصد (و در
برخی موارد
درگاههای
مقصد) دور
بزند مشخص
کنید. Nping به
اینها
“دور”
میگوید. در
یک اجرای
ساده تنها
با یک مقصد (و
تنها یک
درگاه مقصد
در
حالتهای
TCP/UDP)، تعداد
دورها
برابر با
تعداد
پروبهای
ارسالشده
به میزبان
مقصد است. با
این حال، در
اجراهای
پیچیدهتر
که Nping در
برابر
چندین مقصد
و چندین
درگاه اجرا
میشود،
تعداد
دورها
برابر با
تعداد
دفعاتی است
که Nping یک
مجموعهٔ
کامل از
پروبها را
که تمام IPهای
مقصد و تمام
درگاههای
مقصد را
پوشش
میدهد،
ارسال
میکند.
برای
نمونه، اگر
از Nping خواسته
شود
بستههای TCP SYN
را به
میزبانهای
192.168.1.0-255 و
درگاههای 80
و 433 بفرستد،
آنگاه 256 ×
2 = 512 بسته در
یک دور
ارسال
میشوند.
بنابراین
اگر -c 100 را
مشخص کنید،
Nping تعداد 100 بار
روی
میزبانها
و
درگاههای
مختلف مقصد
دور خواهد
زد، و در
مجموع 256 × 2 ×
100 = 51200 بسته
ارسال
میکند.
بهطور
پیشفرض Nping
به مدت ۵ دور
اجرا
میشود. اگر
مقدار 0 مشخص
شود، Nping
بهطور
مداوم اجرا
خواهد شد.
-e name، --interface
name (تنظیم
رابط شبکه
مورد
استفاده)
این
گزینه به Nping
میگوید از
چه رابطی
باید برای
ارسال و
دریافت
بستهها
استفاده
شود. Nping باید
بتواند این
را بهطور
خودکار
تشخیص دهد،
اما در
صورتی که
نتواند، به
شما اطلاع
خواهد داد. name
باید نام یک
رابط شبکهٔ
موجود با یک
آدرس IP
تخصیصیافته
باشد.
--privileged (فرض
کردن اینکه
کاربر
دارای
دسترسی
کامل است)
به Nping
میگوید
فرض کند که
مجوزهای
لازم برای
ارسالهای raw
socket، شنود
بسته (packet sniffing) و
عملیات
مشابهی که
معمولاً
نیازمند
دسترسیهای
ویژه هستند
را دارد.
بهطور
پیشفرض،
اگر چنین
عملیاتی
توسط
کاربری که
دسترسی root یا
administrator ندارد
درخواست
شود، Nping خارج
میشود. این
گزینه ممکن
است در
لینوکس، BSD یا
سیستمهای
مشابهی که
میتوانند
طوری
پیکربندی
شوند که به
کاربران
غیرممتاز
اجازهٔ
ارسال raw-packet را
بدهند،
مفید باشد.
متغیر
محیطی NPING_PRIVILEGED
میتواند
به عنوان
جایگزینی
برای
استفاده از
--privileged تنظیم
شود.
--unprivileged (فرض
کردن اینکه
کاربر فاقد
دسترسیهای
سوکت خام
است)
این
گزینه
برعکس --privileged
است. به Nping
میگوید با
کاربر طوری
رفتار کند
که گویی
فاقد
مجوزهای raw socket و
شنود شبکه
است. این
گزینه برای
آزمایش،
اشکالزدایی
یا زمانی که
عملکرد
شبکهٔ خام
سیستمعامل
شما به نوعی
دچار
اختلال شده
است، مفید
است. متغیر
محیطی NPING_UNPRIVILEGED
میتواند
به عنوان
جایگزینی
برای
استفاده از
--unprivileged تنظیم
شود.
--send-eth
(استفاده از
ارسال خام
در لایه
اترنت)
از Nping
میخواهد
بستهها را
بهجای
لایهٔ
بالاتر IP
(لایه شبکه)،
در لایهٔ
خام اترنت
(لایه پیوند
داده) ارسال
کند. بهطور
پیشفرض، Nping
روشی را
انتخاب
میکند که
عموماً
برای
پلتفرمی که
روی آن اجرا
میشود
بهترین است.
سوکتهای
خام (لایهٔ IP)
معمولاً
برای
ماشینهای Unix
کارآمدترین
هستند، در
حالی که
فریمهای
اترنت برای
کارکرد در
ویندوز
الزامی
هستند زیرا
مایکروسافت
پشتیبانی
از
سوکتهای
خام را
غیرفعال
کرده است.
علیرغم
این گزینه،
هنگامی که
چارهٔ
دیگری
نباشد
(مانند
اتصالات
غیر
اترنتی)، Nping
همچنان از
بستههای IP
خام
استفاده
میکند.
--send-ip (ارسال
در سطح خام IP)
از Nping
میخواهد
که بستهها
را از طریق
سوکتهای
خام IP ارسال
کند،
بهجای
اینکه
فریمهای
اترنت سطح
پایینتر
را بفرستد.
این گزینه
مکمل
گزینهٔ --send-eth
است.
--bpf-filter filter spec --filter
filter spec (تنظیم
فیلتر BPF
سفارشی)
این
گزینه به
شما اجازه
میدهد از
یک فیلتر BPF
سفارشی
استفاده
کنید.
بهطور
پیشفرض Nping
فیلتری را
انتخاب
میکند که
برای
دریافت
رایجترین
پاسخها به
پروبهای
ارسالی
ویژه در نظر
گرفته شده
است. برای
نمونه،
هنگام
ارسال
بستههای TCP،
فیلتر طوری
تنظیم
میشود که
بستههایی
را که درگاه
مقصد آنها
با درگاه
مبدأ پروب
مطابقت
دارد یا
پیامهای
خطای ICMP را که
ممکن است
توسط مقصد
یا هر
دستگاه
میانی
دیگری در
نتیجهٔ
پروب تولید
شده باشند،
ضبط کند. اگر
به هر دلیلی
انتظار
بستههای
غیرمعمولی
در پاسخ به
پروبهای
ارسالی
دارید یا
صرفاً
میخواهید
نوع خاصی از
ترافیک را
شنود کنید،
میتوانید
با استفاده
از نحو BPF مورد
استفاده در
ابزارهایی
مانند tcpdump یک
فیلتر
سفارشی
تعیین کنید.
برای
اطلاعات
بیشتر
مستندات را
در
http://www.tcpdump.org
ببینید.
-H، --hide-sent (عدم
نمایش
بستههای
ارسالشده)
این
گزینه به Nping
میگوید
اطلاعات
مربوط به
بستههای
ارسالشده
را چاپ نکند.
این
میتواند
هنگام
استفاده از
تأخیرهای
بسیار
کوتاه بین
پروبها
(یعنی هنگام
ایجاد
سیلاب بسته
یا flooding) مفید
باشد، زیرا
چاپ
اطلاعات در
خروجی
استاندارد
هزینهٔ
پردازشی
دارد و
غیرفعال
کردن آن
احتمالاً
میتواند
سرعت کار را
کمی بالا
ببرد.
همچنین،
ممکن است
هنگام
استفاده از
Nping برای
شناسایی
میزبانهای
فعال یا
درگاههای
باز مفید
باشد (مانند
ارسال پروب
به تمام
درگاههای TCP
در یک
زیرشبکهٔ /24).
در این
حالت، ممکن
است
کاربران
نخواهند
هزاران
پروب
ارسالشده
را ببینند،
بلکه فقط
پاسخهای
تولیدشده
توسط
میزبانهای
فعال را
مشاهده
کنند.
-N، --no-capture (عدم
تلاش برای
ضبط
پاسخها)
این
گزینه به Nping
میگوید از
ضبط
بستهها
صرفنظر
کند. این
بدان
معناست که
بستهها در
پاسخ به
پروبهای
ارسالی
پردازش یا
نمایش داده
نخواهند شد.
این امر
میتواند
هنگام
انجام
ارسالهای
سیلآسا و
آزمونهای
فشار بر
پشتهٔ شبکه
مفید باشد.
توجه داشته
باشید که با
تعیین این
گزینه،
بیشتر
آمارهای
ارائهشده
در پایان
اجرا
بیفایده
خواهند بود.
این گزینه
در حالت TCP Connect
کار
نمیکند.
-v[level]، --verbose
[level] (افزایش
یا تنظیم
سطح
پرگویی)
سطح
پرگویی (verbosity) را
افزایش
میدهد و
باعث
میشود Nping در
طول اجرای
خود
اطلاعات
بیشتری چاپ
کند. ۹ سطح
پرگویی
وجود دارد (
-4
تا 4). هر بار
تکرار
-v سطح
پرگویی را
یک واحد
افزایش
میدهد (از
مقدار
پیشفرض آن
یعنی سطح 0). هر
بار تکرار
گزینهٔ
-q
سطح پرگویی
را یک واحد
کاهش
میدهد.
همچنین
میتوانید
سطح را
مستقیماً
مشخص کنید،
مانند
-v3 یا
-v-1. سطوح
موجود
عبارتند از:
سطح -4
کاملاً
بدون خروجی.
در برخی
شرایط ممکن
است
نخواهید Nping
هیچ خروجی
تولید کند
(مانند
زمانی که
یکی از
همکارانتان
از پشت سر
نگاه
میکند). در
این حالت
سطح -4
میتواند
مفید باشد
زیرا اگرچه
هیچ بستهٔ
پاسخی را
نخواهید
دید،
پروبها
همچنان
ارسال
میشوند.
سطح -3
مانند
سطح -4 است اما
پیامهای
خطای مهلک
را نمایش
میدهد تا
بتوانید
ببینید آیا
Nping در حال
اجراست یا
به دلیل
خطایی
متوقف شده
است.
سطح -2
مانند
سطح -3 است اما
هشدارها و
خطاهای
قابل
بازیابی را
نیز نمایش
میدهد.
سطح -1
اطلاعات
مرسوم زمان
اجرا (نسخه،
زمان شروع،
آمارها و
غیره) را
نمایش
میدهد اما
بستههای
ارسالی یا
دریافتی را
نمایش
نمیدهد.
سطح 0
این سطح
پرگویی
پیشفرض
است. مانند
سطح -1 عمل
میکند اما
بستههای
ارسالی و
دریافتی و
برخی
اطلاعات
مهم دیگر را
نیز نشان
میدهد.
سطح 1
مانند
سطح 0 است اما
اطلاعات
دقیقی
دربارهٔ
زمانبندی،
پرچمها،
جزئیات
پروتکل و
غیره را
نمایش
میدهد.
سطح 2
مانند
سطح 1 است اما
اطلاعات
بسیار
مفصلی
دربارهٔ
بستههای
ارسالی و
دریافتی و
دیگر
اطلاعات
جالبتوجه
ارائه
میدهد.
سطح 3
مانند
سطح 2 است اما
همچنین
تخلیهٔ خام
شانزدهشانزدهی
(hexadecimal dump)
بستههای
ارسالی و
دریافتی را
نمایش
میدهد.
سطح 4 و
بالاتر
مشابه
سطح 3.
-q[level]، --reduce-verbosity
[level] (کاهش
سطح
پرگویی)
سطح
پرگویی را
کاهش
میدهد و
باعث
میشود Nping در
طول اجرای
خود
اطلاعات
کمتری چاپ
کند.
-d[level]
(افزایش یا
تنظیم سطح
اشکالزدایی)
هنگامی
که حتی حالت
پرگویی نیز
دادههای
کافی را در
اختیارتان
نمیگذارد،
قابلیت
اشکالزدایی
در دسترس
است تا شما
را با حجم
انبوهی از
اطلاعات
روبهرو
کند! همانند
-v،
اشکالزدایی
با پرچم خط
فرمان
-d
فعال
میشود و
سطح
اشکالزدایی
را میتوان
با مشخص
کردن
چندبارهٔ
آن افزایش
داد. ۷ سطح
اشکالزدایی
وجود دارد (0
تا 6). هر بار
تکرار
-d سطح
اشکالزدایی
را یک واحد
افزایش
میدهد.
برای تنظیم
مستقیم
سطح، یک
آرگومان به
-d بدهید؛
برای نمونه
-d4.
خروجی
اشکالزدایی
زمانی مفید
است که به
وجود اشکال
(bug) در Nping مشکوک
باشید، یا
صرفاً در
مورد اینکه
Nping چه میکند
و چرا،
سردرگم
شدهاید. از
آنجا که این
ویژگی
بیشتر برای
توسعهدهندگان
طراحی شده
است، خطوط
اشکالزدایی
همیشه
خودتوضیح
نیستند.
ممکن است
چیزی شبیه
به این
دریافت
کنید:
NSOCK (1.0000s) Callback: TIMER SUCCESS for EID 12; tcpconnect_event_handler(): Received callback of type TIMER with status SUCCESS
اگر خطی را
متوجه
نمیشوید،
تنها راه
چارهٔ شما
نادیده
گرفتن آن،
جستجوی آن
در کد منبع،
یا درخواست
کمک از
فهرست پستی
توسعه (nmap-dev)
است. برخی
خطوط
خودتوضیح
هستند، اما
با افزایش
سطح
اشکالزدایی،
پیامها
مبهمتر
میشوند.
سطوح موجود
عبارتند
از:
سطح 0
سطح 0.
بدون
هیچگونه
اطلاعات
اشکالزدایی.
این سطح
پیشفرض
است.
سطح 1
در این
سطح، تنها
اطلاعات
اشکالزدایی
بسیار مهم
یا سطح بالا
چاپ خواهند
شد. سطح ۲
همانند
سطح ۱، اما
اطلاعات
اشکالزدایی
مهم یا
سطحمتوسط
را نیز
نمایش
میدهد
سطح ۳
همانند
سطح ۲، اما
اطلاعات
اشکالزدایی
عادی و
سطحپایین
را نیز
نمایش
میدهد.
سطح ۴
همانند
سطح ۳، اما
پیامهایی
را نمایش
میدهد که
فقط یک
خورهٔ
واقعی Nping
مایل به
دیدن آنها
است.
سطح ۵
همانند
سطح ۴، اما
اطلاعات
اشکالزدایی
پایه مربوط
به
کتابخانههای
خارجی
مانند Nsock را
فعال
میکند.
سطح ۶
همانند
سطح ۵، اما
اطلاعات
اشکالزدایی
کامل و
بسیار دقیق
مربوط به
کتابخانههای
خارجی
مانند Nsock را
فعال
میکند.
مانند
نویسندگانش،
Nping نیز
بینقص
نیست. اما
شما
میتوانید
با ارسال
گزارش باگ
یا حتی
نوشتن
وصلهها،
به بهتر شدن
آن کمک کنید.
اگر Nping
آنطور که
انتظار
دارید
رفتار
نمیکند،
ابتدا به
آخرین
نسخهٔ
موجود در
https://nmap.org ارتقا
دهید. اگر
مشکل
همچنان
پابرجاست،
کمی تحقیق
کنید تا
مشخص شود
آیا پیشتر
شناسایی و
برطرف شده
است یا خیر.
جستجوی
مشکل یا
پیام خطا در
Google را امتحان
کنید، زیرا
انجمنهای
بسیاری را
گردآوری و
پوشش
میدهد. اگر
به
نتیجهای
نرسیدید،
یک مسئله (Issue)
در سامانهٔ
پیگیری ما
(http://issues.nmap.org) باز
کنید و/یا
گزارش باگ
را به <dev@nmap.org>
ایمیل کنید.
چنانچه پیش
از ارسال،
در فهرست
پستی nmap-dev عضو
شوید، پیام
شما از
مرحلهٔ
بازبینی و
تأیید مدیر
عبور کرده و
سریعتر
منتقل
میشود. جهت
عضویت به
https://nmap.org/mailman/listinfo/dev
مراجعه
کنید. لطفاً
هر آنچه
دربارهٔ
مشکل
دریافتهاید،
به همراه
نسخهٔ Nping
مورد
استفاده و
نسخهٔ
سیستمعاملی
که روی آن
اجرا
میشود را
ذکر کنید.
سایر
پیشنهادها
برای بهبود
Nping نیز
میتواند
به فهرست
پستی
توسعهدهندگان
Nmap ارسال شود.
اگر
توانایی
نوشتن
وصلهای
جهت بهبود Nping
یا رفع یک
باگ را
دارید، این
حتی بهتر هم
خواهد بود!
دستورالعملهای
ارسال وصله
یا
درخواستهای
دریافت گیت
(git pull requests) در
نشانی زیر
موجود است:
https://github.com/nmap/nmap/blob/master/CONTRIBUTING.md
مسائل
بهویژه
حساس،
مانند
گزارشهای
امنیتی،
میتوانند
مستقیماً
به نشانی
<fyodor@nmap.org> برای
شخص Fyodor ارسال
شوند. بقیهٔ
گزارشها و
نظرات باید
از طریق
فهرست پستی
توسعه یا
سامانهٔ
پیگیری
مسائل
ارسال
شوند، زیرا
افراد
بیشتری
آنها را
خوانده،
دنبال کرده
و پاسخ
میدهند.
- 1.
- شمارههای
رسمی نوع
اختصاصیافته
توسط IANA
- 2.
- شمارههای
رسمی
اختصاصیافته
توسط IANA
- 3.
- شمارههای
رسمی
فهرستشده
توسط IEEE