命令很多,試試Ctrl+f,查找吧---------Nmap詳細的命令解釋
我只是簡化了這些命令,如果不懂得的話,點上面的鏈接
Nmap是一款多么牛逼的掃描器,我就不再此廢話了。對照下面的命令用法吧。
一,掃描目標ip
-iL <文件名>--掃描文件里所有的ip
-iR <數量>--隨機選擇一定數量的目標
--exclude <主機名/地址>--不包含的主機
--excludefile <文件名>--不包含的主機的列表文件
二,掃描ip后,主機發現
-sL(列表掃描)--列出給出目標的具體內容,默認會對地址進行反向解析,顯示主機名。
-sn(不進行端口掃描)
-Pn(無ping)--跳過主機發現階段,把每個都IP當成存活主機。
-P0 <協議號列表>(IP 協議 ping)---一個較新的主機發現選項是IP協議ping,它將IP數據包發送到IP報頭中指定的協議號。
-PS<端口列表>(TCP SYN Ping)---可以添加不同的端口,如,-PS80,23,445,113
-PA<端口列表>(TCP ACK Ping)---同上
-PU <端口列表>(UDP Ping)同上
-PR(ARP Ping)同上
--disable-arp-ping (No ARP or ND Ping)----不使用ARP發現和ICMPv6鄰居發現
-PY <端口列表> (SCTP INIT Ping)
-PE; -PP; -PM(ICMP Ping Types)
-n? 不域名解析
-R ? 所有IP做反向域名解析
--system-dns ? ?使用本機的dns服務器
--dns-servers(使用指定的dns服務器)
如果指定dns服務器無法使用,則會轉向使用本機配置的dns服務器
三,端口狀態
以下不是命令,但是要判斷端口的狀態,以便于后續的操作
open(開放的)
應用程序正在該端口接收TCP 連接或者UDP報文。
closed(關閉的)
關閉的端口對于Nmap也是可訪問的(它接受Nmap的探測報文并作出響應), 但沒有應用程序在其上監聽。
filtered(被過濾的)
由于包過濾阻止探測報文到達端口, Nmap無法確定該端口是否開放。
unfiltered(未被過濾的)
未被過濾狀態意味著端口可訪問,但Nmap不能確定它是開放還是關閉。
open|filtered(開放或者被過濾的)
當無法確定端口是開放還是被過濾的,Nmap就把該端口劃分成 這種狀態。開放的端口不響應就是一個例子。
closed|filtered(關閉或者被過濾的)
該狀態用于Nmap不能確定端口是關閉的還是被過濾的。 它只可能出現在IPID Idle掃描中
四,端口掃描
-sS(TCP SYN掃描)--半開放掃描
-sT(TCP connect()掃描)--Nmap通過創建connect() 系統調用要求操作系統和目標機以及端口建立連接,而不像其它掃描類型直接發送原始報文。
-sU(UDP 掃描)
-sY(SCTP INIT scan)--掃描類似TCP SYN掃描
-sN; -sF; -sX (TCP Null,FIN,Xmas掃描)
-sA (TCP ACK掃描)--它用于發現防火墻規則,確定它們是有狀態的還是無狀態的,哪些端口是被過濾的
-sW(TCP窗口掃描)
-sM(TCP Maimon掃描)
--scanflags (定制的TCP掃描)
-sZ(SCTP COOKIE ECHO掃描)
--sI <僵尸主機地址:端口>(idlescan)
-sO(IP協議掃描)
-b(FTP彈跳掃描)
五,端口掃描設置
-p <端口號,端口列表>
--exclede-ports <端口列表>(排除的端口)
-F(快速掃描)
-r(順序掃描端口)
--port-ratio---掃描nmap-services中給出的目標的一定比例,這個值在1.0-0.0之間。
--top-ports--掃描nmap-services中的前多少個端口
六,服務和版本掃描
-sV(版本掃描)---掃描服務版本,也可以用-A同時進行操作系統探測和版本掃描。
--allports(版本掃描時,不排除任何端口)
--version-intensity <強度>(版本掃描強度)---強度在1到9之間,一般來說,強度越大,服務越有可能被正確識別
--version-light----相當于 --version-intensity 2
--vension-all----相當于 --version-intensity 9
--version-trace---打印出正在進行的版本掃描的詳細信息
七、操作系統探測
-O (啟用操作系統檢測)-----也可以使用-A來同時啟用操作系統檢測和版本掃描。
--osscan-limit(只對至少知曉一個端口開放或者關閉的主機進行操作系統探測)
--osscan-guess;--fuzzy(---------------無法確定操作系統類型的時候,默認進行推測。但是使用這兩項,會讓猜測更加準確。)
--max-os-tries(操作系統識別重試次數)
八、掃描性能設置
--min-hostgroup; --max-hostgroup(調整并行掃描組的大小)
--min-parallelism; --max-parallelism(調整探測報文的并行度)
--max-parallelism選項通常設為1,以防止Nmap在同一時間 向主機發送多個探測報文,和選擇--scan-delay同時使用非常有用。
--min-rtt-timeout, --max-rtt-timeout, --initial-rtt-timeout(調整探測報文超時)
--host-timeout(放棄低速目標主機)
--scan-delay; --max-scan-delay(調整探測報文的時間間隔)
-T(設置時間模板)
--max-retries <次數>---沒有響應后的重試次數
--script-timeout(設置腳本超時時間)
預防腳本的bug導致影響效率
--min-rate; --max-rate(發包速度控制)
最少每秒發多少,最多每秒發多少。如果0.1的話就是10秒一個包的意思
--defeat-rst-ratelimit
忽略系統reset包的速率限制
--defeat-icmp-ratelimit
忽略系統ICMP錯誤消息速率限制
--nsock-engine epoll|kqueue|poll|select
選擇系統IO模型,nmap -V可以查看支持哪些
九、防火墻繞過/IDS躲避
-f (報文分段); --mtu (使用指定的MTU)
-D <肉雞1,肉雞2,...>(結合肉雞干擾進行掃描)
-S(源地址欺騙)
-e(指定使用的網絡接口)
--source-port; -g(源端口欺騙)
--date可以用這樣的格式指定值 --data 0xdeadbeef --data \xCA\xFE\x09如果指定0x00ff 這個的數字,將不會做字節序轉換。確保你的字節序,對方可以接受
--data-string
例如,--data-string "Scan conducted by Security Ops, extension 7192" or --data-string "Ph34r my l33t skills"
--data-length(發送報文時 附加隨機數據)
這個選項告訴Nmap在發送的報文上 附加指定數量的隨機字節。操作系統檢測(-O)包不受影響。
--ip-options; --ip-options(Send packets with specified ip options)
指定IP頭
--proxies
設置代理,支持http代理和socks4代理
--badsum(讓nmap使用一個偽造的不合法的checksum)
這樣的數據包一般都會丟棄,如果收到任何回復,這個回復一定來自防火墻
--adler32(使用棄用的Adler32來代替CRC32C做SCTP的checksum)
這是為了從舊版的SCTP協議設備獲得響應
--ttl(設置IP time-to-live域)
設置IPv4報文的time-to-live域為指定的值。
--randomize-hosts (對目標主機的順序隨機排列)
告訴Nmap在掃描主機前對每個組中的主機隨機排列,最多可達 8096個主機。
--spoof-mac(MAC地址哄騙)
十、輸出
-oN(標準輸出)
將結果輸入制定文件
-oX(XML輸出)
將XML輸出寫入指定文件
-oS(ScRipT KIdd|3 oUTpuT)
腳本小子輸出類似于交互工具輸出,這是一個事后處理,適合于 'l33t HaXXorZ, 由于原來全都是大寫的Nmap輸出。
-oG(Grep輸出)
-oA(輸出至所有格式)
為使用方便,利用-oA選項 可將掃描結果以標準格式、XML格式和Grep格式一次性輸出。分別存放在.nmap,.xml和.gnmap文件中。也可以在文件名前 指定目錄名,如在UNIX中,使用~/nmaplogs/foocorp/, 在Window中,使用c:\hacking\sco on Windows。
-v(提高輸出信息的詳細程度)
-d [level](設置調試級別)
--packet-trace(跟蹤發出的報文)
-iflist(列舉端口和路由)
--append-out(在輸出文件住追加)
但對于XML(-oX)掃描輸出 文件無效,無法正常解析,需要手工修改。
--resume(繼續中斷的掃描)
如果標準掃描 (-oN)或Grep掃描(-oG)日志 被保留,用戶可以要求Nmap恢復終止的掃描,只需要簡單地使用選項 --resume并說明標準/Grep掃描輸出文件,不允許 使用其它參數,Nmap會解析輸出文件并使用原來的格式輸出。使用方式 如nmap --resume。Nmap將把新地結果添加到文件中,這種方式不支持XML輸出格式,原因是將兩次運行結果合并至一個XML文件比較困難。
--stylesheet(設置XSL樣式表,轉換XML輸出)
--webxml
--stylesheethttps://nmap.org/svn/docs/nmap.xsl的簡寫。
--no-stylesheet (忽略XML聲明的XSL樣式表)
--open
只顯示開放或者可能開放的端口
--stats-every(周期性的輸出統計數據)
--stats-every 10s 每10秒輸出一次,,這個輸出會被輸出到標準輸出,和XML文件
--reason(打印主機和端口狀態的原因)
十一、其他選項
-6(啟用IPv6掃描)
-A(強力掃描模式)
--datadir <文件夾名稱> (說明nmap用戶數據文件的位置)
--send-ip (在原IP層發送)
要求Nmap通過原IP套接字發送報文,而不是低層的以 太網幀。這是--send-eth選項的補充。
--send-eth
使用raw ethernet包來發包
--privileged (假定用戶具有全部權限)
--unprivileged(假定用戶沒有特權)
--interactive (在交互模式中啟動)
--release-memory (退出后namp自己釋放內存)
--servicedb
nmap-service文件的路徑
--versiondb
nmap-service-probes文件路徑
-V;--version (查看版本)
-h;--help(簡要的使用介紹)
十二、NSE腳本引擎
https://nmap.org/nsedoc/具體腳本的使用手冊
--script <腳本名>
腳本名字前面加 + 會讓腳本強制執行指定名字的時候可以使用shell風格的通配符"*"。
nmap --script "http-*"
加載所有的名字以http-開頭的腳本,必須用引號包起來,讓通配符不受shell影響。
nmap --script "not intrusive"
加載所有非入侵類型的腳本
nmap --script "default or safe"
在功能上等同于nmap --script "default,safe"加載了所有默認類或者安全類,或者是兩者都包含的。
nmap --script "default and safe"
加載在同屬于兩者的腳本
nmap --script "(default or safe or intrusive) and not http-*"
加載屬于默認類或者安全類或者入侵類的但是名字開頭不是http-的腳本
--script-args=,={=},={,}
指定腳本參數,里面不能有‘{’, ‘}’, ‘=’, or ‘,’,如果要用就用\轉義
--script-args-file
從一個文件獲取腳本參數
--script-trace
打印出腳本執行的具體信息
--script-updatedb