kali web渗透

一.信息设置

Kali Linux 是一个专门用于渗透测试和安全审计的操作系统,其功能强大,使用方便,广受安全从业人员的欢迎。在进行 Web 渗透测试时,信息收集是必不可少的一个环节。本文将为大家介绍如何使用 Kali Linux 收集与 Web 渗透相关的信息。

信息收集的第一步是被动信息收集,这是通过搜集其他人公开的信息来获取我们所需要的信息。在被动信息收集阶段,我们可以通过以下方式获取目标信息:

1.搜索引擎
搜索引擎是获取信息的最快速和最简单的方法之一。通过使用 Google、Bing、Shodan 等搜索引擎,我们可以找到有关目标组织的大量信息。这些信息通常可以帮助我们确定目标的 IP 地址,配置文件或者其他有用的信息。

2.社交媒体平台
在社交媒体平台上,我们可以找到大量有用的信息,例如目标员工的名字、漏洞信息、组织结构和技术信息等。

3.邮件列表和论坛
邮件列表和论坛是与目标有关的讨论和信息交流的常见地方。我们可以通过订阅邮件列表和参加论坛、社区等,获取与目标相关的信息。

在被动信息收集完成后,我们需要使用工具和技术进行主动信息收集。下面我们将介绍使用 Kali Linux 工具和技术对 Web 渗透测试相关的信息进行收集。

1. 使用 Recon-ng 收集信息
Recon-ng 是一个专为网络侦查和系统漏洞验证而开发的框架。使用 Recon-ng 工具,可以找到目标的子域名、邮箱账号、外部IP、相关电话号码、相关域名等多种有用信息。

首先,我们需要设置模块,使用 "use" 命令选择要使用的模块,例如 "use recon/hosts-hosts/ssl" 模块,该模块可以通过填写目标的主机名或IP地址,扫描其SSL证书,并生成有关SSL证书、Web服务器和应用程序的详细信息。

2. 使用 nmap 进行扫描识别应用服务
nmap (Network Mapper) 是一种端口扫描工具,通过扫描目标机器的端口,可以了解目标机器的服务信息,从而确定应用服务的类型和版本。

例如,使用 "nmap -sS -A -sV [目标IP]" 命令,可以扫描目标 IP 上开放的端口,并识别出正在运行的应用程序和版本信息。

3. 识别应用 Web 防火墙
在进行 Web 渗透测试时,应用 Web 防火墙是一个常见的防御机制。在识别它之前,我们需要收集有关目标网站的信息,然后使用一些工具来检查是否存在应用 Web 防火墙。

例如,使用 WAFW00F 工具可以识别输入到目标站点的防火墙类型。此外,我们还可以使用 Burp Suite 等代理工具,检查请求和响应中是否存在防火墙的标志。

综上所述,使用 Kali Linux 工具和技术进行信息收集和识别潜在防御机制,可以在 Web 渗透测试中发挥重要作用。通过被动信息收集和主动信息收集,及时了解目标的资产、网络拓扑、运营商信息、应用服务器和防御机制等多方面的信息,有助于我们进行有效的渗透测试和安全审计。

1.1 被动信息收集

ali Linux 中的 Web 渗透被动信息收集指的是在进行渗透测试时,使用一些工具和技术 passively(被动地)收集目标网站和系统的相关信息,而不会发起主动的攻击或与目标系统进行交互。

在被动信息收集阶段,渗透测试人员主要通过观察和分析目标系统的公开信息、网络流量和响应等来获取有关目标系统的信息。这些信息可能包括目标网站的基本信息、服务器类型、操作系统、IP 地址、域名信息、子域名、公开引用和链接等。

渗透测试人员使用各种工具和技术进行被动信息收集,如以下:

  1. WHOIS 查询工具:查询目标域名的注册信息和所有者信息。

  2. DNS 查询工具:查询目标域名的 DNS 解析记录、主机名和 IP 地址等信息。

  3. 网络流量分析工具:通过分析网络流量捕获包,获取有关目标系统的更多信息,如服务器类型、运行的服务和端口等。

  4. Robots.txt 分析:查看目标网站中的 Robots.txt 文件,了解网站所有者对搜索引擎的访问限制,从而推断可能隐藏的目录和文件。

  5. 响应头分析:分析目标网站的 HTTP 响应头,获得服务器类型、技术栈和安全策略等信息。

  6. 站点爬取工具:使用工具如 wgetcurl 等下载目标网站的内容,了解网站的目录结构、页面和链接。

