zoukankan      html  css  js  c++  java
  • Nmap基本使用教程

     如期而至!

     nmap这个渗透工具一般用在渗透的准备阶段,用于收集用户的信息,为后面的渗透做情报支持

    本教程分为14个小模块,分别为:

    1.nmap的安装和扫描的基本概念

    2.如何找到网络上的设备

    3.端口扫描概要

    4.端口扫面技术和算法

    5.优化nmap的性能

    6.服务和应用程序版本的识别

    7.远程操作系统的识别

    8.nmap的脚本引擎

    9.识别并绕过防火墙和IDS

    10.防御nmap扫描

    11.nmap的图形化程序zenmap

    12.格式化nmap的输出内容

    13.理解和设置nmap的数据文件

    14.总结

    一.nmap的安装和扫描的基本概念

    首先对于nmap的安装,可以自行百度,当然kali linux是内置了nmap的,只要在命令行下输入nmap即可使用,参数-version可以查看当前nmap的版本,如下图

    然后对于扫描简单的来说其实就是四个动作

    1.统一沟通语言  (TCP/IP协议)

    2.发出刺激           (ICMP报文头)

    3.受到刺激的反馈  (ICMP的反馈)

    4通过比对刺激和反馈完成扫描

    二.如何找到网络上的设备

    nmap的基本输入:

    将你要扫描的设备地址告诉nmap可以通过下面的方法实现

    统一格式:nmap  [扫描类型]  [设置]  {设备地址}

    其中设备地址(主机名,IP地址,网段等)可以通过以下方法

    1.-iL <文件名>          通过文件输入地址

    2.-iR <IP地址数目>

    3.--exclude <exclude_file> :排出文件中的地址

    4.直接输入IP或网段(最常用)

    上面是nmap两个简单扫描例子,仅反馈了一些简单的信息,但是对于其他的数据收集,nmap里面有详细的参数可以实现,下面将开始讲解一些常用参数的使用:

    扫描参数:

    1.-sL   不做扫描,仅完成DNS解析和网址的转换

    2.-sP    默认发ICMP echo请求和TCP的ACK请求(80端口)       

    3.-PN   不用ping

    4.-Ps    <端口号列表>    发TCP协议SYN标记的空包(80端口)

    5.-PA    <端口号列表>    发TCP协议ACK标记的空包(80端口)   

    6.-PU    <端口号列表>    (31338端口)

    7.-PE -PP -PM

    8.-PO <协议列表>

    9.-PR  (ARP ping)

    设置参数:

    --traceroute
    -n(不要做DNS解析)
    -R(DNS解析所有的地址,默认不解析不在线的IP)
    -system-dns(使用系统DNS)
    --dns-servers <server1>[,<server2>[,…]](使用其他DNS)

    三.端口扫描概要

    1.端口扫描:

    -p <端口号列表>

    2.端口状态:

      1.Open,端口开启,有程序监听此端口
      2.Closed,端口关闭,数据能到达主机,但是没有程序监听此端口。
      3.Filtered,数据未能到达主机。
      4.Unfiltered,数据能到达主机,但是Nmap无法判断端口开启还是关闭。
      5.Open|filtered,端口没有返回值,主要出现在UDP,IP,FIN,NULL和Xmas扫描
      6.Closed|filtered,只出现在IP ID idle 扫描。

    四.端口扫面技术和算法

    1.TCP标志位扫描

     -sS   TCP SYN扫描(匿名扫描,默认不加类型,需要root权限,扫描速度快)

    -sT   TCP全连接扫描(不需要root权限,TCP扫描的默认模式,端口状态和SYN相同,耗时长)

    2.UDP扫描

    -sU      (使用-sUV能增加扫描的准确性)

    没有UDP端口开放

    3.协议扫描

    -sO     获取服务器支持哪些协议

    常用的扫描一般就上面几种,其他的暂时不讲解,需要了解的可以自己去百度或者等我的nmap进阶教程整理出来。

    五.优化nmap的性能

    -F (快速扫描100个常用端口)

    其他的打算在nmap进阶教程再讲解

    六.服务和应用程序版本的识别

    有时候nmap探测出来的服务和版本信息并不是非常准确,不过我们可以通过加参数的方式使其精确

    1.-sV:探测开放端口的服务和版本信息
    2.--version-intensity<0-9>:设置探测深度
    3.--version-light:相当于0-2
    4.--version-all:相当于0-9
    5.--version-trace:显示版本扫描详情(用于调试)

    七.远程操作系统的识别

    1.-O:启动操作系统识别。
    2.--osscan-limit:限定只识别有端口开放的主机,提高-O和-A参数时的扫描速度。
    3.--osscan-guest<OS>:给NMAP建议的操作系统。类似于sqlmap的参数。
    4.--max-os-tries <次数>:设置重试次数(默认为5),提高准确性或者提高速度。

    八.nmap的脚本引擎

    九.识别并绕过防火墙和IDS

    十.防御nmap扫描

    十一.nmap的图形化程序zenmap

    十二.格式化nmap的输出内容

    十三.理解和设置nmap的数据文件

    十四.总结

     基础简单的nmap教程,基本使用参数就这些,不要看只有几个,组合起来其实还是比较多的,本教程暂时到这里,还有没有讲解的模块打算在下一篇的nmap进阶使用教程在讲解

    在此之前,希望大家能熟练掌握本教程的内容,最好的是去看看计算机网络原理,TCP/IP协议,脚本引擎.NET,脚本语言Lua,为进阶教程做好一定的知识储备,以免太晦涩看不懂。

  • 相关阅读:
    Redis 配置连接池,redisTemplate 操作多个db数据库,切换多个db,解决JedisConnectionFactory的设置连接方法过时问题。(转)
    Spring Boot 中初始化资源的几种方式(转)
    关于RedisTemplate和StringRedisTemplate(转)
    @PostConstruct
    Python % 格式化字符串
    逻辑回归模型
    python 常用内置函数
    HIVE: collect_set(输出未包含在groupby的字段);
    HDFS文件和HIVE表的一些操作
    Linux 传输文件
  • 原文地址:https://www.cnblogs.com/Acewipe/p/7589022.html
Copyright © 2011-2022 走看看