今天我们将要讨论渗透测试的第一阶段——初步信息收集和深入信息收集,并介绍Kali中一系列的信息收集工具
很多学员表示不太知道入门网络安全学习渗透测试最终要到达什么地步才算是能达到企业需求,在未来面试中能够脱颖而出。其实我们的学习阶段最终目的就是能独立完成渗透测试,如果你已经有了自己的基本渗透思路能够独立挖掘漏洞知道下一步该怎么做,那么你离合格学员就很近了。
多说一点,没有任何计算机网络相关的知识的同学,最好是先了解渗透测试中需要用到的相关知识点,这样说的可能会比较笼统,我大概的列举下:
了解以下基本的计算机网络基本知识;
1)什么是IP地址(63.62.11.23)、IP地址的基本概念、IP段划分、什么是A段、B段、C段等广域网、局域网、相关概念和IP地址划分范围。
2) 网络端口的基本概念?端口的分类?
3) 域名的基本概念、什么是URL、了解TCP/IP协议。
4) 了解开放式通信系统互联参考模型(OSI)。
5) 了解http(超文本传输协议)协议概念、工作原理。
6) 了解WEB的静态页面和WEB动态页面,B/S和C/S结构。
7) 了解常见的服务器,例如 Windows server2003、Windows server2003、Linux、UNIX等。
8) 了解常见的数据库,例如 MySQL、Mssql、、Access、Oracle、db2等。
9) 了解基本的网络架构,例如:Linux + Apache + MySQL + php。
10) 了解基本的Html语言,就是打开网页后,在查看源码里面的Html语言。
11) 了解至少一种基本的脚本语言、例如 PHP、asp,aspx、jsp等。
信息收集在我们的渗透测试中是第一阶段,也是尤其重要的一个阶段。这个阶段细分为主动和被动的信息收集方式
信息收集
要想渗透一个网站你首先得知道网站的域名,接着通过Whoist数据库查询域名的注册信息,Whois数据库是提供域名的注册人信息,包括联系方式,管理员名字,管理员邮箱等等,其中也包括DNS服务器的信息。
默认情况下,Kali已经安装了Whois。你只需要输入要查询的域名即可,以whois为例:
#whois baidu.com
DNS分析
使用DNS分析工具的目的在于收集有关DNS服务器和测试目标的相应记录信息。
以下是几种常见的DNS记录类型:
例如,在一个测试项目中,客户只给了一个域名,需要你用着域名,来查找所有目标主机的IP和可用的域。接下来我们将带你实现这样的功能。
host
在获取DNS服务器信息之后,下一步就是借助DNS服务器找出目标主机IP地址。我们可以使用下面的命令行工具来借助一个DNS服务器查找目标主机的IP地址:
# host www.baidu.com
我们可以看到 有两个IP地址??
一般情况下,host查找的是A,AAAA,和MX的记录。
查询详细的记录只需要添加 -a
#host -a baidu.com 8.8.8.8
这里8.8.8.8是指定一个DNS服务器。
因为 host命令查找记录是通过Kali的DNS服务器系统文件,该文件位于/etc/resolv.conf.你可以往里面添加DNS任意服务器。当然也可以像我一样直接在命令行中指定DNS服务器。
dig
除了host命令,你也可以使用dig命令对DNS服务器进行挖掘。相对于host命令,dig命令更具有灵活和清晰的显示信息。
#dig baidu.com
不使用选项的dig命令,只返回一个记录。如果要返回全部的记录,只需要在命令添加给出的类型:
#dig baidu.com any
dnsenum
我们可以利用dnsenum从DNS服务器上获取以下信息:
1. 主机IP地址 2. 该域名的DNS服务器 3. 该域名的MX记录
除了被用来获取DNS信息,dnsenum还具有以下特点:
1. 使用谷歌浏览器获取子域名 2. 暴力破解 3. C级网络扫描 4. 反向查找网络
启动dnsenum,使用如下命令
#dnsenum
fierce
fierce 是使用多种技术来扫描目标主机IP地址和主机名的一个DNS服务器枚举工具。运用递归的方式来工作。它的工作原理是先通过查询本地DNS服务器来查找目标DNS服务器,然后使用目标DNS服务器来查找子域名。fierce的主要特点就是可以用来地位独立IP空间对应域名和主机名。
启动fierce使用的命令:
#fierce -h
DMitry
DMitry(Deepmagic Information Gathering Tool)是一个一体化的信息收集工具。它可以用来收集以下信息:
1. 端口扫描 2. whois主机IP和域名信息 3. 从Netcraft.com获取主机信息 4. 子域名 5. 域名中包含的邮件地址
尽管这些信息可以在Kali中通过多种工具获取,但是使用DMitry可以将收集的信息保存在一个文件中,方便查看。
使用DMitry可以使用如下命令:
#dmitry