Nmap是一個網絡連接端掃描軟件,用來掃描網上電腦開放的網絡連接端。確定哪些服務運行在哪些連接端,並且推斷計算機運行哪個操作系統(這是亦稱 fingerprinting)。它是網絡管理員必用的軟件之一,以及用以評估網絡系統安全,堪稱神器
Nmap官方網址:https://nmap.org/
基本功能: 探測一組主機是否在線 掃描主機端口,嗅探所提供的服務 推斷主機所用的操作系統
支持探測腳本的編寫
最簡單的就是ping命令 發送簡單的icmp報文 不能進行網段中掃描
SYN探測 倆次握手
TCP/IP標志位: ACK FIN RST SYN PSH URG
掃描結果(不一定靠譜):
open closed filtered unfiltered open|filtered closed|filtered
開放 關閉 過濾的 被過濾的 開放或被過濾的 關閉或被過濾的
主機發現和目標掃描:
-P* (用於選擇ping的類型)可以被結合使用
可以使用不同的tcp端口/標志位和ICMP碼發送許多探測報文,為了增加穿透防守嚴密的防火牆機會
-P0(無ping)
完全跳過nmap發現階段,每個IP地址都重點掃描,包括沒有主機存活的ip,如果在命令行指定一個B類地址空間,所有65536個ip都會被掃描(非常慢)
-PS (SYN ping)
兩次握手不發送第三步
nmap -PS80,23,22,443 192.168.2.107-225
-PA (ACK ping)
直接發送ACK 第三步 目標會返回個RST
-PU(UDP ping)
如果目標機器的端口是關閉的,UDP探測會得到一個ICMP端口無法到達的回應報文。默認端口 31338
-PE;-PP;-PM(ICMP Ping Types)
echo(回顯):基本會被防火牆擋住
time stamp(時間戳)
mask(掩碼)
-PR(ARP Ping)
進行ARP掃描,Nmap會用它優化的算法管理ARP請求 默認都是ARP掃描 如果不用的話 --send-ip
-n(不用dns解析)
-R(為所有目標解析域名)
掃描目標:
1.支持CIDR形式的地址 192.168.10.0/24 或者 www.baidu.com/24
2.支持IPV6
3.通過八位字節地址范圍列表支持 192.168.0-255.1-254 192.168.1,3,7.1-254
可以多種方式結合
4.從列表中掃描 -iL (每一項都必須以一個或多個空格,制表符或換行符分開)
nmap -PA -iL ip.txt
5.-iR (隨機選擇目標)
選項0 代表無休止的掃描
6.--exclude (排除主機/網絡) --excludefile ip.txt 192.168.2.1/24 (ip.txt文件中的IP地址會被排除)
端口掃描:
-s*
-sS (TCP SYN掃描)
半開放掃描 執行起來很快 可區分 開放的 關閉的 被過濾的
-sS 192.168.2.1
-sT(TCP connect()掃描)
全掃描,容易被防火牆攔住
-sU(UDP 掃描)
非常慢 可以用--host-timeout 跳過慢速的主機
-sA(TCP ACK掃描)
用於發現防火牆規則,確定他們是有狀態的還是無狀態的,哪些端口是被過濾的
-sW(TCP 窗口掃描)
與ACK掃描完全一樣 探測結果不是很准確
-sN;-sF;-sX (TCP NULL,FIN,and Xmas掃描 )
-sX 設置FIN PSH URG
不能辨別open端口和一些特定的fitered端口,從而返回open|fitered
-sM (TCP Mainon掃描)
與XMas掃描一樣
-sO (IP協議掃描)
發送IP報文頭
-sI(空閑掃描)
盲掃描 用於隱蔽掃描IP 利用僵屍主機
nmap -sI 192.168.10.2 192.168.2.1-255
-sY;-sZ (sctp init/cookie-echo scans)
用來發現ss7、sigtran相關服務、-sT -sY
默認丟棄開放端口返回的包含cookie echo數據包
--scanflags(定制的TCP掃描)
nmap --scanflags URGACK 192.168.2.1/24
-b (FTP彈跳掃描)
繞過防火牆的好辦法,因為fTP經常被置於可以訪問比Web主機更多其它內部主機的位置DMZ
參數 <username>:<password>@<server IP>:<port>
-p (只掃描指定的端口)(65535個端口)
-p U:1,2,3, T:4,5,6,
-p- (掃描全部端口)
-F (快速掃描)
-r(按隨機順序掃描端口)
默認是隨機掃描,-r可以用來指定順序端口的掃描
服務器版本探測掃描:
-sV (版本探測)
打開版本探測,也可以用-A 同時打開操作系統探測和版本探測
-sR (RPC掃描)
和許多端口掃描方法聯合使用。對所有被發現開放的TCP/UDP端口執行SunRPC程序NULL命令
用於掃描入侵win系統
--allports (不為版本探測排除任何端口)
掃描所有的端口,不受exploded影響
--version-intensity (設置版本掃描強度)
-sV
0-9
--version-light 2
--version-all 9
nmap -sV --version-intensity 9 120.79.73.6
--version-trace (跟蹤版本掃描活動)
打印出詳細進行掃描的信息
操作系統探測掃描:
-O 操作系統檢測
-A 同時啟用操作系統檢測和版本檢測
原理 構造特殊的tcp/ip數據包 給目標主機 得到目標主機的指紋 對比數據庫中的指紋庫 概率得到OS
common platform enumeration 通用枚舉平台 ----操作系統的詳細信息
--osscan-limit (針對指定的目標進行操作系統的檢測)
這個選項只針對-O或者-A有效
--osscan-guess; --fuzzy (推測操作系統檢測結果)
提供最大概率的匹配結果
--max-os-tries (設置針對目標操作系統檢測的最大嘗試次數)
默認五次 可以減小至1次 會加快速度 但是會錯過潛在可識別的的目標
腳本掃描:
輔助端口掃描、版本探測、操作系統探測、漏洞利用腳本 腳本掃描
腳本文件位置 /user/share/nmap/scripts/
獲得whois信息
nmap --script whois
HTTP 方法
支持的http方法
nmap -p80,443 --script http-methods scanme.nmap.org
掃描HTTP代理
--proxies urls
nmap --scripts http-open-proxy -p80,8080,81 www.baidu.com
web應用程序的脆弱性有目錄列表,用戶賬戶枚舉,配置文件等
nmap --script http-enum -p80 <target>
指定不同的User Agent來繞過某些防火牆
nmap -p80 --script http-enum --script-args http.useragent="Mozilla 5" <target>
指定HTTP管道數目來加快掃描
nmap -p80 --script http-enum --script-args http.pipeline=25 <target>
暴力破解HTTP身份認證
nmap -p80 --script http-brute --script-args http-brute.path=/admin/ <target>
裝有wordpress弱口令
nmap -p80 --script http-wordpress-brute <target>
設置線程數
nmap -p80 --script http-wordpress-brute --script-args http-wordpressbrute.threads=5 <target>
檢測SQL注入
nmap -p80 --script http-sql-injection <target>
繞過WAF:
-f (報文分段) --mtu(使用指定的MTU必須8的倍數) 分片思想
nmap -f 192.168.19.2
nmap --mtu 16 192.168.19.2
-D (使用誘餌隱蔽掃描)
作為誘餌的主機必須在工作狀態,否則造成目標主機syn泛洪攻擊
nmap -D192.168.10.16,192.168.11.17 www.baidu.com
nmap -D RND:10 www.baidu.com
--source-port;-g (源端口哄騙)
nmap --source-port 21,80 www.baidu.com
-S(源地址哄騙)
-e (使用指定的接口)
-e eth0
--data-length (發送報文時,附加隨機數據)
當0字節報文時,ids,waf過濾 這時候用這個參數
內網掃描:
--ttl (設置ip time-to-live域)
設置ipv4的ttl值
-randomize-hosts (對目標主機的順序隨機排列)
--spoof-mac (MAC地址哄騙)
0代表完全隨機
nmap --spoof-mac 0 www.baidu.com
--badsum (checksum校驗包)
總結:
Nmap是一個非常強大的工具,它具有覆蓋滲透測試的第一方面的能力,其中包括信息的收集和統計。