2017-2018-2 20179207 《網絡攻防技術》黑客與工具

1、黑客信息

龔廣
科普一個呆萌的黑客,被稱爲移動安全領域的「賞金獵人」,今年1月22日,谷歌官方發文向他致謝,並頒發了總額爲112500美金的獎金,這是安卓漏洞獎勵計劃史上最高金額的獎金。恩,人家提交了兩個漏洞,就拿了70多萬RMB。這人專門跟谷歌找茬,常常找找系統漏洞,破破手機什麼的,反正看上去輕輕鬆鬆就拿到各類獎金了。哦,還有一點不得不提,谷歌對於安卓漏洞獎勵計劃的獎金原本沒有很高,一次偶然的機會,這個黑客給谷歌相關負責人發了個郵件,建議提升獎金額度,由於漏洞提報難度加大了,你們都以爲獎金有點低。因而谷歌想了想,答應了,把最高額度提升到20萬美金,不久以後,這個黑客就拿到了史上額度最高的一比獎勵……這人是龔廣,是360 Alpha團隊負責人,自稱老鮮肉。他在知名黑客大賽中攻破手機拿「一血」是屢見不鮮。龔廣曾創造了一年時間內在國際四大知名黑客比賽(MobilePwn2Own201五、Pwn0rama201六、Pwn2Own 201六、PwnFest2016)中贏得大滿貫的業內傳奇,創造了屢次全球首個成功攻破谷歌親兒子——Nexus系列手機的記錄。他帶領的團隊是谷歌致謝榜上的「常客」,截止2017年10月累計發現了74個安卓系統漏洞。這些漏洞要是在黑市上交易,可能人家身價早就上億了,不過白帽子「爲人民安全服務」的宗旨仍是不可撼動的,因此「賞金獵人」仍是拿官銀吃飯的。可能谷歌對他是又愛又恨吧,哈哈。php

凱文.米特尼克(KevinMitnick)
被稱爲世界上「頭號電腦黑客」。
  其實他的技術也許並非黑客中最好的,甚至至關多的黑客們都反感他,認爲他是隻會用攻擊、不懂技術的攻擊狂,可是其黑客經歷的傳奇性足以讓全世界爲之震驚,也使得全部網絡安全人員丟盡面子。
  主要成就:他是第一個在美國聯邦調查局「懸賞捉拿」海報上露面的黑客。15歲的米特尼克闖入了「北美空中防務指揮系統」的計算機主機內,他和另一些朋友翻遍了美國指向前蘇聯及其盟國的全部核彈頭的數據資料,而後又悄無聲息地溜了出來。
  這件事對美國軍方來講已成爲一大丑聞,五角大樓對此一直保持沉默。過後,美國著名的軍事情報專家克賴頓曾說:「若是當時米特尼克將這些情報賣給克格勃,那麼他至少能夠獲得50萬美圓的酬金。而美國則需花費數十億美圓來從新部署。」
  FBI甚至認爲其過於危險,收買了米特尼克的一個最要好的朋友,誘使米特尼克再次攻擊網站,以便再次把他抓進去。結果——米特尼克竟上鉤了,但畢竟這位頭號黑客身手不凡,在打入了聯邦調查局的內部後,發現了他們設下的圈套,而後在追捕令發出前就逃離了。經過手中高超的技術,米特尼克甚至在逃跑的過程當中,還控制了當地的電腦系統,使得以知道關於追蹤他的一切資料。
  html

2、五種安全工具和兩個教程

五種安全工具介紹

Wiresharklinux

Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。Wireshark使用WinPCAP做爲接口,直接與網卡進行數據報文交換。
網絡封包分析軟件的功能可想像成 "電工技師使用電錶來量測電流、電壓、電阻" 的工做 - 只是將場景移植到網絡上,並將電線替換成網絡線。在過去,網絡封包分析軟件是很是昂貴的,或是專門屬於盈利用的軟件。Ethereal的出現改變了這一切。在GNUGPL通用許可證的保障範圍底下,使用者能夠以避免費的代價取得軟件與其源代碼,並擁有針對其源代碼修改及客製化的權利。Ethereal是目前全世界最普遍的網絡封包分析軟件之一。web

Metasploit算法

