IPv4 で使用すると、奇妙なエラー「(22 - '無効な引数')」が発生する

IPv4 で使用すると、奇妙なエラー「(22 - '無効な引数')」が発生する

使用中に「(22 - '無効な引数')」が発生しましたnmap。グーグルで検索してhttps://seclists.org/nmap-dev/しかし、これは IPv6 についての説明ですが、私は IPv4 を使用しているときにこのエラーが発生します。 IPv4 については何も触れられていないのに、なぜこの奇妙なエラーが発生するのでしょうか?

入った:

$ nmap --send-eth --release-memory --nsock-engine=epoll --allports --fuzzy \
     --randomize-hosts --log-errors  --max-os-tries=9 -n --reason          \
     --append-output --scanflags=URGACKPSHRSTSYNFIN --max-retries=6        \
     --host-timeout=225s --stats-every=10m --ttl=255 --min-hostgroup=5 .   \
     --max-hostgroup=25 --max-rtt-timeout=60s --scan-delay=250ms .         \
     --max-scan-delay=25s --stats-every=1 -v5 -sT -sV -A -p 80-82          \
     0.18.0.0

そして、この結果が得られました:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-17 16:05 CET
NSE: Loaded 148 scripts for scanning.
NSE: Script Pre-scanning.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 16:05
Completed NSE at 16:05, 0.00s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 16:05
Completed NSE at 16:05, 0.00s elapsed
Initiating Ping Scan at 16:05
Scanning 0.18.0.0 [2 ports]
Stats: 0:00:01 elapsed; 0 hosts completed (0 up), 1 undergoing Ping Scan
Ping Scan Timing: About 0.00% done
Strange read error from 0.18.0.0 (22 - 'Invalid argument')
Strange read error from 0.18.0.0 (22 - 'Invalid argument')
Completed Ping Scan at 16:05, 0.50s elapsed (1 total hosts)
NSE: Script Post-scanning.
NSE: Starting runlevel 1 (of 2) scan.
Initiating NSE at 16:05
Completed NSE at 16:05, 0.00s elapsed
NSE: Starting runlevel 2 (of 2) scan.
Initiating NSE at 16:05
Completed NSE at 16:05, 0.00s elapsed
Read data files from: /usr/bin/../share/nmap
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.46 seconds

引数を少なくして試すと次のnmap -p 80-82 0.18.0.0 ようになります:

Starting Nmap 7.70 ( https://nmap.org ) at 2019-01-17 16:24 CET
Strange read error from 0.18.0.0 (22 - 'Invalid argument')
Strange read error from 0.18.0.0 (22 - 'Invalid argument')
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 0.12 seconds

試してみると次のようになりましncatた:

$ nc -vvv 0.18.0.0 80
0.18.0.0: inverse host lookup failed: Unknown host
(UNKNOWN) [0.18.0.0] 80 (http) : Invalid argument
 sent 0, rcvd 0

$ nc -vvv 0.18.0.0 81
0.18.0.0: inverse host lookup failed: Unknown host
(UNKNOWN) [0.18.0.0] 81 (hosts2-ns) : Invalid argument
 sent 0, rcvd 0

まだ「無効な引数」が表示されますが、今回は 22 の代わりに投稿番号とサービスを取得しました。

80 (http)
81 (hosts2-ns)

これにより、いくつかの疑問が生じます。

  1. ncatとの「無効な引数」はnmap同じものに関係していますか?
  2. nmap22 を印刷する代わりに、情報を伝えるにはどうすればよいですか?
  3. リモート ポートが実際に CLOSE されているか、または実際に OPEN されていてファイアウォールによって拒否されているかをどのように判断すればよいでしょうか?

答え1

住所0.18.0.0(それぞれ0.0.0.0/8) は、標準™ では宛先 IP アドレスとして許可されていません。

からRFC 6890:

2.2.2. IPv4 特殊目的アドレスレジストリエントリ


以下の表 1 から 16 は、IANA がIPv4 特殊目的アドレス レジストリに最初に入力したエントリを表しています。

          +----------------------+----------------------------+
          | Attribute            | Value                      |
          +----------------------+----------------------------+
          | Address Block        | 0.0.0.0/8                  |
          | Name                 | "This host on this network"|
          | RFC                  | [RFC1122], Section 3.2.1.3 |
          | Allocation Date      | September 1981             |
          | Termination Date     | N/A                        |
          | Source               | True                       |
          | Destination          | False                      |
          | Forwardable          | False                      |
          | Global               | False                      |
          | Reserved-by-Protocol | True                       |
          +----------------------+----------------------------+

                Table 1: "This host on this network"

したがって0.0.0.0/8それゆえ0.18.0.0有効な宛先アドレスがないため、カーネルはEINVALIDそれを宛先として使用しようとするソケット操作を返します。

ヒント: 次のような使い方もできますRFC1918 の翻訳ローカルに管理されているネットワークのアドレス。

関連情報