1.1.1准备

为了在公共资源中获取信息,我们需要让Kali虚拟机连接互联网,并配置成NAT网络地址转换模式。此步骤可以参考第一章中所介绍的方法,它会教你设置Kali及靶机环境,并且设置NAT模式,增加Host-only模式。
 

1.1.2实战演练

我们将用zonetransfer.me此域名作为我们的目标,zonetransfer.me是Robin Wood在digi.ninja网站创建的,它可以演示允许公共 DNS区域传输的后果。
1.我们首先使用 whois获取它的注册信息:
 

# whois zonetransfer.me

2.另外一个工具是dig,它可以获取域名信息和 DNS解析信息。
 

# dig ns zonetransfer.me

3.一旦我们获得了DNS服务器的信息,就可以尝试区域传输攻击来获取服务器解析的所有主机名。仍然使用dig:

# dig axfr @nsztm1.digi.ninja zonetransfer. me


很幸运,dns服务器支持区域传输,我们获得了一个完整的子域列表以及解析情况。接着就可以选择一个脆弱的目标来完成渗透攻击了。
4.现在可以使用theharvester来获取目标网站的邮箱、主机名、IP地址信息。
 

#theharvester -dzonetransfer.me-b baidu, bing

5.如果想不直接查询服务器来获得网站使用的软件版本信息,可以使用Netcraft 工具。登陆https://toolbar. netcraft.com/site_report
输入想查询的域名即可;
6.获得一个网站以前的页面信息在测试中也很有用。可以在https://archive.org/web/web. php这个网站回溯网站以前版本的静态副本。

在这个教程中,我们将使用以下工具来进行被动的信息收集:

1. WHOIS 查询工具:使用 `whois` 命令可以查询目标域名的注册信息,包括域名所有者的姓名、电子邮件、注册商等信息,以及域名服务器的信息。

2. DNS 查询工具:使用 `dig` 命令可以进行 DNS 查询,获取目标域名的 DNS 解析记录、主机名和 IP 地址等信息。还可以通过进行区域传输获取域名服务器上的所有子域名。

3. 网络爬取工具:使用工具如 `theHarvester` 可以搜索目标域的电子邮件地址、子域名和 IP 地址等信息。该工具能够通过查询多个公开源获取信息,并整合在一起。

4. Netcraft:Netcraft 是一家提供网站技术调查和历史数据的公司。他们的网站可以提供目标网站使用的技术栈、历史数据和先前的版本信息等,并帮助确定目标系统的弱点。

5. Wayback Machine:Wayback Machine 是互联网档案馆的一部分,它存储了许多网站的静态副本和历史记录。通过访问 Wayback Machine,我们可以查看目标网站以往的版本,有时这些版本可能包含敏感信息或漏洞。

以上的工具和技术可以帮助渗透测试人员在进行 Web 渗透测试时收集有关目标系统的重要信息。这些信息包括域名注册信息、DNS 解析记录、子域名、电子邮件地址、技术栈和历史记录等。通过对这些信息的收集和分析,渗透测试人员可以确定目标系统的潜在攻击面和脆弱点,并制定相应的渗透测试策略。

1.2 使用Recon-ng收集信息

Recon-ng 是一个功能强大的信息收集工具,它可以帮助渗透测试人员以及安全研究人员收集目标系统的公共信息。下面是使用 Recon-ng 进行信息收集的基本步骤:

  1. 启动 Recon-ng:在 Kali Linux 中,可以使用命令 recon-ng 启动 Recon-ng。

  2. 设置工作空间:在 Recon-ng 中,可以创建和管理多个工作空间,用于不同的信息收集任务。可以使用命令 workspaces create <workspace_name> 创建工作空间,并使用命令 workspaces use <workspace_name> 切换到指定的工作空间。

  3. 加载模块:Recon-ng 通过加载不同的模块来收集数据。可以使用 modules search <keyword> 命令搜索可用的模块,例如 modules search google 搜索与 Google 相关的模块。加载模块使用命令 modules load <module_name>

  4. 配置模块:加载模块后,需要对模块进行配置,以指定要收集的目标和相关参数。可以使用 options set <option_name> <value> 命令设置模块的选项值。

  5. 运行模块:配置完成后,使用 run 命令运行模块开始数据收集。Recon-ng 会自动执行模块并收集目标系统的相关信息。

  6. 查看结果:数据收集完成后,可以使用 show <tablename> 命令查看收集到的结果。例如,使用 show hosts 查看收集到的主机信息,使用 show domains 查看收集到的域名信息。

