Masscan常用命令詳解

一、工具介紹

Masscan是一款開源、高速的網絡端口掃描工具,設計目標是實現最快的掃描速度。它能夠在極短的時間內完成大規模的網絡掃描,適用于互聯網級別的掃描任務。它采用異步傳輸和自定義TCP/IP協議棧技術,最快可實現每秒160萬數據包的掃描速率,支持TCP、UDP、ICMP等多種協議,并兼容部分Nmap參數,具備高度的可定制性。

二、技術原理?

1?.異步傳輸機制?

通過多線程并發發送SYN數據包,并異步接收響應,避免傳統掃描工具的三次握手延遲。??

?2.自定義協議棧?

繞過操作系統網絡堆棧限制,直接操作網絡接口卡,減少系統調用開銷,提升掃描效率。??

3?.半開放掃描?

僅發送SYN包,通過接收SYN-ACK或RST判斷端口狀態,無需建立完整TCP連接。??

三、主要功能

1.超高速度:支持每秒百萬級數據包掃描,6分鐘可完成互聯網全端口掃描。????

默認情況下,masscan的發包速率是100每秒,可以通過 ‘–rate’ 命令設置發包速率。

常見參數
--top-port 100:掃描100個常?端?
--adapter-ip:指定發包的ip地址
-S:欺騙源IP
-v interface : 詳細輸出
-vv interface : 使??常冗?的輸出
-e interface : 使?指定的接?
--adapter-port : 指定發包源端?
--adapter-mac : 指定發包的源MAC地址
--router-mac : 指定?關MAC地址
--exclude : IP地址范圍?名單,防?masscan掃描
--excludefile : 指定IP地址范圍?名單?件
--includefile,-iL : 讀取?個范圍列表進?掃描
--wait : 指定發包后的等待時間

2.靈活配置:支持自定義掃描參數,如掃描速率、端口范圍、協議類型等。

自定義掃描速率(--rate參數調整發包速度)。
批量掃描IP段(如192.168.1.0/24)和端口范圍(-p1-65535)。

3.廣泛協議支持:支持TCP、UDP、ICMP等多種掃描協議。

4.異步發送:利用異步網絡I/O,實現高效的數據包發送和接收。

5.結果導出:支持多種輸出格式,便于后續分析和集成。

支持文本、XML、JSON等格式,便于結果分析(-oX/-oG參數)。

-oX filename :輸出到filename的XML。 ?

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

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

掃描特定IP段的80/443端口(速率10萬包/秒)
masscan 192.168.1.0/24 -p80,443 --rate 100000

全端口掃描并獲取服務版本信息
masscan 10.0.0.0/8 -p0-65535 --banners -oX result.xml

可以使用 --echo 將當前的配置輸出到一個配置文件

masscan -p80,8000-8100 10.0.0.0/8 --echo > xxx.conf

利用 -c 來制定配置文件進行掃描

masscan -c xxx.conf --rate 1000


masscan的常用命令記錄-CSDN博客

masscan詳解_nex1less-2048 AI社區

