四個 Linux 上的網路資訊嗅探工具

Carla Schroder發表於2018-05-30

在計算機網路中,資料是暴露的,因為資料包傳輸是無法隱藏的,所以讓我們來使用 whoisdignmclinmap 這四個工具來嗅探網路吧。

請注意,不要在不屬於自己的網路上執行 nmap ,因為這有可能會被其他人認為惡意攻擊。

精簡和詳細域名資訊查詢

您可能已經注意到,之前我們用常用的老式 whois 命令查詢域名資訊,但現如今似乎沒有提供同過去一樣的詳細程度。我們使用該命令查詢 linux.com 的域名描述資訊:

$ whois linux.com
Domain Name: LINUX.COM
Registry Domain ID: 4245540_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.namecheap.com
Registrar URL: http://www.namecheap.com
Updated Date: 2018-01-10T12:26:50Z
Creation Date: 1994-06-02T04:00:00Z
Registry Expiry Date: 2018-06-01T04:00:00Z
Registrar: NameCheap Inc.
Registrar IANA ID: 1068
Registrar Abuse Contact Email: abuse@namecheap.com
Registrar Abuse Contact Phone: +1.6613102107
Domain Status: ok https://icann.org/epp#ok
Name Server: NS5.DNSMADEEASY.COM
Name Server: NS6.DNSMADEEASY.COM
Name Server: NS7.DNSMADEEASY.COM
DNSSEC: unsigned
[...]

有很多令人討厭的法律宣告。但在哪有聯絡資訊呢?該網站位於 whois.namecheap.com 站點上(見上面輸出的第三行):

$ whois -h whois.namecheap.com linux.com

我就不復製出來了,因為這實在太長了,包含了註冊人,管理員和技術人員的聯絡資訊。怎麼回事啊,露西爾?(LCTT 譯註:《行屍走肉》中尼根的棒子)有一些註冊庫,比如 .com 和 .net 是精簡註冊庫,儲存了一部分有限的域名資訊。為了獲取完整資訊請使用 -h--host 引數,該引數便會從域名的 註冊服務機構 中獲取。

大部分頂級域名是有詳細的註冊資訊,如 .info。試著使用 whois blockchain.info 命令來檢視。

想要擺脫這些煩人的法律宣告?使用 -H 引數。

DNS 解析

使用 dig 命令比較從不同的域名伺服器返回的查詢結果,去除陳舊的資訊。域名伺服器記錄快取各地的解析資訊,並且不同的域名伺服器有不同的重新整理間隔。以下是一個簡單的用法:

$ dig linux.com
<<>> DiG 9.10.3-P4-Ubuntu <<>> linux.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<<- opcode: QUERY, status: NOERROR, id: 13694
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1440
;; QUESTION SECTION:
;linux.com. IN A

;; ANSWER SECTION:
linux.com. 10800 IN A 151.101.129.5
linux.com. 10800 IN A 151.101.65.5
linux.com. 10800 IN A 151.101.1.5
linux.com. 10800 IN A 151.101.193.5

;; Query time: 92 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Tue Jan 16 15:17:04 PST 2018
;; MSG SIZE rcvd: 102

注意下靠近末尾的這行資訊:SERVER: 127.0.1.1#53(127.0.1.1),這是您預設的快取解析器。當地址是本地時,就表明您的電腦上安裝了 DNS 服務。在我看來這就是一個 Dnsmasq 工具(LCTT 譯註:是一個小巧且方便地用於配置 DNS 和 DHCP 的工具),該工具被用作網路管理:

$ ps ax|grep dnsmasq
2842 ? S 0:00 /usr/sbin/dnsmasq --no-resolv --keep-in-foreground
--no-hosts --bind-interfaces --pid-file=/var/run/NetworkManager/dnsmasq.pid
--listen-address=127.0.1.1

dig 命令預設是返回 A 記錄,也就是域名。IPv6 則有 AAAA 記錄:

$ $ dig linux.com AAAA
[...]
;; ANSWER SECTION:
linux.com. 60 IN AAAA 64:ff9b::9765:105
linux.com. 60 IN AAAA 64:ff9b::9765:4105
linux.com. 60 IN AAAA 64:ff9b::9765:8105
linux.com. 60 IN AAAA 64:ff9b::9765:c105
[...]

仔細檢查下,發現 linux.com 有 IPv6 地址。很好!如果您的網路服務支援 IPv6 那麼您就可以用 IPv6 連線。(令人難過的是,我的移動寬頻則沒提供 IPv6)

假設您能對您的域名做一些 DNS 改變,又或是您使用 dig 查詢的結果有誤。試著用一個公共 DNS,如 OpenNIC:

$ dig @69.195.152.204 linux.com
[...]
;; Query time: 231 msec
;; SERVER: 69.195.152.204#53(69.195.152.204)

dig 回應您正在的查詢是來自 69.195.152.204。您可以查詢各種服務並且比較結果。

上游域名伺服器

我想知道我的上游域名伺服器(LCTT 譯註:此處指解析器)是誰。為了查詢,我首先看下 /etc/resolv/conf 的配置資訊:

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

好吧,不過我已經知道了。您的 Linux 發行版可能配置不同,您會看到您的上游伺服器。接下來我們來試試網路管理器命令列工具 nmcli

$ nmcli dev show | grep DNS
IP4.DNS[1]: 192.168.1.1

很好,現在我們已經知道了,其實那是我的移動熱點,我能確認。我能夠登入到簡易管理皮膚,來查詢上游伺服器。然而許多使用者級網際網路閘道器不會讓您看到或改變這些設定,因此只能嘗試其他的方法,如 我的域名伺服器是什麼?

查詢在您的網路中 IPv4 地址

您的網路上有哪些 IPv4 地址已啟用並正在使用中?

$ nmap -sn 192.168.1.0/24
Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 14:03 PST
Nmap scan report for Mobile.Hotspot (192.168.1.1)
Host is up (0.011s latency).
Nmap scan report for studio (192.168.1.2)
Host is up (0.000071s latency).
Nmap scan report for nellybly (192.168.1.3)
Host is up (0.015s latency)
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.23 seconds

每個人都想去掃描自己的區域網中開放的埠。下面的例子是尋找服務和他們的版本號:

$ nmap -sV 192.168.1.1/24

Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 16:46 PST
Nmap scan report for Mobile.Hotspot (192.168.1.1)
Host is up (0.0071s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
22/tcp filtered ssh
53/tcp open domain dnsmasq 2.55
80/tcp open http GoAhead WebServer 2.5.0

Nmap scan report for studio (192.168.1.102)
Host is up (0.000087s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
631/tcp open ipp CUPS 2.1
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 256 IP addresses (2 hosts up) scanned in 11.65 seconds

這些是有趣的結果。讓我們嘗試從不同的網際網路連線進行相同的操作,以檢視這些服務是否暴露於網際網路中。如果您有智慧手機,相當於您有第二個網路。您可以下載應用程式,還可以為您的 Linux 電腦提供熱點。從熱點控制皮膚獲取廣域網IP地址,然後重試:

$ nmap -sV 12.34.56.78

Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 17:05 PST
Nmap scan report for 12.34.56.78
Host is up (0.0061s latency).
All 1000 scanned ports on 12.34.56.78 are closed

果然不出所料,結果和我想象的一樣(LCTT 譯註:這些服務和資訊沒有被暴露在公網上)。可以用手冊來查詢這些命令,以便了解更多有趣的嗅探技術。

瞭解更多 Linux 的相關知識可以從 Linux 基金會和 edX(LCTT譯註:edX 是麻省理工和哈佛大學於 2012 年 4 月聯手建立的大規模開放線上課堂平臺)中獲取免費的 “介紹 Linux”課程。


via: https://www.linux.com/learn/intro-to-linux/2018/1/4-tools-network-snooping-linux

作者:Carla Schroder 譯者:wyxplus 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章