目錄
- NmapScanHelper 掃描輔助工具
- 一、功能特性
- 二、文件說明
- 三、使用方法
- 1. 安裝依賴
- macOS
- Ubuntu/Debian
- CentOS/RHEL
- 2. 配置網段
- 3. 運行掃描
- 基本用法
- 常用端口掃描示例
- 掃描模式
- 特殊環境模式
- 選擇性掃描
- 自定義文件
- 4. 查看結果
- 四、掃描模式說明
- 標準模式
- 特殊環境模式
- 五、支持的 Nmap 參數
- 六、常用端口參考
- 七、注意事項
- 八、命令行參數說明
- 示例輸出
- 掃描 HTTP 端口(80)的結果示例:
- 掃描 DNS 端口(53)的結果示例:
NmapScanHelper 掃描輔助工具
這是一個使用 Python3 編寫的 Nmap 端口掃描腳本,用于掃描指定網段的任意 TCP 和 UDP 端口。支持靈活的端口配置,可以掃描 DNS、HTTP、SSH、HTTPS 等各種服務端口。
倉庫鏈接: GITHUB LINK
(注:本工具集僅供學習參考,請勿用于非法用途)
一、功能特性
- 從
networks.txt
文件讀取網段信息 - 支持掃描任意指定端口(TCP 和 UDP 協議)
- 同時掃描 TCP 和 UDP 端口(支持
-sT
、-sU
參數) - 主機發現掃描(
-sn
參數) - 檢測開放的服務端口
- 將掃描結果保存為 CSV 格式
- 動態生成輸出文件名(根據端口號)
- 支持多個網段批量掃描
- 多種掃描模式(隱蔽、快速、綜合等)
- 特殊環境適配(防火墻繞過、靜默掃描等)
- 靈活的命令行參數配置
二、文件說明
nmapScanHelper.py
- 主掃描腳本(使用python-nmap
庫)config.py
- 掃描配置文件networks.txt
- 網段配置文件(每行一個網段)result_port_{port}.csv
- 掃描結果輸出文件(根據端口號動態命名)requirements.txt
- Python 依賴包列表
三、使用方法
1. 安裝依賴
首先確保系統已安裝 Nmap:
macOS
brew install nmap
Ubuntu/Debian
sudo apt-get install nmap
CentOS/RHEL
sudo yum install nmap
然后安裝 Python 依賴包:
pip3 install -r requirements.txt
# 或者直接安裝
pip3 install python-nmap
2. 配置網段
編輯 networks.txt
文件,每行添加一個要掃描的網段:
192.168.1.0/24
10.0.0.0/24
172.16.0.0/24
3. 運行掃描
基本用法
# 默認掃描DNS端口(53)
python3 nmap_dns_scanner.py# 掃描指定端口
python3 nmap_dns_scanner.py --port 80# 查看幫助
python3 nmap_dns_scanner.py --help
常用端口掃描示例
# 掃描DNS端口
python3 nmap_dns_scanner.py --port 53# 掃描HTTP端口
python3 nmap_dns_scanner.py --port 80# 掃描HTTPS端口
python3 nmap_dns_scanner.py --port 443# 掃描SSH端口
python3 nmap_dns_scanner.py --port 22# 掃描FTP端口
python3 nmap_dns_scanner.py --port 21
掃描模式
# 隱蔽掃描模式(慢速,不易被發現)
python3 nmap_dns_scanner.py --port 80 --mode stealth# 快速掃描模式
python3 nmap_dns_scanner.py --port 443 --mode aggressive# 綜合掃描模式
python3 nmap_dns_scanner.py --port 22 --mode comprehensive
特殊環境模式
# 防火墻繞過模式
python3 nmap_dns_scanner.py --port 80 --special-env firewall_bypass# 快速掃描模式
python3 nmap_dns_scanner.py --port 443 --special-env fast_scan# 靜默掃描模式
python3 nmap_dns_scanner.py --port 22 --special-env quiet_scan
選擇性掃描
# 僅TCP掃描
python3 nmap_dns_scanner.py --port 80 --tcp-only# 僅UDP掃描
python3 nmap_dns_scanner.py --port 53 --udp-only# 跳過主機發現
python3 nmap_dns_scanner.py --port 443 --no-discovery
自定義文件
# 指定網段文件和輸出文件
python3 nmap_dns_scanner.py --port 8080 -f custom_networks.txt -o custom_results.csv# 使用默認輸出文件名(自動根據端口號命名)
python3 nmap_dns_scanner.py --port 3306 # 輸出到 result_port_3306.csv
4. 查看結果
掃描完成后,結果將保存在 result_port_{port}.csv
文件中,包含以下字段:
scan_time
- 掃描時間network
- 掃描的網段ip
- 主機IP地址port
- 端口號(根據--port
參數)protocol
- 協議類型(tcp/udp)state
- 端口狀態(open)service
- 服務名稱
四、掃描模式說明
標準模式
normal
: 標準掃描模式(默認)stealth
: 隱蔽掃描模式,使用慢速時序(-T2
)aggressive
: 快速掃描模式,使用 TCP Connect 掃描(-sT
)comprehensive
: 綜合掃描模式,結合多種掃描技術
特殊環境模式
firewall_bypass
: 防火墻繞過模式,使用-Pn
參數fast_scan
: 快速掃描模式,使用高速率掃描quiet_scan
: 靜默掃描模式,使用分片和慢速掃描
五、支持的 Nmap 參數
-sT
: TCP Connect 掃描-sU
: UDP 掃描-sn
: 主機發現掃描(Ping 掃描)-sS
: TCP SYN 掃描(默認)-Pn
: 跳過主機發現-T0
到-T5
: 時序模板--open
: 僅顯示開放端口
六、常用端口參考
端口 | 服務 | 協議 | 說明 |
---|---|---|---|
21 | FTP | TCP | 文件傳輸協議 |
22 | SSH | TCP | 安全外殼協議 |
23 | Telnet | TCP | 遠程登錄協議 |
25 | SMTP | TCP | 簡單郵件傳輸協議 |
53 | DNS | TCP/UDP | 域名系統 |
80 | HTTP | TCP | 超文本傳輸協議 |
110 | POP3 | TCP | 郵局協議版本3 |
143 | IMAP | TCP | 互聯網消息訪問協議 |
443 | HTTPS | TCP | 安全超文本傳輸協議 |
993 | IMAPS | TCP | 安全 IMAP |
995 | POP3S | TCP | 安全 POP3 |
3306 | MySQL | TCP | MySQL 數據庫 |
3389 | RDP | TCP | 遠程桌面協議 |
5432 | PostgreSQL | TCP | PostgreSQL 數據庫 |
6379 | Redis | TCP | Redis 數據庫 |
8080 | HTTP | TCP | 備用 HTTP 端口 |
七、注意事項
- 運行此腳本需要適當的網絡權限
- UDP 掃描可能需要較長時間
- 某些防火墻可能會阻止掃描
- 請確保在授權的網絡環境中使用此工具
- 特殊環境模式適用于受限網絡環境
- 建議先使用
stealth
模式進行測試 - 端口掃描應僅在授權的網絡環境中進行
- 不同端口的掃描時間可能差異很大
八、命令行參數說明
參數 | 說明 |
---|---|
-p , --port PORT | 要掃描的端口號(默認:53) |
-m , --mode MODE | 掃描模式(normal/stealth/aggressive/comprehensive) |
--special-env ENV | 特殊環境模式(firewall_bypass/fast_scan/quiet_scan) |
--no-discovery | 跳過主機發現掃描 |
--no-tcp | 跳過 TCP 掃描 |
--no-udp | 跳過 UDP 掃描 |
--tcp-only | 僅進行 TCP 掃描 |
--udp-only | 僅進行 UDP 掃描 |
-f , --file FILE | 網段文件路徑(默認:networks.txt) |
-o , --output FILE | 輸出文件路徑(默認:result_port_{port}.csv) |
-v , --verbose | 詳細輸出 |
示例輸出
掃描 HTTP 端口(80)的結果示例:
scan_time,network,ip,port,protocol,state,service
2024-01-01 12:00:00,192.168.1.0/24,192.168.1.1,80,tcp,open,http
2024-01-01 12:00:00,192.168.1.0/24,192.168.1.10,80,tcp,open,http
掃描 DNS 端口(53)的結果示例:
scan_time,network,ip,port,protocol,state,service
2024-01-01 12:00:00,192.168.1.0/24,192.168.1.1,53,tcp,open,domain
2024-01-01 12:00:00,192.168.1.0/24,192.168.1.1,53,udp,open,domain
by 久違