加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • 1、Masscan介紹
    • 2、Masscan的技術(shù)原理
    • 3、Masscan使用
    • 4、常用端口掃描工具比較
    • 5、總結(jié)
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

一文了解端口掃描工具——Masscan

2023/10/16
6032
閱讀需 17 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

作者:林甜甜,單位:中國(guó)移動(dòng)智慧家庭運(yùn)營(yíng)中心

網(wǎng)絡(luò)端口掃描是計(jì)算機(jī)網(wǎng)絡(luò)安全評(píng)估中非常重要的一部分。它用于檢測(cè)目標(biāo)主機(jī)上開(kāi)放的端口,從而幫助網(wǎng)絡(luò)管理員和安全專家發(fā)現(xiàn)潛在的漏洞和安全風(fēng)險(xiǎn)。Masscan是一款強(qiáng)大而高效的開(kāi)源端口掃描工具,具有令人矚目的性能,能夠在極短的時(shí)間內(nèi)掃描大量ip和端口。本文將詳細(xì)介紹Masscan的技術(shù)原理、特點(diǎn)以及其在網(wǎng)絡(luò)安全評(píng)估和漏洞探測(cè)中的重要作用。

1、Masscan介紹

Masscan是一款高速端口掃描工具,具備出色的掃描效率和大規(guī)模掃描的能力,支持TCPUDP協(xié)議的掃描,并能夠根據(jù)用戶的需求指定多個(gè)目標(biāo)和端口。同時(shí),Masscan還采用了網(wǎng)絡(luò)性能優(yōu)化技術(shù),充分利用操作系統(tǒng)的資源和多核處理能力,實(shí)現(xiàn)了卓越的掃描效率和吞吐量。使用Masscan能夠幫助用戶快速了解目標(biāo)主機(jī)的服務(wù)和漏洞情況,并提供靈活的輸出格式和報(bào)告,方便進(jìn)一步的分析和處理。

Masscan的特點(diǎn):

1)高速掃描:Masscan以其高速的掃描能力而著稱,號(hào)稱可以在5分鐘內(nèi)掃描整個(gè)互聯(lián)網(wǎng),從一臺(tái)機(jī)器每秒傳輸1000萬(wàn)個(gè)數(shù)據(jù)包。

2)繞過(guò)限制:Masscan繞過(guò)操作系統(tǒng)的網(wǎng)絡(luò)堆棧限制,直接發(fā)送原始數(shù)據(jù)包,提高掃描效率,并允許更多的自定義掃描選項(xiàng)。

3)異步發(fā)送:通過(guò)異步發(fā)送數(shù)據(jù)包,Masscan能夠同時(shí)發(fā)送多個(gè)數(shù)據(jù)包,實(shí)現(xiàn)并發(fā)掃描,進(jìn)一步加快掃描速度。

4)靈活的輸出格式:Masscan支持多種輸出格式,包括文本、XML和JSON,方便結(jié)果分析和后續(xù)處理。

2、Masscan的技術(shù)原理

Masscan是由Robert David Graham開(kāi)發(fā)的網(wǎng)絡(luò)端口掃描工具,其技術(shù)原理基于異步傳輸和自定義的TCP/IP協(xié)議棧。相比傳統(tǒng)的端口掃描工具,Masscan采用并行異步傳輸?shù)姆绞?,充分利用現(xiàn)代計(jì)算機(jī)的多核處理能力和高速網(wǎng)絡(luò)接口,使得掃描速度大幅提升。

2.1 自定義TCP/IP協(xié)議棧

為了實(shí)現(xiàn)更高的掃描性能,Masscan采用了自定義的TCP/IP協(xié)議棧。相比使用操作系統(tǒng)提供的標(biāo)準(zhǔn)套接字接口,自定義協(xié)議棧允許更直接的數(shù)據(jù)包處理和更靈活的配置,Masscan可直接操作底層網(wǎng)絡(luò)層,繞過(guò)操作系統(tǒng)的限制和缺陷,從而顯著減少了系統(tǒng)調(diào)用的開(kāi)銷(xiāo),并提高了掃描效率。

為了更好的理解,首先先來(lái)復(fù)習(xí)下正常的TCP三次握手建立鏈接的過(guò)程:

圖1 TCP的三路握手

1)客戶端發(fā)送SYN標(biāo)志位為1,seq為x的包給服務(wù)器端,發(fā)送完畢之后客戶端進(jìn)入SYN_SEND狀態(tài)。

2)服務(wù)器端發(fā)回確認(rèn)包ACK應(yīng)答,回應(yīng)一個(gè)SYN(seq=y)ACK(ack=x+1)報(bào)文,發(fā)送完畢,服務(wù)器端進(jìn)入SYN_RCVD狀態(tài)。

3)客戶端收到道服務(wù)器端回應(yīng)的SYN報(bào)文,回應(yīng)一個(gè)ACK(ack=y+1)報(bào)文,發(fā)送完畢后,客戶端進(jìn)入ESTABLISHED狀態(tài),當(dāng)服務(wù)器端接收到這個(gè)包時(shí),也進(jìn)入ESTABLISHED狀態(tài),開(kāi)始數(shù)據(jù)傳輸

與傳統(tǒng)的TCP三次握手相比,Masscan自定義TCP握手過(guò)程只需要兩個(gè)數(shù)據(jù)包,不建立一個(gè)完全的TCP連接,而是首先發(fā)送SYN數(shù)據(jù)包到目標(biāo)端口,然后等待接收。如果接收到SYN-ACK包,則說(shuō)明該端口是開(kāi)放的,此時(shí)發(fā)送一個(gè)RST結(jié)束建立過(guò)程即可,否則,若目標(biāo)返回RST,則端口不開(kāi)放。如下圖所示,

圖2 Masscan半開(kāi)放TCP掃描流程

同時(shí),Masscan的自定義協(xié)議棧使用了特定的數(shù)據(jù)包格式。為了實(shí)現(xiàn)快速掃描,Masscan使用了非常緊湊的數(shù)據(jù)包格式,減少了數(shù)據(jù)包的大小和數(shù)量,從而減少了網(wǎng)絡(luò)傳輸?shù)拈_(kāi)銷(xiāo)。這樣可以在單位時(shí)間內(nèi)發(fā)送更多的數(shù)據(jù)包,提高掃描速度。

2.2 異步傳輸

Masscan使用異步傳輸技術(shù),允許同時(shí)發(fā)送多個(gè)數(shù)據(jù)包而無(wú)需等待前一個(gè)數(shù)據(jù)包的響應(yīng)。這種并發(fā)傳輸方式極大地提高了掃描效率,使得Masscan能夠以驚人的速度處理大量目標(biāo)主機(jī)。

一般情況下進(jìn)行端口掃描,通過(guò)傳統(tǒng)的TCP握手過(guò)程,需要進(jìn)行三次握手來(lái)建立連接:客戶端發(fā)送SYN數(shù)據(jù)包,服務(wù)器返回SYN+ACK數(shù)據(jù)包,最后客戶端發(fā)送ACK數(shù)據(jù)包。這樣的握手過(guò)程相對(duì)較慢,一臺(tái)機(jī)器就算把65536個(gè)端口全部用來(lái)掃描速度也不快,不適合高速掃描。

Masscan的半開(kāi)放掃描方式,不需要等待建立鏈接,通過(guò)驅(qū)動(dòng)不斷對(duì)目標(biāo)發(fā)包,服務(wù)器返回包經(jīng)過(guò)驅(qū)動(dòng)被接受,Masscan根據(jù)返回包攜帶的信息判斷來(lái)源的IP和端口,不需要通過(guò)端口到端口建立完整的鏈接,這樣發(fā)出請(qǐng)求后,不再阻塞等待,而是接受到包之后,通知另外的程序判斷來(lái)源,充分利用計(jì)算機(jī)多核處理能力和高速網(wǎng)絡(luò)接口。

同時(shí)Masscan的自定義協(xié)議棧允許并行處理多個(gè)數(shù)據(jù)包的響應(yīng)。使用多線程的方式來(lái)實(shí)現(xiàn)異步掃描。它將掃描任務(wù)劃分為多個(gè)子任務(wù),并由多個(gè)線程并行執(zhí)行這些子任務(wù)。每個(gè)線程負(fù)責(zé)發(fā)送和接收數(shù)據(jù)包,并在數(shù)據(jù)包返回時(shí)進(jìn)行處理。通過(guò)多線程的方式,Masscan能夠同時(shí)發(fā)送和處理大量數(shù)據(jù)包,從而極大地提高了掃描效率。

3、Masscan使用

3.1 高速掃描

Masscan以驚人的速度進(jìn)行掃描,能夠在數(shù)分鐘內(nèi)掃描大量ip和端口。這使得Masscan成為大規(guī)模網(wǎng)絡(luò)掃描和漏洞探測(cè)的理想選擇。但是需要注意的是,如果發(fā)包量要超過(guò)20萬(wàn)/秒,網(wǎng)卡要求10Gbps。除此之外,還需要PF_RING ZC驅(qū)動(dòng)。

通過(guò)--rate可以設(shè)置掃描速度在虛擬機(jī)上測(cè)試環(huán)境中,不到1Gbps的帶寬條件下,掃描速度為16萬(wàn)/秒的發(fā)包率。

3.2 支持多種協(xié)議

Masscan支持多種掃描模式,包括TCP和UDP端口掃描,以及SCTP和ICMP掃描。用戶可以根據(jù)需要選擇合適的掃描模式進(jìn)行目標(biāo)主機(jī)的掃描。

1)掃描TCP端口:

使用 -p 參數(shù)指定要掃描的TCP端口范圍,例如:

Masscan -p1-65535 192.168.0.0/16 ?????#掃描192.168.0.0/16網(wǎng)段內(nèi)所有的TCP端口。

2)掃描UDP端口:

使用 -pU 參數(shù)指定要掃描的UDP端口范圍,例如:

Masscan -pU:1-65535 192.168.0.0/16 ???#掃描192.168.0.0/16網(wǎng)段內(nèi)所有的UDP端口。

3)掃描SCTP端口:

使用 -pS 參數(shù)指定要掃描的SCTP端口范圍,例如:

Masscan -pS:1-65535 192.168.0.0/16 ???#掃描192.168.0.0/16網(wǎng)段內(nèi)所有的SCTP端口。

4)掃描ICMP:

使用 -pI 參數(shù)指定要掃描的ICMP類型范圍,例如:

Masscan -pI:8-0 192.168.0.0/16 ???????#掃描192.168.0.0/16網(wǎng)段內(nèi)所有的ICMP類型。

5)掃描ACK、SYN、FIN等標(biāo)志位:

使用 -pA 參數(shù)指定要掃描的標(biāo)志位類型范圍,例如:

Masscan -pA:SAF 192.168.0.0/16 ?????#掃描192.168.0.0/16網(wǎng)段內(nèi)所有帶有SYN、ACK和FIN標(biāo)志位的數(shù)據(jù)包。

6)掃描指定端口和協(xié)議:

可以同時(shí)指定多個(gè)協(xié)議和端口,例如:

Masscan -p80,443,8080 -pU:53 192.168.0.0/16 ??#同時(shí)掃描TCP端口80、443和8080,以及UDP端口53。

Masscan默認(rèn)情況下只會(huì)掃描TCP端口,如果需要掃描其他協(xié)議的端口,則需要使用相應(yīng)的參數(shù)進(jìn)行指定。同時(shí),使用Masscan進(jìn)行端口掃描可能會(huì)對(duì)網(wǎng)絡(luò)造成一定的負(fù)載。

3.3 靈活的配置

Masscan允許用戶靈活地配置掃描參數(shù),包括目標(biāo)端口范圍、掃描速率、數(shù)據(jù)包大小等。用戶可以根據(jù)具體情況進(jìn)行優(yōu)化,以獲得最佳的掃描性能和效果。

常見(jiàn)的掃描參數(shù)配置:

1)掃描目標(biāo)設(shè)置:

-iL <file>:從文件中讀取要掃描的目標(biāo)列表。

<IP range>:直接指定要掃描的IP地址范圍。

2)速率和超時(shí)設(shè)置:

--rate <packets per second>:設(shè)置掃描速率,即每秒發(fā)送的數(shù)據(jù)包數(shù)量。

--timeout <time>:設(shè)置每個(gè)端口的掃描超時(shí)時(shí)間。

3)IP和端口過(guò)濾:

--exclude <IP range>:排除特定的IP地址范圍,不進(jìn)行掃描。

--excludefile <file>:從文件中讀取要排除的IP地址列表。

--banners:獲取開(kāi)放端口的服務(wù)banner信息。

4)輸出格式

-oX filename :輸出到filename的XML。

-oG filename :輸出到filename在的grepable格式。

-oJ filename :輸出到filename在JSON格式。

5)其他設(shè)置:

randomize-hosts:隨機(jī)掃描目標(biāo)IP,增加掃描的隨機(jī)性。

--nmap:生成與Nmap相似的輸出格式。

--rotate:使用多個(gè)源IP地址進(jìn)行掃描。

--shard <total shards>/<this shard>:將掃描任務(wù)分割為多個(gè)片段,同時(shí)運(yùn)行多個(gè)Masscan實(shí)例

如果不想輸入命令,可以通過(guò)創(chuàng)建配置文件,然后用加載配置文件的方式運(yùn)行。配置文件的內(nèi)容如下所示:

rate = 100000

output-format = xml

output-status = all

output-filename = scan.xml

ports = 0-65535

range = 0.0.0.0-255.255.255.255

excludefile = exclude.txt

掃描時(shí),用 -c 加載配置文件 即可完成掃描。

3.4 跨平臺(tái)支持

