<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    linux之抓包神器tcpdump

    VSole2021-09-13 08:59:48

    tcpdump介紹

    tcpdump 是一款強大的網絡抓包工具,運行在 linux 平臺上。熟悉 tcpdump 的使用能夠幫助你分析、調試網絡數據。

    tcpdump語法

    tcpdump [-adeflnNOpqStvx][-c<數據包數目>][-dd][-ddd][-F<表達文件>][-i<網絡界面>][-r<數據包文件>][-s<數據包大小>][-tt][-T<數據包類型>][-vv][-w<數據包文件>][輸出數據欄位]
    

    tcpdump參數

    -a    將網絡地址和廣播地址轉變成名字;
    -d    將匹配信息包的代碼以人們能夠理解的匯編格式給出;
    -dd    將匹配信息包的代碼以c語言程序段的格式給出;
    -ddd   將匹配信息包的代碼以十進制的形式給出;
    -e    在輸出行打印出數據鏈路層的頭部信息,包括源mac和目的mac,以及網絡層的協議;
    -f    將外部的Internet地址以數字的形式打印出來;
    -l    使標準輸出變為緩沖行形式;
    -n    指定將每個監聽到數據包中的域名轉換成IP地址后顯示,不把網絡地址轉換成名字;
    -nn:   指定將每個監聽到的數據包中的域名轉換成IP、端口從應用名稱轉換成端口號后顯示
    -t    在輸出的每一行不打印時間戳;
    -v    輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;
    -vv    輸出詳細的報文信息;
    -c    在收到指定的包的數目后,tcpdump就會停止;
    -F    從指定的文件中讀取表達式,忽略其它的表達式;
    -i    指定監聽的網絡接口;
    -p:    將網卡設置為非混雜模式,不能與host或broadcast一起使用
    -r    從指定的文件中讀取包(這些包一般通過-w選項產生);
    -w    直接將包寫入文件中,并不分析和打印出來;
    -s snaplen snaplen表示從一個包中截取的字節數。0表示包不截斷,抓完整的數據包。默認的話 tcpdump 只顯示部分數據包,默認68字節。
    -T    將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc (遠程過程調用)和snmp(簡單網絡管理協議;)
    -X      告訴tcpdump命令,需要把協議頭和包內容都原原本本的顯示出來(tcpdump會以16進制和ASCII的形式顯示),這在進行協議分析時是絕對的利器。
    

    監聽所有端口,直接顯示 ip 地址

    > tcpdump -nS
    

    顯示更詳細的數據報文,包括 tos, ttl, checksum 等。

    > tcpdump -nnvvS
    

    顯示數據報的全部數據信息,用 hex 和 ascii 兩列對比輸出。

    > tcpdump -nnvvXS
    

    host: 過濾某個主機的數據報文

    > tcpdump host 1.2.3.4
    

    src, dst: 過濾源地址和目的地址

    > tcpdump src 1.2.3.4
    > tcpdump dst 1.2.3.4
    

    net: 過濾某個網段的數據

    > tcpdump net 1.2.3.0/24
    

    過濾某個協議的數據,支持 tcp, udp 和 icmp

    > tcpdump icmp
    

    過濾通過某個端口的數據報

    > tcpdump port 3306
    

    src/dst, port, protocol: 結合三者

    > tcpdump src port 22 and tcp
    > tcpdump udp and src port 25
    

    抓取指定范圍的端口

    > tcpdump portrange 21-23
    

    通過報文大小過濾請求,數據報大小,單位是字節

    > tcpdump less 32
    > tcpdump greater 128
    > tcpdump > 32
    > tcpdump <= 128
    

    抓包輸出到文件

    > tcpdump -w rumenz.pcap port 80
    

    從文件讀取報文顯示到屏幕

    > tcpdump -nXr rumenz.pcap host web
    

    源地址是 192.168.1.110,目的端口是3306的數據報

    > tcpdump -nnvS src 192.168.1.110 and dst port 3306
    

    從 192.168 網段到 10 或者 172.31 網段的數據報

    > tcpdump -nvX src net 192.168.0.0/16 and dat net 10.0.0.0/8 or 172.31.0.0/16
    

    tcpdump 的輸出解讀

    21:27:06.995846 IP (tos 0x0, ttl 64, id 45646, offset 0, flags [DF], proto TCP (6), length 64)
        192.168.1.110.40411 > 192.168.1.123.80: Flags [S], cksum 0xa730 (correct), seq 992042666, win 65535, options [mss 1460,nop,wscale 4,nop,nop,TS val 663433143 ecr 0,sackOK,eol], length 0
    
    21:27:07.030487 IP (tos 0x0, ttl 51, id 0, offset 0, flags [DF], proto TCP (6), length 44)
        192.168.1.123.80 > 192.168.1.110.40411: Flags [S.], cksum 0xedc0 (correct), seq 2147006684, ack 992042667, win 14600, options [mss 1440], length 0
    
    21:27:07.030527 IP (tos 0x0, ttl 64, id 59119, offset 0, flags [DF], proto TCP (6), length 40)
        192.168.1.110.40411 > 192.168.1.123.80: Flags [.], cksum 0x3e72 (correct), ack 2147006685, win 65535, length 0
    
    最基本也是最重要的信息就是數據報的源地址/端口和目的地址/端口,上面的例子第一條數據報中,源地址 ip 是192.168.1.110,源端口是 40411,目的地址是 192.168.1.123,目的端口是 80。> 符號代表數據的方向。
    上面的三條數據還是 tcp 協議的三次握手過程,第一條就是 SYN 報文,這個可以通過 Flags [S] 看出。下面是常見的 TCP 報文的 Flags:
    [S]:SYN(開始連接)
    [.]: 沒有 Flag
    [P]: PSH(推送數據)
    [F]: FIN (結束連接)
    [R]: RST(重置連接)
    
    而第二條數據的 [S.] 表示 SYN-ACK,就是 SYN 報文的應答報文。
    linux系統tcpdump
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    入侵者在入侵成功后,往往會留下后門以便再次訪問被入侵的系統,而創建系統賬號是一種比較常見的后門方式。在做入侵排查的時候,用戶配置文件/etc/passwd和密碼配置文件/etc/shadow是需要去重點關注的地方。查詢特權用戶特權用戶> awk -F: '$3==0{print $1}' /etc/passwd. 查找遠程可以登錄的賬戶> awk '/\$1|\$5|\$6/{print $1}' /etc/shadow. $1:MD5$5:SHA-256$6:SHA-512檢查sudo權限> cat /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL". 檢查計劃任務利用計劃任務進行權限維持,可作為一種持久性機制被入侵者利用。
    拿到一臺 linux 主機普通權限之后,如何獲取更高的 root 權限?0x01 查看操作系統信息,內核版本等查看操作系統類型:cat /etc/issue?ls /boot | grep vmlinuz-可以看到當前系統是 64 位。
    arch #顯示機器的處理器架構(1) uname -m #顯示機器的處理器架構(2) uname -r #顯示正在使用的內核版本 dmidecode -q #顯示硬件系統部件 - (SMBIOS / DMI) hdparm -i /dev/hda #羅列一個磁盤的架構特性 hdparm -tT /dev/sda #在磁盤上執行測試性讀取操作 cat /p
    出于對Linux操作系統的興趣,以及對底層知識的強烈欲望,因此整理了這篇文章。本文也可以作為檢驗基礎知識的指標,另外文章涵蓋了一個系統的方方面面。應用程序的行為細節往往是和這些東西互相牽扯的,這些底層的東西會以意想不到的方式影響應用程序的性能,比如某些程序無法充分利用 cache,從而導致性能下降。times,則一直采集數據,直到用戶手動停止為止。
    應用程序的行為細節往往是和這些東西互相牽扯的,這些底層的東西會以意想不到的方式影響應用程序的性能,比如某些程序無法充分利用 cache,從而導致性能下降。times,則一直采集數據,直到用戶手動停止為止。是一個用來監視磁盤 I/O 使用狀況的 top 類工具,具有與 top 相似的 UI,其中包括 PID、用戶、I/O、進程等相關信息。
    linux運維道面試題
    2021-12-24 22:05:28
    linux運維面試題
    雖然平時大部分工作都是和網絡相關, 但會接觸Linux系統, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行環境中. 自己記憶力不好, 很多有用的Linux命令不能很好的記憶, 現在逐漸總結一下, 以便后續查看。基本操作Linux 關機,重啟#?查看當前用戶環境變量。查看有幾顆cpu,每顆分別是幾核。
    本文章盤點了 Linux 運維必備 150 個命令,請配合下面的網站使用。定位你需要使用的命令,然后去這個網站查詢詳細用法即可。 地址:wangchujiang.com/linux-command/
    雖然平時大部分工作都是和Java相關的開發, 但是每天都會接觸Linux系統, 尤其是使用了Mac之后, 每天都是工作在黑色背景的命令行環境中. 自己記憶力不好, 很多有用的Linux命令不能很好的記憶, 現在逐漸總結一下, 以便后續查看。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类