1. 程式人生 > >網絡掃描利器-----NMAP

網絡掃描利器-----NMAP

nmap 網絡安全

一、主機發現

  • -A: 全面掃描,掃描指定的IP或域名的所有端口

  • -sP: ping掃描

  • -PN: 無ping掃描,不使用默認的探測檢查,而是對目錄進行一個完整的端口掃描。此對掃描有防火墻 保護而封鎖ping探針主機的時間非常有用;

  • -PS:TCP SYN ping 掃描,該選項發送一個設置了SYN標誌位的空TCP報文。 默認目的端口為80 (可以通過改變nmap.h) 文件中的DEFAULT_TCP_PROBE_PORT值進行配置,但不同的端口也可以作為選項指定。

  • -PA:TCP ACK ping掃描, -PA選項使用和SYN探測相同的默認端口(80),也可以 用相同的格式指定目標端口列表。

  • -PU:UDP PING;

  • -PE:參數進行一個ICMP在指定的系統中輸出ping;

  • -PP:進行一個ICMP時間戳ping 掃描;

  • -PM : 進行一個ICMP地址掩碼ping掃描;

  • -PO:進行一個IP協議ping

  • -PR: ARP PING,當掃描整個網的時候自動使用,這種類型的探測比其它的ping方法更快

  • -traceroute 參數可以用來追蹤到指定主機的網絡路徑

  • -n:禁止DNS反向解析

  • -R:對目標IP地址實施一個逆向DNS解析

  • -system-dns:使用主機系統的域名解析來替代它自己的內部方法

  • -dns-servers:掃描手動指定查詢的 DNS服務器

  • -sS: TCP SYN掃描

  • -sT: TCP connect掃描

  • -sU: UDP掃描

  • -sN;-sF;-sX:TCP Null,FIN,and Xmas掃描

  • -sA: TCP ACK掃描

  • -sW:TCP窗口掃描

  • -sM: TCP Maimon掃描

  • --scanflags:定制TCP掃描

  • -sI:IDLE Scan

  • -sO:IP協議掃描, IP 協議掃描可以讓您確定目標機支持哪些IP協議 (TCP,ICMP,IGMP,等等)。

  • -F:快速掃描

  • -P: 只掃描指定的端口

  • -sV: 版本探測

  • -O:操作系統檢測

  • -sL:顯示一個列表,並對指定的IP地址執行一個反向的 DNS查詢

  • 掃描目標列表

語法: nmap -iL [list.txt] --> list.txt為目標的ip地址

  • 掃描隨機目錄 -iR 參數可以用來選擇隨機的互聯網絡主機來掃描

語法:nmap -iR [主機數量] -->例: nmap -iR 200000

nmap -iR 1000000 -sS -PS 80 -P 80 -oG nmap.txt

隨機產和10 萬個IP,對其80 Port進行掃描,並將結果輸出nmap.txt文件保存

  • exclude選項被用來從掃描中排除一些主機

語法: nmap 192.168.32.0/24 -exclude 192.168.32.1

  • 時間和性能

    --system-dns:使用系統域名解析器

    --min-hostgroup:調整並行掃描組大小:nmap --min-hostgroup 30 192.168.1.0/24

    --min-paralelism /--max-paralelism:調整探測報文的並行度

    --host-timeout:放棄低速目標主機

    --scan-delay; --max_scan-delay:調整探測報文的時間間隔

    --scan-delay:用於躲避基於閥值的入侵檢測系統(IDS/IPS)

nmap -P0 -n -sS --max_hostgroup 1 --max_retries 0 --max_parallelism 10 172.16.1.0/24

技術分享技術分享


二、防火墻類掃描

  • 防火墻響應的四種類型

    1. open port:防火墻允許少數的端口打開

    2. close port:由於防火墻 的緣故,大部分的端口被關閉

    3. filtered:nmap不確定端口是否打開或是關閉

    4. unfiltered:nmap能夠防問這個端口,但不清楚這個端口打開的狀態


  • 防火墻/IDS躲避和哄騙

    -f:報文分段,在掃描包括ping掃描使用 小的IP包分段。其思路是將TCP頭分段在幾個包中,使得包過濾器、 IDS以及其它工具的檢測更加困難。 nmap -f -v 172.16.1.98

  • --mtu:使用指定的MTU

  • -D:使用誘餌隱蔽掃描,誘餌可用在初始的ping掃描(ICMP、SYN、ACK等)階段或真正的端口掃描 階段。誘餌也可以用於遠程操作系統檢測(-O)。在進行版 本檢測或TCP連接掃描時,誘餌無效。nmap -D 172.16.1.41,172.16.1.199,ME -p 25,80,139,445 -Pn 172.16.1.98技術分享

  • -S:源地址哄騙;

  • -e:使用指定的接口;

  • -source-port;-g:源哄騙

  • --data-length:發送報文時,附加隨機數據

  • --randomize-hosts:對目標主機的順序隨機排列

  • --spoof-mac:MAC地址哄騙

三、數據庫滲透測試

  • mysql-databases: MySQL列舉數庫庫

    nmap -p3306 --script mysql-databases --script-args mysqluser=root,mysqlpass 172.16.1.98 技術分享技術分享

  • mysql-variables: 列舉Mysql變理

    nmap -p3306 --script mysql-variables 172.16.1.98


  • mysql-empty-password:檢查MYSQL密碼

    nmap -p3306 --script=mysql-empty-password 172.16.1.98

    技術分享

  • mysql-brute:檢查MYSQL密碼

    nmap -p3306 --script=mysql-brute 172.16.1.98

    技術分享 技術分享

  • mysql-users.nse:列出所有mysql用戶

    nmap -p3306 --script=mysql-users.nse --script-args=mysqluser=root 172.16.1.98

    技術分享

  • mysql-audit:審計Mysql安全配置

    nmap -p3306 --script=mysql-audit 172.16.1.98


  • nmap -p3306 --script=mysql-* 172.16.1.98掃描同一應用的所有腳本

技術分享

  • ms-sql-brute:審計mssql密碼

  • nmap -p1443 --script=ms-sql-brute 10.133.130.6

技術分享

  • ms-sql-empty-password:檢查MSSQL空密碼

    nmap -p1443 --script=ms-sql-empty-password 10.133.130.6

技術分享

  • ms-sql-tables:讀取MSSQL數據

  • ms-sql-xp-cmdshell: MSSQL執行系統命令

    nmap -p1443 --script=ms-sql-xp-cmdshell 10.133.130.6

技術分享


四、滲透測試

  • http-brute: 審計HTTP身份驗證

    nmap --script=http-brute -p80 172.16.1.98

技術分享

  • ftp-brute:審計FTP服務

    nmap --script=ftp-brute -p21 172.16.1.98

技術分享

  • http-wordpress-brute:審計Wordpress程序

    nmap --script=http-wordpress-brute

  • http-joomla-brute:審計joomla服務


  • smb-brute.nse:審計SMB服務

    nmap --script=smb-brute.nse -sV 172.16.1.98

技術分享

  • vnc-brute:審計VNC服務器

    nmap --script=vnc-brute -p5800 10.133.83.194

nmap -p5800 --script=realvnc-auth-bypass 10.133.83.194 檢查vnc bypass

nmap -p5800 --script=vnc-auth 10.133.83.194 檢查VNC認證方式

技術分享

  • smtp-brute:檢測SMTP服務器

  • stuxnet-detect:檢測Stuxnet蠕蟲

  • snmp-netstat / snmp-processes / snmp-win32-services / snmp-brute: SMTP服務安全審計

    技術分享

  • firewalk:探測防火墻火墻

    namp --script=firewalk --traceroute 10.142.24.21

技術分享

  • vmauthd-brute: VMWare認證破解 

    nmap -p902 --script=vmauthd-brute 10.133.83.194

技術分享

  • smb-check-vulns.nse:系統漏洞掃描

    nmap -p445 --script=smb-check-vulns.nse 172.16.1.41

技術分享

  • http-stored-xss.nse:掃描Web漏洞

    nmap -p80 --script=http-stored-xss.nse 10.133.83.194

技術分享

  • http-headers: http 頭部檢查

    nmap -p80 --script=http-headers 10.133.83.194

技術分享

五、腳本掃描案例

  • nmap --scritp=auth 172.16.1.98 負責處理證書的腳本,檢測部分應用弱口令

技術分享

  • nmap --script=brute 172.16.1.98 提供暴力破解的方式,可能數據庫、SNMP、SMB等簡單密碼的暴力破解

技術分享

  • nmap --script=default 172,.16.1.98 或 nmap -sC 172.16.1.98 默認的腳本掃描,主要是收集各種應用的信息,收集到後,可再針對其進行攻擊

技術分享

  • nmap --script=vuln 172.16.1.41 檢查是否存在常見的漏洞

  • nmap -n --p445 --script=broadcast 172.16.1.98 在局域網檢查服務開啟狀況


六、腳本掃描分類

  • 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


七、案例

  • 空閑掃描尋找可能的IDLE主機,以下為TCP序列測試(詳細、操作系統檢測、無ping、無域名解析) nmap -v -O -Pn -n 172.16.1.41 (TCP Sequence Prediction: Difficulty=263(Good Luck!))

技術分享

  • 利用Idle的主機掃描,預防IDS主機發現:

    nmap -p 25,80,139,445 -Pn -sI 172.16.1.41 172.16.1.98 (172.16.1.41為idle主機,172.16.1.98為目標主機

技術分享

  • 使用nmap-script參數smb-vuln-ms17-010.nse腳本檢測ms17-010漏洞

    nmap -p445 --script smb-vuln-ms17-010.nse 192.168.102.2

技術分享

八、過濾nmap掃描方法如下:

#iptables -F

#iptables -A INPUT -p tcp –tcp-flags ALL FIN,URG,PSH -j Drop

#iptables -A INPUT -p tcp –tcp-flags SYN,RST SYN,RST -j Drop

#iptables -A INPUT -p tcp –tcp-flags SYN,FIN SYN,FIN -j Drop

#iptables -A INPUT -p tcp –tcp-flags SyN SYN –dport 80 -j Drop


本文出自 “無心傷害” 博客,請務必保留此出處http://arckyli.blog.51cto.com/13756/1967915

網絡掃描利器-----NMAP