Masscan支持在多種操作系統(tǒng)平臺(tái)上運(yùn)行,包括Linux、Windows和macOS等。這使得用戶能夠在不同環(huán)境下靈活地使用Masscan進(jìn)行端口掃描。

4、常用端口掃描工具比較

網(wǎng)絡(luò)端口掃描在網(wǎng)絡(luò)安全評(píng)估和漏洞探測(cè)中扮演著關(guān)鍵角色。目前常用的掃描工具有Masscan、Nmap和Zmap,它們各自有著獨(dú)特的特點(diǎn)和優(yōu)勢(shì):

特點(diǎn) Masscan Nmap Zmap
掃描

速度

極快,可以快速掃描整個(gè)互聯(lián)網(wǎng) 快速,但相對(duì)Masscan較慢 快于Nmap,但仍稍遜于Masscan
支持的協(xié)議 TCP、UDP、SCTP、ICMP(部分類型) TCP、UDP、ICMP、SCTP、ARP等多種協(xié)議 TCP、UDP、ICMP
靈活性和定制性 參數(shù)選項(xiàng)較少,用于快速掃描 提供豐富的參數(shù)選項(xiàng),可定制化掃描任務(wù) 靈活的參數(shù)選項(xiàng),支持定制化掃描任務(wù)
平臺(tái)支持 主要支持Linux和macOS,有Windows版本 跨平臺(tái),支持Windows、Linux、macOS等 跨平臺(tái),支持Windows、Linux、macOS等
社區(qū)和支持 相對(duì)較小的用戶社區(qū) 龐大的用戶社區(qū)和活躍的開(kāi)發(fā)團(tuán)隊(duì) 龐大的用戶社區(qū)和活躍的開(kāi)發(fā)團(tuán)隊(duì)
用途 適用于快速互聯(lián)網(wǎng)規(guī)模的資產(chǎn)發(fā)現(xiàn)和漏洞探測(cè) 適用于深入的目標(biāo)掃描和漏洞評(píng)估 適用于大規(guī)模的互聯(lián)網(wǎng)掃描

以上三種掃描工具各有利弊,工具的選取應(yīng)該結(jié)合具體情況決定,通常情況下需要幾種工具結(jié)合使用。

Zmap和Masscan采用了無(wú)狀態(tài)的掃描技術(shù),掃描速度非??捎^。在信息收集的初級(jí)階段,可以使用Zmap或Masscan進(jìn)行目標(biāo)的情勢(shì)了解;

掃描單一端口的情況考慮使用Zmap,而多端口的情況下Masscan則更為快速。

在做完初步了解之后,則應(yīng)該使用功能更加豐富的Nmap進(jìn)行進(jìn)一步的詳細(xì)掃描。

5、總結(jié)

Masscan是一款在大規(guī)模端口掃描領(lǐng)域具有獨(dú)特優(yōu)勢(shì)的工具,它的高速和靈活性使得它成為網(wǎng)絡(luò)安全評(píng)估和漏洞探測(cè)中不可或缺的利器。然而,在使用Masscan進(jìn)行掃描時(shí),我們必須時(shí)刻牢記合法授權(quán)和合規(guī)性,以確保其在維護(hù)網(wǎng)絡(luò)安全的同時(shí)不會(huì)對(duì)互聯(lián)網(wǎng)造成不利影響。

參考文獻(xiàn)

【1】Queiroz, T., Carneiro, D., Braun, T., & Sadok, D. (2021). Comprehensive Analysis of Network Scanning Tools. In 2021 24th Conference on Innovation in Clouds, Internet and Networks and Workshops (ICIN) (pp. 1-6). IEEE.

【2】知乎:【滲透神器】信息收集-端口掃描Masscan篇,2022年11月29日

【3】?Seebug Paper:從 Masscan, Zmap 源碼分析到開(kāi)發(fā)實(shí)踐https://paper.seebug.org/1052/,2019年10月12日

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
TJA1051T/CM,118 1 NXP Semiconductors TJA1051 - High-speed CAN transceiver SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.02 查看
AD9361BBCZ-REEL 1 Analog Devices Inc RF Agile Transceiver

ECAD模型

下載ECAD模型
暫無(wú)數(shù)據(jù) 查看
TJA1042T/3,118 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SOIC 8-Pin

ECAD模型

下載ECAD模型
$1.51 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

移動(dòng)Labs是中國(guó)移動(dòng)的社交化新媒體平臺(tái),是面向外部行業(yè)及產(chǎn)業(yè)鏈合作伙伴的信息發(fā)布、業(yè)務(wù)發(fā)展和產(chǎn)業(yè)推進(jìn)門(mén)戶。