nmap 學習和使用 另外問下大佬們是不是用 nmap -p 1-65535 -T4 -A -v --script=all xxx.xxx.xxx.xxx 命令掃描出來後手動分析就可以了?
參考影片 https://www.bilibili.com/video/BV1Ut411K7QJ?p=3&vd_source=13dd0c4a82a579a2d8aef2ac9bf547bc
xsl 樣式參考 https://cloud.tencent.com/developer/article/2201699
1 如何下載
參考此篇文件進行下載安裝 https://blog.csdn.net/lj1521195618/article/details/119866338?spm=1001.2014.3001.5506
2 基本操作
- 掃描之前關閉 vpn 否則出現下圖
2.1 列舉遠端機器開放埠
- 埠掃描原理
首先判斷 nmap 輸入的命令列中是否包含域名,如果包含需要利用 DNS 伺服器進行域名解析,然後傳送 ICMP Echo
Request 來探測主機存活性。存活了再繼續掃描。
- 預設埠掃描
bash nmap scanme.nmap.org
掃描 1000 個常見的埠,需要掃描所有埠則 -p 1-65535
- 指定 dns 伺服器解析域名
使用 Google 的公共 DNS 伺服器(8.8.8.8)解析目標域名(scanme.nmap.org),然後對解析出的 IP 地址執行 Nmap 掃描。這是為了公司的 dns 伺服器解析不出來域名
nmap --dns-servers 8.8.8.8 scanme.nmap.org
- 對於禁 Ping 主機使用 使用 -Pn 選項會讓 Nmap 忽略對目標主機的 ping 檢測,直接對所有目標主機執行埠掃描。這在目標主機阻止 ICMP ping 請求或者管理員想要繞過 ping 檢測時非常有用。
nmap -Pn xxx.xxx.xxx.xxx
如政務雲相關伺服器是禁止 ping 的,不加 -Pn
就掃描不到遠端機器開放埠
加了 -Pn
成功掃描到了遠端機器開放埠
- 掃描指定埠範圍
nmap -p 1-65535 xxx.xxx.xxx.xxx
-p 1-65535:這是一個選項,用於指定要掃描的埠範圍。在這種情況下,範圍是從埠 1 到埠 65535,表示將掃描目標主機上所有可能的 TCP 和 UDP 埠
標識埠號的變數是 16 位的,2 的 16 次方那麼就是 65536 個,去掉 0 這個特殊埠,剩下 65535 個
- 掃描一個或某幾個埠
python nmap -p 80,81 xxx.xxx.xxx.xxx
- 全埠掃描
python nmap -p- xxx.xxx.xxx.xxx
- 指定協議掃描
python nmap -p T:43,U:53 xxx.xxx.xxx.xxx
-T: tcp 埠 -U:udp 埠python nmap -p ssh xxx.xxx.xxx.xxx
探測某個協議的埠
- 埠狀態解釋
在 Nmap 掃描過程中,您可能會遇到不同的埠狀態。下面是一些常見的埠狀態及其含義:
open:埠是開啟的,表示目標主機上執行著一個服務,並且可以接受連線。
closed:埠是關閉的,表示目標主機上未執行該埠的服務,並且主機拒絕連線。
filtered:埠被過濾了,表示 Nmap 無法確定埠的狀態,因為防火牆、網路過濾器或其他裝置阻止了 Nmap 的掃描請求到達目標主機。
unfiltered:埠未被過濾,表示 Nmap 能夠確定埠是開放或關閉的,但無法確定具體是哪一種狀態。
open|filtered:埠可能是開放的,也可能是被過濾的,Nmap 無法確定埠的確切狀態。
closed|filtered:埠可能是關閉的,也可能是被過濾的,Nmap 無法確定埠的確切狀態。
注意事項
- Nmap 掃描到的 “closed” 埠並不意味著它們是完全隱藏的或者不可見的。相反,它們是在目標主機上存在的,但是沒有執行與之相關聯的服務。因此,儘管這些埠處於關閉狀態,但它們仍然可以被掃描到,並且掃描程式能夠從目標主機獲得拒絕連線的響應。
- open的埠可能是攻擊者入侵的目標,因此需要特別關注,而 filtered 狀態的埠可能需要進一步的調查,以確定防火牆或過濾器的配置情況。 ### 2.2 識別目標機器服務指紋
- 識別服務指紋
bash nmap -sV xxx.xxx.xxx.xxx
s
服務 V
版本
使用 Nmap 對指定的目標 IP 地址進行服務版本檢測掃描,以獲取目標主機上執行的服務的版本資訊。
可以與nmap -sV -p 1-65535 ip
聯合使用檢視所有埠。
nmap -T4 -A -v xxx.xxx.xxx.xxx
使用 Nmap 對指定的目標 IP 地址進行掃描,設定掃描速度為正常模式,並啟用全面掃描(會啟用 NSE 所有指令碼進行破解)功能,同時列印出更詳細的掃描資訊如版本號,加密演算法方式等。
-T4:這是一個選項,用於設定掃描的速度和對目標系統的影響。-T4 表示設定掃描速度為正常(Normal)模式,即快速掃描。k 可以設定為 1-5
-A:這是一個選項,用於執行 “全面掃描”。-A 選項將啟用作業系統檢測、服務版本檢測、指令碼掃描和 traceroute 等功能,以提供更詳細的關於目標主機的資訊。
-v:這是一個選項,用於設定掃描的詳細程度。-v 表示啟用詳細模式,即更多的資訊將被列印出來
2.3 nse
nmap --script auth
將執行所有屬於 auth 類別的指令碼來對目標進行掃描
nmap --script <script-name> <target>
執行特定的指令碼,可以指定指令碼的名稱
auth:
負責處理鑑權證書(繞開鑑權)的指令碼
broadcast:
在區域網內探查更多服務開啟狀況,如 dhcp/dns/sqlserver 等服務
brute:
提供暴力破解方式,針對常見的應用如 http/snmp 等
default:
使用-sC 或-A 選項掃描時候預設的指令碼,提供基本指令碼掃描能力
discovery:
對網路進行更多的資訊,如 SMB 列舉、SNMP 查詢等
dos: 用於進行拒絕服務攻擊
exploit: 利用已知的漏洞入侵系統
external: 利用第三方的資料庫或資源,例如進行 whois 解析
fuzzer:
模糊測試的指令碼,傳送異常的包到目標機,探測出潛在漏洞 intrusive: 入侵性的指令碼,此類指令碼可能引發對方的 IDS/IPS 的記錄或遮蔽
malware: 探測目標機是否感染了病毒、開啟了後門等資訊 safe: 此類與 intrusive 相反,屬於安全性指令碼
version: 負責增強服務與版本掃描(Version Detection)功能的指令碼
vuln:
負責檢查目標機是否有常見的漏洞(Vulnerability),如是否有 MS08_067
- 列舉所有 mysql 使用者
nmap -p3306 --script=mysql-users.nse --script-args=mysqluser=root xxx.xxx.xxx.xxx
- 掃描 mysql 相關的指令碼
nmap --script=mysql* xxx.xxx.xxx.xxx
2.4 調式模式
-d
引數即可開啟除錯模式
nmap -d xxx.xxx.xxx.xxx
-d 引數用於增加除錯輸出。當使用-d 引數時,nmap 將輸出更多的除錯資訊,以幫助使用者瞭解掃描過程中發生的情況
總結
nmap -p 1-65535 -T4 -A -v xxx.xxx.xxx.xxx
使用 Nmap 對指定的目標 IP 地址的所有埠進行掃描,設定掃描速度為正常模式,並啟用全面掃描(會啟用 NSE 所有指令碼進行破解)功能,同時列印出更詳細的掃描資訊如版本號,加密演算法方式等
nmap -A 命令將啟用一些 Nmap 的主要指令碼,並進行更全面的掃描,但不會啟用所有 NSE 指令碼。具體來說,-A 選項會啟用以下操作:
主機發現(Ping 掃描):檢測目標主機是否線上。
作業系統檢測:嘗試識別目標主機執行的作業系統。
版本檢測:嘗試確定目標主機上執行的服務的版本資訊。
指令碼掃描:執行一些常見的 Nmap 指令碼,如漏洞檢測、服務發現等。
雖然-A 選項會啟用一些 NSE 指令碼,但不會啟用所有的指令碼。要啟用所有的 NSE 指令碼,您需要使用--script=all 選項。
-A 選項是-T4、-O、-Pn、-sC 和--script=default 選項的組合。
因此我會使用 nmap -p 1-65535 -T4 -A -v --script=all xxx.xxx.xxx.xxx
進行掃描
3 結果分析
掃描完成後,有大量的日誌輸出需要去分析日誌
開放埠是否存在問題 重點分析 open 狀態的埠
是不是有的埠可以直接訪問到檔案
是不是有的埠可以沒有鑑權直接返回了一些資料
是不是有點埠直接就下載了檔案等是否存在漏洞
檢視 nse 是否發現漏洞將 xml 轉化為 如下的 html 報告(好向領導彙報需要替換文件的樣式)
from lxml import etree
# 讀取生成報告的XML檔案
tree = etree.parse(r'D:\nmap\zt.xml')
# 讀取XSL樣式表檔案
xslt = etree.parse(r'D:\nmap\new_template2.xsl')
# 建立轉換器並應用樣式表
transform = etree.XSLT(xslt)
result = transform(tree)
# 將轉換結果寫入HTML檔案
with open('output2.html', 'wb') as f:
f.write(result)
相關文章
- nmap命令-----基礎用法(系統漏洞掃描之王-nmap)
- Nmap掃描教程之Nmap基礎知識
- 網路掃描工具Nmap常用命令
- Nmap掃描原理與用法
- nmap基礎命令
- Nmap繞過防火牆掃描防火牆
- NMAP分散式掃描工具dnmap分散式
- nmap掃描檔案提取工具
- nmap命令常用例項
- Nmap資訊命令詳解
- nmap網路探測及安全掃描命令學習?Linux運維技能怎麼學Linux運維
- nmap使用指南
- NMAP為什麼掃描不到埠
- 埠掃描網路安全工具——NMAP
- Nmap掃描教程之基礎掃描詳解
- Python-nmap網路掃描和嗅探工具包使用Python
- Nmap掃描教程之DNS服務類DNS
- nmap掃描網段內的所有IP
- Nessus漏洞掃描教程之使用Nmap工具掃描識別指紋
- [20190221]使用nmap掃描埠的問題.txt
- 2.nmap 常用命令
- nmap指令碼使用總結指令碼
- nmap終極使用指南
- Nmap指令整理
- Nmap安裝
- nmap官方文件
- 埠掃描工具nmap的常用引數講解
- NMAP 基礎教程
- Nmap用法詳解
- 網路安全C10-2024.9.15-Nmap、Xray、Nessus和AWVS使用掃描
- Nmap 7.95 - Zenmap 漢化版,埠掃描、網路嗅探工具
- Nmap 擴充套件(四)套件
- nmap指令碼詳解指令碼
- 在Linux中,什麼是埠掃描?如何使用工具如nmap進行埠掃描?Linux
- 【轉】Windows平臺執行Masscan和NmapWindows
- nmap os探測使用方法及原理
- Nmap掃描教程之網路基礎服務DHCP服務類
- 網路安全審計工具Nmap