tcpdump 的用法 @ 暉獲無度的步烙閣 :: 隨意窩 Xuite日誌
  • 關鍵字
  • LinuxWindowsSBL籃球WinXP食記Win7CentOS4排班表CentOS5台北上海Batch安裝BASHNBWin2000CentOS6Win2003VMware影片Win2008UbuntuSSHCacti教育訓練手機MySQLDNSBIND9KOF14VigorCactiEZF5SMTP四川CentOS7VirtualBoxLTMASUSPostfixMailIEvCenterPOP3PCIBMRDPlocaleMSADmore
  • 我的計數器
  • 已建
    步社會
    聯合人


    since 2011/01/31

  • 中華土木工程,退伍後不務正業,專攻電腦網路,立足台灣,放眼世界。
    2007 考到第一張證照,LPIC。
    2010 隨班考一張證照,VCP。
    2017 隨班考一張證照,MCSA。
    2017 隨班考資安證照,CEH。
    單純生活,複雜思想,徬徨人生。

  • 充過的電
  • 2018-JanONTAP cluster Administration
    2017-AprHyper-V 私有雲規劃與建置實務班
    2017-AprCEHv9
    2016-SepMCSA 2012R2
    2016-JunPython 程式設計
    2013-JulJRE Junos 基礎路由
    2013-JulIJOS Junos 介紹
    2013-FebMS SQL資料庫程設
    2012-Oct網路主機安全實務班
    2012-JulMCSA 2008R2
    2011-Aug雲端網路應用實務
    2011-AugPHP+MySQL程式設計
    2009-SepHG813S HP 刀鋒系統 c-Class 硬體安裝及初始設定
    2009-Jun惡意程式分析課程
    2009-JanVMware Infrastructure 3:安裝與設定
    2007-SepLinux Embedded System 嵌入式系統應用課程
    2006-Dec2279B 規劃、建置與維護 MSAD 2003 基礎架構
    2006-AugRed Hat Cluster 3
    2005-DecSA-119 UNIX Essentials Featuring the Solaris 9 Operating Environment
    2005-Oct2823 MS Windows Server 2003 網路實作及資訊安裝管理
    2005-JunNSPA 網安封包分析
    2005-May認證資訊系統安全專家 CISSP 輔導班
    2004-NovRed Hat Firewall Administration
    2004-MayRed Hat Linux OpenLDAP Adminstration
    2003-Sep路由器網路整合技術班
    2000-JunSolaris Advance
    2000-JunSolaris Admin For Begineer

  • 累積 | 今日
    loading......
    1. 沒有新回應!
    200904291559tcpdump 的用法

    tcpdump 可用來擷取通過某網路介面的封包。(需有 root 權限!)

    這個很久以前上課就有教了,但都沒啥用到!最近因為要查 Mail Server 為啥無法寄信,才又重新上網找了一下相關資料。

    參考:鳥哥Tsung Blog510CTO

    基本選項有:
    .-n:以數字顯示,不對 IP 作反解,但仍顯示服務名稱。
    .-nn:直接以 IP 及 port number 顯示,而非主機名與服務名稱。
    .-p:不要以 promiscuous mode 執行。
    .-t:不要顯示 timestamp。
    .-i:指令要監控的網路介面,如 eth0、lo、any 等。
    .-e:使用資料連接層 (OSI 第二層) 的 MAC 封包資料來顯示。
    .-c:監聽的封包數,如果沒有這個參數,tcpdump 會持續不斷的監聽,直到使用者輸入 [ctrl]-c 為止。
    .-q:僅列出較為簡短的封包資訊,每一行的內容比較精簡。
    .-s:抓比較長的 data 做一筆記錄。
    .-v:輸出一個稍微詳細的資訊,例如在 IP 封包中可以包括 ttl 和服務類型的資訊。
    .-A:封包的內容以 ASCII 顯示,通常用來捉取 WWW 的網頁封包資料。
    .-X:可以列出十六進位 (hex) 以及 ASCII 的封包內容,對於監聽封包內容很有用。
    .-w:如果你要將監聽所得的封包資料儲存下來,用這個參數就對了!後面接檔名。
    .-r:從後面接的檔案將封包資料讀出來。那個『檔案』是已經存在的檔案,並且這個『檔案』是由 -w 所製作出來的。
    《範例》 tcpdump -nn -i eth0

    可指定條件式要求 tcpdump 只擷取某些封包。
    條件式可以是單一的『基本條件式(primitives)』,
    或用 and(&&),or(||),not(!) 以及『(』、『)』組合基本條件式而成。

    常用的『基本條件式(primitives)』:

    host 192.168.0.254 來源或目的 IP 是 192.168.0.254
    src host 192.168.0.254
    來源 IP 是 192.168.0.254
    dst host 192.168.0.254 目的 IP 是 192.168.0.254
    ether host aa:bb:cc:dd:ee:ff 來源或目的 mac address 是 aa:bb:cc:dd:ee:ff
    ether src aa:bb:cc:dd:ee:ff 來源 mac address 是 aa:bb:cc:dd:ee:ff
    ether dst aa:bb:cc:dd:ee:ff 目的 mac address 是 aa:bb:cc:dd:ee:ff
    net 192.168.0.0 mask 255.255.255.0 來源或目的 IP 在 192.168.0.X 可加上 src 或 dst 做進一步限制
    net 192.168.0.0/24 同上
    tcp/udp/icmp 封包內有 tcp/udp/icmp 的資料
    port domain 來源或目的 port 為 domain (53) 可加上 src,dst 或 tcp,udp 做進一步限制
    port 53 同上
    tcp src port smtp 來源 port 為 TCP/25

    範例:
    tcpdump -i eth0 'tcp'
    tcpdump -i eth0 'host 192.168.0.X'
    tcpdump -i eth0 'tcp and host 192.168.0.X'
    tcpdump -i eth0 'tcp port 22 and host 192.168.0.X'
    tcpdump -i eth0 'tcp and (not port 22) and (net 192.168.0.0/24)'

    看了鳥哥介紹 -X 的參數,忍不住也來進行個實驗,決定來抓抓 POP3 的封包,我先輸入下列指令來保存封包內容:
    # tcpdump -i eth0 -nn -X 'port 110' -w packet
    執行後,畫面就不會出現所抓取的封包內容,直接就寫到 packet 這個檔案中。接下來我再執行下列指令來檢視封包內容:
    # tcpdump -nnXr packet |less
    果不其然,終於也見識到了明碼傳輸的危險性了。


    節錄一些「超級詳細 Tcpdump 的用法」的內容

    第一種是關於類型的關鍵字,主要包括 host、net、port,例如 host 210.27.48.2,指明 210.27.48.2 是一台主機,net 202.0.0.0 指明 202.0.0.0 是一個網路位址,port 23 指明埠號是 23。如果沒有指定類型,預設的類型是 host。

    第二種是確定傳輸方向的關鍵字,主要包括 src、dst、dst or src、dst and src。這些關鍵字指明了傳輸的方向。舉例說明,src 210.27.48.2,指明 IP 封包中來源位址是 210.27.48.2 , dst net 202.0.0.0 指明目的位址是 202.0.0.0。如果沒有指明方向關鍵字,則預設是不分方向(src or dst)。

    第三種是協定的關鍵字,主要包括 fddi、ip、arp、rarp、tcp、udp 等類型。fddi指明是在FDDI(光纖分佈式數據介面)上特定的網路協定,實際上它是“ether”的別名,fddi 和 ether 具有類似的來源位址和目的位址,所以可以將 fddi 協議封包當作 ether 的封包進行處理和分析。其他的幾個關鍵字就是指明了擷取的封包協定。如果沒有指定任何協定,則 tcpdump 將會擷取所有協定的封包。

    除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway、broadcast、less、greater。還有三種邏輯運算,反相運算式 not,!;與運算式 and,&&;或運算式 or,||。這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。

    A.想要擷取所有 210.27.48.1 的主機收到的和發出的所有的數據封包:
    # tcpdump host 210.27.48.1

    B.想要擷取主機 210.27.48.1 和主機 210.27.48.2 或 210.27.48.3 的通信,使用命令:(在命令行中使用小括號時,一定要加跳脫符號\)
    # tcpdump host 210.27.48.1 and \( 210.27.48.2 or 210.27.48.3 \)

    C.如果想要擷取主機 210.27.48.1 和除了與主機 210.27.48.2 之外所有主機通信的 IP 封包,使用命令
    # tcpdump ip host 210.27.48.1 and ! 210.27.48.2

    D.如果想要擷取主機 210.27.48.1 接收或發出的 telnet 封包,使用如下命令:
    # tcpdump tcp port 23 host 210.27.48.1

    E.對本機的 udp 123 埠號進行監視(123 為 ntp 的服務埠號):
    # tcpdump udp port 123

    F.系統將只對名稱為 hostname 的主機的通信數據封包進行擷取。主機名可以是本地主機,也可以是網路上的任何一台電腦。下面的命令可以擷取主機 hostname 發送的所有數據封包:
    # tcpdump -i eth0 src host hostname

    G.下面的命令可以擷取所有送到主機 hostname 的數據封包:
    # tcpdump -i eth0 dst host hostname

    H.我們還可以擷取通過指定閘道的數據封包:
    # tcpdump -i eth0 gateway GatewayIP

    I.如果你還想擷取主機指定埠號的 TCP 及 UDP 數據封包,那麼執行以下命令:
    # tcpdump -i eth0 host hostname and port 80

    J.如果我們只需要列出送到 80 埠號的數據封包,用 dst port;如果我們只希望看到返回 80 埠號的數據封包,用 src port。
    # tcpdump -i eth0 host hostname and dst port 80  目的埠號是 80
    或者
    # tcpdump -i eth0 host hostname and src port 80  來源埠號是80,一般是提供 HTTP 服務的伺服器

    K.如果條件很多的話,要在條件之前加 and 或 or 或 not
    # tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80

    記錄備查囉!

    活出成功-出人頭地的致勝寶典-...|日誌首頁|Web 1.0、1.5、2.0上一篇活出成功-出人頭地的致勝寶典--廖斌得--960620下一篇Web 1.0、1.5、2.0
    回應