Kali Linux é uma distribuição Linux especializada em Testes de Intrusão e Auditoria de Segurança mantida pela Offensive Security. Antigamente conhecida como BackTrack, o Kali, que é baseada no Debian, contém mais de 300 ferramentas de testes de intrusão; também possui suporte a ataques a redes WIFI; suporte a ARM; entre outros.

Assim, ter condições de usá-la em qualquer lugar é interessante. Inclusive, na nuvem. Por isso, escolhi o provedor de nuvem DigitalOcean para dar base para este tutorial.

Kali Linux na nuvem

A DigitalOcean é um provedor de nuvem semelhante ao AWS, ao Microsoft Azure, ao Google Cloud Platform e muitos outros. Eles oferecem instâncias virtuais, chamadas “droplets”, com diferentes distribuições Linux, como Debian, Ubuntu, FreeBSD, etc. Similar à AWS, a DigitalOcean possui datacenters em todo o mundo e, às vezes, vários datacenters em cada país.

No entanto, um recurso em particular os diferencia dos concorrentes. Eles há pouco tempo adicionaram suporte a imagens personalizadas, o que permite aos usuários importar discos de máquinas virtuais e usá-los como “droplets”. Isso é perfeito, pois você pode usar sua própria versão do Kali Linux na nuvem.

Em resumo, será preciso, localmente, gerar uma imagem enxuta, sem recursos gráficos, por exemplo, criar uma máquina virtual e, depois, enviar para a nuvem.

1. Gerando uma ISO personalizada

Embora seja possível carregar imagens virtuais oficiais do Kali Linux, não seria muito eficiente. Em vez disso, é melhor criar uma instalação leve do Kali com o mínimo para funcionar, por exemplo sem ambiente gráfico.

Isso minimiza a quantidade de dados que temos que carregar para o provedor DigitalOcean, para não haver um desperdício de recursos. Por isso, é preciso gerar uma imagem ISO Kali personalizada sem ambiente gráfico ou qualquer outra ferramenta.

Para construir uma imagem ISO, você primeiramente fará no seu computador local, antes de enviar para nuvem. Isso exigirá, cerca de, 5 GB de espaço no disco rígido. Por isso, certifique-se de ter o suficiente.

Primeiro, vamos garantir que o sistema esteja atualizado (nesse caso o Debian):

sudo apt update

sudo apt -y full-upgrade

No caso de um novo kernel ser instalado, será preciso reiniciar o sistema antes de continuar e prosseguir com a compilação:

sudo apt -y install git live-build cdebootstrap devscripts

git clone https://gitlab.com/kalilinux/build-scripts/live-build-config.git

cd live-build-config

./build.sh –variant minimal –verbose

A opção “–verbose” exibirá o log de execução. Agora, aguarde um pouco! Vai demorar um pouco para gerar a imagem ISO, pois será preciso baixar muitos pacotes e compilá-los.

2. Criando máquina virtual

Com a nossa ISO construída, agora podemos começar a criar nossa máquina virtual. Crie uma nova máquina virtual, usando o VirtualBox, configurando o sistema operacional com o mais recente Debian de 64 bits e alocando um disco rígido de 20 GB. Se necessário, a configuração detalhada é explicada no site da Kali Training.

É importante armazenar o disco virtual como um único arquivo que é alocado dinamicamente. O restante, como a quantidade de CPU e RAM, não importará, porque somente o arquivo do disco será carregado para a DigitalOcean.

O tamanho do disco é importante, pois o faturamento é baseado no tamanho do disco para imagens personalizadas. Isso também afetará a escolha da instância que podemos criar. Digamos que um disco rígido de 40 GB seja criado, ele falhará ao criar uma instância no nível de US$ 5 por mês, pois seu tamanho máximo de disco rígido é de 25 GB. Nesse caso, seríamos forçados a usar a opção de US$ 10/mês para instâncias com discos de 50 GB. Não se preocupe, embora o disco tenha 20 GB, ele será expandido dependendo do plano de “dropĺets” escolhido.

Registre-se na Digital Ocean pelo nosso link e ganhe $50 dólares de crédito para usar como quiser durante 30 dias. Promoção por tempo limitado!

Durante a instalação, selecione o particionamento manual e configure-o como mostrado abaixo, com todos os arquivos em uma partição e nenhum arquivo de swap.

3. Personalizações

– Atualização do sistema

Quando a instalação estiver concluída e após ter reiniciado a máquina virtual, atualize o sistema:

sudo apt update

sudo apt -y full-upgrade

– Pacotes necessários

