网络扫描利器-----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的主要内容,如果未能解决你的问题,请参考以下文章