[WARNING]
本项目仅用于教育和实验目的。 仅在您拥有或有权测试的环境中使用这些技术。
本实验将模拟利用CVE-2023-46604,使用Kali Linux VM(攻击者)和Debian 11服务器VM(受害者)。
此实验仅在您的主机操作系统为Windows时有效!
--> 如果您使用Linux,此实验将无法运行!
警告
Apache和Java软件将(通过脚本)自动安装在VM上。请勿在您的主机PC上手动安装它们!
我们在本次练习中使用以下软件:
安装VBoxManage,并将该命令设为环境变量:
将仓库克隆或下载到您选择的目录。(vboxmanage命令需要能够在此文件夹中工作)
C:\Users\<user_name>\CVE-2023-46604\将仓库克隆到本地系统后,在该文件夹(\CVE-2023-46604\)中添加一个新文件夹VDI\。
您的文件夹结构现在应如下所示:
CVE-2023-46604\
│
├── .gitignore
│
├── LICENSE
│
├── README.md
│
├── scripts\
│ ├── DebCreate.ps1
│ ├── DebDelete.ps1
│ ├── KalCreate.ps1
│ ├── KalDelete.ps1
│ ├── sshDebian.ps1
│ ├── sshKali.ps1
│ ├── softwareInstallDebian.sh
│ └── softwareInstallKali.sh
│
└── VDI\
本实验中的脚本使用VDI来创建和删除VM。我们现在将下载以下VDI:
CVE-2023-46604\VDI\文件夹。Debian-original.vdiCVE-2023-46604\VDI\文件夹。Kali-original.vdi您的文件夹结构现在应如下所示:
CVE-2023-46604\
│
├── .gitignore
│
├── LICENSE
│
├── README.md
│
├── scripts\
│ ├── DebCreate.ps1
│ ├── DebDelete.ps1
│ ├── KalCreate.ps1
│ ├── KalDelete.ps1
│ ├── sshDebian.ps1
│ ├── sshKali.ps1
│ ├── softwareInstallDebian.sh
│ └── softwareInstallKali.sh
│
└── VDI\
├── Debian-original.vdi
└── Kali-original.vdi
用户名: osboxes
密码: osboxes.org
cd scripts
.\DebCreate.ps1
.\sshDebian.ps1
[NOTE]
在第一次SSH连接时,您可能会看到如下消息:The authenticity of host '[127.0.0.1]:2220' can't be established. ED25519 key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no/[fingerprint])?这是正常的。SSH正在警告您,VM的主机密钥尚未存储在您的
.ssh/known_hosts文件中。
如果您想查看您的Debian VM,可以通过SSH连接到VM:
ssh -p2220 [email protected]
用户名: osboxes
密码: osboxes.org
cd scripts
.\KalCreate.ps1
vboxmanage startvm "Kali Linux"
# 启用ssh后,服务器将从此在启动时自动启动。
sudo systemctl enable ssh
# 关闭VM。
sudo poweroff
从此时起,SSH将在VM启动时自动启动。
如果您想查看您的Kali VM,可以通过SSH连接到VM:
ssh -p2225 [email protected]
.\sshKali.ps1
[NOTE]
在第一次SSH连接时,您可能会看到如下消息:The authenticity of host '[127.0.0.1]:2225' cant be established. ED25519 key fingerprint is SHA256:... Are you sure you want to continue connecting (yes/no/[fingerprint])?这是正常的。SSH正在警告您,VM的主机密钥尚未存储在您的
.ssh/known_hosts文件中。
您现在拥有了对Debian受害者VM的远程命令执行(RCE)访问权限。
您可以执行一些Linux命令来验证您现在可以远程访问Debian11 VM:
# 显示当前目录
pwd
# 检查操作系统
cat /etc/os-release
# 检查当前用户
whoami
# 检查内核信息
uname -a
成功利用后:
┌─────────────────────┐
│ Host System │
│ (VirtualBox Host) │
└─────────┬───────────┘
│
┌────────────────┴────────────────┐
│ │
NAT + Port Forwarding NAT + Port Forwarding
SSH: localhost:2225 SSH: localhost:2220
│ │
┌───────────┴───────────┐ ┌───────────┴───────────┐
│ Kali Linux VM │ │ Debian 11 Server │
│ (Attacker) │ │ (Victim) │
│ │ │ │
│ NIC1: NAT │ │ NIC1: NAT │
│ NIC2: Internal Net │<───────>│ NIC2: Internal Net │
│ "inet" │ │ "inet" │
└───────────────────────┘ └───────────────────────┘
当您想创建一个VM时,只需在scripts/文件夹中运行以下命令:
.\DebCreate.ps1.\KaliCreate.ps1当创建新VM时,DebCreate.ps1和KalCreate.ps1脚本首先复制原始VDI文件(例如Debian-original.vdi)。然后VBoxManage使用该副本来创建VM。
这确保了VM内进行的任何软件安装或配置更改不会保存到未来的VM创建中,从而使每个新VM都能从干净的VDI开始。
退出VM后,您可以输入以下2个命令之一来删除VM(以及VDI副本)。在scripts/文件夹中运行以下命令:
.\DebDelete.ps1.\KaliDelete.ps1当VM被创建时,它们使用原始VDI的副本进行操作。这样,删除VM时,您不会在新VM上仍然有之前安装的软件。