• 渗透测试之主机探测与端口扫描


    前置知识

      活跃主机:指已连接到网络上、处于运行状态且网络功能正常的主机。检查主机是否活跃是网络管理员最常做的一件事,不过作为网络管理员,一般只需要使用ICMP ping 进行探测就能够满足需求,但是作为一名渗透测试者,需要从大范围的IP地址断中寻找出活跃的主机,然后进一步筛选出感兴趣的目标主机。

    一、ICMP Ping命令

      ping是基于ICMP协议的,ICMP全程Internet Control Message Protocol,就是互联网控制报文协议,网络包在异常复杂的网络环境进行传输的时候,常常会遇到各种各样的问题,当遇到问题的时候,总要传出消息来,报告情况,这样才可以调整传输策略。

      它是用来检查网络是否通畅或者网络连接速度的命令。作为一个生活在网络上的管理员或者黑客来说,ping 命令是第一个必须掌握的 DOS 命令,它所利用的原理是这样的:网络上的机器都有唯一确定的IP地址,我们给目标 IP 地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。

    下面就来看看它的一些常用的操作。先看看帮助吧,在 DOS 窗口中键入:ping /? 回车

       

    在此,我们只掌握一些基本的很有用的参数就可以了.

    • -t 表示将不间断向目标 IP 发送数据包,直到我们强迫其停止。试想,如果你使用 100M 的宽带接入,而目标 IP 是 56K 的小猫,那么要不了多久,目标 IP 就因为承受不了这么多的数据而掉线,呵呵,一次攻击就这么简单的实现了。
    • -l 定义发送数据包的大小,默认为 32字节,我们利用它可以最大定义到 65500字节。结合上面介绍的 -t 参数一起使用,会有更好的效果哦。
    • -n 定义向目标 IP 发送数据包的次数,默认为 3次。如果网络速度比较慢,3次对我们来说也浪费了不少时间,因为现在我们的目的仅仅是判断目标 IP 是否存在,那么就定义为 1次吧。说明一下,如果 -t 参数和 -n 参数一起使用,ping 命令就以放在后面的参数为标准,比如“ping IP -t -n 3”,虽然使用了 -t 参数,但并不是一直 ping 下去,而是只 ping 3次。另外,ping 命令不一定非得 ping IP,也可以直接 ping 主机域名,这样就可以得到主机的 IP。

     二、Metasploit的主机发现模块

      Metasploit 中提供了一些辅助模块可用于活跃主机的发现,这些模块位于Metasploit 源码路径的modules/auxiliary/scanner/discovery/ 目录中,主要有以下几个:arp_sweep、ipv6_multicast_ping、ipv6_neighbor、ipv6_neighbor_router_advetisement、 udp_probe、udp_sweep.其中两个常用模块的主要功能为:arp.sweep使用ARP请求枚举本地局域网络中的所有活跃主机。udp.sweep通过发送UDP数据包探查指定主机是否舌跃,并发现主机上的UDP服务。在TCP/IP网络环境中,一台主机在发送数据帧前需要使用ARP (Address ResolutionProtocol,地址解析协议) 将目标IP地址转换成MAC地址,这个转换过程是通过发送一一个ARP请求来完成的。如IP 为A的主机发送一-1ARP请求获取IP 为B的MAC地址,此时如果IP为B的主机存在,那么它会向A发出一个回应。因此,可以通过发送ARP请求的方式很容易地获取同一子网上的活跃主机情况,这种技术也称为ARP扫描。

      启动metasploit

        msfconsole

       加载模块

    use auxiliary/scanner/discovery/arp_sweep

      设置参数

    set RHOSTS 36.5.172.0/24     //设置目标网段
    set THREADS 50               //设置线程数

       查看参数配置

    show options

       运行

    exploit

     三、使用nmap进行主机探测

    NMAP(Network Mapper)是一款开放源代码的网络探测和安全审核的工具。它的设计目标是快速地扫描大型网络,当然用它扫描单个主机也没有问题.Nmap以新颖的方式使用原始IP报文来发现网络上有一些主机,那些主机提供什么服务(应用程序名和版本),那些服务运行在什么操作系统(包括版本信息),它们使用什么类型的报文过滤器/防火墙,以及一堆其他功能。虽然Nmap通常用于安全审核,许多系统管理员和网络管理员也用它来做一些日常的工作,选择查看整个网络的信息,管理服务升级计划,以及监视主机和服务的运行。

    Nmap输出的是扫描目标的列表,以及每个目标的补充信息,至于是什么信息则依赖于所使用的选项。 “所寻找的端口表格”是其中的关键。那张表列出端口号,协议,服务名称和状态。状态可能是 open(开放的),filtered(被过滤的), closed(关闭的),或者unfiltered(转换过滤的)。Open(开放的)意味着目标机器上的应用程序正在该端口监听连接/报文。 filtered(被过滤的)意味着防火墙,过滤器或者其它网络障碍阻止了该端口被访问,Nmap的无法得知它是 open(开放的)还是closed(关闭的)。 closed(关闭的)端口没有应用当端口对Nmap的探测触发响应,但是Nmap无法确定它们是关闭还是开放时,这些端口就被认为是 unfiltered(过滤过滤的)如果Nmap报告状态组合 open|filtered和 closed|filtered时,那说明Nmap无法确定该端口处于两个状态中的哪一个状态。当要求进行版本探测时,端口表也可以包含软件的版本信息。当要求进行IP协议扫描时(-sO),Nmap提供关于所支持的IP协议而不是正在监听的端口的信息。

    除了所感兴趣的端口表,Nmap还可以提供关于目标机的进一步信息,包括反向域名,操作系统标题,设备类型,和MAC地址。

      在MSF终端中输入不加任何参数的nmap命令,查看其使用方法。

       nmap的使用格式

    nmap   <扫描选项>     <扫描目标>
    注:nmao扫描器会使用与ping命令一样的机制,向目标网络发送ICMP的echo请求,同时会测试目标系统的80和443端口是否打开。

       查看目标网站的系统类型

    nmap -O 目标地址

  • 相关阅读:
    这里已不再更新,访问新博客请移步 http://www.douruixin.com
    Javaweb学习笔记10—文件上传与下载
    Javaweb学习笔记9—过滤器
    Javaweb学习笔记8—DBUtils工具包
    Javaweb学习笔记7—JDBC技术
    Javaweb学习笔记6—EL表达式与JSTL及自定义标签
    Javaweb学习笔记5—Cookie&Session
    Javaweb学习笔记4—Reuest&Response
    Javaweb学习笔记3—Serverlet
    Javaweb学习笔记2—Tomcat和http协议
  • 原文地址:https://www.cnblogs.com/GLory-LTF/p/15031996.html
Copyright © 2020-2023  润新知