被动信息收集
1、概念:
信息收集的方式分为两种:被动收集和主动收集。被动信息收集方式是指利用第三方的服务对目标进行访问了解,比如Google搜索。主动信息收集方式:通过直接访问、扫描网站,这种流量流经网站的行为,比如:nmap扫描端口。
2、被动信息收集的目的:
通过公开渠道,取获取目标主机的信息,从而不与目标系统直接交互,避免留下痕迹。
3、信息收集的内容范围:
1、ip地址段;
2、域名信息;
3、邮件地址;
4、文档图片数据;
5、公司地址;
6、公司组织架构;
7、联系电话、传真号码等;
8、人员姓名、职务;
9、目标系统使用的技术架构;
10、公开的商业信息;
一、相关知识与技能
通过使用 harvester,获得了有关于目标域的邮箱、主机名和 ip 地址,其中-ball选项指使用所有支持的查询,-d 后面指定搜索的目标域。
然后使用 netcraft 获得了目标网站使用的技术信息和更新以前的情况。这使能够在进一步测试中不再查询真实站点。
二、实验内容:
1.首先使用 whois 获取它的注册信息:
# whoiszonetransfer.me
2.另外一个工具是 dig,它可以获取域名信息和 DNS 解析信息。
# digns zonetransfer.me
3.一旦获得了 DNS 服务器的信息,就可以尝试区域传输攻击来获取服务器解析的所有主机名。仍然使用 dig:
# digaxfr @nsztm1.digi.ninja zonetransfer.me
4.现在可以使用 theharvester 来获取目标网站的邮箱、主机名、IP 地址信息。
#theharvester -d zonetransfer.me -b baidu,bing
5.如果想不直接查询服务器来获得网站使用的软件版本信息,可以使用Netcraft工具。登陆https://toolbar.netcraft.com/site_report输入想查询的域名即可:
6.获得一个网站以前的页面信息在测试中也很有用。可以在https://archive.org/web/web.php这个网站回溯网站以前版本的静态副本。
三、实战演练
我们将用zonetransfer.me此域名作为我们的目标,zonetransfer.me是RobinWood在digi.ninja网站创建的,它可以演示允许公共DNS区域传输的后果。 1.我们首先使用whois获取它的注册信息
# whoiszonetransfer.me
2.另外一个工具是dig,它可以获取域名信息和DNS解析信息
#dg ns zonetransfer.me
3.一旦我们获得了DNS服务器的信息,就可以尝试区域传输攻击来获取服务器解析的所有主机名仍然使用dig:
#dig axfr @nsztml.dig.ninja.zonetransfer.me
很幸运服务器dns支持区域传输,我们获得了一个完整的子域列表以及解析情况。
4.现在可以使用 theharvester 来获取目标网站的邮箱、主机名、IP 地址信息。
#theharvester -d zonetransfer.me -b baidu,bing
5.如果想不直接查询服务器来获得网站使用的软件版本信息,可以使用Netcraft工具。登陆https://toolbar.netcraft.com/site_report输入想查询的域名即可:
6.获得一个网站以前的页面信息在测试中也很有用。可以在https://archive.org/web/web.php这个网站回溯网站以前版本的静态副本。
DNS 服务器概述:
DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器。DNS服务器分为根域DNS服务器、顶级域名DNS服务器。根域DNS服务器有13个,都存储了全部的顶级域名服务器的所在地址;
2 使用 Recon-ng 收集信息
一、相关知识与技能
Recon-ng是查询搜索引擎、众多社交工具和 API 的包装器媒体,通过互联网档案和数据库,以获取有关网站、网络信息、应用程序、服务器、主机、用户、电子邮件地址等。它的工作原理是整合不同功能的模块,例如 Google、Twitter、LinkedIn或 Shodan 等,或者对 DNS 服务器执行查询。
二、实验内容:
1.要从 Kali Linux 启动 Recon-NG,请使用“应用程序”菜单(应用程序|01-信息收集|recon-ng)在终端中键入 recon-ng 命令。
2.将看到一个命令行界面。查看模块,可以键入 showmodules 命令。
3.假设要搜索域名的所有子域名和 DNS 服务器不响应区域传输。可以暴力破解子域名,要做到这一点,首先加载brute_hosts 模块:
userecon/domains-hosts/brute_hosts
4.要了解使用任何模块时需要配置的选项,可以使用 showoptions 命令。
5.要为选项指定值,使用 set 命令: set sourcezonetransfer.me
6.一旦设置了所有选项,就会发出 run 命令来执行模块:
7.暴力猜解完成需要一些时间,它会显示很多信息。完成后,可以查询Recon-ng数据库以获取发现的主机: showhosts
3 使用 Nmap 进行扫描和识别应用服务
一、相关知识与技能
Nmap 是一个端口扫描器;这代表着它将数据包发送到指定 IP 地址上的一些 TCP或 UDP 端口,并且检查是否有响应。如果有,则表示端口是开放的,即服务在该端口上运行。
二、实验内容:
首先,想要知道服务器是否响应 ping,或者主机是否是启动状态:
# nmap-sn 192.168.56.11
可以知道这个主机是在启动的状态,让看看它的哪些端口是打开的:
# nmap192.168.56.11
现在将告诉 Nmap 向服务器询问它正在运行的服务版本,并且据此来猜测操作系统:
# namp-sV -O 192.168.56.11
4 识别 Web 应用防火墙
一、相关知识与技能
WAF 检测的工作原理是向服务器发送特定的请求,然后分析响应;例如,在 HTTPWAF 检测的情况下,它发送一些恶意的数据包,并且在寻找数据包被阻止,拒绝或者检测的指示符时比较响应。
二、实验内容:
1. Nmap有几个脚本可以来测试 WAF 中是否存在于所有检测到的 HTTP 端口。
# nmap-sT -sV -p 80,443,8080,8081 --script=http-waf-detect 192.168.56.11
2.在有防火墙保护的服务器上尝试相同的命令。使用example.com来座椅虚构的名称;可以来尝试任何受保护的服务器。
# nmap-p 80,443 --script=http-waf-detect www.example.com
3.Nmap 还有一个脚本可以帮助来更准确地识别正在使用的 WAF。这个脚本是:http-waf-fingerprint
# nmap-p80,443 --script=http-waf-fingerprint www.example.com
4.KaliLinux 中还有另一个工具,可以帮助来检测识别 WAF 的工具,就是wafw00f。
5 识别 HTTPS 加密参数
一、相关知识与技能
Nmap、SSLScan 和 TestSSL 通过尝试不同的密码套件和客户端配置来测试它接受什么,从而建立到目标 HTTPS 服务器的多个连接来工作。
二、实验内容:
1.使用 Nmap 查询 HTTPS 站点支持的协议和密码,需要扫描 HTTPS 端口并使用脚本 ssl-enum-ciphers
2.SSLScan是一个命令行工具,用于评估服务器的SSL/TLS 配置。
3.TestSSL显示了比 Nmap 或 SSLScan 更详细的输入,它的基本用法只需要将目标附加到命令行中的命令。
6 使用浏览器自带的开发工具来做基本的分析和修改
一、相关知识与技能
当网页被浏览器加载后,那么针对它网页元素所做的所有修改都会被即时展现出来,但是一旦刷新当前页面,那么真对元素所做的所有修改都将不复存在,它只会展示服务器传送过来的原有页面。
二、实验内容:
1. 在网页上右键-审查元素(Inspect Element)
提示:还可以使用 F12 或者 Ctrl+Shift+C 来打来浏览器的开发者工具。
2. 在<form>表单的第一个<input>上有一个 type="hidden",双击选中 hidden 标签:
3. 将 hidden 更改为 text 或者删除type="hidden"并按下“Enter”;
4. 现在,双击 value 的参数 3000;
5. 将 3000 改为 500000:
6. 现在可以在页面上看到一个 value 为 500000 的全新的文本输入框,这是因为刚才的操作更改了限制文档大小的关键参数。