四、安裝部署及使用方法

    使用教程第一步:環境準備

    1. 操作系統選擇

      1. Masscan 主要在 Linux 系統上運行,推薦使用 Ubuntu 或 Kali Linux。
      2. 也可以在 macOS 和 Windows 上通過 Cygwin 或 WSL(Windows Subsystem for Linux)進行安裝和使用。
    2. 更新系統

      sudo apt update && sudo apt upgrade -y

      1. 在安裝 Masscan 前,確保系統是最新的。

    第二步:安裝 Masscan

    1. 通過包管理器安裝

      sudo apt install masscan

      1. 在 Debian 或 Ubuntu 系統上,可以直接使用 apt 進行安裝。

    2. 從源碼編譯(可選)

      sudo apt install git build-essentialgit clone https://github.com/robertdavidgraham/masscancd masscanmakesudo make install

      1. 如果需要最新版本或自定義配置,可以從源碼編譯。

    第三步:基本掃描操作

    1. 驗證安裝

      masscan --version

      1. 應輸出 Masscan 的版本信息。
      2. 運行以下命令檢查 Masscan 是否安裝成功。
    2. 基本端口掃描

      sudo masscan 192.168.1.1 -p80

      1. 192.168.1.1:目標IP地址。
      2. -p80:掃描目標端口80。
      3. 使用 Masscan 掃描指定IP地址上的特定端口(例如掃描 192.168.1.1 的80端口)。
    3. 掃描速率限制

      sudo masscan 192.168.1.1 -p80 --rate=1000

      1. --rate=1000:設置掃描速率為每秒1000個包。
      2. 為避免網絡擁堵,可以限制掃描速率(例如每秒發送1000個包)。

    -p <ports,--ports <ports>> 指定端口進行掃描
    --banners 獲取banner信息,支持少量的協議
    --rate <packets-per-second> 指定發包的速率
    -c <filename>, --conf <filename> 讀取配置文件進行掃描
    --echo 將當前的配置重定向到一個配置文件中
    -e <ifname> , --adapter <ifname> 指定用來發包的網卡接口名稱
    --adapter-ip <ip-address> 指定發包的IP地址
    --adapter-port <port> 指定發包的源端口
    --adapter-mac <mac-address> 指定發包的源MAC地址
    --router-mac <mac address> 指定網關的MAC地址
    --exclude <ip/range> IP地址范圍黑名單,防止masscan掃描
    --excludefile <filename> 指定IP地址范圍黑名單文件
    --includefile,-iL <filename> 讀取一個范圍列表進行掃描
    --ping 掃描應該包含ICMP回應請求
    --append-output 以附加的形式輸出到文件
    --iflist 列出可用的網絡接口,然后退出
    --retries 發送重試的次數,以1秒為間隔
    --nmap 打印與nmap兼容的相關信息
    --http-user-agent <user-agent> 設置user-agent字段的值
    --show [open,close] 告訴要顯示的端口狀態,默認是顯示開放端口
    --noshow [open,close] 禁用端口狀態顯示
    --pcap <filename> 將接收到的數據包以libpcap格式存儲
    --regress 運行回歸測試,測試掃描器是否正常運行
    --ttl <num> 指定傳出數據包的TTL值,默認為255
    --wait <seconds> 指定發送完包之后的等待時間,默認為10秒
    --offline 沒有實際的發包,主要用來測試開銷

    masscan -sL 10.0.0.0/24 > c段.txt
    ????????masscan -sL 10.0.0.0/16 > b段.txt
    ????????masscan -sL 10.0.0.0/8 ?> a段.txt 隨機生成ip

    sL :顯示掃描的所有主機的列表
    xx.txt :把終端命令行中的結果保存在 xx.txt 文件中

    masscan的常用命令記錄-CSDN博客

    要掃描的目標IP地址或地址范圍,可以使用CIDR表示法,如192.168.1.0/24,也可以使用逗號分隔的列表,如192.168.1.1,192.168.1.2,或者使用連字符表示的范圍,如192.168.1.1-192.168.1.10。也可以使用0.0.0.0/0來表示整個互聯網,但是這需要自己確認并排除一些特殊的地址,如255.255.255.255。

    port是要掃描的目標端口或端口范圍,可以使用逗號分隔的列表,如22,80,443,或者使用連字符表示的范圍,如1-65535。也可以使用0-65535來表示所有的端口,但是這會花費更多的時間和資源。

    [options]可以設置的一些可選參數,用來控制Masscan的行為和輸出。Masscan有很多可選參數,可以使用--help或--nmap來查看它們的說明和用法。

    以下是一些常用的參數:

    --rate:設置掃描的速率,單位是每秒發送的數據包數,如--rate=10000表示每秒發送10000個數據包。Masscan的默認速率是100個數據包每秒,我們可以根據您的網絡環境和需求來調整這個參數,但是請注意不要超過網絡帶寬或目標的容忍度,以免造成網絡擁塞或目標崩潰。

    --banners:獲取目標端口的banner信息,以識別服務的類型和版本,如--banners。Masscan默認不獲取banner信息,我們可以開啟這個參數來獲取更多的信息,但是請注意這會增加掃描的時間和資源。

    --source--ip:設置源IP地址,用來偽裝我們的真實IP地址,如--source-ip=192.168.1.100。Masscan默認使用您的真實IP地址作為源IP地址,您可以使用這個參數來隱藏您的身份,但是請注意您必須使用您可以控制的IP地址,否則您將無法接收到目標的回應。

    --exclude:排除一些不想掃描的目標地址或地址范圍,如--exclude=192.168.1.1,192.168.1.10-192.168.1.20。Masscan默認掃描您指定的所有目標地址,您可以使用這個參數來排除一些特殊的地址,如廣播地址、多播地址、回環地址等,或者一些您不感興趣的地址。

    --output-format:設置輸出的格式,如--output-format=list。Masscan支持多種輸出格式,如list(列表格式)、binary(二進制格式)、xml(XML格式)、json(JSON格式)等。您可以根據您的需求和喜好來選擇合適的輸出格式。

    --output-filename:設置輸出的文件名,如--output-filename=scan.txt。Masscan默認將輸出打印到標準輸出,您可以使用這個參數來將輸出保存到一個文件中,以便于后續的分析和處理。

    Masscan工具使用指南-CSDN博客

    第四步:高級掃描配置

    1. 掃描多個端口

      sudo masscan 192.168.1.1 -p80,443,22

      掃描多個端口(例如80,443,22)。
    2. 掃描端口范圍

      sudo masscan 192.168.1.1 -p1-1000

      掃描端口范圍(例如1到1000)。
    3. 掃描整個子網

      sudo masscan 192.168.1.0/24 -p80,443,22

      掃描整個子網中的所有IP地址(例如掃描 192.168.1.0/24 網絡)。
    4. 指定輸出文件

      sudo masscan 192.168.1.0/24 -p80,443,22 -oL results.txt

      1. -oL results.txt:將結果以列表形式輸出到 results.txt 文件。
      2. 將掃描結果輸出到文件(例如 results.txt)。
    5. 選擇掃描協議

      sudo masscan 192.168.1.0/24 -p80,443,22 --scan-type syn

      1. 選擇不同的掃描協議(例如TCP SYN掃描)。

    Masscan的輸出取決于您選擇的輸出格式和文件名,如果您沒有指定輸出格式和文件名,Masscan將以列表格式將輸出打印到標準輸出,每一行表示發現了一個開放的端口,包括端口號、協議類型和IP地址。

    如果您開啟了--banners參數,Masscan還會輸出目標端口的banner信息,如下所示:

    1 Banner on port 22/tcp on 192.168.1.1: SSH-2.0-OpenSSH_7.9p1 Debian-10+deb10u2 ?

    2 Banner on port 80/tcp on 192.168.1.2: HTTP/1.1 200 OK\r\nServer: nginx/1.14.2\r\nDate: Sat, 22 May 2021 08:23:45 GMT\r\nContent-Type: text/html\r\nContent-Length: 612\r\nLast-Modified: Tue, 19 Feb 2019 09:38:21 GMT\r\nConnection: close\r\nETag: "5c6bf9cd-264"\r\nAccept-Ranges: bytes\r\n\r\n ?

    3 Banner on port 443/tcp on 192.168.1.3: TLS: Server Hello? ?

    每一行表示獲取到了一個端口的banner信息,包括端口號、協議類型、IP地址和banner內容。

    根據這些信息來判斷目標的操作系統、服務類型和版本等信息,以便于后續的滲透測試和漏洞利用。

    如果指定了輸出格式和文件名,Masscan將以相應的格式將輸出保存到相應的文件中,您可以使用其他的工具或程序來讀取和分析這些文件,如nmap、metasploit等。

    Masscan還支持一些特殊的輸出格式,如grepable(可用grep命令過濾的格式)、redis(可存儲到redis數據庫的格式)、certs(可獲取目標證書的格式)等,可以根據需求和喜好來選擇合適的輸出格式。

    第五步:結果分析與可視化

    1. 查看掃描結果

      cat results.txt

      1. 打開輸出文件查看掃描結果。

    2. 使用 Nmap 進行進一步分析

      sudo nmap -sV -p80,443,22 192.168.1.1

      1. 根據 Masscan 的結果,使用 Nmap 進行更詳細的端口掃描和服務識別。

    3. 數據可視化

      import matplotlib.pyplot as pltimport pandas as pd# 假設 results.txt 是逗號分隔的文件data = pd.read_csv('results.txt', delimiter=': ', names=['IP', 'Port'])plt.hist(data['Port'], bins=range(1, 65535, 100))plt.title('開放端口分布')plt.xlabel('端口號')plt.ylabel('開放次數')plt.show()

      1. 利用工具(如 Excel、Python 的 Matplotlib、Seaborn)對掃描結果進行圖表展示。例如,使用 Python 統計開放端口的分布情況。

    第六步:優化與最佳實踐

    1. 避免掃描被檢測

      sudo masscan 192.168.1.0/24 -p80,443,22 --rate=500 --wait=0 --randomize-hosts

      使用隨機化源端口、調整掃描速率、添加延遲等方式,減少被目標網絡檢測為掃描行為的風險。
    2. 分布式掃描

      1. 對于大規模掃描任務,可以利用多臺機器協同工作,分擔掃描負載。

      2. 使用 Masscan 的接口參數(如指定IP地址和速率)進行分段掃描,再合并結果。

    3. 定期掃描與監控

      定期進行網絡掃描,監控網絡狀態變化,及時發現潛在的安全威脅,并采取相應的防護措施。

    五、安全與合規性提示

    1.合法授權:確保在進行任何網絡掃描之前,已獲得相關網絡所有者的明確授權。

    2.負責任使用:避免高頻率、長時間的掃描,以減少對目標網絡的影響和被檢測為惡意行為的風險。

    3.數據隱私:妥善處理掃描過程中收集到的敏感數據,遵守數據保護法規。

    4.了解法規:不同國家和地區對網絡掃描有不同的法律規定,務必熟悉并遵守適用法規。

    六、總結

    Masscan 以其無與倫比的掃描速度和高效性,成為大規模網絡掃描的首選工具。無論是網絡安全評估、滲透測試,還是學術研究,Masscan 都能提供強大的支持。

    合理使用 Masscan,您將能夠深入了解網絡環境中的安全漏洞,采取必要的防護措施,構建更加安全可靠的網絡體系。利用 Masscan 的強大功能,您可以高效地完成大規模網絡掃描任務,快速識別潛在的開放端口和服務,助力網絡安全防護工作邁上新的臺階。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/910363.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/910363.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/910363.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    STM32的內部RC與外部晶振電路

    內部RC是“能用”&#xff0c;外部晶振是“用得準”。 一、STM32芯片內部的“晶振電路”是什么&#xff1f; STM32內部確實集成了兩個RC&#xff08;電阻-電容&#xff09;振蕩器&#xff1a; HSI&#xff08;高速內部振蕩器&#xff09;&#xff1a;通常8MHz&#xff0c;精…

    為OneCode 開發TRea 開發插件,從環境搭建到生態融合

    作為 AI 原生開發環境&#xff0c;TRea 的插件體系支持開發者基于其核心能力&#xff08;如自然語言代碼生成、AI 代碼分析&#xff09;進行功能擴展。本文以開發一個 "OneCode 組件生成插件" 為例&#xff0c;詳解如何通過 TRea 開放接口實現自定義功能&#xff0c;…

    Spring JDBC配置與講解

    目錄 一、Spring JDBC概述1、Spring JDBC需要配置的依賴2、Spring配置項文件配置 二、Spring JDBC的使用1、Spring JDBC的增加操作2、Spring JDBC的修改操作3、Spring JDBC的刪除操作4、Spring JDBC的查詢操作 三、Spring JDBC的事務1、xml的形式進行事務2、Transactional注解 …

    【AI智能體】Spring AI MCP 服務常用開發模式實戰詳解

    目錄 一、前言 二、MCP 介紹 2.1 MCP是什么 2.2 MCP 核心特點 2.3 Spring AI MCP 介紹 2.3.1 Spring AI MCP架構 2.3.2 Spring AI MCP分層說明 2.4 兩種模式介紹 三、本地開發SSE模式 3.1 搭建mcp-server 3.1.1 導入工程核心依賴 3.1.2 添加配置文件 3.1.3 提供兩個…

    OpenStack 入門與實踐

    一、云計算概述 1.1 云計算的定義與本質 云計算&#xff08;Cloud Computing&#xff09;是一種基于網絡的超級計算模式&#xff0c;它能夠根據用戶的不同需求&#xff0c;動態提供所需的計算資源、存儲資源和網絡資源等。這種模式就像我們日常生活中使用水電煤氣一樣&#x…

    AntV L7入門教程

    以下教程將系統地介紹 AntV?L7 的核心 Scene 類用法&#xff0c;涵蓋實例化、地圖配置、視圖操作、圖層管理、事件監聽及資源銷毀等常用 API&#xff0c;并為每個方法給出完整示例代碼。所有示例均基于官方 API 文檔 ([l7.antv.antgroup.com][1])。 一、安裝與引入 # 安裝 L7…

    【邊緣計算】場景

    工業互聯網 對現場采集的數據進行數據預處理&#xff0c;將現場有用的信息提取出來實時上傳給平臺&#xff0c;為平臺大大減輕了處理的工作量。 匯聚現場數據統一接口上傳數據到云端&#xff0c;大大提高系統多樣部署的安全性&#xff0c;解決現場數據跨域訪問的問題。制造企業…

    【FPGA學習】DDS信號發生器設計

    目錄 一、設計原理與準備? 1.1 DDS 原理? 1.2 IP 核學習與準備?&#xff1a;FPGA開發中常用IP核——ROM/RAM/FIFO 2、ROM文件的設置 1.3 開發環境搭建? 二、DDS 信號發生器設計實現 2.1 系統架構設計? 2.2 代碼編寫與模塊實現? 三、測試結果與總結? 參考文獻&…

    pyqt 簡單條碼系統

    生產數據管理系統說明 系統概述 這是一個基于PyQt5和pyodbc開發的生產數據管理系統&#xff0c;主要用于管理生產過程中的物料綁定和查詢操作。系統提供了上料綁定和下料查詢功能&#xff0c;支持與SQL Server數據庫交互&#xff0c;實現數據的插入、查詢、更新和刪除操作。界…

    【unitrix】 4.1 類型級加一操作(Add1.rs)

    一、原碼 這段代碼實現了一個類型級的加一操作(Add1 trait)&#xff0c;用于在Rust的類型系統中進行數值加一運算。 //! 加一操作特質實現 / Increment operation trait implementation //! //! 說明&#xff1a; //! 1. Z0、P1,、N1 1&#xff0c;常規計算 //! 2. …

    git工作中常用

    1.管理本地文件 git init//初始化生成一個本地倉庫 git add * //添加到暫存區 git commit–m “message” //提交到本地倉庫 2.刪除本地分支 git branch -d local_branch_name3.隱藏及解除隱藏 git stashgit stash pop4.遠程新建分支&#xff0c;在本地簽出時候怎么看到 …

    Golang 中接口嵌套的詳細說明和使用示例

    在 Go 語言中&#xff0c;接口嵌套&#xff08;也稱為接口組合&#xff09;是一種強大的特性&#xff0c;它允許你通過組合現有接口來創建新的接口。這種方式遵循了 Go 的組合優于繼承的設計哲學。 接口嵌套的基本概念 接口嵌套是指在一個接口中嵌入其他接口&#xff0c;從而…

    數智管理學(二十四)

    第二章 數智化重塑管理的核心 第三節 動態資源配置與實時優化 在當今數智化浪潮的席卷下&#xff0c;企業管理面臨著前所未有的變革與挑戰。資源配置作為企業管理的核心環節之一&#xff0c;其方式和效率直接影響著企業的運營成本、生產效率和市場競爭力。傳統的靜態資源配置…

    Redis 各版本差異及性能測試指標對比

    Redis 各版本差異及性能測試指標對比 Redis 主要版本差異 Redis 2.x 系列 主要特性&#xff1a; 支持主從復制支持簡單的持久化(RDB和AOF)發布/訂閱功能事務支持 局限性&#xff1a; 單線程模型集群功能有限 Redis 3.x 系列 重大改進&#xff1a; 引入Redis Cluster(官方…

    Python圖形化秒表:使用Turtle打造精確計時工具

    ?? 編程基礎第一期《6-30》–簡易計時器/秒表&#xff0c;這是一個使用Python的turtle和time模塊實現的簡易計時器/秒表程序&#xff0c;提供簡潔的數字時間顯示。 目錄 &#x1f31f; 功能特點&#x1f680; 使用方法&#x1f9e9; 程序架構設計&#x1f4bb; 代碼詳解窗口和…

    【軌物方案】軌物科技|LoRaWAN 賦能智能光伏清掃,解鎖電站高效運維新時代

    在大型集中式光伏電站的廣袤土地上&#xff0c;清掃機器人的高效運行是保障發電效率的關鍵。然而&#xff0c;傳統的無線通信方式在這些偏遠、無4G/5G信號覆蓋的區域&#xff0c;往往步履維艱。作為專注于工業物聯網解決方案的軌物科技&#xff0c;我們深知這些痛點&#xff0c…

    Python函數實戰:從基礎到高級應用

    Python-函數 Python 中可以使用def關鍵字來定義函數。 函數定義規則&#xff1a; 函數代碼塊以 def 關鍵詞開頭&#xff0c;后接函數標識符名稱和圓括號 ()。任何傳入參數和自變量必須放在圓括號中間&#xff0c;圓括號之間可以用于定義參數。函數的第一行語句可以選擇性地使…

    Mac在局域網中突然很慢(包括SMB、NFS、SCP、SSH、Ping等場景均很慢)

    今天 SMB 又突然好慢&#xff0c;大概只有 8-9 MB/s&#xff0c;而蘋果 SMB 很容易突然很慢是出了名的。我就想裝 NFS&#xff0c;但是 NFS 弄好之后還是很慢&#xff0c;我服了&#xff0c;我就檢查了scp等場景&#xff0c;都很慢&#xff0c;但是互聯網下載速度還是很快的。 …

    UMAP:用于降維的均勻流形近似和投影實驗

    關鍵詞&#xff1a; Uniform Manifold Approximation and Projection (UMAP)&#xff1a;均勻流形近似與投影 一、說明 對于降維&#xff0c;首先看數據集是否線性&#xff0c;如果是線性的用pca降維&#xff1b;如果是非線性數據&#xff0c;t-SNE或者UMAP&#xff0c;本文針…

    【Datawhale組隊學習202506】YOLO-Master task03 IOU總結

    系列文章目錄 task01 導學課程 task02 YOLO系列發展線 文章目錄 系列文章目錄前言1 功能分塊1.1 骨干網絡 Backbone1.2 頸部網絡 Neck1.3 頭部網絡 Head1.3.1 邊界框回歸頭1.3.2 分類頭 2 關鍵概念3 典型算法3.1 NMS3.2 IoU 總結 前言 Datawhale是一個專注于AI與數據科學的開…