文章是博主上實驗課做的實驗和心得體會,有些高深的地方我可能也比較一知半解,歡迎來交流。全文參考課程所習得,純粹梳理知識點和分享,如有不妥請聯系修改。
文章側重實驗部分,也會講述實驗相關的理論知識。理論后期如果有需要(我要著手復習梳理再整理)
端口掃描
1概述
1.1端口掃描的原理
網絡中,一個服務的建立過程是:一個主機向一個遠端服務器的某個端口提出建立連接的請求,如果對方提供此服務,就會應答該請求;如果對方沒有此項服務,即使向對方發出請求,對方也無應答。
我們要干的就是對一個或者一個范圍內的端口建立請求,記錄應答情況,從而獲取相關服務。
1.2分類
開放掃描 | 可靠性高,但是審計數據多易被發現。例TCP connect掃描(建立完整的TCP連接,服務器會記錄這些數據) |
半開掃描 | 可靠性和隱秘性在上下兩者之間。例TCP SYN掃描 |
秘密掃描 | 繞開目標主機防火墻或入侵檢測系統、包過濾器等防御策略,進行端口掃描。例TCP NULL掃描、TCP FIN掃描、TCP XMAS掃描 |
其他掃描 | 非TCP 端口掃描。例UDP掃描 |
2具體掃描
2.1 ICMP掃描
- ICMP Echo掃描:非常常見的一種掃描方式,向主機發送ICMP Echo Request數據包,等待回復的ICMP Echo Reply包,判斷一個在網絡的主機是否開機,如ping命令。局限性很高,大部分服務器不響應。
- ICMP Sweep掃描:并發性掃描,使用ICMP Echo Request一次探測多個目標主機。探測效率高,適用于大范圍評估。(比如ping子網里所有主機,看哪個主機應答)
- Broadcast ICMP掃描:設置ICMP請求包的目標地址為廣播地址或者網絡地址,可以探測廣播域或整個網絡范圍內的主機,子網內所有存活主機都會給予回應。只適用于Unix/Linux系統。
- Non-Echo IMCP掃描:利用其他服務類型,不僅能探測主機,還能探測路由器等網絡設備。
2.2 TCP掃描
-
TCP connect掃描:調用connect函數,連接到目標計算機。完成一個完整的“三次握手”,建立一個完整的TCP流程。當端口處于偵聽狀態時,connect函數被成功返回,否則該端口不可用(無法提供服務)。方法穩定可靠,易被發現(完整連接會被服務器記錄)。
server端響應,提供服務 server端不提供服務(端口關閉),rst可斷開連接 -
TCP SYN掃描:向目標主機端口發送SYN數據包,若應答返回RST數據包,說明端口是關閉的;若應答返回SYN數據包或ACK數據包,則端口處于偵聽狀態,再發送一個RST數據包斷開連接(只需要探測不用傳輸,探測到就斷開)。該方法為“半連接掃描”,由于不是建立一個完整的TCP連接,一般系統很少記錄這種半掃描技術。它有較好的隱蔽性,但是需要授權才能構造SYN數據包(需要管理員權限)。
-
TCP FIN掃描:向目標主機端口發送一個FIN數據包,若端口處于偵聽狀態,則不會回復FIN數據包;否則,當端口處于關閉狀態時,主機會返回RST數據包。該掃描不涉及TCP連接的“三次握手”協議內容,因而不會被目標主機記錄,掃描更加隱蔽,但若存在一些系統,它們無論端口狀態,對所有FIN數據包回復RST,則無法使用。(圖中左邊端口開放右邊關閉)
-
TCP NULL掃描:向目標主機端口發送控制位均為0的數據包。若端口開放,則無返回值,否則目標主機將返回RST信息。
-
TCP XMAS掃描(又稱圣誕樹掃描):其原理與NULL掃描類似,只是向目標主機端口發送數據包的控制位全為1。若端口開放,則無返回值,否則目標主機將返回RST信息。
2.3 UDP 掃描
UDP對于報文的處理較為簡單,當一個打開的UDP端口接收到一個請求報文時,將不發送任何響應報文;而當一個關閉的UDP端口接收到一個請求報文時,它將會發送一個端口不可達的ICMP響應報文。
該掃描需要系統管理員的權限,同時可靠性較低,當收不到目標主機端口的不可達報文時,也可能是因為報文傳輸丟失。同時因為RFC對ICMP錯誤消息的產生速率做了規定,所以掃描的速度較慢。(秘密掃描也會有這種擔心-是否有丟失所要得到的報文)
?
3 創建kali和XP虛擬機實驗
?1、下載虛擬機軟件
下載并安裝VMware Workstation Pro 17,(只是實驗的統一建議要求,其他的版本應該也可以用,我就是之前裝的老版本)(去官網搜一搜或者相關的資料包應該都是有的)
這個軟件與Windows 11 的兼容性不是很好,安裝好之后,檢查一下右鍵屬性-兼容性之中:勾選“以管理員身份運行此程序”,否則可能會運行很慢。
2、安裝kali linux
這里給出下載鏈接kali虛擬機下載(下載VMware版本的)?
下載完將文件解壓縮之后,打開剛剛下的VMware,點擊“打開虛擬機”按鈕,打開剛才解壓的文件夾里的.vmx文件,即可創建Kali虛擬機。
點擊“編輯虛擬機設置”打開Kali虛擬機的設置頁面, 將“此虛擬機的內存”至少設置到4096MB以上并保存。(默認2G,防止不夠用)(我設的4096后續是有一點卡的)
開啟虛擬機,用戶名和密碼都是kali。
將虛擬機顯示內容改為中文。打開終端,輸入sudo dpkg-reconfigure locales并按Enter鍵,按上下鍵選中zh_CN.UTF-8 UTF-8,按空格鍵選中,再按Enter鍵。然后按上下鍵選中zh_CN.UTF-8,按空格鍵選中,再按Enter鍵。重新啟動Kali Linux,即可顯示中文。
?如果提示是否“將標準文件夾更新到當前語言”,點擊“不要再次詢問我”,再點擊“保留舊的名稱”。這是一個建議,主要是改了可能會妨礙后續的操作。
?
3、安裝Windows XP
下載兩個鏡像文件(光盤映像文件)
下載“zh-hans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso”這個鏡像文件和“VMware-tools-windows-10.0.12-4448496.iso”這個鏡像文件。搜索名稱網上可以搜到相關下載路徑,這里給出后者的下載地址。
VMware-tools鏡像文件下載地址
新建虛擬機,一路保持默認值即可,注意在“安裝程序光盤鏡像文件”選擇“zhhans_windows_xp_professional_with_service_pack_3_x86_cd_vl_x14-74070.iso”。VMware Workstation會識別到Windows XP。
在最后一步,點擊“完成”按鈕前,點擊“自定義硬件”按鈕,點擊“顯示”,取消“加速3D圖形”前的對號,點擊“關閉”按鈕,再點擊“完成”按鈕。(可以減少一些本次實驗并不需要的內存空間)
?新建完之后開啟虛擬機,這里給出鏡像文件所對應的產品密鑰,即可成功打開。
4、安裝VMware-tools鏡像文件
進入到XP的桌面之后,按照以下路徑,點擊瀏覽按鈕,找到并選中我們剛剛下載的VMware-tools鏡像文件-確定,系統會自動啟動XP的安裝。保持默認一直下一步即可,直至安裝后重啟。?

?安裝成功。
5、一些配置
安裝完成之后,在菜單中的“控制面板”,點擊“切換到經典視圖”。打開“Windows防火墻”,關閉防火墻。

打開控制面板,打開“用戶賬戶”,點擊當前登錄的賬戶,更改密碼(曾經設置過)/創建新的密碼,輸入密碼。
4 nmap掃描實驗
Nmap(Network Mapper)是一個開源免費的網絡掃描軟件,是一款用于網絡發現和安全審計的工具。它常被用于列舉網絡主機清單、管理服務升級調度、監控主機或服務運行狀況。Nmap可以檢測目標機是否在線、端口開放情況、偵測運行的服務類型及版本信息、偵測操作系統與設備類型等信息。
-sT/-sS/-sF/-sN/-sX: TCP connect/SYN/FIN/NULL/XMAS 掃描
-sU: UDP 掃描
-O:操作系統探測
-A: 操作系統探測,版本探測,腳本掃描和traceroute
eg. sudo namp -sS 10.0.0.129
1、查看XP虛擬機的IP地址
查看IP地址有兩種方式。
?1、window+R打開運行,輸入cmd打開命令提示符。輸入ipconfig,查看IP地址。
2、或者在控制面板中找到網絡,找到IP地址。
2、nmap掃描
在kali虛擬機中打開終端,利用nmap掃描Windows XP虛擬機,得到開啟的端口和操作系統版本信息。
這里要探測的IP地址是你上方所得到的IP地址,三個打開的端口-135/139/445都是一些典型的危險端口,mac地址前六位判斷網卡產商-VMware。
這里探測的結果和上面一樣,只是-sA還包括版本掃描、traceroute等,這里只截取部分探測結果。
到目標主機只有一跳,中間沒有別的路由器。這種情況我們默認都在同一路由器(同一子網)下,此路由器由VMware創建。