Para que o DigitalOcean configure o sistema para nós, precisamos instalar o pacote cloud-init:

sudo apt -y install cloud-init

echo ‘datasource_list: [ ConfigDrive, DigitalOcean, NoCloud, None ]’ > /etc/cloud/cloud.cfg.d/99_digitalocean.cfg

sudo systemctl enable cloud-init

– Atualização do GRUB

Ao inicializar, o disco é anexado e mapeado como /dev/sda1. No entanto, com as “droplets”, é visto como /dev/vda1. Para alterar isso, precisamos modificar todas as instâncias de sda1 para vda1 em /boot/grub/grub.cfg:

sed -i ‘s/sda1/vda1/g’ /boot/grub/grub.cfg

Com o arquivo de configuração atualizado, podemos executar o comando “update-grub” para atualizar o sistema:

sudo update-grub

– Preparando para o acesso SSH

Como precisaremos usar o SSH para conectar ao sistema na DigitalOcean, o pacote openssh-server também precisa ser instalado (e habilitado):

sudo apt -y install openssh-server

sudo systemctl enable ssh.service

Ao criar um droplet padrão, você pode optar por usar as chaves SSH ou não. No entanto, ao usar imagens personalizadas, essa não é uma opção e o uso de chaves SSH é obrigatório. Por esse motivo, a DigitalOcean exige que removamos a senha de root:

sudo passwd -d root

Também é preciso criar uma pasta /root/.ssh:

mkdir /root/.ssh

– Limpeza

Antes de terminar, é preciso fazer algumas “limpezas”:

sudo apt autoremove

sudo apt autoclean

sudo rm -rf /var/log/*

history -c

Neste ponto, desligue a máquina virtual:

sudo poweroff

4. Subindo imagem para nuvem

RECOMENDO QUE LEIA

Como executar o Kali Linux diretamente no web browser

Na pasta da máquina virtual, localize o arquivo .vmdk e, em seguida, compacte-o usando o bzip2, o gzip ou o zip, preparando-o para o upload para a DigitalOcean.

bzip2 kali.vmdk

Depois de criar sua conta DigitalOcean, vá na seção “Manage” à esquerda, clique em “Images” e selecione a guia “Custom Images”:

Pronto! Nós carregamos a imagem do disco compactado para a nuvem:

Observe que, depois de carregados em um local, os droplets só podem ser iniciados nesse local – uma limitação atual para imagens personalizadas. Outra coisa a ser lembrada nesse estágio é que as imagens carregadas consomem espaço em disco e a DigitalOcean cobrará com base no uso do disco.

5. Iniciando Kali Linux na nuvem

Depois de concluído, a coluna “Uploaded” indicará há quanto tempo foi enviado. Agora vamos clicar na opção “More” da imagem e selecionar “Start a droplet”:

Você será levado às configurações do droplet, onde poderá selecionar o plano, a chave SSH e o projeto para iniciá-lo. Como essa é uma imagem personalizada, é necessário usar uma chave SSH.

Você pode selecionar uma existente ou fazer o upload de uma nova clicando em “Nova chave SSH”, que abrirá a tela a seguir, onde você pode colar a chave pública e nomeá-la – caso não saiba criar uma chave SSH, clique aqui:

Uma vez feito, clique em “Criar”, como mostrado abaixo.

Então, você será levado de volta ao painel, onde todos os “droplets” estão listados – como estamos usando uma chave SSH, a DigitalOcean não enviará um email com credenciais para o droplet.

Dentro de alguns segundos, e após o IP ser exibido, o droplet estará pronto. Para conectar, é preciso usar a chave SSH privada que criamos (chamada MY_KEY neste exemplo):

[email protected]:~$ ssh -i MY_KEY [email protected] The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established. ECDSA key fingerprint is SHA256:d83fcd43d25e2a7edd291666160b47360cc85870ded. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'IP' (ECDSA) to the list of known hosts. Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 The programs included with the Kali GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Kali GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Now we have a nice, minimal Kali Linux installation that we can deploy and customize as needed.

[email protected]:~# lsb_release -a No LSB modules are available. Distributor ID: Kali Description: Kali GNU/Linux Rolling Release: 2019.2 Codename: n/a [email protected]:~# uname -a Linux kali-s-1vcpu-1gb-nyc3-01 4.19.0-kali5-amd64 #1 SMP Debian 4.19.37-2kali1 (2019-05-15) x86_64 GNU/Linux [email protected]:~# free -h total used free shared buff/cache available Mem: 987Mi 51Mi 527Mi 1.0Mi 407Mi 790Mi Swap: 0B 0B 0B

Via | Kali.org