掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流
網(wǎng)絡安全是當今互聯(lián)網(wǎng)時代中的一大熱點問題,隨著網(wǎng)絡攻擊手段的不斷升級,網(wǎng)絡防御也變得越來越重要。作為網(wǎng)絡安全的基礎,端口掃描技術被廣泛應用于入侵檢測、網(wǎng)絡漏洞掃描等領域。在Linux系統(tǒng)上,一款開源的端口掃描工具nmap幾乎已成為網(wǎng)絡安全工作中不可或缺的利器。

一、nmap基本介紹
nmap是一款開源的網(wǎng)絡管理、探測和安全審核工具,可運行在Linux、Windows、macOS、FreeBSD等多個操作系統(tǒng)上,主要作用是幫助用戶在網(wǎng)絡上掃描和發(fā)現(xiàn)開放的端口及其運行的服務,以便進行網(wǎng)絡和系統(tǒng)安全評估。
nmap功能豐富,支持多種掃描方式,包括TCP SYN掃描、TCP Connect掃描、UDP掃描、IP協(xié)議掃描等等。同時,還支持多種高效的探測技術,如服務識別、操作系統(tǒng)識別、版本識別等。此外,nmap還支持多種輸出格式,方便用戶對掃描結果進行存檔和分析。因此,它成為滲透測試、漏洞檢測和網(wǎng)絡監(jiān)控等領域中的首選工具。
二、使用nmap進行TCP端口掃描
一般來說,TCP連接掃描是最常用的端口掃描方式。它的原理是通過向目標主機指定的端口發(fā)送TCP SYN包,通過客戶端和服務器之間發(fā)送的TCP握手過程,判斷端口是否開放。
下面,我們以掃描端口80為例,介紹如何使用nmap進行TCP端口掃描。
1、命令格式
nmap的命令格式如下:
nmap [掃描選項] 目標主機
其中掃描選項可以選擇,比如“-sS”表示TCP SYN掃描,“-oN”表示將掃描結果輸出為普通文本文件。
2、掃描端口
為了掃描端口80,我們可以在終端輸入以下命令:
nmap -sS -O 192.168.0.1
其中,“-sS”表示進行TCP SYN掃描,“-O”表示開啟操作系統(tǒng)識別功能,將掃描結果輸出為操作系統(tǒng)信息。
執(zhí)行命令后,終端會輸出掃描結果,其中包含目標主機的IP地址、掃描后存活的主機、開放的端口以及運行的服務。如下圖所示:
3、輸出結果
在執(zhí)行掃描完成后,我們需要對掃描結果進行分析。這時候,nmap提供多種輸出格式供選擇,包括標準文本格式、XML格式、腳本格式等等。我們可以根據(jù)需要選擇相應的輸出格式,如下所示:
輸出為標準文本格式:
nmap -sS -O -oN scanresult.txt 192.168.0.1
輸出為XML格式:
nmap -sS -O -oX scanresult.xml 192.168.0.1
輸出為腳本格式:
nmap -sS -O -oX myscript.nse 192.168.0.1
到此,我們介紹了如何使用nmap在Linux上進行TCP端口掃描,但僅僅是其中的一種應用場景。在實際的安全檢測、滲透測試和漏洞分析過程中,nmap還有很多高級掃描技術和監(jiān)控能力,可以幫助用戶更好地維護網(wǎng)絡安全,對于中小型企業(yè)或個人用戶來說,nmap是一款值得推薦的優(yōu)秀端口掃描工具。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導10多年以來專注數(shù)字化網(wǎng)站建設,提供企業(yè)網(wǎng)站建設,高端網(wǎng)站設計,響應式網(wǎng)站制作,設計師量身打造品牌風格,熱線:028-86922220端口掃描:端口對應網(wǎng)絡服務及應用端程序
服務端程序的漏洞通過端口攻入
發(fā)現(xiàn)開放的端口
更具體的攻擊面
UDP端口掃描:
如果收到ICMP端口不可達,表示端口關閉
如果沒有收到回包,則證明端口是開放的
和三層掃描IP剛好相反
Scapy端口開發(fā)掃描
命令:sr1(IP(dst=”192.168.45.129″)/UDP(dport=53),timeout=1,verbose=1)
nmap -sU 192.168.45.129
TCP掃描:基于連接的協(xié)議
三次握手:基于正常的枝敗三次握手發(fā)現(xiàn)目標是否在線
隱蔽掃描:發(fā)送不完整的數(shù)據(jù)包,不建立完整的連接,如ACK包,SYN包,不會在應用層訪問,
僵尸掃描:不和目標系統(tǒng)產(chǎn)生交互,極為隱蔽
全連接掃描:建立完整的三次握手
所有的TCP掃描方式都是基于三次握手的變化來判斷目標系統(tǒng)端口狀態(tài)
隱蔽掃描:發(fā)送SYN數(shù)據(jù)包,如果收到對方發(fā)來的ACK數(shù)據(jù)包,證明其在線,不與其建立完整的三次握手連接,在應用層日志內(nèi)不記錄掃描行為,十分隱蔽,網(wǎng)絡層審計會被發(fā)現(xiàn)跡象
僵尸掃描:是一種極其隱蔽的掃描方式,實施條件苛刻,對于掃描發(fā)起方和被掃描方之間,必須猛信顫是需要實現(xiàn)地址偽造,必須是僵尸機(指的是閑置系統(tǒng),并且系統(tǒng)使用遞增的IPID)早期的win xp,win 2023都是遞增的IPID,如今的LINUX,WINDOWS都是隨機產(chǎn)生的IPID
1,掃描者向僵尸機發(fā)送SYN+ACY,僵尸機判斷未進行三次握手,所以返回RST包,在RST數(shù)據(jù)包內(nèi)有一個IPID,值記為X,那么掃描者就會知道被掃描者的IPID
2,掃描者向目標服務器發(fā)送SYN數(shù)據(jù)包,并且偽裝源地址為僵坦棗尸機,如果目標服務器端口開放,那么就會向僵尸機發(fā)送SYN+ACK數(shù)據(jù)包,那么僵尸機也會發(fā)送RST數(shù)據(jù)包,那么其IPID就是X+1(因為僵尸機足夠空閑,這個就為其收到的第二個數(shù)據(jù)包)
3,掃描者再向僵尸機發(fā)送SYN+ACK,那么僵尸機再次發(fā)送RST數(shù)據(jù)包,IPID為X+2,如果掃描者收到僵尸機的IPID為X+2,那么就可以判斷目標服務器端口開放
使用scapy發(fā)送數(shù)據(jù)包:首先開啟三臺虛擬機,
kali虛擬機:192.168.45.128
Linux虛擬機:192.168.45.129
windows虛擬機:192.168.45.132
發(fā)送SYN數(shù)據(jù)包:
通過抓包可以查看kali給linux發(fā)送syn數(shù)據(jù)包
linux虛擬機返回Kali虛擬機SYN+ACK數(shù)據(jù)包
kali系統(tǒng)并不知道使用者發(fā)送了SYN包,而其莫名其妙收到了SYN+ACK數(shù)據(jù)包,便會發(fā)RST包斷開連接
也可以使用下列該命令查看收到的數(shù)據(jù)包的信息,收到對方相應的SYN+ACK數(shù)據(jù)包,scapy默認從本機的80端口往目標系統(tǒng)的20號端口發(fā)送,當然也可以修改
如果向目標系統(tǒng)發(fā)送一個 隨機端口:
通過抓包的獲得:1,kali向linux發(fā)送SYN數(shù)據(jù)包,目標端口23456,
2,Linux系統(tǒng)由自己的23456端口向kali系統(tǒng)的20號端口返回RST+ACK數(shù)據(jù)包,表示系統(tǒng)端口未開放會話結束
使用python腳本去進行scapy掃描
nmap做隱蔽端口掃描:
nmap -sS 192.168.45.129 -p 80,21,110,443 #掃描固定的端口
nmap -sS 192.168.45.129 -popen #掃描該IP地址下端口掃描,并只顯示開放的端口
nmap -sS 192.168.45.129 -p –open #參數(shù)–open表示只顯示開放的端口
nmap -sS -iL iplist.txt -p 80
由抓包可知,nmap默認使用-sS掃描,發(fā)送SYN數(shù)據(jù)包,即nmap=nmap -sS
hping3做隱蔽端口掃描:
hping3 192.168.45.129 –scan 80 -S #參數(shù)–scan后面接單個端口或者多個端口.-S表示進行SYN掃描
hping3 192.168.45.129 –scan 80,21,25,443 -S
hping3 192.168.45.129 –scanS
由抓包可得:
hping3 -cS –spoof 192.168.45.200 -p ++1 192.168.45.129
參數(shù)-c表示發(fā)送數(shù)據(jù)包的數(shù)量
參數(shù)-S表示發(fā)送SYN數(shù)據(jù)包
–spoof:偽造源地址,后面接偽造的地址,
參數(shù)-p表示掃描的端口,++1表示每次端口號加1,那么就是發(fā)送SYN從端口1到端口100
最后面跟的是目標IP
通過抓包可以得知地址已偽造,但對于linux系統(tǒng)(192.168.45.129)來說,它收到了192.168.45.200的SYN數(shù)據(jù)包,那么就會給192.168.45.200回復SYN+ACK數(shù)據(jù)包,但該地址卻是kali偽造的地址,那么要查看目標系統(tǒng)哪些端口開放,必須登陸地址為kali偽造的地址即(192.168.45.200)進行抓包
hping3和nmap掃描端口的區(qū)別:1,hping3結果清晰明了
,nmap首先對IP進行DNS反向解析,如果沒成功,那么便會對其端口發(fā)送數(shù)據(jù)包,默認發(fā)送SYN數(shù)據(jù)包
hping3直接向目標系統(tǒng)的端口發(fā)送SYN數(shù)據(jù)包,并不進行DNS反向解析
全連接端口掃描:如果單獨發(fā)送SYN數(shù)據(jù)包被被過濾,那么就使用全連接端口掃描,與目標建立三次握手連接,結果是最準確的,但容易被入侵檢測系統(tǒng)發(fā)現(xiàn)
response=sr1(IP(dst=”192.168.45.129″)/TCP(dport=80,flags=”S”))
reply=sr1(IP(dst=”192.168.45.129″)/TCP(dport=80,flags=”A”,ack=(response.seq+1)))
抓包情況:首先kali向Linux發(fā)送SYN,Linux回復SYN+ACK給kali,但kali的系統(tǒng)內(nèi)核不清楚kali曾給linux發(fā)送給SYN數(shù)據(jù)包,那么kali內(nèi)核莫名其妙收到SYN+ACK包,那么便會返回RST請求斷開數(shù)據(jù)包給Linux,三次握手中斷,如今kali再給Linux發(fā)ACK確認數(shù)據(jù)包,Linux莫名其妙收到了ACK數(shù)據(jù)包,當然也會返回RST請求斷開數(shù)據(jù)包,具體抓包如下:
那么只要kali內(nèi)核在收到SYN+ACK數(shù)據(jù)包之后,不發(fā)RST數(shù)據(jù)包,那么就可以建立完整的TCP三次握手,判斷目標主機端口是否開放
因為iptables存在于Linux內(nèi)核中,通過iptables禁用內(nèi)核發(fā)送RST數(shù)據(jù)包,那么就可以實現(xiàn)
使用nmap進行全連接端口掃描:(如果不指定端口,那么nmap默認會掃描1000個常用的端口,并不是1-1000號端口)
使用dmitry進行全連接端口掃描:
dmitry:功能簡單,但功能簡便
默認掃描150個最常用的端口
dmitry -p 192.168.45.129 #參數(shù)-p表示執(zhí)行TCP端口掃描
dmitry -p 192.168.45.129 -o output #參數(shù)-o表示把結果保存到一個文本文檔中去
使用nc進行全連接端口掃描:
nc -nv -w 1 -z 192.168.45.:表示掃描1-100號端口
參數(shù)-n表示不對Ip地址進行域名解析,只把其當IP來處理
參數(shù)-v表示顯示詳細信息
參數(shù)-w表示超時時間
關于nmap linux 掃描端口的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設計、網(wǎng)站建設、小程序制作、成都軟件開發(fā)、網(wǎng)頁設計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務,是專業(yè)的成都做小程序公司、成都網(wǎng)站建設公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網(wǎng)交流