Metasploit是一款開源的安全漏洞檢測工具。因爲Metasploit是免費的工具,所以安全工做人員經常使用Metasploit工具來檢測系統的安全性。
Metasploit Framework (MSF)是2003 年以開放源代碼方式發佈、可自由獲取的開發框架,這個環境爲滲透測試、shellcode 編寫和漏洞研究提供了一個可靠的平臺。它集成了各平臺上常見的溢出漏洞和流行的shellcode,而且不斷更新,最新版本的MSF 包含了180多種當前流行的操做系統和應用軟件的exploit,以及100多 個shellcode。做爲安全工具,它在安全檢測中起到不容忽視的做用,併爲漏洞自動化探測和及時檢測系統漏洞提供有力的保障。shell

Nessus數據庫

Nessus 被認爲是目前全世界最多人使用的系統漏洞掃描與分析軟件。總共有超過75,000個機構使用 Nessus 做爲掃描該機構電腦系統的軟件。 1998年, Nessus 的創辦人 Renaud Deraison 展開了一項名爲 "Nessus"的計劃,其計劃目的是但願能爲因特網社羣提供一個免費、威力強大、更新頻繁並簡易使用的遠端系統安全掃瞄程序。通過了數年的發展, 包括 CERT 與 SANS 等著名的網絡安全相關機構皆認同此工具軟件的功能與可用性。 2002年時, Renaud 與 Ron Gula, Jack Huffard 創辦了一個名爲 Tenable Network Security 的機構。在第三版的Nessus 發佈之時, 該機構收回了 Nessus 的版權與程序源代碼 (本來爲開放源代碼), 並註冊了 nessus.org 成爲該機構的網站。 目前此機構位於美國馬里蘭州的哥倫比亞。windows

BackTrack安全

BackTrack,是一套專業的計算機安全檢測的Linux操做系統,簡稱BT。
BackTrack不只僅是用來戰爭駕駛,還集成了包括Metasploit等200多種安全檢查工具;此外衆多的RFID工具和對ARM平臺的支持也是一個亮點。
BackTrack通過了多年發展,滲透測試並接受來自安全社區史無前例的幫助,BackTrack開始於早期live linux的發行版Whoppix,IWHAX以及auditor,BackTrack被設計成一體化的旨在安全審計用的live cd,現今它是被最普遍採用的滲透測試框架並被世界各地的安全社區所使用。
如今,BackTrack已被Kali Linux所代替,BT將再也不維護。服務器

Openssl

OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼算法、經常使用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
OpenSSL被曝出現嚴重安全漏洞後,發現多數經過SSL協議加密的網站使用名爲OpenSSL的開源軟件包。OpenSSL漏洞不只影響以https開頭的網站,黑客還可利用此漏洞直接對我的電腦發起「心臟出血」(Heartbleed)攻擊。據分析,Windows上有大量軟件使用了存在漏洞的OpenSSL代碼庫,可能被黑客攻擊抓取用戶電腦上的內存數據。

兩種工具使用教程

Wireshark使用教程

Wireshark官方下載地址:

[http://www.wireshark.org/download.html]

簡單介紹下這個軟件的一些經常使用按鈕,下面紅框中的按鈕從左到右依次是:

  • 列表顯示全部網卡的網絡包狀況,通常用的不多;
  • 顯示抓包選項,通常都是點這個按鈕開始抓包;
  • 開始新的抓包,通常用的也不多;
  • 中止抓包,當你抓完包以後,就是點這個中止了;
  • 清空當前已經抓到的數據包,能夠防止抓包時間過長機器變卡;

接下來講下抓包選項界面,也就是點第二個按鈕出來的界面,一樣,這裏也只介紹最經常使用的幾個功能,首先下圖中最上面的紅框是選擇須要抓的網卡,選擇好網卡後會在下面顯示這個網卡的IP地址。

而後Capture Filter中就是要寫抓包規則的地方,也叫作過濾規則,咱們下面要說的不少規則都是要寫到這個框裏的,規則寫好後,點下面的Start就開始抓包了。

當抓包結束以後,若是你須要把抓到的數據包找其餘人分析,那麼能夠點菜單上的file,而後點Save As保存抓到的數據包,以下圖:

使用Wireshark時最多見的問題,是當您使用默認設置時,會獲得大量冗餘信息,以致於很難找到本身須要的部分。這就是爲何過濾器會如此重要。它們能夠幫助咱們在龐雜的結果中迅速找到咱們須要的信息。

過濾器的區別

捕捉過濾器(CaptureFilters):用於決定將什麼樣的信息記錄在捕捉結果中。須要在開始捕捉前設置。
顯示過濾器(DisplayFilters):在捕捉結果中進行詳細查找。他們能夠在獲得捕捉結果後隨意修改。

那麼我應該使用哪種過濾器呢?

兩種過濾器的目的是不一樣的。
捕捉過濾器是數據通過的第一層過濾器,它用於控制捕捉數據的數量,以免產生過大的日誌文件。
顯示過濾器是一種更爲強大(複雜)的過濾器。它容許您在日誌文件中迅速準確地找到所須要的記錄。

兩種過濾器使用的語法是徹底不一樣的。

捕捉過濾器

Protocol(協議):
可能的值: ether, fddi, ip, arp, rarp, decnet, lat, sca, moprc, mopdl, tcp and udp.
若是沒有特別指明是什麼協議,則默認使用全部支持的協議。

Direction(方向):
可能的值: src, dst, src and dst, src or dst
若是沒有特別指明來源或目的地,則默認使用 src or dst 做爲關鍵字。
例如host 10.2.2.2與src or dst host 10.2.2.2是同樣的。

Host(s):
可能的值: net, port, host, portrange.
若是沒有指定此值,則默認使用host關鍵字。
例如,src 10.1.1.1與src host 10.1.1.1相同。

Logical Operations(邏輯運算):
可能的值:not, and, or.
否(not)具備最高的優先級。或(or)和與(and)具備相同的優先級,運算時從左至右進行。
例如,
not tcp port 3128 and tcp port 23與(not tcp port 3128) and tcp port 23相同。
not tcp port 3128 and tcp port 23與not (tcp port 3128 and tcp port 23)不一樣。

例子:

tcp dst port 3128  //捕捉目的TCP端口爲3128的封包。
ip src host 10.1.1.1  //捕捉來源IP地址爲10.1.1.1的封包。
host 10.1.2.3  //捕捉目的或來源IP地址爲10.1.2.3的封包。
ether host e0-05-c5-44-b1-3c //捕捉目的或來源MAC地址爲e0-05-c5-44-b1-3c的封包。若是你想抓本機與全部外網通信的數據包時,能夠將這裏的mac地址換成路由的mac地址便可。
src portrange 2000-2500  //捕捉來源爲UDP或TCP,而且端口號在2000至2500範圍內的封包。
not imcp  //顯示除了icmp之外的全部封包。(icmp一般被ping工具使用)
src host 10.7.2.12 and not dst net 10.200.0.0/16 //顯示來源IP地址爲10.7.2.12,但目的地不是10.200.0.0/16的封包。
(src host 10.4.1.12 or src net 10.6.0.0/16) and tcp dst portrange 200-10000 and dst net 10.0.0.0/8  //捕捉來源IP爲10.4.1.12或者來源網絡爲10.6.0.0/16,目的地TCP端口號在200至10000之間,而且目的位於網絡 10.0.0.0/8內的全部封包。
src net 192.168.0.0/24 
src net 192.168.0.0 mask 255.255.255.0  //捕捉源地址爲192.168.0.0網絡內的全部封包。

注意事項:

當使用關鍵字做爲值時,需使用反斜槓「/」。
「ether proto /ip」 (與關鍵字」ip」相同).
這樣寫將會以IP協議做爲目標。

「ip proto /icmp」 (與關鍵字」icmp」相同).
這樣寫將會以ping工具經常使用的icmp做爲目標。

能夠在」ip」或」ether」後面使用」multicast」及」broadcast」關鍵字。
當您想排除廣播請求時,」no broadcast」就會很是有用。

Protocol(協議):
您可使用大量位於OSI模型第2至7層的協議。點擊」Expression…」按鈕後,您能夠看到它們。
好比:IP,TCP,DNS,SSH

String1, String2 (可選項):

協議的子類。
點擊相關父類旁的」+」號,而後選擇其子類。

Comparison operators (比較運算符):

可使用6種比較運算符:

Logical e­xpressions(邏輯運算符):

顯示過濾器


例子:
snmp || dns || icmp //顯示SNMP或DNS或ICMP封包。 
ip.addr == 10.1.1.1  //顯示來源或目的IP地址爲10.1.1.1的封包。
ip.src != 10.1.2.3 or ip.dst != 10.4.5.6  //顯示來源不爲10.1.2.3或者目的不爲10.4.5.6的封包。
換句話說,顯示的封包將會爲:
來源IP:除了10.1.2.3之外任意;目的IP:任意
以及
來源IP:任意;目的IP:除了10.4.5.6之外任意
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6  //顯示來源不爲10.1.2.3而且目的IP不爲10.4.5.6的封包。
換句話說,顯示的封包將會爲:
來源IP:除了10.1.2.3之外任意;同時須知足,目的IP:除了10.4.5.6之外任意
tcp.port == 25  //顯示來源或目的TCP端口號爲25的封包。 
tcp.dstport == 25  //顯示目的TCP端口號爲25的封包。 
tcp.flags  //顯示包含TCP標誌的封包。 
tcp.flags.syn == 0×02  //顯示包含TCP SYN標誌的封包。 
若是過濾器的語法是正確的,表達式的背景呈綠色。若是呈紅色,說明表達式有誤。
更爲詳細的說明請見:http://openmaniak.com/cn/wireshark_filters.php

以上只是抓包和簡單的過濾,那麼其實若是你要想達到可以分析這些網絡包的要求時,還須要瞭解下一些數據包的標記,好比咱們常說的TCP三次握手是怎麼回事?

三次握手Three-way Handshake
一個虛擬鏈接的創建是經過三次握手來實現的

  1. (Client) –> [SYN] –> (Server)
    假如Client和Server通信. 當Client要和Server通訊時,Client首先向Server發一個SYN (Synchronize) 標記的包,告訴Server請求創建鏈接.
    注意: 一個 SYN包就是僅SYN標記設爲1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當Server收到Client發來的SYN包,纔可創建鏈接,除此以外別無他法。所以,若是你的防火牆丟棄全部的發往外網接口的SYN包,那麼你將不 能讓外部任何主機主動創建鏈接。

  2. (Client) <– [SYN/ACK] <–(Server)
    接着,Server收到來自Client發來的SYN包後,會發一個對SYN包的確認包(SYN/ACK)給Client,表示對第一個SYN包的確認,並繼續握手操做.
    注意: SYN/ACK包是僅SYN 和 ACK 標記爲1的包.

  3. (Client) –> [ACK] –> (Server)
    Client收到來自Server的SYN/ACK 包,Client會再向Server發一個確認包(ACK),通知Server鏈接已創建。至此,三次握手完成,一個TCP鏈接完成。
    Note: ACK包就是僅ACK 標記設爲1的TCP包. 須要注意的是當三此握手完成、鏈接創建之後,TCP鏈接的每一個包都會設置ACK位。

這就是爲什麼鏈接跟蹤很重要的緣由了. 沒有鏈接跟蹤,防火牆將沒法判斷收到的ACK包是否屬於一個已經創建的鏈接.通常的包過濾(Ipchains)收到ACK包時,會讓它經過(這絕對不是個 好主意). 而當狀態型防火牆收到此種包時,它會先在鏈接表中查找是否屬於哪一個已建鏈接,不然丟棄該包。

四次握手Four-way Handshake
四次握手用來關閉已創建的TCP鏈接

  1. (Client) –> ACK/FIN –> (Server)
  2. (Client) <– ACK <– (Server)
  3. (Client) <– ACK/FIN <– (Server)
  4. (Client) –> ACK –> (Server)

注意: 因爲TCP鏈接是雙向鏈接, 所以關閉鏈接須要在兩個方向上作。ACK/FIN 包(ACK 和FIN 標記設爲1)一般被認爲是FIN(終結)包.然而, 因爲鏈接尚未關閉, FIN包老是打上ACK標記. 沒有ACK標記而僅有FIN標記的包不是合法的包,而且一般被認爲是惡意的。

鏈接復位Resetting a connection

四次握手不是關閉TCP鏈接的惟一方法. 有時,若是主機須要儘快關閉鏈接(或鏈接超時,端口或主機不可達),RST (Reset)包將被髮送. 注意在,因爲RST包不是TCP鏈接中的必須部分, 能夠只發送RST包(即不帶ACK標記). 但在正常的TCP鏈接中RST包能夠帶ACK確認標記

請注意RST包是能夠不要收到方確認的?

無效的TCP標記Invalid TCP Flags

到目前爲止,你已經看到了 SYN, ACK, FIN, 和RST 標記. 另外,還有PSH (Push) 和URG (Urgent)標記.

最多見的非法組合是SYN/FIN 包. 注意:因爲 SYN包是用來初始化鏈接的, 它不可能和 FIN和RST標記一塊兒出現. 這也是一個惡意攻擊.

因爲如今大多數防火牆已知 SYN/FIN 包, 別的一些組合,例如SYN/FIN/PSH, SYN/FIN/RST, SYN/FIN/RST/PSH。很明顯,當網絡中出現這種包時,很你的網絡確定受到攻擊了。

別的已知的非法包有FIN (無ACK標記)和」NULL」包。如同早先討論的,因爲ACK/FIN包的出現是爲了關閉一個TCP鏈接,那麼正常的FIN包老是帶有 ACK 標記。」NULL」包就是沒有任何TCP標記的包(URG,ACK,PSH,RST,SYN,FIN都爲0)。

到目前爲止,正常的網絡活動下,TCP協議棧不可能產生帶有上面提到的任何一種標記組合的TCP包。當你發現這些不正常的包時,確定有人對你的網絡不懷好意。

UDP (用戶數據包協議User Datagram Protocol)

TCP是面向鏈接的,而UDP是非鏈接的協議。UDP沒有對接受進行確認的標記和確認機制。對丟包的處理是在應用層來完成的。(or accidental arrival).

此處須要重點注意的事情是:在正常狀況下,當UDP包到達一個關閉的端口時,會返回一個UDP復位包。因爲UDP是非面向鏈接的, 所以沒有任何確認信息來確認包是否正確到達目的地。所以若是你的防火牆丟棄UDP包,它會開放全部的UDP端口(?)。

因爲Internet上正常狀況下一些包將被丟棄,甚至某些發往已關閉端口(非防火牆的)的UDP包將不會到達目的,它們將返回一個復位UDP包。

由於這個緣由,UDP端口掃描老是不精確、不可靠的。

看起來大UDP包的碎片是常見的DOS (Denial of Service)攻擊的常見形式 (這裏有個DOS攻擊的例子,http://grc.com/dos/grcdos.htm ).

ICMP (網間控制消息協議Internet Control Message Protocol)

如同名字同樣, ICMP用來在主機/路由器之間傳遞控制信息的協議。 ICMP包能夠包含診斷信息(ping, traceroute - 注意目前unix系統中的traceroute用UDP包而不是ICMP),錯誤信息(網絡/主機/端口 不可達 network/host/port unreachable), 信息(時間戳timestamp, 地址掩碼address mask request, etc.),或控制信息 (source quench, redirect, etc.) 。

你能夠在http://www.iana.org/assignments/icmp-parameters 中找到ICMP包的類型。

儘管ICMP一般是無害的,仍是有些類型的ICMP信息須要丟棄。

Redirect (5), Alternate Host Address (6), Router Advertisement (9) 能用來轉發通信。

Echo (8), Timestamp (13) and Address Mask Request (17) 能用來分別判斷主機是否起來,本地時間 和地址掩碼。注意它們是和返回的信息類別有關的。 它們本身自己是不能被利用的,但它們泄露出的信息對攻擊者是有用的。

ICMP消息有時也被用來做爲DOS攻擊的一部分(例如:洪水ping flood ping,死 ping ?呵呵,有趣 ping of death)?/p>

包碎片注意A Note About Packet Fragmentation

若是一個包的大小超過了TCP的最大段長度MSS (Maximum Segment Size) 或MTU (Maximum Transmission Unit),可以把此包發往目的的惟一方法是把此包分片。因爲包分片是正常的,它能夠被利用來作惡意的攻擊。

由於分片的包的第一個分片包含一個包頭,若沒有包分片的重組功能,包過濾器不可能檢測附加的包分片。典型的攻擊Typical attacks involve in overlapping the packet data in which packet header is 典型的攻擊Typical attacks involve in overlapping the packet data in which packet header isnormal until is it overwritten with different destination IP (or port) thereby bypassing firewall rules。包分片能做爲 DOS 攻擊的一部分,它能夠crash older IP stacks 或漲死CPU鏈接能力。

Netfilter/Iptables中的鏈接跟蹤代碼能自動作分片重組。它仍有弱點,可能受到飽和鏈接攻擊,能夠把CPU資源耗光。

Nessus使用教程

先看下主要功能:

這個顯示當前登陸用戶,安裝信息,技術支持,系統的一些重要通知等。

第一個用戶信息,沒什麼好說的,主要說下 Plugin Rules

「插件規則」選項提供了一個設備建立一套規則,規定某些插件相關的行爲描執行。一個規則能夠基於主機(或全部主機),插件ID、一個可選的過時日期,和事件的級別。相同的規則能夠從掃描結果頁面設置。

下面是setting選項中的Communication選項

使用代理服務器轉發HTTP請求。若是須要一個,Nessus插件將使用這些設置進行更新和交流與遠程掃描儀。有五個字段控制代理設置。
簡單郵件傳輸協議(SMTP)是一種工業標準發送和接收電子郵件。一旦配置了SMTP,Nessus將電子郵件掃描結果中指定的收件人列表掃描的「郵件通知」配置。這些結果能夠經過過濾器和量身定作的須要一個HTML兼容的電子郵件客戶端。

主菜單基本上就是這些了,如今說下主要功能,這纔是咱們最關心的,也是最實用的。

免費版的只能使用其中的8項功能,看似挺多,其實真正更加實用的功能沒有解鎖,就是那些帶有UPGRADE字樣的。
如今對這些功能作個簡介。
1.Advanced Scan 自定義掃描策略。
2.Audit Cloud Infrastructure 用戶想要審計亞馬遜等雲計算服務的配置  Web服務(AWS)和Salesforce.com
3.Bash Shellshock Detection Bash彈震症漏洞遠程和有資格的檢查。Bash在14年的9月份爆發了一次漏洞,筆者也轉載了相關文檔。
4.Basic Network Scan 爲用戶掃描內部或者外部的主機,基本的網絡掃描。
5.Credentialed Patch Audit 登錄到系統,查看已經丟失的或者過時的軟件。
6.GHOST (glibc) Detection 檢查收到信任的GHOST漏洞。
7.Host Discovery 肯定主機的存活和開放的端口。
8.Internal PCI Network Scan  對於管理員準備支付卡行業數據安全標準(PCI   他們的內部網絡的DSS)合規性審計
9.Mobile Device Scan 蘋果爲用戶配置文件管理器,MDM ADSI,MobileIron,
10.Offline Config Audit 上傳和審計網絡設備的配置文件.
11.PCI Quarterly External Scan 一個季度外部掃描PCI要求批准的政策。這隻提供  Nessus企業雲
12.Policy Compliance Auditing 審計系統配置與一個已知的用戶提供的基線。
13.SCAP Compliance Audit 審計系統使用安全內容自動化協議(SCAP)的內容。
14.Web Application Tests 爲用戶執行通用web應用程序掃描。
15.Windows Malware Scan 爲用戶尋找惡意軟件在windows系統。

先看下基本的網絡掃描

Basic Network Scan

掃描的名字,描述下,在定一下掃描的IP,能夠是域名。

這個部分定義了掃描的端口,能夠是經常使用的,全部的(1-65535)

報告部分配置的掃描報告,掃描完成後是否能夠修改。

ADVANCED部分容許配置更高級的特性,例如性能設置,額外的檢查,和日誌記錄功能.

Policy Credentials
Tenable’s Nessus掃描儀是一種很是有效的網絡漏洞掃描器插件的一個全面的數據庫  檢查各類各樣的遠程能夠利用的漏洞。除了遠程掃描,Nessus掃描儀也能夠登陸系統,直接在主機檢查漏洞。

至於其餘的掃描功能,能夠本身去實踐。官方也給出了使用文檔,很是全面的,可自行下載,結合使用。

相關文章
相關標籤/搜索