Nmap使用教程

Nmap使用教程

tags: Tips@Hak5.org,Hak5.org,metasploitminute.com,http://creativecommons.org/licenses/by-nc-sa/3.0/us/,Hakshop.com User Code:SNUBS,nmap.org/download,http://nmap.org/nsedoc/(这是nmap脚本的链接)

  • 1.安装与初次使用

    • 在终端上查看Nmap的版本

      nmap --version
      //如果没有安装
      apt-get install nmap
      
    • 查看计算机的端口状态

      nmap 192.168.43.80
      
  • 2 扫描多个目标,查看工作状态

    nmap 192.168.43.80 192.168.43.176 192.168.43.100
    //等同于
    namp 192.168.43.80,100,176
    
    nmap 192.168.43.1-100     //扫描1到100
    
    nmap 192.168.1-100.*       //扫描子网
    
    nmap 192.168.43.1/24     //扫描整个子网(24:闪光CIDR标记)
    
    cat list  //先查看已经存储好的IP列表
    nmap -iL list.txt    //扫描上述列表
    
  • 3.扫描网络并排除特定的目标

    nmap -iR 3     //随机扫描
    
    nmap 192.168.43.0/24 --exclude 192.168.43.80     //扫描排除192.168.43.80之外的在192.168.43.0网络中的IP
    
    nmap 192.168.43.0/24 --exclude 192.168.43.80-90
    
    nmap 192.168.43.0/24 --excludefile list.txt
    
  • 4.扫描开放网络端口

    nmap -A 192.168.43.80    //调用一些集成的命令,-o 识别远程操作系统;-sC 运行默认的脚本扫描
    
    nc 192.168.43.80 23.......//如果我的电脑开了netcat,这样可以登录192.168.43.64(一般是64)这台惠普的电脑
    
  • 5.使用可选包扫描网络

    nmap -PN 192.168.43.80   //跳过第一次ping尝试,然后对目标进行扫描(Don't ping),扫描安全级别更高的目标
    
    nmap -sP 192.168.43.0/24   //Simple ping只通过ping来扫描
    
    nmap -PS 192.168.43.80     //使用TCP SYN协议来发送SYN数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行)
    
    nmap -PS22,80,443 192.168.43.80     //可以添加不同的端口进行发送扫描
    
    nmap -PS 192.168.43.80     //使用TCP ACK协议来发送ACK数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行)
    
    nmap -PU 192.168.43.80     //使用UDP协议来发送数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行)
    
    nmap -PY 192.168.43.80     //使用CTP协议来发送数据包,而不是ICMP(如果目标地址的ICMP被阻塞了,这个命令依旧能够执行)
    
    nmap -PE 192.168.43.80     //不设置时就默认使用-PE(ICMP Address Mask Ping,ICMP地址掩码嗅探)嗅探ICMP
    
    nmap -PP 192.168.43.80   //一个ICMP时间戳嗅探命令,嗅探被防火墙保护的目标
    
    nmap -PO 192.168.43.80   //代表IP协议,发送特定的协议找到目标
    
    nmap -PO1,2,4 192.168.43.80   //代表IP协议,发送特定的协议找到目标(1:ICMP;2:IGMP;4:IP)
    
    namp -PR 192.168.43.80   //ping命令,速度 快精准,防火墙无法拦截,当目标不在本地网络时不能使用
    
    nmap --traceroute 192.168.43.80    //路由跟踪
    
    nmap -R 192.168.43.80    //TAC选项实验DNS反向查找
    
    nmap --system-dns 192.168.43.80  //DNS查找,他使用主机系统和DNS自己的解析器
    
    nmap --dns-servers 208.67.222.222,208.84.54.222 192.168.43.80   //指定DNS服务器查找,绕过了本地系统中默认配置的DND服务器
    
    nmap -SL 192.168.43.80    //创建一个主机列表,用来确定目标的IP地址和DNS名称,但不向目标发送任何数据包
    
  • 6.先进的扫描技术

    nmap -sS 192.168.43.80    //TCP SYN链接扫描
    
    nmap -sT 192.168.43.80  //tcp链接,针对没有root权限的用户
    
    nmap -sU(or sF) 192.168.43.80   //得到使用者的UDP协议的数据包
    
    nmap -n 192.168.43.80    //在tcp节点的扫描
    
    nmap -sF 192.168.43.80   //从目标的包中获取一些tcp信息
    
    nmap -sX 192.168.43.80   //Exmouth扫描
    
    nmap -scanflags ACKPSH   //用你自己选择的包运行用户扫描(链接ACKPSH,可以通过输入ac来避免紧急的危害或用G来紧急重置,rst用来重置)
    
    nmap -sO(or s/ a/ A) 192.168.43.80    //TCP扫描,可发现目标是否被防火墙保护
    
    nmap --send-eth 192.168.43.80   //???
    
    nmap --send-ip 192.168.43.80  //改变本机使用原始IP数据包
    
  • 7.端口扫描选项

    nmap -F 192.168.43.80    //快速扫描
    
    nmap -p 80 192.168.43.80  //扫描特定的端口
    
    nmap -p 80,23,8080,443-555 192.168.43.80
    
    nmap -p http 192.168.43.80    //扫描http服务
    
    nmap -p "sm" 192.168.43.80   //扫描所有含有“sm”的协议
    
    nmap -sU -sT -p U:53,T:25 192.168.43.80    //和之前的一样,这里只是用U,T指定了端口
    
    nmap -p "*" 192.168.43.80   //扫描所有
    
    nmap --top-ports 54 192.168.43.80   //常用端口,54:端口号
    
    nmap -r -v 192.168.43.80     //顺序扫描(入侵防火墙时有用,或者逃避检查)v:显示不安全的报告
    
  • 8.系统检测

    nmap -O 192.168.43.80   //检测操作系统
    
    nmap -V 192.168.43.80    //SYN扫描,获取系统信息
    
    nmap -O --osscan-guess 192.168.43.80    //nmap不能识别是什么操作系统时,这个命令显示最大可能性的操作系统
    
    nmap --fuzzy 192.168.43.80    //显示最大可能性的操作系统
    
    nmap -sV 192.168.43.80    //目标哪些服务在运行
    
    nmap -sV --version-trace 192.168.43.80    //目标哪些服务在运行,并且检测服务版本
    
    nmap -sR 192.168.43.80    //RPC scan远程程序调用扫描
    
  • 9.时间选项

    nmap -T0 192.168.43.80   //-T0控制扫描的速度0:最慢;5:最快(同时开启几个端口进行扫描)
    
    nmap -max-parallelism 4 (or -mix-parallelism) 192.168.43.80   //控制扫描速度,最大端口数为上面设置的4
    
    nmap -min-hostgroup (or -max-hostgroup)  10 192.168.43.1/24   //最少同时扫描10个主机
    
    nmap -initial-rtt-timeout 6000 192.168.43.80    //修改RTT超时值(毫秒,默认为10秒
    
    nmap --max-retries 3 192.168.43.80    //尝试3次之后放弃
    
    nmap --ttl 100 192.168.43.80     //TTL数据包的选择
    
    nmap --host-timeout 1m 192.168.43.80   //在指定时间内回应主机
    
    nmap --scan- delay 10s 192.168.43.80   //设置探针之间的时间延迟(有利于提高每个命令的准确性,但速度较慢)
    
    nmap --max-scan-delay 20s 192.168.43.80    //设置最大扫描延迟
    
     nmap --min-rate 50 192.168.43.80    //设置nmap数据包每秒最低发送量:50(数量过高可能导致结果不准确)
    
     nmap --max-rate 10 192.168.43.80    //想做系统上的偷袭,避免一些探测系统的最大数据包速率的选择,降低扫描速率(每秒最多10个)
    
     nmap --defeat-rst-ratelimit 192.168.43.80    //请求复位数据包(如果解除复位率限制,一些目标可能袭击RST包)
    
  • 10.和防火墙的乐趣

    nmap -f 192.168.43.80   //这个命令发送小于8个字节的探针,去扫描,任何防火墙和入侵检测系统都无法发现
    
    nmap --mtu 8 192.168.43.80   //规定了最大传输单位(可以设置为任何8的倍数),也可以在这个命令中加上 send ETH 
    
    nmap -D RND:10 192.168.43.80   //诱饵选项,是你的扫描使用许多伪装的IP,所以这个命令发送几个数据包到目的地,但是对于目标而言,却是统一时间被不同的机器扫描
    
    nmap -sL 伪装地址(ip) 192.168.43.80   //使用伪装地址嗅探
    
    nmap --source-port 54 192.168.43.80   //指定端口号(54)扫描
    
    nmap --data-length 25 192.168.43.80   //加了一些探测数据包的随机数据,因为有时目标寻找特定大小的包去接受,几乎可以得到任何你想看到的字节大小,做一个特定的大小取决于特定的目标(你想进入的)
    
    namp --randomize-hosts 192.168.43.80-160    //随机化你的目标,通过使用不同的脚本,遍历80到160,不泄露一些网络设备的MAC地址
    
    nmap -sT -PN --spoof -mac 0 192.168.43.80  //0的结尾是告诉nmap生成随机行为,无论什么扫描,
    
    nmap --badsum 192.168.43.80   //最后给检测者发送假的内容
    
  • 11.如何输出文件

    nmap -oN scan.txt 192.168.43.1/24   //将扫描的结果保存在scan.txt中,也可以使用--append -output在txt文件中修改名称
    
    nmap -oX scan.xml 192.168.43.1/24   //将扫描的结果保存在scan.xml中
    
    nmap -oG scantron.txt 192.168.43.1/24   //将扫描的结果保存在scan.txt中,使用  grep "microsoft" scantron.txt   查看文件中的“”指定内容
    
    nmap -oA scan2 192.168.43.1/24    //生成多个文件.xml .nmap(.txt) .gnmap(.grep)
    
  • 12.如何使用排错选项

    nmap -h      //获取帮助
    
    man nmap     //查看使用手册
    
    nmap -v      //查看版本
    
    nmap -d 192.168.43.80     //nmap调试(-d1:调试数量最小;-d9:调试数量最大,耗时长)
    
    nmap --reason 192.168.43.80   //查看端口状态(conn-refused:拒绝;syn-acked:打开)
    
    nmap --open 192.168.43.80   //扫描打开的端口,忽略关闭的
    
    nmap --packet-trace 192.168.43.80   //展示扫描过程中发送或者接收的包
    
    nmap --packet-trace test.txt 192.168.43.80     //展示扫描过程中发送或者接收的包,并保存在txt中(文件名添加在命令最后,是在IP之后还是上面写的那样???)
    
    nmap -iflist     //展示那些配置在你电脑上的网络接口和路由信息
    
    nmap -e wlan0(or eth0,eth1,wlan1) 192.168.43.80   //指定扫描的目标的特定网络接口类型
    
  • 13.nmap脚本引擎(Lua语言)

    • 使用终端进入nmap的目录scripts,运行相关脚本,有400多个脚本,功能需要自己了解(百度)

      nmap --script banner 192.168.43.80   //通过连接开放的TCP端口,实现Banner劫持,然后输出所有信息
      
      nmap --script "http*" 192.168.43.80     //执行你的脚本库中有“http”或者别的码字的脚本,进行扫描,输出脚本文件预置的信息
      
      nmap --script default 192.168.43.80   //使用默认的脚本进行扫描
      
      nmap --script ftp-anon --script-trace -p 21 192.168.43.80   //在使用脚本时遇到问题,使用ftp-anon脚本,在nmap连接21端口时,追踪nmap的运行
      
      nmap --script-updatedb   //升级
      
  • 14.Zenmap内部结构

    • target:目标IP
    • profile:选择命令
    • scan:开始扫描
    • Hosts:列出所有扫描的目标
    • Services:运行的服务
    • 自己玩吧
  • 15.NDiff和技巧

    ndiff test.xml test2.xml    //比较两个文件(-:第一个文件;+:第二个文件,你可以看到他们的不同与相同之处)
    
    ndiff -v test1.xml test2.xml    //查看详细信息
    
    ndiff --xml   //在屏幕上输出xml的输出信息,信息进入一个新的xml文件
    
    nmap 192.168.43.0/24    //运行交互,在运行过程中按 v:显示详细过程信息,d:调试信息;p:查看追包
    
-------------本文结束感谢您的阅读-------------
0%