
Exploração do CVE-2023-44604. Usando uma VM Kali Linux (atacante) e uma VM servidor Debian 11 (vítima).
[AVISO]
Este projeto destina-se apenas a fins educacionais e de laboratório. Utilize estas técnicas apenas em ambientes que você possui ou está autorizado a testar.
Este laboratório simulará a exploração do CVE-2023-46604, utilizando uma VM Kali Linux (atacante) e uma VM servidor Debian 11 (vítima).
Este laboratório só funciona se o sistema operacional anfitrião for Windows!
--> Se estiver usando Linux, este laboratório não funcionará!
AVISO
O software Apache e Java será instalado automaticamente (usando scripts) nas VMs. Não instale isso manualmente no seu PC anfitrião!
Utilizamos o seguinte software neste exercício:
Instale o VBoxManage e torne o comando uma variável de ambiente:
Clone ou baixe o repositório para um local de sua escolha. (os comandos vboxmanage precisam funcionar nesta pasta)
C:\Users\<nome_do_usuário>\CVE-2023-46604\Após clonar o repositório em seu sistema local, adicione naquela pasta (\CVE-2023-46604\) uma nova pasta VDI\.
A estrutura da sua pasta deve ficar assim:
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\
Os scripts neste laboratório utilizam VDI's para criar e excluir VMs. Agora baixaremos os seguintes VDI's:
CVE-2023-46604\VDI\.Debian-original.vdiCVE-2023-46604\VDI\.Kali-original.vdiSua estrutura de pastas deve ficar assim:
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
Nome de usuário: osboxes
Senha: osboxes.org
cd scripts
.\DebCreate.ps1
.\sshDebian.ps1
[NOTA]
Na primeira conexão SSH, você pode ver uma mensagem como: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])?Isso é normal. O SSH está avisando que a chave do host da VM ainda não está armazenada no seu arquivo
.ssh/known_hosts.
Se quiser verificar sua VM Debian, você pode fazer SSH na VM:
ssh -p2220 [email protected]
Nome de usuário: osboxes
Senha: osboxes.org
cd scripts
.\KalCreate.ps1
vboxmanage startvm "Kali Linux"
# When enabling ssh, the server will from then on start on boot.
sudo systemctl enable ssh
# Power off the VM.
sudo poweroff
A partir deste ponto, o SSH iniciará automaticamente quando a VM inicializar.
Se quiser verificar sua VM Kali, você pode fazer SSH na VM:
ssh -p2225 [email protected]
.\sshKali.ps1
[NOTA]
Na primeira conexão SSH, você pode ver uma mensagem como: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])?Isso é normal. O SSH está avisando que a chave do host da VM ainda não está armazenada no seu arquivo
.ssh/known_hosts.
Você agora tem acesso de Execução Remota de Comandos (RCE) à VM Debian vítima.
Você pode executar alguns comandos Linux para verificar que agora tem acesso remoto à VM Debian11:
# Show the current directory
pwd
# Check the operating system
cat /etc/os-release
# Check the current user
whoami
# Check the kernel information
uname -a
Após a exploração bem-sucedida:
┌─────────────────────┐
│ 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" │
└───────────────────────┘ └───────────────────────┘
Quando quiser criar uma VM, basta executar o seguinte comando na pasta scripts/:
.\DebCreate.ps1.\KaliCreate.ps1Quando uma nova VM é criada, os scripts DebCreate.ps1 e KalCreate.ps1 primeiro fazem uma cópia do arquivo VDI original (ex. Debian-original.vdi). O VBoxManage então usa esta cópia para criar a VM.
Isso garante que quaisquer instalações de software ou alterações de configuração feitas dentro de uma VM não sejam salvas em futuras criações de VM, permitindo que cada nova VM inicie a partir de um VDI limpo.
Após sair de uma VM, você pode executar um dos 2 comandos para excluir a VM (e uma cópia do VDI). Execute o seguinte comando na pasta scripts/:
.\DebDelete.ps1.\KaliDelete.ps1Quando as VMs são criadas, elas operam a partir de uma cópia de um VDI original. Dessa forma, ao excluir uma VM, você não terá o software instalado anteriormente ainda em uma nova VM.
| Propriedade | Valor |
|---|---|
| Nome da VM | "Debian11" |
| Tipo de SO | Debian_64 |
| Memória | 4096 MB |
| CPUs | 2 |
| VRAM | 128 MB |
| Controlador Gráfico | VMSVGA |
| Adaptador de Rede 1 | NAT |
| Adaptador de Rede 2 | InternaL Network ("inet") |
| Controlador de Armazenamento | IntelAhci (SATA) |
| Imagem de disco | Debian11.vdi |
| Encaminhamento de porta SSH | 127.0.0.1:2220 -> VM:22 |
| Propriedade | Valor |
|---|---|
| Nome da VM | "Kali Linux" |
| Tipo de SO | Linux_64 |
| Memória | 4096 MB |
| CPUs | 2 |
| VRAM | 128 MB |
| Controlador Gráfico | VMSVGA |
| Adaptador de Rede 1 | NAT |
| Adaptador de Rede 2 | InternaL Network ("inet") |
| Controlador de Armazenamento | IntelAhci (SATA) |
| Imagem de disco | KaliLinux.vdi |
| Encaminhamento de porta SSH | 127.0.0.1:2225 -> VM:22 |