1.NMAP介紹
Nmap是一款開放源代碼的網絡探測和安全審核工具。它被設計用來快速掃描大型網絡,包括主機探測與發現、開放的端口情況、操作系統與應用服務指紋、WAF識別及常見安全漏洞。它的圖形化界面是Zenmap,分布式框架為Dnmap。
Nmap的主要特點如下所示:
- 主機探測:探測網絡上的主機,如列出相應tcp和ICMP請求、ICMP請求、開放特別端口的主機。
- 端口掃描:探測目標主機所開放的端口。
- 版本檢測:探測目標主機的網絡服務,判斷其服務名稱及版本號。
- 系統檢測:探測目標主機的操作系統及網絡設備的硬件特性。
- 支持探測腳本的編寫:使用Nmap的腳本引擎和Lua編程語言。
2.NAMP入門
2.1 掃描單個目標地址
Nmap 192.168.181.129
2.2 掃描多個目標地址
Nmap 150.109.68.57 192.168.181.129
2.3 掃描一個范圍內的目標地址
Nmap 192.168.181.100-110
2.4 掃描目標地址所在的某個網段
Nmap 192.168.181.100/24
2.5 掃描主機列表targets.txt中所有的目標地址
Nmap –iL C:\Users\targets.txt
2.6 掃描除某一目標地址之外的所有目標地址
Nmap 192.168.181.100/24 –exclude 192.168.181.128
2.7 掃描除某一文件中的目標地址之外的目標地址
Nmap 192.168.0.100/24 –excludefile C:\Users\targests.txt
2.8 掃描某一目標地址的21、22、23、80端口
Nmap 192.168.0.100 –p 21,22,23,80
2.9 對目標地址進行路由追蹤
Nmap --traceroute 192.168.0.105
2.10 掃描目標地址所在C段的在線狀況
Nmap –sP 192.168.0.100/24
2.11 目標地址的操作系統指紋識別
Nmap –O 192.168.0.100
2.12 目標地址提供的服務版本檢測
Nmap –sV 192.168.0.100
2.13 探測防火牆狀態
Nmap –sF –T4 192.168.181.129
狀態識別
狀態 含義 Open 開放的,表示應用程序正在監聽該端口的連接,外部可以訪問 Filtered 被過濾的,表示端口被防火牆或其他網絡設備阻止,不能訪問 Closed 關閉的,表示目標主機未開啟該端口 Unfiltered 未被過濾的,表示Nmap無法確定端口所處狀態,需進一步探測 open/filtered 開放的或被過濾的,Nmap不能識別 Closed/filtered 關閉的或未被過濾的,Nmap不能識別
3.NMAP進階
3.1 鑒權掃描
使用--script=auth可以對目標主機或目標主機所在的網段進行應用弱口令檢測。 Nmap --script=auth 192.168.0.105
3.2 暴力破解攻擊
Nmap具有暴力破解的功能,可對數據庫,smb,snmp等進行簡單密碼的暴力猜解。 Nmap --script=brute 192.168.0.105
3.3 掃描常見漏洞
Nmap具有漏洞掃描的功能,可以檢查目標主機或網段是否存在常見的漏洞。 Nmap --script=vuln 192.168.0.105
3.4 應用服務掃描
Nmap具有很多常見應用服務的掃描腳本,例如vnc服務、mysql服務、Telnet服務、rsync服務等,此處以vnc服務為例。 Nmap --script=realvnc-auth-bypass 192.168.0.105
3.5 探測局域網內更多服務開啟的情況
Nmap –n –p 445 --script=broadcast 192.168.0.105
3.6 Whois解析
Nmap –script external baidu.com
4.參數詳解
用法:nmap [掃描類型] [選項] {目標規范} 目標規格:可以傳遞主機名,IP地址,網絡等。 -iL <輸入文件名>:從主機/網絡列表中輸入 -iR <num主機>:選擇隨機目標 --exclude <host1 [,host2] [,host3],...>:排除主機/網絡 --excludefile <exclude_file>:從文件中排除列表 主機發現: -sL:列表掃描-僅列出要掃描的目標 -sP:Ping掃描-只能確定主機是否在線 -P0:將所有主機視為在線-跳過主機發現 -PS / PA / PU [端口列表]:對給定端口的TCP SYN / ACK或UDP發現探針-PE / PP / PM:ICMP回顯,時間戳和網絡掩碼請求發現探針 -n / -R:從不進行DNS解析/始終解決 掃描技術: -sS / sT / sA / sW / sM:TCP SYN / Connect()/ ACK / Window / Maimon掃描 -sN / sF / sX:TCP Null,FIN和Xmas掃描 --scanflags <標志>:自定義TCP掃描標志 -sI <僵屍主機[:probeport]>:Idlescan -sO:IP協議掃描 -b <ftp中繼主機>:FTP退回掃描 端口規格和掃描順序:-p <端口范圍>:僅掃描指定的端口,例如:-p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080 -F:快速-僅掃描nmap-services文件中列出的端口) -r:連續掃描端口-不要隨機化 OS檢測: -O:啟用OS檢測 --osscan-limit:將OS檢測限制在有希望的目標上 --osscan-guess:猜測OS -T [0-6]:設置定時模板(越高越快) --min-hostgroup / max-hostgroup <msec>:並行主機掃描組大小 --min-parallelism / max-parallelism <msec>:探針並行化 --min-rtt-timeout / max-rtt-timeout / initial-rtt -timeout <msec>:指定 服務/版本檢測: -sV:探測打開的端口以確定服務/版本信息 --version-light :僅限於可能的探針以進行更快的識別 --version-all:嘗試對每個探針進行版本檢測 --version-trace:顯示詳細的版本掃描活動(用於調試) MISC的XSL樣式表: -6:啟用IPv6掃描 -A:啟用OS檢測和版本檢測 --datadir <dirname>:指定自定義Nmap數據文件位置 --send-eth /-send-ip:使用原始以太網幀或IP數據包發送數據包 --privileged:假定用戶具有完全特權 -V:打印版本號 -h:打印此幫助摘要頁面。 例子: nmap -v -A scanme.nmap.org nmap -v -sP 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -P0 -p 80 探針往返時間 --host-timeout <msec>:經過很長的時間后放棄目標 --scan-delay /-max-scan-delay <msec>:調整兩次探查之間的延遲防火牆/ ID閃避和溢出 -f; --mtu <val>:分片數據包(可選的/具有給定的MTU) -D <decoy1,decoy2 [,ME],...>:用誘餌掩蓋掃描 -S <IP_Address>:欺騙源地址 -e <iface >:使用指定的接口 -g /-source-port <端口號>: --data-length <num>:將隨機數據附加到發送的數據包中 --ttl <val>:設置IP生存時間字段 --spoof-mac <mac地址,前綴或供應商名稱>:欺騙您的MAC地址