除了 Google、Twitter 和 Shodan,Recon-ng 还支持许多其他数据源和模块,包括 Bing、GitHub、DNSDumpster、SpiderFoot 等。通过加载适当的模块和配置相应的参数,可以使用 Recon-ng 快速收集目标系统的公共信息。

1.2.1准备

在 Recon-ng 中,某些模块需要使用在线服务的 API 密钥才能执行高级搜索或绕过查询限制。为了获取这些 API 密钥,您需要在每个相应的服务上注册并获得密钥。

注册不同服务的方式可能会有所不同,但通常您需要访问相应的服务提供商网站,创建一个账户并请求一个 API 密钥。根据不同的服务,您可能需要提供一些相关信息,例如个人或组织的详细资料、目的以及使用该服务的计划等。请注意,获取 API 密钥可能需要一些时间来审核和批准您的请求。

一旦您获得了 API 密钥,您可以在 Recon-ng 中配置相应的模块,并将 API 密钥设置为模块的选项之一。这样就可以利用在线服务的高级功能,并更有效地进行信息收集。

1.2.2实战演练

让我们做一个基本的查询来说明Recon-ng的工作原理:
1.要从Kali Linux启动Recon-NG,请使用“应用程序”菜单(应用程序|01-信息收集|recon-ng)在终端中键入recon-ng命令。
2.我们将看到一个命令行界面。查看我们的模块,我们可以键入

show modules

命令。
3.假设我们要搜索域名的所有子域名和 DNS 服务器不响应区域传输。我们可以暴力破解子域名,要做到这一点,我们首先加载brute_hosts模块:
 

userecon/domains-hosts/brute_hosts

4.要了解使用任何模块时需要配置的选项,我们可以使用

show options

命令。

5.要为选项指定值,我们使用set命令:

set source. zonetransfer.me

6.一旦我们设置了所有选项,我们就会发出

run

命令来执行模块:
7.暴力猜解完成需要一些时间,它会显示很多信息。完成后,我们可以查询Recon-ng数据库以获取发现的主机:

show hosts


1.2.3原理剖析

Recon-ng 是一个功能强大的信息收集工具,它整合了搜索引擎、社交工具和多个API,通过互联网档案和数据库来获取各种网络信息。它的工作原理是使用不同的模块,如Google、Twitter、LinkedIn或Shodan等,以及对DNS服务器进行查询来收集目标系统的数据。它还具有将结果导入数据库或生成多种格式报告的功能,如HTML、MS Excel、CSV或XML。

1.3 使用nmap进行扫描识别应用服务

Nmap 是广泛使用的端口扫描器,可用于识别活动主机、扫描开放的 TCP 和 UDP 端口、检测防火墙、获取远程主机上运行的服务版本,并利用脚本发现和利用漏洞。与 Nmap 类似,据说在端口扫描领域更强大的工具是 zmap。

在本小节中,我们将使用 Nmap 来识别目标应用服务器上运行的所有服务及其版本。为了方便学习,我们将在多个 Nmap 演示中展示执行此操作的步骤,或者您也可以使用一个命令来完成。

1.3.1准备

我们需要让我们的靶机运行起来

1.3.2实战演练

本小节的所有任务都可以通过一个命令来完成,为了更好的说明它们的功能和结果,这里分别展示了它们:
首先,我们想要知道服务器是否响应ping,或者主机是否是启动状态:

nmap -sn 192.168.xx.xx

现在,我们可以知道这个主机是在启动的状态,让我们看看它的哪些端口是打开的:

nmap 192.168.xx.xx


现在我们将告诉Nmap向服务器询问它正在运行的服务版本,并且据此来猜测操作系统:

namp -sV -o 192.168.xx.xx

我们可以看到,我们的 VM_1很可能是一个Linux操作系统(Nmap无法准确的确定它)。它使用Apache 2.2.14 web服务器、PHP.5.3p1、Jetty 6.1.25等等。


1.3.3原理剖析

Nmap 是一个端口扫描器,它通过发送数据包到指定的 IP 地址上的 TCP 或 UDP 端口,并检查是否有响应来确定端口的状态。开放的端口表示服务在该端口上运行。

在第一条命令中,使用了 -sn 参数,指示 Nmap 仅检查服务器是否对 ICMP 请求(也称为 ping)做出响应。由于服务器有响应,说明该主机处于存活状态。

第二个命令是使用 Nmap 的最简单方式,只指定了目标的 IP 地址。它首先进行 ping 测试,如果服务器有响应,Nmap 将向一个包含1000个 TCP 端口的列表发送探测,以查看哪些端口有响应以及响应的方式。然后,它会报告结果,显示哪些端口是开放的。

第三条命令在第二条命令的基础上添加了两个参数:

  • -sV:请求获取每个开放端口的 banner header 或自我标识,即每个端口运行的服务的版本。
  • -O:告诉 Nmap 尝试通过开放端口和版本信息来猜测目标操作系统。

这些命令的目的是帮助识别目标服务器上运行的服务及其版本,并尝试通过开放端口和版本信息来猜测目标操作系统。

1.4识别应用Web防火墙

Web 应用程序防火墙(WAF)是一种设备或软件,用于检查发送到 web 服务器的数据包,以识别和阻止可能是恶意的数据包,通常基于签名或正则表达式。

在进行渗透测试时,如果目标使用了未检测到的 WAF,它可能会阻塞我们的请求或禁止我们的 IP 地址,这可能会导致许多问题。因此,在渗透测试的侦察阶段,必须包括对 WAF、入侵检测系统(IDS)或入侵预防系统(IPS)进行检测和识别。我们需要采取必要的措施,以避免被这些保护装置屏蔽或禁止。

在本小节中,我们将使用不同的方法和 Kali Linux 中提供的工具来检测和识别目标与我们之间是否存在 Web 应用程序防火墙。

1.4.1实战演练

有很多方法来检测应用程序是否受到Waf和 IDs 的保护;在攻击的时候被阻止和拉入黑名单是最糟糕的事情,所以我们会使用Nmap和 wafwOOf来确定我们的目标是否存在WAF。
1. Nmap有几个脚本可以来测试WAF中是否存在于所有检测到的HTTP端口.让我们来尝试一下:

nmap -sT -sV -p 80,443,8080,8081 --script=http-waf-detect 192.168.xx.xx


2.现在,我们在有防火墙保护的服务器上尝试相同的命令。在这里,我们使用

example.com

来座椅虚构的名称;可以来尝试任何受保护的服务器。
3.Nmap还有一个脚本可以帮助我们来更准确地识别正在使用的 WAF。这个脚本是:

http -waf -fingerprint
nmap -p80,443 --script=http-waf-fingerprint www.example.com


4.Kali Linux中还有另一个工具,可以帮助我们来检测识别WAF的工具,就是 wafw00f。假如www. example.com是一个受WAF保护的网站。

wafwoof https://www.example.com


它是怎么工作的
WAF检测的工作原理是向服务器发送特定的请求,然后分析响应;例如,在 HTTP WAF检测的情况下,它发送一些恶意的数据包,并且在寻找数据包被阻止,拒绝或者检测的指示符时比较响应。HTTP WAF


1.5总结

在信息设置部分,我们首先介绍了被动信息收集。这包括准备工作和实战演练,目的是通过收集目标的被动信息来获取更多有关目标的信息。

接下来,我们介绍了使用 Recon-ng 工具进行信息收集的方法。这一部分涵盖了准备工作、实战演练和原理剖析,帮助我们利用 Recon-ng 工具有效地收集目标信息。

然后,我们学习了如何使用 nmap 工具进行扫描和识别应用服务。这部分包括准备工作、实战演练和原理剖析,帮助我们通过扫描目标的端口来确定目标上运行的应用服务。

最后,我们探讨了如何识别应用 Web 防火墙。这一部分通过实战演练,帮助我们使用各种方法来识别目标是否存在 Web 应用防火墙。

通过以上内容,我们将能够进行准备工作、实战演练以及理解相关工具和技术的原理,从而在信息设置阶段更有效地收集目标信息和识别潜在的防御机制。

  • 24
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LLLLaffey

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值