20189209 《網絡攻防實踐》安全工具研究

安全工具研究

1、安全工具簡介

###1. Wireshrakhtml

  • 簡介   Wireshark(前稱Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並儘量顯示出最爲詳細的網絡封包資料。Wireshark使用WinPCAP做爲接口,直接與網卡進行數據報文交換。   網絡封包分析軟件的功能可想像成 "電工技師使用電錶來量測電流、電壓、電阻" 的工做 - 只是將場景移植到網絡上,並將電線替換成網絡線。在過去,網絡封包分析軟件是很是昂貴的,或是專門屬於盈利用的軟件。Ethereal的出現改變了這一切。在GNUGPL通用許可證的保障範圍底下,使用者能夠以避免費的代價取得軟件與其源代碼,並擁有針對其源代碼修改及客製化的權利。Ethereal是目前全世界最普遍的網絡封包分析軟件之一。
  • 應用   網絡管理員使用Wireshark來檢測網絡問題,網絡安全工程師使用Wireshark來檢查資訊安全相關問題,開發者使用Wireshark來爲新的通信協定除錯,普通使用者使用Wireshark來學習網絡協定的相關知識。固然,有的人也會「居心叵測」的用它來尋找一些敏感信息。   Wireshark不是入侵偵測系統(Intrusion Detection System,IDS)。對於網絡上的異常流量行爲,Wireshark不會產生警示或是任何提示。然而,仔細分析Wireshark擷取的封包可以幫助使用者對於網絡行爲有更清楚的瞭解。Wireshark不會對網絡封包產生內容的修改,它只會反映出目前流通的封包資訊。 Wireshark自己也不會送出封包至網絡上。
  • 發展簡史   1997年末,GeraldCombs須要一個可以追蹤網絡流量的工具軟件做爲其工做上的輔助。所以他開始撰寫Ethereal軟件。Ethereal在通過幾回中斷開發的事件事後,終於在1998年7月釋出其第一個版本v0.2.0。自此以後,Combs收到了來自全世界的修補程式、錯誤回報與鼓勵信件。Ethereal的發展就此開始。不久以後,GilbertRamirez看到了這套軟件的開發潛力並開始參予低階程式的開發。1998年10月,來自NetworkAppliance公司的GuyHarris在尋找一套比tcpview(另一套網絡封包擷取程式)更好的軟件。因而他也開始參與Ethereal的開發工做。1998年末,一位在教授TCP/IP課程的講師RichardSharpe,看到了這套軟件的發展潛力,然後開始參與開發與加入新協定的功能。在當時,新的通信協定的制定並不複雜,所以他開始在Ethereal上新增的封包擷取功能,幾乎包含了當時全部通信協定。   自此以後,數以千計的人開始參與Ethereal的開發,多半是由於但願能讓Ethereal擷取特定的,還沒有包含在Ethereal默認的網絡協定的封包而參與新的開發。2006年6月,由於商標的問題,Ethereal改名爲Wireshark。

###2.Metasploitlinux

  • 簡介   Metasploit是一個免費的、可下載的框架,經過它能夠很容易地獲取、開發並對計算機軟件漏洞實施攻擊。它自己附帶數百個已知軟件漏洞的專業級漏洞攻擊工具。當H.D. Moore在2003年發佈Metasploit時,計算機安全情況也被永久性地改變了。彷彿一晚上之間,任何人均可以成爲黑客,每一個人均可以使用攻擊工具來攻擊那些未打過補丁或者剛剛打過補丁的漏洞。軟件廠商不再能推遲發佈針對已公佈漏洞的補丁了,這是由於Metasploit團隊一直都在努力開發各類攻擊工具,並將它們貢獻給全部Metasploit用戶。   Metasploit的設計初衷是打形成一個攻擊工具開發平臺,本書稍後將講解如何開發攻擊工具。然而在目前狀況下,安全專家以及業餘安全愛好者更多地將其看成一種點幾下鼠標就能夠利用其中附帶的攻擊工具進行成功攻擊的環境。
  • 特色   這種能夠擴展的模型將負載控制,編碼器,無操做生成器和漏洞整合在一塊兒,使 Metasploit Framework 成爲一種研究高危漏洞的途徑。它集成了各平臺上常見的溢出漏洞和流行的 shellcode ,而且不斷更新。最新版本的 MSF 包含了750多種流行的操做系統及應用軟件的漏洞,以及224個 shellcode 。做爲安全工具,它在安全檢測中用着不容忽視的做用,併爲漏洞自動化探測和及時檢測系統漏洞提供了有力保障。   Metasploit自帶上百種漏洞,還能夠在online exploit building demo(在線漏洞生成演示)上看到如何生成漏洞。這使本身編寫漏洞變得更簡單,它勢必將提高非法shellcode的水平,而且擴大網絡陰暗面。與其類似的專業漏洞工具,如Core Impact和Canvas已經被許多專業領域用戶使用。Metasploit下降了使用的門檻,將其推廣給大衆。
  • 發展簡史   2004年8月,在拉斯維加斯開了一次世界黑客交流會---黑帽簡報(Black Hat Briefings). 在這個會議上,一款叫Metasploit 的攻擊和滲透工具有受衆黑客關注,出盡了風頭。   Metasploit 是同 HD Moore 和 Spoonm 等4名年輕人開發的,這款免費軟件能夠幫助黑客攻擊和控制計算機,安全人員也能夠利用 Metasploit 來增強系統對此類工具的攻擊。Metasploit 的演示吸引了來自「美國國防部」和「國家安全局」等政府機構的衆多安全顧問和我的,正如 Spoonm 在演講中所說的, Metasploit 很簡單,只須要求「找到目標,單擊和控制」便可。   2004年 Metasploit 的發佈在安全界引起了強烈的「地震」。沒有一款新工具可以一發布就能擠進此列表的15 強(也就是說,2000年和2003年的調查沒有這種狀況),更況且此工具在5強之列,超過不少廣爲流傳的誕生了幾十年的老牌工具。   2005年6月,西雅圖效區的微軟公司總部園區內的管理情報中心,如開了一次「藍帽」會議。幾百名微軟公司的工程師和衆多外界專家及黑客都被邀請進入微軟帝國的中心。在會議中的黑客攻擊演示中,當 Moore 向系統程序員們說明使用 Metasploit 測試系統對抗入侵時的可靠程度時,Metasploit 讓微軟公司的開發人員再次感到不安。在程序員們看來,Metasploit 將會使系統安全面臨嚴重的考驗。   Metasploit Framework (MSF) 在2003年以開放源碼方式發佈,是能夠自由獲取的開發框架。它是一個強大的開源平臺,供開發,測試和使用惡意代碼,這個環境爲滲透測試,shellcode 編寫和漏洞研究提供了一個可靠平臺。   Metasploit框架直到2006年發佈的2.7版本都用Perl腳本語言編寫,因爲Perl的一些缺陷,開發者於2007年末使用Ruby語言重寫了該框架。到2007年年末,Spoonm和馬特·米勒已經離開了項目。從2008年發佈的3.2版本開始,該項目採用新的3段式BSD許可證。   2009年10月21號,漏洞管理解決公司Rapid7收購Metasploit項目。Rapid7承諾成立專職開發團隊,仍然將源代碼置於3段式BSD許可證下。

###3.Nessus程序員

  • 簡介   Nessus 是目前全世界最多人使用的系統漏洞掃描與分析軟件。總共有超過75,000個機構使用Nessus 做爲掃描該機構電腦系統的軟件。   1998年, Nessus 的創辦人 Renaud Deraison 展開了一項名爲 "Nessus"的計劃,其計劃目的是但願能爲因特網社羣提供一個免費、威力強大、更新頻繁並簡易使用的遠端系統安全掃描程序。通過了數年的發展, 包括 CERT 與 SANS 等著名的網絡安全相關機構皆認同此工具軟件的功能與可用性。   2002年時, Renaud 與 Ron Gula, Jack Huffard 創辦了一個名爲 Tenable Network Security 的機構。在第三版的Nessus 發佈之時, 該機構收回了 Nessus 的版權與程序源代碼 (本來爲開放源代碼), 並註冊成爲該機構的網站。 目前此機構位於美國馬里蘭州的哥倫比亞。
  • 特點   1.提供完整的電腦漏洞掃描服務, 並隨時更新其漏洞數據庫。   2.不一樣於傳統的漏洞掃描軟件, Nessus 可同時在本機或遠端上搖控, 進行系統的漏洞分析掃描。   3.其運做效能能隨着系統的資源而自行調整。若是將主機加入更多的資源(例如加快CPU速度或增長內存大小),其效率表現可由於豐富資源而提升。   4.可自行定義插件(Plug-in)   5.NASL(Nessus Attack Scripting Language) 是由 Tenable 所開發出的語言,用來寫入Nessus的安全測試選項。   6.完整支持SSL (Secure Socket Layer)。   7.自從1998年開發至今已諭十年, 故爲一架構成熟的軟件。   採用客戶/服務器體系結構,客戶端提供了運行在X window 下的圖形界面,接受用戶的命令與服務器通訊,傳送用戶的掃描請求給服務器端,由服務器啓動掃描並將掃描結果呈現給用戶;掃描代碼與漏洞數據相互獨立,Nessus 針對每個漏洞有一個對應的插件,漏洞插件是用NASL(NESSUS Attack Scripting Language)編寫的一小段模擬攻擊漏洞的代碼,這種利用漏洞插件的掃描技術極大的方便了漏洞數據的維護、更新;Nessus 具備掃描任意端口任意服務的能力;以用戶指定的格式(ASCII 文本、html 等)產生詳細的輸出報告,包括目標的脆弱點、怎樣修補漏洞以防止黑客入侵及危險級別。

###4. Snortshell

  • 簡介   在1998年,Marty Roesch先生用C語言開發了開放源代碼(Open Source)的入侵檢測系統Snort.直至今天,Snort已發展成爲一個多平臺(Multi-Platform),實時(Real-Time)流量分析,網絡IP數據包(Pocket)記錄等特性的強大的網絡入侵檢測/防護系統(Network Intrusion Detection/Prevention System),即NIDS/NIPS.Snort符合通用公共許可(GPL——GNU General Pubic License),在網上能夠經過免費下載得到Snort,而且只須要幾分鐘就能夠安裝並開始使用它。snort基於libpcap。   Snort有三種工做模式:嗅探器、數據包記錄器、網絡入侵檢測系統。嗅探器模式僅僅是從網絡上讀取數據包並做爲接二連三的流顯示在終端上。數據包記錄器模式把數據包記錄到硬盤上。網絡入侵檢測模式是最複雜的,並且是可配置的。咱們可讓snort分析網絡數據流以匹配用戶定義的一些規則,並根據檢測結果採起必定的動做。
  • 原理及工做過程   Snort可以對網絡上的數據包進行抓包分析,但區別於其它嗅探器的是,它能根據所定義的規則進行響應及處理。Snort 經過對獲取的數據包,進行各規則的分析後,根據規則鏈,可採起Activation(報警並啓動另一個動態規則鏈)、Dynamic(由其它的規則包調用)、Alert(報警),Pass(忽略),Log(不報警但記錄網絡流量)五種響應的機制。   Snort有數據包嗅探,數據包分析,數據包檢測,響應處理等多種功能,每一個模塊實現不一樣的功能,各模塊都是用插件的方式和Snort相結合,功能擴展方便。例如,預處理插件的功能就是在規則匹配誤用檢測以前運行,完成TIP碎片重組,http解碼,telnet解碼等功能,處理插件完成檢查協議各字段,關閉鏈接,攻擊響應等功能,輸出插件將得理後的各類狀況以日誌或警告的方式輸出。   Snort經過在網絡TCP/IP的5層結構的數據鏈路層進行抓取網絡數據包,抓包時需將網卡設置爲混雜模式,根據操做系統的不一樣採用libpcap或winpcap函數從網絡中捕獲數據包;而後將捕獲的數據包送到包解碼器進行解碼。網絡中的數據包有多是以太網包、令牌環包、TCP/IP包、802.11包等格式。在這一過程包解碼器將其解碼成Snort認識的統一的格式;以後就將數據包送到預處理器進行處理,預處理包括能分片的數據包進行從新組裝,處理一些明顯的錯誤等問題。預處理的過程主要是經過插件來完成,好比Http預處理器完成對Http請求解碼的規格化,Frag2事務處理器完成數據包的組裝,Stream4預處理器用來使Snort狀態化,端口掃描預處理器能檢測端口掃描的能力等;對數據包進行了解碼,過濾,預處理後,進入了Snort的最重要一環,進行規則的創建及根據規則進行檢測。規則檢測是Snort中最重要的部分,做用是檢測數據包中是否包含有入侵行爲。例如規則alert tcp any any ->202.12.1.0/24 80(msg:」misc large tcp packet」;dsize:>3000;)這條規則的意思是,當一個流入202.12.1.0這個網段的TCP包長度超過3000B時就發出警報。規則語法涉及到協議的類型、內容、長度、報頭等各類要素。處理規則文件的時候,用三維鏈表來存規則信息以便和後面的數據包進行匹配,三維鏈表一旦構建好了,就經過某種方法查找三維鏈表並進行匹配和發生響應。規則檢測的處理能力須要根據規則的數量,運行Snort機器的性能,網絡負載等因素決定;最後一步就是輸出模塊,通過檢測後的數據包須要以各類形式將結果進行輸出,輸出形式能夠是輸出到alert文件、其它日誌文件、數據庫UNIX域或Socket等。

###5. BackTrack數據庫

  • 簡介   BackTrack是一套專業的計算機安全檢測的Linux操做系統,簡稱BT。BackTrack不只僅是用來戰爭駕駛,還集成了包括Metasploit等200多種安全檢查工具;此外衆多的RFID工具和對ARM平臺的支持也是一個亮點。BackTrack通過了多年發展,滲透測試並接受來自安全社區史無前例的幫助,BackTrack開始於早期live linux的發行版Whoppix,IWHAX以及auditor,BackTrack被設計成一體化的旨在安全審計用的live cd,現今它是被最普遍採用的滲透測試框架並被世界各地的安全社區所使用。如今,BackTrack已被Kali Linux所代替,BT將再也不維護。
  • 發展歷史   BackTrack 4使用了ubuntu8.10 的系統,並且只能裝Debian的軟件包。   BackTrack 5使用了ubuntu10.04的系統。   2011年8月18日,BackTrack發佈了BackTrack5 R1,基於ubuntu10.04 LTS(Long-Term Support) 內核爲Kernel 2.6.39.4,目前BackTrack的最新版本爲2012年8月13日發佈的BackTrack5 R3 黑帽子版,內核爲Kernel 3.2.6。 [1]   BackTrack通過了多年發展,滲透測試並接受來自安全社區的幫助。   BackTrack開始於早期live linux的發行版Whoppix,IWHAX以及auditor。   BackTrack被設計成一體化的live cd。
  • 主要功能   BackTrack是一套專業的計算機安全檢測的Linux操做系統,簡稱BT。目前最新與最好用版本是BT5R3 [2] 。   它能破解WEP,WPA/WPA2加密方式的無線網絡,前提是須要有足夠強大的密碼字典文件。   BT對於基於無線射頻技術的硬件系統有很強的檢測能力。 密碼破解方面,在以往版本工具的基礎上又加入了基於GPU的破解工具oclhashcat,分別爲oclhashcat+(ATI),oclhashcat+(Nvidia),破解速度理論上能夠達到傳統CPU破解的百倍。   Apache和MySQL都被集成到了系統中,方便使用者搭建LAMP環境進行測試,包含有Injection,XSS,Snort等IDS(入侵檢測系統)工具。

2、詳解Wireshark

###1. 認識Wireshark的主窗口界面 (1)首先了解一下這款軟件主窗口界面中每一個部分的功能。Wireshark主窗口界面以下圖所示: 上圖中每部分的含義以下:ubuntu

  • 標題欄:用於顯示所分析的抓包文件的名稱、捕獲的設備名稱以及Wireshark的 版本號。
  • 菜單欄:Wireshark的標準菜單欄。
  • 工具欄:經常使用功能的快捷圖標按鈕。
  • 篩選區域:咱們在實際的數據包分析中,可能在很短的時間內就可以捕獲到成 千上萬的數據包信息。這個時候就須要使用這裏的篩選器,加上必定的條件,篩 選掉咱們並不關心的數據包,從而更好地進行分析。咱們在接下來的實際分析課程 中,會屢次使用篩選功能。
  • Packet List面板:顯示每一個數據幀的摘要。須要強調的是,其實這裏所捕獲 的其實就是數據幀,可是出於表達的習慣,本系列的課程中的大部分時候,我會 以「數據包」的叫法來代替「數據幀」以及「分段」。這裏採用表格的形式列出了 當前捕獲文件中的全部數據包,其中包括了數據包序號、數據包捕獲的相對時 間、數據包的源地址和目標地址、數據包的協議以及在數據包中找到的概 況信息等。
  • Packet Details面板:分析數據包的詳細信息。這個面板分層次地顯示了一個 數據包中的內容,而且能夠經過展開或是收縮來顯示這個數據包中所捕獲的所有內 容。在咱們的課程中,Packet List面板以及Packet Details面板是咱們重點 關注的對象。
  • Packet Bytes面板:以十六進制和ASCII碼的形式顯示數據包的內容。這裏顯 示了一個數據包未經處理的原始樣子,也就是在鏈路上傳播時的樣子。 狀態欄:包含有專家信息、註釋、包的數量和Profile。

(2)認識數據包windows

一旦咱們開始利用Wireshark進行數據包的捕獲,那麼所得到的二進制數據就會 依照不一樣的協議的結構進行規範,而且顯示在Packet Details面板中。這裏我 給你們簡單介紹一下識別數據包的方法。api

在Wireshark中,關於數據包的叫法主要有3個術語,也就是幀、包、段。數據幀的起始點和目的點都是數據鏈路層;數據包的起始和目的地是網絡層;段一般是指起始點和目的地都是傳輸層的信息單元。這裏咱們經過如下捕獲的數據包來分析一下這三種術語(如下展現的是經過篩選器顯示HTTP協議,並查看3934號數據包的狀況):瀏覽器

這裏面主要展現瞭如下五種協議的信息:安全

  • Frame:物理層數據幀的狀況。
  • Ethernet II:數據鏈路層以太網幀頭部的信息。
  • Internet Protocol Version 4:網絡層IP包的頭部信息。
  • Transmission Control Protocol:傳輸層的數據段頭部信息,這裏顯示的是TCP協議。
  • Hypertext Transfer Protocol:應用層信息,這裏顯示的是HTTP協議。 下面依據上述所捕獲到的數據包的具體狀況,對上述前四層的內容進行分析。

物理層數據幀的狀況

  • Frame 3934: 310 bytes on wire (2480 bits), 310 bytes captured (2480 bits) on interface 0 3934號幀,線路上有310個字節,實際捕獲310個字節 Interface id: 0 (\Device\NPF_{EF10E4D3-713B-4239-8786-300C825A9D3F}) 接口id Encapsulation type: Ethernet (1) 封裝類型 Arrival Time: Nov 26, 2015 11:54:10.987177000 中國標準時間 捕獲日期和時間 [Time shift for this packet: 0.000000000 seconds] Epoch Time: 1448510050.987177000 seconds [Time delta from previous captured frame: 0.014178000 seconds] 當前數據包與前一個數據包的時間間隔 [Time delta from previous displayed frame: 0.311034000 seconds] [Time since reference or first frame: 10.449670000 seconds] 當前數據包與第一個數據包的時間間隔 Frame Number: 3934 幀序號 Frame Length: 310 bytes (2480 bits) 幀長度 Capture Length: 310 bytes (2480 bits) 捕獲長度 [Frame is marked: False] 此幀是否作了標記:否 [Frame is ignored: False] 此幀是否被忽略:否 [Protocols in frame: eth:ethertype:ip:tcp:http:image-gif] 幀內封裝的協議層次結構 [Number of per-protocol-data: 1] [Hypertext Transfer Protocol, key 0] [Coloring Rule Name: HTTP] 着色標記的協議名稱 [Coloring Rule String: http || tcp.port == 80 || http2] 着色規則顯示的字符串

數據鏈路層以太網幀頭部的信息

  • Ethernet II, Src: Qihoo360_61:0b:0c (d0:fa:1d:61:0b:0c), Dst: Giga-Byt_d4:be:c9 (94:de:80:d4:be:c9) Destination: Giga-Byt_d4:be:c9 (94:de:80:d4:be:c9) 目標MAC地址 Source: Qihoo360_61:0b:0c (d0:fa:1d:61:0b:0c) 源MAC地址 Type: IP (0x0800) 須要說明的是,爲何上述的源MAC地址以及目標MAC地址的開頭明明是「d0:fa:1d」以及「94:de:80」,# 可是Wireshark上顯示出來的倒是「Qihoo360」以及「Giga-Byt」# 呢?這是由於MAC地址的前3 # 個字節表示廠商。而「d0:fa:1d」以及「94:de:80」被分# 配給了奇虎以及技嘉公司。這是全球統一標# 準,因此Wireshark乾脆顯示出廠商名稱了。

網絡層IP包的頭部信息

  • Internet Protocol Version 4, Src: 220.181.7.190 (220.181.7.190), Dst: 192.168.0.14 (192.168.0.14) Version: 4 互聯網協議IPv4 Header Length: 20 bytes IP包頭部的長度 Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) 差分服務字段 Total Length: 296 IP包的總長度 Identification: 0x2863 (10339) 標誌字段 Flags: 0x02 (Don't Fragment) 標記字段 Fragment offset: 0 分片偏移 Time to live: 49 生存期 Protocol: TCP (6) 當前數據包所封裝的上層協議爲TCP協議 Header checksum: 0x7b43 [validation disabled] 頭部數據的校驗和 Source: 220.181.7.190 (220.181.7.190) 源IP地址 Destination: 192.168.0.14 (192.168.0.14) 目標IP地址

傳輸層TCP數據段的頭部信息

  • Transmission Control Protocol, Src Port: 80 (80), Dst Port: 2488 (2488), Seq: 422, Ack: 3024, Len: 256 Source Port: 80 (80) 源端口號 Destination Port: 2488 (2488) 目標端口號 [Stream index: 16] [TCP Segment Len: 256] Sequence number: 422 (relative sequence number) 序列號(相對序列號) [Next sequence number: 678 (relative sequence number)] 下一個序列號(相對序列號) Acknowledgment number: 3024 (relative ack number) 確認序列號 Header Length: 20 bytes 頭部長度 .... 0000 0001 1000 = Flags: 0x018 (PSH, ACK) TCP標記字段 Window size value: 162 流量控制的窗口大小 Checksum: 0x6fc4 [validation disabled] TCP數據段的校驗和

(3)學習篩選器的簡單用法

Wireshark的篩選器可讓咱們找出咱們所但願進行分析的數據包。簡單來講, 一個篩選器就是定義了必定的條件,用來包含或者排除數據包的表達式。若是在實 際的分析中,不但願看到某一些數據包,那麼就能夠經過篩選器來屏蔽掉它們, 從而只顯示咱們感興趣的內容。可是這裏須要注意的是,有些時候,咱們在進行網 絡分析時,可能會由於設置了不恰當的篩選器而漏掉了一些關於這個網絡狀況的關 鍵數據,因此篩選器有時候也是一把雙刃劍。

篩選器主要是在處理大量的數據時使用,好比咱們剛纔就使用了篩選器來專門顯 示HTTP協議的數據包。這是關於篩選器的最簡單的一種用法。篩選器也支持與 (and)、或(or)、非(not)等邏輯運算符,能夠增強篩選的效率。好比我 們能夠經過以下語句來顯示出全部IP地址爲180.97.34.134,端口號爲80的數據包 :

  • ip.addr==180.97.34.134 and tcp.port==80

或者也能夠查看全部非TCP協議的協議:

  • !tcp

除了邏輯操做符,在篩選器中還可使用比較操做符,好比等於(==)、不等於 (!=)、大於(>)、小於(<)、大於等於(>=)以及小於等於(<=)等。好比我 們如今只想查看長度小於等於150字節的數據包,則可使用以下命令:

  • frame.len<=150

最後再講一下Wireshark的協議域篩選器。這個功能能夠幫助咱們經過檢查協議 頭中的某一個字節來建立篩選條件,或者也能夠匹配一個數據包中從某一特定位置 開始必定數量的字節。舉例來講,好比咱們想捕獲帶有(PSH,ACK)標誌的TCP數據 包。那麼就能夠檢測TCP協議中偏移爲13的標誌位的狀況。儘管這個標誌位只有1 個字節,可是這個字節中的每個比特位都是一個標誌。

咱們能夠用以下命令進行查看:

  • tcp[13]==0x18

顯示結果以下:

若是咱們在實際的分析過程當中發現某一個篩選條件使用的比較頻繁,那麼能夠考 慮將這個篩選條件保存下來,避免每次分析中的重複輸入。咱們能夠在菜單欄中選 擇「Analyze」->「Display Filter」,打開Display Filter對話框。

單擊左邊的New按鈕,建立一個新的篩選器。而且在「Filter Name」中給 篩選器起一個名字,在「Filter String」中輸入篩選表達式,以後單 擊「OK」進行保存便可:

參考連接

###2. wireshark怎麼抓包、wireshark抓包詳細圖文教程

wireshark是很是流行的網絡封包分析軟件,功能十分強大。能夠截取各類網絡封包,顯示網絡封包的詳細信息。使用wireshark的人必須瞭解網絡協議,不然就看不懂wireshark了。 爲了安全考慮,wireshark只能查看封包,而不能修改封包的內容,或者發送封包。

wireshark能獲取HTTP,也能獲取HTTPS,可是不能解密HTTPS,因此wireshark看不懂HTTPS中的內容,總結,若是是處理HTTP,HTTPS 仍是用Fiddler, 其餘協議好比TCP,UDP 就用wireshark。

wireshark 開始抓包

開始界面

wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你須要選擇一個網卡。

點擊Caputre->Interfaces.. 出現下面對話框,選擇正確的網卡。而後點擊"Start"按鈕, 開始抓包

Wireshark 窗口介紹

WireShark 主要分爲這幾個界面

  1. Display Filter(顯示過濾器), 用於過濾

  2. Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。 顏色不一樣,表明

  3. Packet Details Pane(封包詳細信息), 顯示封包中的字段

  4. Dissector Pane(16進制數據)

  5. Miscellanous(地址欄,雜項)

第 2 頁 Wireshark 顯示過濾

使用過濾是很是重要的, 初學者使用wireshark時,將會獲得大量的冗餘信息,在幾千甚至幾萬條記錄中,以致於很難找到本身須要的部分。搞得暈頭轉向。

過濾器會幫助咱們在大量的數據中迅速找到咱們須要的信息。

過濾器有兩種,

一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所須要的記錄

一種是捕獲過濾器,用來過濾捕獲的封包,以避免捕獲太多的記錄。 在Capture -> Capture Filters 中設置

保存過濾

在Filter欄上,填好Filter的表達式後,點擊Save按鈕, 取個名字。好比"Filter 102",

Filter欄上就多了個"Filter 102" 的按鈕。

過濾表達式的規則

表達式規則

1.協議過濾

好比TCP,只顯示TCP協議。

2.IP 過濾

好比 ip.src ==192.168.1.102 顯示源地址爲192.168.1.102,

ip.dst==192.168.1.102, 目標地址爲192.168.1.102

3.端口過濾

tcp.port ==80, 端口爲80的

tcp.srcport == 80, 只顯示TCP協議的願端口爲80的。

4.Http模式過濾

http.request.method=="GET", 只顯示HTTP GET方法的。

5.邏輯運算符爲 AND/ OR

封包列表(Packet List Pane)

封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包信息。 你能夠看到不一樣的協議用了不一樣的顏色顯示。

你也能夠修改這些顯示顏色的規則, View ->Coloring Rules.

封包詳細信息 (Packet Details Pane)

這個面板是咱們最重要的,用來查看協議中的每個字段。

各行信息分別爲

Frame: 物理層的數據幀概況

Ethernet II: 數據鏈路層以太網幀頭部信息

Internet Protocol Version 4: 互聯網層IP包頭部信息

Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP

Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議

第 3 頁 wireshark與對應的OSI七層模型

TCP包的具體內容

從下圖能夠看到wireshark捕獲到的TCP包中的每一個字段。

第 4 頁 實例分析TCP三次握手過程

看到這, 基本上對wireshak有了初步瞭解, 如今咱們看一個TCP三次握手的實例

三次握手過程爲

這圖我都看過不少遍了, 此次咱們用wireshark實際分析下三次握手的過程。

打開wireshark, 打開瀏覽器輸入 http://www.cr173.com

在wireshark中輸入http過濾, 而後選中GET /tankxiao HTTP/1.1的那條記錄,右鍵而後點擊"Follow TCP Stream",

這樣作的目的是爲了獲得與瀏覽器打開網站相關的數據包,將獲得以下圖

圖中能夠看到wireshark截獲到了三次握手的三個數據包。第四個包纔是HTTP的, 這說明HTTP的確是使用TCP創建鏈接的。

第一次握手數據包

客戶端發送一個TCP,標誌位爲SYN,序列號爲0, 表明客戶端請求創建鏈接。 以下圖

第二次握手的數據包

服務器發回確認包, 標誌位爲 SYN,ACK. 將確認序號(Acknowledgement Number)設置爲客戶的I S N加1以.即0+1=1, 以下圖

第三次握手的數據包

客戶端再次發送確認包(ACK) SYN標誌位爲0,ACK標誌位爲1.而且把服務器發來ACK的序號字段+1,放在肯定字段中發送給對方.而且在數據段放寫ISN的+1, 以下圖:

就這樣經過了TCP三次握手,創建了鏈接

3、詳解Nmap

###1.Nmap介紹

Nmap用於列舉網絡主機清單、管理服務升級調度、監控主機或服務運行情況。Nmap能夠檢測目標機是否在線、端口開放狀況、偵測運行的服務類型及版本信息、偵測操做系統與設備類型等信息。

Zenmap

Zenmap是Nmap官方提供的圖形界面,一般隨Nmap的安裝包發佈。Zenmap是用Python語言編寫而成的開源免費的圖形界面,可以運行在不一樣操做系統平臺上(Windows/Linux/Unix/Mac OS等)。Zenmap旨在爲nmap提供更加簡單的操做方式。

以百度(www.baidu.com或61.135.169.125)爲例,使用Zenmap

  • 顯示主界面,填寫目標地址

  • 顯示掃描目標主機的端口號(80和443)

  • 拓撲

  • 目標主機的狀況

對比Zenmap和命令模式下的不一樣:(使用nmap www.baidu.com或namp 61.135.121)

掃描獲得的端口號都是同樣的,命令行模式簡單明瞭,時間短。如下都使用命令模式操做。

###2.Nmap掃描的基本方法

  • Nmap主要包括四個方面的掃描功能,主機發現、端口掃描、應用與版本偵測、操做系統偵測。這裏先介紹端口掃描。

紅框內的內容是重要的

綠色內容表示有998個端口被屏蔽了,也就是說明了網站的防火牆是開啓的,由於沒有開啓防火牆是不會對端口進行屏蔽的。

藍色部分表示開放的端口號,狀態,以及服務

  • 爲何要關注這些端口

  • 使用的命令

nmap -F -sT -v www.baidu.com

-F:掃描100個最有可能開放的端口 -v 獲取掃描的信息 -sT:採用的是TCP掃描 不寫也是能夠的,默認採用的就是TCP掃描

  • 掃描方式

全鏈接掃描,三次握手防火牆能有效攔截,故不多使用 (產生大量日誌,不多使用) 半連接掃描,三次握手前兩次,源SYN 目標SYN/ACK 端口開放;源SYN 目標RST/ACK 端口關閉 (不記日誌,隱蔽性好) 祕密掃描,發送FIN,返回RST (端口關閉,回覆RST包;端口開放,不回覆)

半連接掃描與叫作間接掃描 FIN掃描、Xmas掃描、Null掃描對Windows無效

nmap 類型 選項 目標

nmap -sT TCP掃描 全連接掃描 nmap -sS SYN掃描 半連接掃描 nmap -sF FIN掃描 祕密掃描 除SYN、ACK其它位置1 nmap -sX Xmas掃描 祕密掃描 FIN、URG、PUSH位置1 nmap -sN Null掃描 祕密掃描 標誌位全爲0,發送TCP分組 nmap -sP ping掃描 同時使用ICMP和TCP ACK 80,返回RST說明主機運行(外網) nmap -sU UDP掃描 發送0字節UDP包,快速掃描Windows的UDP端口 nmap -sA ACK掃描 TCP ACK掃描,當防火牆開啓時,查看防火牆有未過慮某端口 nmap -sW 滑動窗口掃描 nmap -sR RPC掃描 nmap -b FTP反彈攻擊(FTP Bounce attack) 外網用戶經過FTP滲透內網 nmap -P0 Nmap掃描前不Ping目標主機 nmap -PT Nmap掃描前使用TCP ACK包肯定主機是否在運行(-PT默認80) nmap -PS Nmap使用TCP SYN包進行掃描 nmap -PI Nmap進行Ping掃描 nmap -PB 結合-PT和-PI功能 nmap -O Nmap掃描TCP/IP指紋特徵,肯定目標主機系統類型 nmap -I 反向標誌掃描,掃描監聽端口的用戶 nmap -f 分片發送SYN、FIN、Xmas、和Null掃描的數據包 nmap -v 冗餘模式掃描,能夠獲得掃描詳細信息 nmap -oN 掃描結果重定向到文件 nmap -resume 使被中斷的掃描能夠繼續 nmap -iL -iL,掃描目錄文件列表 nmap -p -p掃描端口列表,默認掃描1-1024端口和/usr/share/nmap/nmap-services文件中指定端口; -p例:23;20-30,139,60000- nmap -F 快速掃描模式,只掃描nmap-services文件中的端口 nmap -D 欺騙掃描,可有效隱藏掃描者IP地址 nmap -S 在欺騙掃描時,用來指定源主機IP nmap -e 指定從哪一個網卡發送和接收數據包 nmap -g 指定掃描源端口 nmap -r 按順序掃描端口

  • Tcp掃描(-sT)

這是一種全鏈接掃描方式之一,這種掃描方法的特色是:掃描的速度快,準確性高,對操做者沒有權限上的要求,可是容易被防火牆和IDS(防入侵系統)發現

運行的原理:經過創建TCP的三次握手鍊接來進行信息的傳遞

① Client端發送SYN;

② Server端返回SYN/ACK,代表端口開放;

③ Client端返回ACK,代表鏈接已創建;

④ Client端主動斷開鏈接。

用wireshark對掃描過程進行抓包分析:(使用命令nmap -F -sT -v 61.135.169.121)

  • SYN掃描(-sS)

這是一種半連接的掃描方式之一,由於在SYN掃描中Client端和Server端沒有造成3次握手,因此沒有創建一個正常的TCP鏈接,所以不被防火牆和日誌所記錄,通常不會再目標主機上留下任何的痕跡,可是這種掃描是須要root權限(對於windows用戶來講,是沒有root權限這個概念的,root權限是linux的最高權限,對應windows的管理員權限)

對RST包的講解請看:

https://my.oschina.net/costaxu/blog/127394

用wireshark對掃描過程進行抓包分析:(使用命令nmap -F -sS -v 61.135.169.121

  • ACK掃描(-sA)

ACK掃描的原理是發送一個ACK包給目標主機,不論目標主機的端口是否開啓,都會返回相應的RST包,經過判斷RST包中的TTL來判斷端口是否開啓

運行原理圖:

TTL值小於64端口開啓,大於64端口關閉

用wireshark對掃描過程進行抓包分析:(使用命令nmap -F -sA -v 61.135.169.121)

相關文章
相關標籤/搜索