信息收集

信息收集对于渗透测试来说是很重要的,是渗透测试的前期准备工作,俗话说知己知彼,才能百战不殆。掌握了对目标的足够信息,我们才能更好地开展渗透测试。

信息收集的分类

信息收集的根据方式的不同大概分为两个类别:主动扫描与被动扫描

被动扫描

被动信息收集是指通过各种在线网站等第三方服务对网站进行信息收集。通过用Google Hackingshodanfofa等搜索引擎对目标进行信息探测,虽然获得的信息可能不多,但是不存在被目标发现的可能。

收集的信息?

  • 目标网站所有者的信息:姓名、地址、电话、电子邮件等
  • 目标网站相关的电子邮箱。
  • 目标网站用户的社交信息:网站工作人员的微博、QQ、论坛发帖…

被动扫描的常用方法?

  • 俄罗斯搜索引擎-图片搜索(https://www.yandex.com/
  • 图片信息 metadata (如经纬度查看等)
  • Maltego的使用(开源情报收集和取证)
  • 利用Recon-NG进行信息收集
  • 神奇的搜索引擎:ZoomEye、shodan(支持公网设备指纹检索和 Web (网站)指纹检索)

主动扫描

主动信息收集是指通过各种工具直接对往网站进行检测。直接使用工具对网站进行信息探测可以获得较多较全的信息,但是可能会被目标主机发现,对你的可疑行为进行记录,分析,可能会对后期的渗透工作产生影响。

可见,没有一种方式可以做到面面俱到,每个方式都有自己的优势和劣势,作为一名合格的渗透测试人员,我们要学会各种工具搭配使用,取长补短,对目标进行多次隐秘而有效的探测,获得自己想要的信息,完成对目标网站完整的信息收集报告。

zoomeye的讲解与实操

zoomeye的讲解

ZoomEye搜索引擎支持关键词检索,可以快速搜索到我们需要的数据。

  • app:组件名称 ver:组件版本
  • app:apache ver:2.4 搜索 apache 2.4
  • port:搜索端口号 port:22 搜索开放了SSH端口的主机
  • OS:搜索指定的操作系统 OS:linux
  • service:服务名称 Service:SSH 搜索SSH服务
  • country:国家名 city:城市名 country:China city: Beijing
  • Device:搜索指定的设备类型,divice:router
  • ip:搜索特定的IP地址,ip:192.168.1.1
  • cidr:指定的CIDR网段 CIDR:192.168.158.12/24
  • Service:搜索指定的服务类型,service:http
  • Hostname:guet.edu.cn

zoomeye的数据操作

这里以海康威视的摄像头进行演示

第一步:打开zoomeye,并输入关键词DVRDVS-Webs进行检索
第一步

第二步:打开搜索到的地址
第二步
看你看见其ip地址

第三步:连接80端口
第三步
因为web服务的默认端口为80,所以打开后极有可能是登录界面

第四步:弱口令测试
第四步
一般海康威视的摄像头管理员:账号:admin 密码:12345。这里我们进行测试

第五步:是否成功?
第五步
在尝试的5、6个地址后成功以管理员身份登录。因为隐私保护,测试到此为止。

Nmap的讲解与实操

可以进行主动扫描的工具很多,但是最为优秀的一定是Nmap。

Nmap的功能

主机发现功能、端口扫描功能、服务及版本检测功能、操作系统检测功能+实现一些高级的审计技术。
也就是,通过Nmap对一台计算机进行审计的话,可以获取以下信息

  1. 目标主机是否在线,所在的网络结构
  2. 开放的端口:80端口、135端口、443端口
  3. 目标主机所使用的操作系统:Win7、Linux、Android…
  4. 目标主机上运行的服务及其版本:Apache httpd、OpenSSH、Debian…
  5. 目标主机上所存在的漏洞:弱口令、ms08_067…

Nmap的基本用法

  1. 对单个主机进行扫描

    使用命令: nmap 扫描地址(ip或者域名)

一个例子
可以看见,通过nmap指令对目标进行扫描,可以得到以上信息。
在这些信息中我们要重点关注第6行及其之后的信息,那里显示了我们扫描的主机的端口状态及其开放情况。


  1. 对多个不连续的主机进行扫描

    命令语法: nmap [扫描目标1 扫描目标2 ...... 扫描目标n]

显示内容与上同,只是会分开显示,同时会给出扫描主机的在线情况。


  1. 对连续范围内的主机进行扫描

    命令语法: nmap [IP地址的范围]

连续扫描

ps:可以通过添加-sn参数提高扫描速度,其作用是只扫描在线的主机。


  1. 对整个子网进行扫描

    命令语法: nmap [IP地址/掩码位数]

知道了ip地址与掩码位数,通过与运算可以得到ip的网络号与子网网络号。

使用Nmap 进行主机发现

当我们测试的目标是一个网络时,需要知道其中在线的主机。主机发现技术就是用来实现这个前提目标。

nmap进行主机发现的常用方法:

  • 跳过ping扫描阶段 namp –PN [目标]
  • 仅使用ping协议进行主机发现 namp –sP [目标]
  • 使用ARP协议进行主机发现 namp –PR [目标] 同一子网的目标
  • 使用TCP协议进行主机发现 namp –sS [目标]
  • 使用UDP协议进行主机发现 namp –sU [目标]

这里给出上述几种扫描方式的补充:

  • 使用ARP协议进行主机发现仅适用于与所扫描主机在同一个子网的情况。
  • 使用TCP协议进行主机发现可以分为全开扫描(-sT)和半开扫描(-sS),一般使用半开扫描,耗时短且不易被发现。
  • 使用UDP协议进行主机扫描的方法不常用,耗时较多。

使用Nmap进行端口发现

我们知道,一台计算机可以进行多种网络服务,其原因便在于端口的使用。每一个端口对应一种网络服务,所以我们想自由出入目标,就要知道端口的开放情况。

端口状态的5种

  • Open:开放,应用程序在此端口接收TCP或UDP报文。
  • Closed:关闭,关闭的端口也是可以访问的,会接收nmap的探测报文并做出回应,只有没有应用程序进行监听端口。
  • Filtered:防火墙过滤探测报文,由于防火墙把我们的探测报文进行过滤,所以我们无法知道端口的状态。
  • unfiltered:未被过滤状态表示可以访问,但是nmap无法确定其开放情况。
  • open|filtered:无法确定端口是开放还是被过滤,比如:端口不响应。
  1. 扫描全部端口

    命令语法: nmap -p “*” IP地址

  2. 扫描使用频率最高的端口

    命令语法:nmap --top-ports n [目标]

  3. 扫描指定端口

    命令语法:nmap -p [端口号][目标]

三个例子

使用nmap扫描目标操作系统

通过想目标发送探针,而后根据目标的会有来猜猜系统。

命令语法:nmap -O [目标地址]


使用NMAP扫描目标操作系统

对目标进行渗透的时候,尽量检测出目标系统运行的各种软件。
端口:80 well-known 知名端口、熟知端口 对应什么服务?
应该掌握哪些知名端口呢?

  • sqlserver默认端口号为:1433
  • mysql      默认端口号为:3306
  • oracle    默认端口号为:1521

命令语法:nmap -sV [目标地址]

nmap的后话

nmap无疑是一个很强大的扫描工具,其功能也不只是上面介绍的几种。
想要继续深入了解学习nmap的使用: