网络扫描利器-----NMAP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络扫描利器-----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的主要内容,如果未能解决你的问题,请参考以下文章

Linux 系统扫描nmap与tcpdump抓包

网络安全:Nmap端口扫描

nmap扫描工具的使用二 网络探测

网络安全漏洞扫描器Nmap的使用说明

网络扫描工具nmap

扫描工具nmap介绍