開啟xshell, 登入linux伺服器,開始wireshake抓包。
ssh抓包從測試如下:
一、3次握手建立tcp連線
1、 seq = 0表示客戶端當前的tcp包序列號。
2、seq = 0,表示伺服器端當前的tcp包序列號ack = 1(客戶端seq + 1),表示對客戶端第 seq = 0 的tcp包進行應答
3、seq = 1,表示客戶端端當前的tcp包序列號ack = 1(伺服器seq + 1),表示對伺服器端第 seq = 0 的tcp包進行應答
二、ssh版本協議交換
4、伺服器將自己的ssh協議版本傳送到客戶端,格式為:ssh-protoversion(版本號)-softwareversion(自定義) sp(空格乙個,可選) comments(注釋,可選) cr(回車) lf(換行)。如:ssh-2.0-openssh_7.4
5、客戶端將自己的ssh協議版本傳送到伺服器,格式為:ssh-protoversion(版本號)-softwareversion(自定義) sp(空格乙個,可選) comments(注釋,可選) cr(回車符) lf(換行符)。如:ssh-2.0-nsssh2_6.0.0037 netsarang computer, inc.
三、協商出會話id和會話金鑰
後面加解密用的是會話金鑰。
四、然後接下來才是認證階段
用賬號名密碼登入的是password認證。還有一種是公鑰認證,這個是在免密登入的時候有用到。如果是password認證客戶端會把賬號密碼和認證方法用會話金鑰加密傳輸到服務端進行認證。
免密登陸,簡單地說,就是客戶端自己生成公鑰私鑰(通常採用ssh-keygen程式生成),然後將公鑰以某種方式(通常是手動新增)儲存到伺服器~/.ssh/authorized_keys
檔案中,以後伺服器都會接受客戶端傳過來的經過會話金鑰加密過的公鑰,然後解密得到公鑰之後和本地authorized_keys
配置的公鑰是否相等,如果是,則允許登陸。
以上歸納的原理圖如下:這個圖是從別人那邊copy來的,
注意點:會話金鑰的協商
會話金鑰是用dh演算法得出來的。
其中dh演算法協商會話金鑰的流程如下,這是摘自維基百科的,就是會話金鑰(對稱)的協商過程其實是有很多種演算法實現,dh只是其中一種,比如tls的協商的時候就是用的eccdh演算法。
如果愛麗絲是客戶端,鮑勃是服務端,但是其中如果伊芙假裝成鮑勃跟愛麗絲通訊,假裝成愛麗絲和鮑勃通訊?這也很好解釋了為什麼我們第一次登陸的時候,shell終端總是會出現這個提示,你是否信任服務端公鑰,這也是將確認權留給客戶端自己去判斷的一種策略,所以用這樣保證客戶端愛麗絲只對服務端鮑勃協商,而不會對伊芙協商,所以愛麗絲就不會把賬號密碼給伊芙。如果伊芙偽裝成愛麗絲和服務端鮑勃通訊,這個時候伊芙沒有root賬號、密碼,最終肯定沒有辦法成功登入的。
Httpwatch抓包分析
說明 本次抓包抓的是loadrunning11中自帶程式web tours的登入過程 結果如下圖 post webtours login.pl http 1.1 post定義請求方法,webtours login.pl定義請求伺服器哪些資源以及在伺服器位置,http表示採用的協議,1.1表示http...
linux抓包分析
linux 下抓包命令 tcpdump 可以輸入tcpdump 看下該命令是否安裝,沒有安裝 輸入 yum install y tcpdump 到目錄下開始抓包 tcpdump i eth1 w 1.pcap 生成1.pcap檔案 ctrl c 停止抓包 sz 1.pcap 匯出1.pcap 拉到w...
抓包過程分析
抓包工具實踐 兩台計算機連線網線後已經ping通,本機所用的專用網ip 192.168.0.11,另一台計算機的專用網ip 192.168.0.101.arp請求與arp響應報文的抓取與分析 arp響應報文mac資料格式 分析同上 icmp報文的抓取與分析 icmp echo對應的mac幀 mac幀...