Nmap主机发现
- -sP * Ping扫描 *
- -P0 * 无Ping扫描 *
- -PS * TCP SYN Ping扫描 *
- -PA * TCP ACK Ping扫描 *
- -PU * UDP ping扫描
- -PE/PM/PP * ICMP Ping Types扫描
- -PR * ARP Ping扫描
- -n * 禁止DNS反向解析 *
- -R * 反向解析域名 *
- –system-dns * 使用系统域名解析器
- -sL * 列表扫描 *
- -6 * 扫描IPv6地址
- –traceroute * 路由跟踪
- -PY * SCTP INIT Ping扫描
ping扫描
nmap -sP xxx.xxx.xxx.xxx/www.name.com
nmap -sP 172.20.62.1-254
无ping扫描:常用于防火墙禁止ping的情况,可穿透防火墙
nmap -P0 172.20.62.150
TCP SYN Ping扫描(默认80号端口,nmap通过SYN/ACK和RST的响应来判断,防火墙可能会丢弃RST包)
nmap -PS -v www.xxx.com
指定端口范围
nmap -PS80,100-200 -v www.xxx.com
TCP ACK Ping扫描(很多防火墙会封锁SYN报文,此时可以使用TCP ACK ping扫描)
nmap -PA www.xxx.com
ARP Ping扫描(一般用于扫描局域网)
nmap -PR 172.20.62.150
列表扫描
nmap -sL 172.24.171.1/24
禁止反向域名解析(永远不对目标ip地址作反向域名解析,单纯扫描一段ip时,使用该选项可以减少扫描时间)
nmap -n -sL 172.24.171.1/24
路由跟踪(需要root权限)
nmap --traceroute -sP 172.20.62.150
SCTP INIT Ping扫描(流控制传输协议,向目标发送INIT包,需要root权限)
nmap -PY -v 172.20.62.150
探索网络
Nmap的6种端口状态:
* Open
* Closed
* Filtered:可能被过滤,可能网络阻塞
* Unfiltered:可以访问,但未知端口处于开放还是关闭状态
* Open|Filtered
* Closed|Filtered:不能确定端口事关闭还说被过滤
- -T * 时序选项
- -p|-F|-r * 常用扫描方式
- -sS * TCP SYN扫描:(需要root权限)
- -sT * TCP连接扫描:完整三次握手,最基础最稳定的扫描方式
- -sU * UDP扫描(速度非常慢,一般用-p指定端口范围以节约时间)
- -sN/sF/sX * 隐蔽扫描
- -sA * TCP ACK扫描
- -sW * TCP窗口扫描
- -sM * TCP Maimon扫描
- –scanflags * 自定义TCP扫描
- -sI * 空闲扫描
- -sO * IP协议扫描
-b * FTP Bounce扫描
时序选项:
-T0(偏执的):非常慢的扫描,用于IDS逃避
-T1(鬼祟的):缓慢的扫描,用于IDS逃避
-T2(文雅的):降低速度以降低对带宽的消耗,一般不同
-T3(普通的):默认,根据目标的反应自动调整时间
-T4(野蛮的):快速扫描,常用,需要在很好的网络环境下进行扫描,请求可能会淹没目标
-T5(疯狂的):极速扫描,以牺牲准确度来提升扫描速度
nmap -T4 172.20.62.150
常用扫描方式:
指定端口扫描:
nmap -p 80 172.20.62.150
nmap -p 80-1000 172.20.62.150
TCP SYN扫描:又称为半开放扫描,常见扫描方式,扫描速度较快
由于未进行TCP连接,比较隐蔽,很难背防火墙或管理员发现
nmap -sS 172.20.62.150(需要root权限)
隐蔽扫描
-sN是Null扫描
-sF是Fin扫描(发送FIN包)
-sX是Xmas扫描(将数据包的FIN/PSH/URG都标记为1)
TCP ACK扫描
致命缺点:无法确定端口是否开放还是被过滤
Nmap指纹识别与探测
-sV * 版本探测
版本探测不是进行端口扫描,而是通过相应的端口对应的服务,根据服务指纹识别出相应的版本
nmap -sV -A www.xxx.com–allports * 全端口版本探测
–version-intensity * 设置扫描强度
强度在0~9之间,默认强度为7,值越高,服务越可能被正确识别,一般会牺牲更多时间
nmap -sV –version-intensity 1 www.xxx.com–version-light * 轻量级扫描,对应–version-intensity 2
能够大幅节省扫描时间
nmap -sV –version-light www.xxx.com–version-all * 重量级扫描,对应–version-intensity 9
–version-trace * 获取详细版本信息
-sR * RPC扫描
-O * 启用操作系统探测 *
–osscan-limit * 对指定的目标进行系统探测
–osscan-guess/–fuzzy * 推测系统识别
调整并行扫描组的大小(默认为5-1024)
- –min-hostgroup * 最小的组
–max-hostgroup * 最大的组
nmap –min-hostgroup 30 172.20.62.1/24
nmap –max-hostgroup 50 172.20.62.1/24–min-parallelism 大于1可以在网络或主机不好的情况下更好的扫描,但会影响结果的准确度
–max-parallelism 应设置为1,防止nmap对同一主机同一时间发送多次报文
nmap –min-parallelism 100 172.20.62.150
nmap –max-parallelism 100 172.20.62.150调整探测报文超时(单位为毫秒,一般情况下rtt值不得小于100ms,也最好不要大于1000ms)
- –min-rtt-timeout
- –max-rtt-timeout 规定为100ms较为合适
–initial-rtt-timeout
nmap –initial-rtt-timeout 1000ms 172.20.62.150
记得加上时间单位ms,否则将运行失败放弃缓慢的目标主机(单位为毫秒,一般设置为1800 000ms,即扫描单个主机不超过半小时)
–host-timeout
nmap –host-timeout 100ms 172.20.62.150
设置时间较小,可能会导致nmap来不及扫描更多主机就被迫停止扫描调整报文适合时间间隔(单位为毫秒),控制nmap对一个或多个主机发送探测报文的等待时间(谨慎使用)
–scan-delay
–max-scan-delay
nmap –scan-delay 1s 172.20.62.150
防火墙/IDS逃逸
入侵检测系统(Intrusion Detection Systems, IDS)
-f * 报文分段
将TCP头分段在几个包中,使得包过滤器、IDS以及其他工具的检测更加困难。例:某些主机会禁止相应ICMP请求,使用报文分段的方法可以逃避目标防火墙的规则,使用该选项时需小心,处置不当可能会出现某些错误
nmap -f -v 172.20.62.150–mtu * 指定偏移大小
用于设置TCP/IP协议传输数据报时的最大传输单元,注意:偏移量必须时8的倍数
nmap –mtu 16 172.20.62.150-D * IP欺骗
11个随机的ip地址向目标主机发送SYN包
RND:随机生成地址
nmap -D RND:11 172.20.62.150
使用4个指定的ip地址对目标进行扫描,ME为自己的真实ip
nmap -D 192.168.0.1,192.168.0.2,192.168.0.254,ME 172.20.62.150
诱饵主机必须处于工作状态,否则会导致目标主机的SYN洪水攻击?-sI * 源地址欺骗
–source-port * 源端口欺骗(也可使用-g)
nmap –source-port 53 172.20.62.150
//指定53号端口进行扫描–data-length * 指定发包长度
如tcp包为40字节,icmp echo为28字节,在原有报文基础上增加随机数据达到规避防火墙的效果
nmap –data-length 30 172.20.62.150
//对目标主机发送30字节大小的包–randomize-hosts * 目标主机随机排序
–spoof-mac * MAC地址欺骗
参数:
0:随机生成一个mac地址
MAC Address:手动指定一个Mac地址
Vendor Name:从指定厂商生产一个mac地址
nmap -sT -PN –spoof-mac 0 172.20.62.150
信息搜集
–script ip-geolocation-* * ip信息搜集(root)
nmap –script ip-geolocation-* www.xxx.com
如果目标域名使用了CDN,则获取的ip等信息并不是目标域名的真实信息whois * whois查询
whois是用于查询互联网中域名的ip以及所有者等信息的传输协议(tcp,43号端口)
大部分的网站现在都启用了whois保护,对域名所有者的姓名电话等信息进行隐藏
nmap –script whois www.xxx.comhostmap-ip2hosts * ip反查
ip反查可将所有绑定在该ip上的域名显示出来
nmap -sn –script hostmap-ip2hosts www.xxx.com
nmap -sn –script hostmap-ip2hosts 222.198.128.102dns-brute * dns信息搜集
dns使用tcp和udp的53号端口
每一级域名长度限制是63个字符,域名总长度不能超过253个字符。
资源记录类型:
1、主机记录(A记录):RFC1035定义,将特定主机名映射到对应主机的ip地址上
2、别名记录(CNAME记录):RFC1035定义,用于将某个别名指向到某个A记录上,这样就不需要再为某个新名字另外创建一条新的A记录
3、IPv6主机记录(AAAA记录):RFC3596定义,与A记录对应,将特定的主机名映射到一个主机的IPv6地址
4、服务位置记录(SRV记录):RFC2782定义,用于定义提供特定服务的服务器的位置,如主机、端口等
5、NAPTR记录:RFC3403定义,提供正则表达式方式区映射一个域名。
全球503个根域名服务器(分为13组,编号为A-M)
nmap –script dns-brute www.xxx.comdns-brute * 列举dns服务器的主机名
对baidu.com子域名进行枚举
nmap –script dns-brute –script-args dns-brute.domain=baidu.commembase-http-info * 检索系统信息
nmap -p 445 172.20.62.150 –script membase-http-info
了解系统详细信息smb-security-mode.nse * 后台打印机服务漏洞
nmap –script smb-security-mode.nse -p 445 xxx.xxx.xxx.xxxsmb-check-vulns.nse * smb漏洞扫描
nmap –script smb-check-vulns.nse -p 445 172.20.62.150//未验证命令snmp-win32-services * 通过snmp列举windows服务/账户
nmap -sU -p 161 –script=snmp-win32-services 172.20.62.137
nmap -sU -p 161 –script=snmp-win32-users 172.20.62.137http-headers/http-sitemap-generator * http信息搜集
对http版本进行探测
nmap -sV -p 80 www.xxx.com
http头信息探测
nmap -p 80 –script=http-headers www.xxx.com
http目录结构探测
nmap -p 80 –script=http-sitemap-generator www.xxx.comssl-enum-ciphers * 枚举ssl密钥
SSL(Secure Sockets Layer,安全套接层)
TLS(Transport Layer Security,传输层安全)
nmap -p 443 –script=ssl-enum-ciphers www.baidu.com
服务器支持的密钥算法ssh-hostkey * SSH服务密钥信息探测
nmap -p 22 –script ssh-hostkey –script-args ssh_hostkey=full 127.0.0.1
查看ssh服务的密钥信息
ssh_hostkey指的是密钥输出格式:full, bubble, visual, all
nmap技巧
发送以太网数据包: nmap --send-eth 172.20.62.150
网络层发送: nmap --send-ip 172.20.62.150
假定拥有所有权: nmap --privileged 172.20.62.150
设置调试级别: nmap -d 1 172.20.62.150
级别范围1-9,9为最高级,产生的数据最多
跟踪发送接受的报文:(-p指定端口范围,减少产生的报文): nmap --packet-trace -p 20-30 172.20.62.150
列举接口和路由:(多用于调试路由): nmap -iflist 172.20.62.150
指定网络接口:指定从en0发送数据: nmap -e en0 172.20.62.150
探测防火墙: nmap --script=firewalk --traceroute 172.20.62.150
nmap保存和输出
-oN * 标准保存
nmap -F -oN test1.txt 172.20.62.150-oX * XML保存
nmap -F -oX test1.xml 172.20.62.150-oS * 133t保存
-oG * Grep保存
-oA * 保存到所有格式
nmap -F -oA testA 172.20.62.150–append-output * 补充保存文件