四個 Linux 上的網路信息嗅探工具
在計算機網路中,數據是暴露的,因為數據包傳輸是無法隱藏的,所以讓我們來使用 whois
、dig
、nmcli
和 nmap
這四個工具來嗅探網路吧。
請注意,不要在不屬於自己的網路上運行 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive