四個Linux上的網絡信息嗅探工具
在計算機網絡中,數據是暴露的,因為數據包傳輸是無法隱藏的,所以讓我們來使用 whois、dig、nmcli 和 nmap 這四個工具來嗅探網絡吧。
請注意,不要在不屬于自己的網絡上運行 nmap ,因為這有可能會被其他人認為惡意攻擊。
精簡和詳細域名信息查詢
您可能已經注意到,之前我們用常用的老式 whois 命令查詢域名信息,但現如今似乎沒有提供同過去一樣的詳細程度。我們使用該命令查詢 linux.com 的域名描述信息:
$ whois linux.comDomain Name: LINUX.COMRegistry Domain ID: 4245540_DOMAIN_COM-VRSNRegistrar WHOIS Server: whois.namecheap.comRegistrar URL: http://www.namecheap.comUpdated Date: 2018-01-10T12:26:50ZCreation Date: 1994-06-02T04:00:00ZRegistry Expiry Date: 2018-06-01T04:00:00ZRegistrar: NameCheap Inc.Registrar IANA ID: 1068Registrar Abuse Contact Email: abuse@namecheap.comRegistrar Abuse Contact Phone: +1.6613102107Domain Status: ok https://icann.org/epp#okName Server: NS5.DNSMADEEASY.COMName Server: NS6.DNSMADEEASY.COMName Server: NS7.DNSMADEEASY.COMDNSSEC: 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.5linux.com. 10800 IN A 151.101.65.5linux.com. 10800 IN A 151.101.1.5linux.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 dnsmasq2842 ? 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:105linux.com. 60 IN AAAA 64:ff9b::9765:4105linux.com. 60 IN AAAA 64:ff9b::9765:8105linux.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 OVERWRITTENnameserver 127.0.1.1
好吧,不過我已經知道了。您的 Linux 發行版可能配置不同,您會看到您的上游服務器。接下來我們來試試網絡管理器命令行工具 nmcli:
$ nmcli dev show | grep DNSIP4.DNS[1]: 192.168.1.1
很好,現在我們已經知道了,其實那是我的移動熱點,我能確認。我能夠登錄到簡易管理面板,來查詢上游服務器。然而許多用戶級互聯網網關不會讓您看到或改變這些設置,因此只能嘗試其他的方法,如 我的域名服務器是什么?
查找在您的網絡中 IPv4 地址
您的網絡上有哪些 IPv4 地址已啟用并正在使用中?
$ nmap -sn 192.168.1.0/24Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 14:03 PSTNmap 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/24Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 16:46 PSTNmap scan report for Mobile.Hotspot (192.168.1.1)Host is up (0.0071s latency).Not shown: 997 closed portsPORT STATE SERVICE VERSION22/tcp filtered ssh53/tcp open domain dnsmasq 2.5580/tcp open http GoAhead WebServer 2.5.0Nmap scan report for studio (192.168.1.102)Host is up (0.000087s latency).Not shown: 998 closed portsPORT STATE SERVICE VERSION22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)631/tcp open ipp CUPS 2.1Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService 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.78Starting Nmap 7.01 ( https://nmap.org ) at 2018-01-14 17:05 PSTNmap scan report for 12.34.56.78Host is up (0.0061s latency).All 1000 scanned ports on 12.34.56.78 are closed
果然不出所料,結果和我想象的一樣(LCTT 譯注:這些服務和信息沒有被暴露在公網上)。可以用手冊來查詢這些命令,以便了解更多有趣的嗅探技術。





















