Masscan端口掃描技術(shù)探索
1.安裝Masscan
(1)下載Masscan
從GitHub下載: 訪問Masscan的GitHub頁面:https://github.com/robertdavidgraham/masscan
在頁面上,你可以找到最新的Release版本,點(diǎn)擊“releases”標(biāo)簽頁下載源代碼壓縮包。
也可以通過Git命令直接克隆倉庫到本地:
git clone https://github.com/robertdavidgraham/masscan.git
(2)在Linux上安裝
依賴安裝:
在編譯之前,確保已安裝必要的開發(fā)工具和庫,如GCC、Make等。在Debian/Ubuntu上,可以使用:
sudo apt-get update
sudo apt-get install build-essential
編譯安裝:
進(jìn)入下載或克隆的masscan目錄,然后執(zhí)行以下命令進(jìn)行編譯安裝:
cd masscan
make
sudo make install
2.Masscan基本參數(shù)
-p <ports,--ports <ports>>: 指定要掃描的端口范圍??梢允菃蝹€(gè)端口、端口范圍或逗號(hào)分隔的端口列表。
--banners: 獲取服務(wù)的banner信息,支持一些協(xié)議。
--rate <packets-per-second>: 設(shè)置發(fā)送數(shù)據(jù)包的速率,單位是每秒的數(shù)據(jù)包數(shù)。
-c <filename>, --conf <filename>: 讀取配置文件進(jìn)行掃描。
--echo: 將當(dāng)前的配置信息保存到配置文件中。
-e <ifname>, --adapter <ifname>: 指定用于發(fā)送數(shù)據(jù)包的網(wǎng)絡(luò)接口名稱。
--adapter-ip <ip-address>: 設(shè)置發(fā)送數(shù)據(jù)包的源IP地址。
--adapter-port <port>: 設(shè)置發(fā)送數(shù)據(jù)包的源端口。
--adapter-mac <mac-address>: 設(shè)置發(fā)送數(shù)據(jù)包的源MAC地址。
--router-mac <mac address>: 設(shè)置網(wǎng)關(guān)的MAC地址。
--exclude <ip/range>: 指定要排除的IP地址范圍,防止masscan掃描這些地址。
--excludefile <filename>: 指定包含要排除的IP地址范圍的文件。
--includefile, -iL <filename>: 從指定的文件中讀取要掃描的IP地址范圍列表。
--ping: 掃描時(shí)包括對ICMP請求的響應(yīng)。
--append-output: 將結(jié)果以附加的方式輸出到文件。
--iflist: 列出可用的網(wǎng)絡(luò)接口,然后退出。
--retries: 設(shè)置發(fā)送數(shù)據(jù)包的重試次數(shù),每次重試間隔1秒。
--nmap: 輸出與nmap兼容的信息。
--http-user-agent <user-agent>: 設(shè)置HTTP請求的用戶代理字段值。
--show [open,close]: 指定要顯示的端口狀態(tài),可選值為開放或關(guān)閉,默認(rèn)為開放端口。
--noshow [open,close]: 禁止顯示端口狀態(tài)。
--pcap <filename>: 將接收到的數(shù)據(jù)包以libpcap格式保存到指定的文件中。
--regress: 運(yùn)行回歸測試,以驗(yàn)證掃描器的正確運(yùn)行。
--ttl <num>: 設(shè)置發(fā)送數(shù)據(jù)包的TTL(生存時(shí)間)值,默認(rèn)為255。
--wait <seconds>: 設(shè)置發(fā)送數(shù)據(jù)包后的等待時(shí)間,默認(rèn)為10秒。
--offline: 不實(shí)際發(fā)送數(shù)據(jù)包,主要用于測試開銷。
-sL: 不進(jìn)行掃描,只生成隨機(jī)地址列表。
--readscan <binary-files>: 讀取-oB生成的二進(jìn)制文件,并轉(zhuǎn)換為XML或JSON格式。
--connection-timeout <secs>: 指定獲取banner時(shí)的最大TCP連接維持時(shí)間,默認(rèn)為30秒。
輸出格式:
-oX <filespec> (XML)
-oB <filespec> (Binary)
-oG <filespec> (Grep)
-oJ <filespec> (Json)
-oL <filespec> (List)
-oU <filespec> (Unicornscan format)
3.Masscan常見掃描
(1)掃描B段(256個(gè)主機(jī))某個(gè)特定端口例如3306
sudo masscan 192.168.2.1/24 -p 3306
Discovered open port 3306/tcp on 192.168.2.64
Discovered open port 3306/tcp on 192.168.2.40
Discovered open port 3306/tcp on 192.168.2.63
Discovered open port 3306/tcp on 192.168.2.45
Discovered open port 3306/tcp on 192.168.2.26
Discovered open port 1433/tcp on 192.168.2.26
(2)掃描B段,同時(shí)指定一個(gè)虛假的IP地址192.168.2.200
masscan 192.168.1.1/24 -p80 --banners --source-ip 192.168.2.200
#添加源ip來欺騙目標(biāo)服務(wù)器
sudo masscan -p1-1000 116.50.146.70 --adapter-ip 114.114.114.114
(3)掃描某個(gè)主機(jī)的所有端口
masscan -p 1-65535 192.168.2.26 --rate 1000 # 掃描所有端口,設(shè)置速率為1000
(4)掃描輸出文件
masscan -p 1-65535 -iL ips.txt --rate=10000 -oL scan_results.txt
masscan -iL ips.txt -oJ output.json # 從文件中讀取IP列表,輸出為JSON格式