zoukankan      html  css  js  c++  java
  • 渗透测试常用工具-目标识别

    whatweb

    简单粗暴,百试不爽。
    在这里插入图片描述

    arping

    1 、arping命令是用于发送arp请求到一个相邻主机的工具,arping使用arp数据包,通过ping
    命令检查设备上的硬件地址。能够测试一个ip地址是否是在网络上已经被使用,并能够获取更多
    设备信息。功能类似于ping。
    2、由于防火墙的使用等原因,部分主机会出现ping不通的状况。Arping通过发送Arp request
    的方式进行测试(直连网络),确定一个特定的ip在线。
    3、arping给一个主机,发送arp或者ICMP包,并打印回复的消息。主机可以以hostname,ip
    地址,mac地址等形式出现。一个请求包,每隔一秒发送一次。为什么说发送的包有arp和icmp
    呢,因为,当主机为ip或hostname的时候,发送的是arp请求包。当主机是mac地址的时候,
    发送的则是icmp的echo广播包

    扫描测试

    关于协议分析:arp协议分析

    • 普通扫描

    单一目标普通扫描

    在这里插入图片描述

    -c ping次数
    在这里插入图片描述

    本地arp缓存表

    在这里插入图片描述

    fping

    一、Fping程序类似于ping。Fping与ping不同的地方在于,fping可以在命令行中指定要ping的主机数量范围,也可以指定含有要ping的主机列表文件。

    二、与ping要等待某一主机连接超时或发回反馈信息不同,fping给一个主机发送完数据包后,马上给下一个主机发送数据包,实现多主机同时ping。如果某一主机ping通,则此主机将被打上标记,并从等待列表中移除,如果没ping通,说明主机无法到达,主机仍然留在等待列表中,等待后续操作。
    PS:(ping是通过ICMP(网络控制信息协议InternetControl Message Protocol)协议回复请求以检测主机是否存在)
    三、UNIX和Windows环境都有许多可以用来进行ICMPping扫描的工具。fping是UNIX环境里久经考验的ping扫描工具之一。早期的ping扫描工具大都需要等待前一个被探测主机返回某种响应消息之后才能继续探测下一台主机是否存在,但fping却能以轮转方式并行地发出大量的ping请求。这么一来,用fping工具去扫描多个IP地址的速度要比ping快很多。

    扫描测试

    关于icmp协议分析:icmp协议分析

    在这里插入图片描述

    对整个局域网的扫描
    -g 参数的意思是我们对整个网段进行存活扫描

    在这里插入图片描述

    也可以将扫描结果收录进.txt文件中,加快审计
    在这里插入图片描述

    -ag和-g的区别就在于回显的结果 -ag仅仅回显存活的ip地址 -g的意思是回显整个网段所有IP的存活情况
    在这里插入图片描述

    -s 参数是对最后结果的一个统计 -n 将目标以主机名或域名显示

    在这里插入图片描述在这里插入图片描述

    genlist

    1、主机发现在渗透过程中是必不可少的一步,通过它我们可以快速探测主机的活动状态,方便后续
    使用的展开。
    2、与fping不同的是,genlist多个主机发现更为简洁,之显示活跃主机信息,速度上和fping基本相同,因此建议二者结合使用。

    测试扫描

    在这里插入图片描述

    genlist扫描速度相对较快
    在这里插入图片描述

    nbstcan

    nbtscan一款用于扫描Windows网络上NetBIOS名字信息的程序。该程序对给出范围内的每一个地址发送NetBIOS状态查询,并且以易读的表格列出接收到的信息,对于每个响应的主机,NBTScan列出它的IP地址、NetBIOS计算机名、登录用户名和MAC地址。但只能用于局域网,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。但只能用于局域网,NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。NBTSCAN可以取到PC的真实IP地址和MAC地址,如果有”ARP攻击”在做怪,可以找到装有ARP攻击的PC的IP/和MAC地址。总之,NBTSCAN可以取到PC的真实IP地址和MAC地址。

    工作原理

    A主机首先发送了一个广播包NBNS,询问局域网内,哪个主机的ip是1.1.1.1,B主机在收到此NBNS包后做出相应,发了一个ARP的广播包,询问A主机的MAC地址,此后A主机响应一个ARP数据包,B主机在收到A主机的ARP数据包后得知了A主机的MAC地址,于是返回了一个NBNS相应报,通过NBNS协议告诉A主机,ip为1.1.1.1的主机名为TEST-0EAD2165FF.(网络基本输入/输出系统 (NetBIOS) 名称服务器 (NBNS) 协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法 NetBIOS是Network Basic Input/Output System的简称,一般指用于局域网通信的一套API)

    这里是nbtscan的详细命令
    nbtscan [-v] [-d] [-e] [-l] [-t timeout] [-b带宽] [-r] [-q] [-s分隔符] [-m retransmits](-f filename) |()
    -v详细输出。打印收到的所有名字
    来自每个主机
    -d转储数据包。打印整个数据包内容。
    -e以/ etc / hosts格式输出格式。
    -l以lmhosts格式输出格式。
    不能与-v,-s或-h选项一起使用。
    -t超时等待超时毫秒为响应。
    默认1000。
    -b带宽输出节流。减慢输出
    所以它不使用更多的带宽bps。
    对慢速链接有用,以至于无处可查
    不要掉线。
    -r使用本地端口137进行扫描。
    -q禁止横幅和错误信息,
    -s分隔符脚本友好的输出。不要打印列和记录标题,用分隔符分隔字段。
    -h为服务打印可读的名称只能与-v选项一起使用。
    -m转发重传次数。默认0。
    -f文件名将IP地址从文件文件名中扫描。
    要扫描什么 可以是单个IP
    像192.168.1.1或者
    地址范围有两种形式之一:
    xxx.xxx.xxx.xxx/xx或xxx.xxx.xxx.xxx-xxx。

    结果可以发现172.15.20.136是存活的

    扫描测试

    在这里插入图片描述

    -r 参数扫描整个局域网
    在这里插入图片描述
    在这里插入图片描述

    onesixtyone

    简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer
    protocol)、数据库模型(database schema)和一组资源对象。该协议能够支持网络管理系统,用以
    监测连接到网络上的设备是否有任何引起管理上关注的情况。该协议是互联网工程工作小组(IETF,
    Internet Engineering Task Force)定义的internet协议簇的一部分。SNMP的目标是管理互联网
    Internet上众多厂家生产的软硬件平台,因此SNMP受Internet标准网络管理框架的影响也很大。SNMP
    已经出到第三个版本的协议,其功能较以前已经大大地加强和改进了。
    通过SNMP服务,渗透测试人员可以获取大量的设备和系统信息。在这些信息中,系统信息最为关键,
    如操作系统版本、内核版本等。Kali Linux提供一个简易SNMP扫描器onesixtyone。该工具可以批
    量获取目标的系统信息。同时,该工具还支持SNMP社区名枚举功能。安全人员可以很轻松获取多台
    主机的系统信息,完成基本的信息收集工作。

    关于snmp协议分析:snmp协议分析

    扫描测试

    bt5中自带snmp扫描脚本与字典
    在这里插入图片描述
    在这里插入图片描述

    通过结果可以发现onesixtyone命令的意思
    -c字典的文件名
    -i主机的地址
    -o 把扫描的结果保存到某个文件里面
    -d调试模式,请使用两次以获取更多信息

    -w n在发送数据包(默认为10)之间等待n毫秒(1/1000秒)
    -q 不要打印日志到标准输出,使用-l
    例子:
    onesixtyone -c dict.txt 192.168.4.1 public
    onesixtyone -c dict.txt -i hosts -o my.log -w 100

    2 、因为onesixtyone就只有个命令 所以我们使用这个命令对靶机进行snmp弱口令的扫描

    命令的意思是-c 的是字典名 因为这个工具默认给的字典就是dic.txt我们就使用这
    个默认的字典 通过结果 可以看到 操作系统是windows版本的信息 能看到
    windows版本信息是snmp的口令被爆破出来 然后通过snmp执行命令 查看主机的版本
    信息

    因为是默认字符的原因,很快就爆破出来了。
    在这里插入图片描述

    p0f

    1.p0f是一款被动探测工具,能够通过捕获并分析目标主机发出的数据包来对主机上的操作系统进行鉴别,即使是在系统上装有性能良好的防火墙的情况下也没有问题。目前最新版本为3.09b,同时p0f在网络分析方面功能强大,可以用它来分析NAT、负载均衡、应用代理等。p0f是万能的被动操作系统指纹工具。p0f对于网络攻击非常有用,它利用SYN数据包实现操作系统被动检测技术,能够正确地识别目标系统类型,和其他扫描软件不同,它不向目标系统发送任何的数据,只是被动地接受来自目标系统的数据进行分析。因此,一个很大的优点是:几乎无法被检测到,而且p0f是专门系统识别工具,其指纹数据库非常详尽,更新也比较快,特别适合于安装在网关中。
    2.工作原理:当被动地拦截原始的TCP数据包中的数据,如可以访问数据包流经的网段,或数据包发往,或数据包来自你控制的系统;就能收集到很多有用的信息:TCP SYN 和SYN/ACK数据包就能反映TCP的链接参数,并且不同的TCP协议栈在协商这些参数的表现不同。
    3.P0f不增加任何直接或间接的网络负载,没有名称搜索、没有秘密探测、没有ARIN查询,什么都没有。某些高手还可以用P0f检测出主机上是否有防火墙存在、是否有NAT、是否存在负载平衡器等等!
    4.P0f是继Nmap和Xprobe2之后又一款远程操作系统被动判别工具。它支持:反连SYN模式、正连SYN+ACK模式、空连RST+模式和碎片ACK模式。
    5.P0f比较有特色的是它还可以探测:是否运行于防火墙之后、是否运行于NAT模式、是否运行于负载均衡模式、远程系统已启动时间和远程系统的DSL和ISP信息等

    测试扫描

    在这里插入图片描述【参数说明】
    网络接口选项:
    -i iface - 指定监听的网络接口
    -r file - 读取由抓包工具抓到的网络数据包文件
    -p - 设置 -i参数 指定的网卡 为混杂模式
    -L - 列出所有可用接口
    操作模式和输出设置:
    -f file - 指定指纹数据库 (p0f.fp) 路径,不指定则使用默认数据库。(默认:
    /etc/p0f/p0f.fp)
    -o file - 将信息写入指定的日志文件中。只有同一网卡的log文件才可以附加合
    并到本次监听中来。
    -s name - 回答 unix socket 的查询 API
    -u user - 以指定用户身份运行程序,工作目录会切换到到当前用户根目录下;
    -d - 以后台进程方式运行p0f (requires -o or -s)
    性能相关的选项:
    -S limit - 设置API并发数,默认为20,上限为100;
    -t c,h - 设置连接超时时间 (30s,120m)
    -m c,h - 设置最大网络连接数(connect)和同时追踪的主机数(host)(默认值: c =
    1,000, h = 10,000)

    测试分析

    在这里插入图片描述

    xprobe2

    xprobe是一款远程主机操作系统探查工具。开发者基于和Nmap相同的一些技术(same techniques),并加入了自己的创新。Xprobe通过ICMP协议来获得指纹。最新版本是Xprobe2.0.3版本,Xprobe2通过模糊矩阵统计分析主动探测数据报对应的ICMP数据报特征,进而探测得到远端操作系统的类型。

    工作原理

    TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。

    例如,不正确的路由表可能导致包的无限循环。所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成两个结果:包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。
    通过TTL值我们能得到什么 其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。但是TTL值还是可以得到有意思的信息的。
    每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。而Linux大多定义为64。不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。如你看到112,可能是初始128,跳了16个节点,或者是初始160,跳了48次。
    不同的操作系统,它的TTL值默认值是不相同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。

    从PING命令的回显可以判断操作系统类型
    就是使用PING命令来查看TTL值从而判断操作系统类型。详细如下:
    TTL=128,这是WINNT/2K/XP。
    TTL=32,这是WIN95/98/ME。
    TTL=256,这是UNIX。
    TTL=64,这是LINUX。
    在这里插入图片描述

    扫描测试

    在这里插入图片描述
    -v 版本信息
    -r显示路由到目标(traceroute)
    -p指定端口号,协议和状态。
    例如:tcp:23:open,UDP:53:CLOSED
    -c指定要使用的配置文件。
    -h打印此帮助。
    -o使用日志文件记录一切。
    -t设置初始接收超时或往返时间。
    -s设置包装发送延迟(毫秒)。
    -d指定调试级别。
    -D禁用模块号码。
    -M启用模块号码。
    -L显示模块。
    -T为指定的端口启用TCP端口扫描。
    例如:-T21-23,53,110
    -U为指定的端口启用UDP端口扫描。
    -X生成XML输出并将其保存到使用-o指定的日志文件中。
    -B使用TCP握手模块尝试猜测开放的TCP端口

    常用方法:
    xprorbe2模块
    在这里插入图片描述

    · icmp_ping: ICMP回显探索模块
    · tcp_ping: 基于TCP的ping探索模块
    · udp_ping: 基于UDP的ping探索模块
    · ttl_calc: 基于TCP和UDP的 TTL距离计算
    · portscan: TCP 与 UDP 端口扫描
    · icmp_echo: ICMP回显请求指纹识别模块
    · icmp_tstamp: ICMP时间戳请求指纹识别模块
    · icmp_amask: ICMP地址掩码请求指纹识别模块
    · icmp_port_unreach: ICMP端口不可达指纹识别模块
    · tcp_hshake: TCP握手指纹识别模块
    · tcp_rst: TCP RST指纹识别模块
    · smb: SMB指纹识别模块
    · snmp: SNMPv2c指纹识别模块

    在这里插入图片描述

    -T 参数指定端口

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

    也可以进行udp扫描
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 相关阅读:
    11111 Generalized Matrioshkas
    Uva 442 Matrix Chain Multiplication
    Uva 10815 Andy's First Dictionary
    Uva 537 Artificial Intelligence?
    Uva 340 MasterMind Hints
    SCAU 9508 诸葛给我牌(水泥题)
    Uva 10420 List of Conquests(排序水题)
    Uva 409 Excuses, Excuses!
    10/26
    11/2
  • 原文地址:https://www.cnblogs.com/cqnswp/p/12568847.html
Copyright © 2011-2022 走看看