# AI資安學習Day02 今日主要學習網路封包 ## AI提供目標  ## 目標1.Wireshark+TCP/IP  > wireshark使用截圖 目標1的實作內容 AI提到了ping和curl的command 我了解到ping指令是透過ICMP protocol進行交互 而curl指令則透過TCP protocal進行交互 下面來介紹一下我學到的內容 ### ping ``` ping [ip address] ``` 此指令透過ICMP protocol進行傳輸 這個協議並不會進行"三次握手" -> 稍後會進行解釋 ping實際上不會像TCP一樣建立傳輸的通道 它本質上只是去先使用DNS查出網域的IP 再來就只是去敲敲門 看這個網域有沒有人在家 如果有人在家 對方的ICMP則會回復有人在家 這樣就能夠得知這個ip是不被可連線的 ### curl ``` curl [ip address] ``` 此指令則是使用TCP protocol和外部ip建立連接 在建立連接時為了確保通訊的可靠、雙向、有序 在進行連接時需要進行三次握手 這個操作是為了確保 1.客戶端能發送資料 ✅ 2.伺服器能接收資料 ✅ 3.伺服器也能發送資料 ✅ 4.客戶端能接收伺服器的資料 ✅ 而透過wireshark抓包後 可以發現前三個欄位  就是三次握手的過程 簡而言之,客戶端一開始會發送請求給伺服器 並說我的Seq=0 > 註:Seq(Sequence Number),Ack(Acknowledgment Number) 但詢問過AI之後我發現Seq通常會是隨機的 只是我今天實作時剛好是0 <- 這樣駭客會很好猜到 通常Client在和Server端進行交互時 也就是TCP在建立連線時 Client和Server端 會隨機產生一個初始序號(Initial Sequence Number, ISN) 作為Seq的值 這種做法避免了駭客進行以下的攻擊或偽裝 1.假裝是IP的本人(IP spoofing) 2.猜出Seq序號(Sequence Prediction Attack) 3.發出假封包脅持連線(session hijacking) 另外隨機產生ISN 還能夠避免斷線後 重新使用TCP進行連接時 誤將舊資料誤當成新資料的錯誤 再來我再詳細說明一下三次握手的過程 1.Client 和 Server端會隨機產生ISN 2.第一次握手Client會將它的Seq傳給Server端 3.第二次握手Server端接收到之後會將Ack=Client的Seq+1並回傳 4.第三次握手Client接收到Server端的Ack後將自己的Seq+1,Ack則=Server端Seq+1 我的理解上是這樣子 Seq用來記錄自己的下一次要從哪開始傳 Ack則用來記錄Client/Server上一次傳到哪 下次要從哪裡開始傳  >AI的示意圖 ## 延伸學習 為/bin/bash加上SUID 可以看到檔案擁有者的權限變為rws 這表示有SUID 這代表所有使用者打開這個檔案都會以root執行 這樣十分危險,若是有此漏洞則可以用此方式提權  以下指令可以查找檔案中含SUID的程式 ```bash= find / -perm -4000 -type f 2>/dev/null ```  可以透過以下指令 讓一般的使用者都擁有root的權限 ```bash= /tmp/mysecretbash -p ``` >-p 表示:保持父程序的權限(就是 root)
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up