
- Python滲透測試教程
- Python滲透測試 - 首頁
- 介紹
- 評估方法
- 網路通訊入門
- 套接字及其方法
- Python網路掃描器
- 網路資料包嗅探
- ARP欺騙
- 無線網路滲透測試
- 應用層
- 客戶端驗證
- DoS & DDoS攻擊
- SQL注入Web攻擊
- XSS Web攻擊
- 有用資源
- 快速指南
- 有用資源
- 討論
網路通訊入門
我們一直聽說,要進行滲透測試,滲透測試人員必須瞭解基本的網路概念,例如IP地址、有類子網劃分、無類子網劃分、埠和廣播網路。第一個原因是,諸如哪些主機在批准的範圍內處於活動狀態以及它們有哪些服務、埠和功能處於開啟和響應狀態等活動將決定評估人員將在滲透測試中執行哪種型別的活動。環境不斷變化,系統經常重新分配。因此,舊的漏洞很可能再次出現,如果沒有良好的網路掃描知識,初始掃描可能不得不重新進行。在隨後的章節中,我們將討論網路通訊的基礎知識。
參考模型
參考模型提供了一種標準化的方法,在全球範圍內被接受,因為使用計算機網路的人員分佈在廣泛的物理範圍內,並且他們的網路裝置可能具有異構架構。為了在異構裝置之間提供通訊,我們需要一個標準化的模型,即參考模型,它將為我們提供這些裝置可以通訊的方式。
我們有兩個參考模型,例如OSI模型和TCP/IP參考模型。但是,OSI模型是假設的,而TCP/IP是實際的模型。
OSI模型
開放系統互連是由國際標準化組織(ISO)設計的,因此也稱為ISO-OSI模型。
OSI模型由七層組成,如下面的圖所示。每一層都有特定的功能,但是每一層都為上一層提供服務。

物理層
物理層負責以下活動:
啟用、維護和停用物理連線。
定義傳輸所需的電壓和資料速率。
將數字位元轉換為電訊號。
確定連線是單工、半雙工還是全雙工。
資料鏈路層
資料鏈路層執行以下功能:
對要透過物理鏈路傳輸的資訊執行同步和錯誤控制。
啟用錯誤檢測,並在要傳輸的資料中新增錯誤檢測位。
網路層
網路層執行以下功能:
將訊號透過各種通道路由到另一端。
透過決定資料應採取哪條路由來充當網路控制器。
將傳出訊息劃分為資料包,並將傳入資料包組裝成更高層的郵件。
傳輸層
傳輸層執行以下功能:
它決定資料傳輸是否應在並行路徑或單一路徑上進行。
它執行多路複用,將資料拆分。
它將資料組分解成更小的單元,以便網路層更有效地處理它們。
傳輸層保證資料從一端到另一端的傳輸。
會話層
會話層執行以下功能:
管理訊息並同步兩個不同應用程式之間的對話。
它控制登入和登出、使用者身份識別、計費和會話管理。
表示層
表示層執行以下功能:
此層確保資訊以接收系統能夠理解和使用的方式傳遞。
應用層
應用層執行以下功能:
它提供不同的服務,例如以多種方式操作資訊、重新傳輸資訊檔案、分發結果等。
應用層還執行諸如登入或密碼檢查等功能。
TCP/IP模型
傳輸控制協議和網際網路協議 (TCP/IP) 模型是一個實際模型,用於網際網路。
TCP/IP模型將兩層(物理層和資料鏈路層)合併成一層——主機到網路層。下圖顯示了TCP/IP模型的各個層:

應用層
此層與OSI模型相同,並執行以下功能:
它提供不同的服務,例如以多種方式操作資訊、重新傳輸資訊檔案、分發結果等。
應用層還執行諸如登入或密碼檢查等功能。
以下是應用層中使用的不同協議:
- TELNET
- FTP
- SMTP
- DN
- HTTP
- NNTP
傳輸層
它執行與OSI模型中傳輸層相同的功能。請考慮與傳輸層相關的以下重要事項:
它使用TCP和UDP協議進行端到端傳輸。
TCP是一種可靠的面向連線的協議。
TCP還處理流量控制。
UDP不可靠,並且無連線協議不執行流量控制。
TCP/IP和UDP協議在此層中使用。
網際網路層
此層的函式是允許主機將資料包插入網路,然後讓它們獨立地傳輸到目的地。但是,接收資料包的順序可能與傳送它們的順序不同。
網際網路協議 (IP) 用於網際網路層。
主機到網路層
這是TCP/IP模型中的最低層。主機必須使用某些協議連線到網路,以便能夠透過它傳送IP資料包。此協議因主機和網路而異。
此層中使用的不同協議是:
- ARPANET
- SATNET
- 區域網
- 分組無線電
有用的架構
以下是網路通訊中使用的一些有用的架構:
乙太網幀架構
一位名叫羅伯特·梅特卡夫的工程師於1973年首次發明了乙太網網路,並在IEEE標準802.3下定義。它最初用於在工作站和印表機之間互連和傳送資料。超過80%的區域網使用乙太網標準,因為它速度快、成本低且易於安裝。另一方面,如果我們談論幀,那麼資料以這種方式在主機之間傳輸。一個幀由各種元件組成,例如MAC地址、IP報頭、起始和結束分隔符等。
乙太網幀以前導碼和SFD開頭。乙太網報頭包含源和目標MAC地址,之後是幀的有效負載。最後一個欄位是CRC,用於檢測錯誤。基本的乙太網幀結構在IEEE 802.3標準中定義,解釋如下:
乙太網(IEEE 802.3)幀格式
乙太網資料包將其有效負載作為乙太網幀傳輸。以下是乙太網幀的圖形表示以及每個欄位的描述:
欄位名稱 | 前導碼 | SFD(幀起始分隔符) | 目標MAC | 源MAC | 型別 | 資料 | CRC |
---|---|---|---|---|---|---|---|
大小(以位元組為單位) | 7 | 1 | 6 | 6 | 2 | 46-1500 | 4 |
前導碼
乙太網幀之前是前導碼,大小為7位元組,它通知接收系統幀正在開始,並允許傳送方和接收方建立位元同步。
SFD(幀起始分隔符)
這是一個1位元組欄位,用於表示目標MAC地址欄位從下一個位元組開始。有時SFD欄位被認為是前導碼的一部分。這就是為什麼在許多地方前導碼被認為是8位元組的原因。
目標MAC - 這是一個6位元組欄位,其中包含接收系統的地址。
源MAC - 這是一個6位元組欄位,其中包含傳送系統的地址。
型別 - 它定義了幀內協議的型別。例如,IPv4或IPv6。其大小為2位元組。
資料 - 這也稱為有效負載,實際資料插入此處。其長度必須在46-1500位元組之間。如果長度小於46位元組,則新增填充0以滿足最小可能長度,即46。
CRC(迴圈冗餘校驗) - 這是一個4位元組欄位,包含32位CRC,允許檢測損壞的資料。
擴充套件乙太網幀(乙太網II幀)格式
以下是擴充套件乙太網幀的圖形表示,透過它我們可以獲得大於1500位元組的有效負載:
欄位名稱 | 目標MAC | 源MAC | 型別 | DSAP | SSAP | Ctrl | 資料 | CRC |
---|---|---|---|---|---|---|---|---|
大小(以位元組為單位) | 6 | 6 | 2 | 1 | 1 | 1 | >46 | 4 |
與IEEE 802.3乙太網幀不同的欄位的描述如下:
DSAP(目標服務訪問點)
DSAP是一個1位元組長的欄位,表示旨在接收訊息的網路層實體的邏輯地址。
SSAP(源服務訪問點)
SSAP是一個1位元組長的欄位,表示建立訊息的網路層實體的邏輯地址。
Ctrl
這是一個1位元組的控制欄位。
IP資料包架構
網際網路協議是TCP/IP協議套件中的主要協議之一。此協議在OSI模型的網路層和TCP/IP模型的網際網路層工作。因此,此協議負責根據其邏輯地址識別主機並在它們之間透過底層網路路由資料。IP提供了一種透過IP定址方案唯一識別主機的機制。IP使用盡力而為的交付,即它不保證資料包將被交付到目標主機,但它將盡最大努力到達目的地。
在隨後的章節中,我們將瞭解IP的兩個不同版本。
IPv4
這是網際網路協議版本4,它使用32位邏輯地址。以下是IPv4報頭的圖以及欄位的描述:

版本
這是使用的網際網路協議版本;例如,IPv4。
IHL
網際網路報頭長度;整個IP報頭的長度。
DSCP
區分服務程式碼點;這是服務型別。
ECN
顯式擁塞通知;它攜帶有關路由中看到的擁塞的資訊。
總長度
整個IP資料包的長度(包括IP報頭和IP有效負載)。
標識
如果IP資料包在傳輸過程中被分片,則所有分片都包含相同的標識號。
標誌
根據網路資源的要求,如果IP資料包過大而無法處理,則這些“標誌”指示它們是否可以被分片。在這個3位標誌中,MSB始終設定為“0”。
分片偏移
此偏移量指示分片在原始IP資料包中的確切位置。
生存時間
為了避免網路迴圈,每個資料包都發送了一些設定的TTL值,它告訴網路此資料包可以穿越多少路由器(跳數)。在每個跳數處,其值減1,當值達到零時,資料包被丟棄。
協議
告訴目標主機上的網路層,此資料包屬於哪個協議,即下一層協議。例如,ICMP的協議號為1,TCP為6,UDP為17。
報頭校驗和
此欄位用於儲存整個報頭的校驗和值,然後用於檢查資料包是否無錯誤地接收。
源地址
資料包傳送方(或源)的32位地址。
目標地址
資料包接收方(或目標)的32位地址。
選項
這是一個可選欄位,如果IHL的值大於5則使用。這些選項可能包含安全、記錄路由、時間戳等選項的值。
如果您想詳細瞭解IPv4,請參考此連結 - www.tutorialspoint.com/ipv4/index.htm
IPv6
網際網路協議版本6是最新的通訊協議,與其前身IPv4一樣,它工作在網路層(第3層)。除了提供大量的邏輯地址空間外,該協議還具有豐富的功能,可以解決IPv4的不足。以下是IPv4報頭圖及其欄位說明:

版本(4位)
它表示網際網路協議的版本——0110。
流量類(8位)
這8位分為兩部分。最高有效6位用於服務型別,讓路由器知道應該為該資料包提供哪些服務。最低有效2位用於顯式擁塞通知(ECN)。
流標籤(20位)
此標籤用於維護屬於通訊的資料包的順序流。源標記序列以幫助路由器識別特定資料包屬於特定資訊流。此欄位有助於避免資料包的重新排序。它專為流媒體/即時媒體而設計。
有效負載長度(16位)
此欄位用於告訴路由器特定資料包在其有效負載中包含多少資訊。有效負載由擴充套件報頭和上層資料組成。使用16位,最多可以指示65535位元組;但是,如果擴充套件報頭包含逐跳擴充套件報頭,則有效負載可能會超過65535位元組,並且此欄位設定為0。
下一個報頭(8位)
此欄位用於指示擴充套件報頭的型別,或者如果不存在擴充套件報頭,則指示上層PDU。上層PDU型別的值與IPv4相同。
跳數限制(8位)
此欄位用於阻止資料包在網路中無限迴圈。這與IPv4中的TTL相同。跳數限制欄位的值在經過鏈路(路由器/跳數)時減1。當欄位達到0時,資料包被丟棄。
源地址(128位)
此欄位指示資料包發起者的地址。
目標地址(128位)
此欄位提供資料包預期接收者的地址。
如果您想詳細瞭解IPv6,請參考此連結——www.tutorialspoint.com/ipv6/index.htm
TCP(傳輸控制協議)報頭架構
眾所周知,TCP是一種面向連線的協議,在開始通訊之前,兩個系統之間會建立一個會話。通訊完成後,連線將關閉。TCP使用三次握手技術來建立兩個系統之間的連線套接字。三次握手意味著在兩個系統之間來回傳送三個訊息——SYN、SYN-ACK和ACK。兩個系統(發起系統和目標系統)之間工作步驟如下:
步驟1 - 設定SYN標誌的資料包
首先,嘗試發起連線的系統以設定SYN標誌的資料包開始。
步驟2 - 設定SYN-ACK標誌的資料包
現在,在此步驟中,目標系統返回一個設定了SYN和ACK標誌的資料包。
步驟3 - 設定ACK標誌的資料包
最後,發起系統將向原始目標系統返回一個設定了ACK標誌的資料包。
以下是TCP報頭圖及其欄位說明:

源埠(16位)
它標識傳送裝置上應用程式程序的源埠。
目標埠(16位)
它標識接收裝置上應用程式程序的目標埠。
序列號(32位)
會話中段的資料位元組的序列號。
確認號(32位)
當ACK標誌設定時,此數字包含預期資料位元組的下一個序列號,並作為對先前接收到的資料的確認。
資料偏移量(4位)
此欄位同時暗示TCP報頭的大小(32位字)以及當前資料包在整個TCP段中的資料偏移量。
保留(3位)
保留供將來使用,預設為零。
標誌(每個1位)
NS - 顯式擁塞通知訊號處理使用此Nonce Sum位。
CWR - 當主機接收到設定了ECE位的資料包時,它設定擁塞視窗減少以確認收到ECE。
ECE - 它有兩個含義:
如果SYN位清零,則ECE表示IP資料包的CE(擁塞體驗)位已設定。
如果SYN位設定為1,則ECE表示裝置具有ECT功能。
URG - 它指示緊急指標欄位具有重要資料,應進行處理。
ACK - 它指示確認欄位具有意義。如果ACK清零,則表示資料包不包含任何確認。
PSH - 設定時,它是對接收站的請求,將資料(儘快到達)推送到接收應用程式,而無需對其進行緩衝。
RST - 重置標誌具有以下功能:
用於拒絕傳入連線。
用於拒絕段。
用於重新啟動連線。
SYN - 此標誌用於在主機之間建立連線。
FIN - 此標誌用於釋放連線,此後不再交換資料。因為帶有SYN和FIN標誌的資料包具有序列號,所以它們按正確的順序處理。
視窗大小
此欄位用於兩個站之間的流量控制,並指示接收器為段分配的緩衝區大小(以位元組為單位),即接收器期望多少資料。
校驗和 - 此欄位包含報頭、資料和偽報頭的校驗和。
緊急指標 - 如果URG標誌設定為1,則它指向緊急資料位元組。
選項 - 它提供了常規報頭未涵蓋的其他選項。選項欄位始終以32位字描述。如果此欄位包含少於32位的資料,則使用填充來覆蓋剩餘位以達到32位邊界。
如果您想詳細瞭解TCP,請參考此連結——https://tutorialspoint.tw/data_communication_computer_network/transmission_control_protocol.htm
UDP(使用者資料報協議)報頭架構
與TCP(面向連線的協議)不同,UDP是一個簡單的無連線協議。它涉及最少的通訊機制。在UDP中,接收方不會生成接收到的資料包的確認,反過來,傳送方也不會等待發送的資料包的任何確認。這種缺點使該協議既不可靠,也易於處理。以下是UDP報頭圖及其欄位說明:

源埠
此16位資訊用於標識資料包的源埠。
目標埠
此16位資訊用於標識目標機器上的應用程式級服務。
長度
長度欄位指定整個UDP資料包的長度(包括報頭)。它是一個16位欄位,最小值為8位元組,即UDP報頭本身的大小。
校驗和
此欄位儲存傳送方在傳送前生成的校驗和值。IPv4將此欄位作為可選欄位,因此當校驗和欄位不包含任何值時,將其設為0,並且所有位都設定為零。
要詳細瞭解TCP,請參考此連結——使用者資料報協議