nmap学习

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
  • 1
  • 2
  • 3

无ping扫描:常用于防火墙禁止ping的情况,可穿透防火墙

nmap -P0 172.20.62.150
  • 1
  • 2

TCP SYN Ping扫描(默认80号端口,nmap通过SYN/ACK和RST的响应来判断,防火墙可能会丢弃RST包)

nmap -PS -v www.xxx.com
  • 1
  • 2

指定端口范围

nmap -PS80,100-200 -v www.xxx.com
  • 1
  • 2

TCP ACK Ping扫描(很多防火墙会封锁SYN报文,此时可以使用TCP ACK ping扫描)

nmap -PA www.xxx.com
  • 1
  • 2

ARP Ping扫描(一般用于扫描局域网)

nmap -PR 172.20.62.150
  • 1
  • 2

列表扫描

nmap -sL 172.24.171.1/24
  • 1
  • 2

禁止反向域名解析(永远不对目标ip地址作反向域名解析,单纯扫描一段ip时,使用该选项可以减少扫描时间)

nmap -n -sL 172.24.171.1/24
  • 1
  • 2

路由跟踪(需要root权限)

nmap --traceroute -sP 172.20.62.150
  • 1
  • 2

SCTP INIT Ping扫描(流控制传输协议,向目标发送INIT包,需要root权限)
nmap -PY -v 172.20.62.150

探索网络

Nmap的6种端口状态:
* Open
* Closed
* Filtered:可能被过滤,可能网络阻塞
* Unfiltered:可以访问,但未知端口处于开放还是关闭状态
* Open|Filtered
* Closed|Filtered:不能确定端口事关闭还说被过滤
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • -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扫描
致命缺点:无法确定端口是否开放还是被过滤
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

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.150
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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 * 补充保存文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值