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.150TCP SYN Ping扫描(默认80号端口,nmap通过SYN/ACK和RST的响应来判断,防火墙可能会丢弃RST包)
nmap -PS -v www.xxx.com指定端口范围
nmap -PS80,100-200 -v www.xxx.comTCP ACK Ping扫描(很多防火墙会封锁SYN报文,此时可以使用TCP ACK ping扫描)
nmap -PA www.xxx.comARP 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.150SCTP 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.com
hostmap-ip2hosts * ip反查 ip反查可将所有绑定在该ip上的域名显示出来 nmap -sn –script hostmap-ip2hosts www.xxx.com nmap -sn –script hostmap-ip2hosts 222.198.128.102
dns-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.com
dns-brute * 列举dns服务器的主机名 对baidu.com子域名进行枚举 nmap –script dns-brute –script-args dns-brute.domain=baidu.com
membase-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.xxx
smb-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.137
http-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.com
ssl-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.150nmap保存和输出
-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 * 补充保存文件