Criando um pendrive bootável live com Kali Linux
Tags: linux, tutorial, security, braziliandevs
Published: 2021-11-14 20:39:03

## Introdução

Se você já faz parte ou tem interesse de entrar no mundo do hackvismo, provavelmente já deve ter ouvido falar do **Kali Linux**. Nessa postagem, eu pretendo falar um pouco sobre essa distribuição, e também, ensiná-lo como você pode estar criando um **pendrive bootável no modo live** com o mesmo, utilizando apenas a linha de comando do seu terminal. Sem mais delongas, vamos começar!

**PS:** *Caso você não saiba o que é "bootável no modo live", significa que você poderá inicializar o sistema operacional direto do seu pendrive, com isso, você não precisará necessariamente fazer a instalação do Kali Linux em sua própria máquina.*

## Sobre o Kali Linux

O Kali Linux é uma distribuição GNU/Linux baseada no Debian, totalmente open source, que é mantido e financiado pela [Offensive Security](https://www.offensive-security.com/). Ele é usado para *pentesting*, avaliações de segurança de redes e até mesmo para forense computacional. O Kali Linux vem com mais de 300 ferramentas para executar testes de diversos tipos, que englobam desde a etapa de "*information gathering*" (coleta de informações) até a geração do relatório final. Com a distribuição, você vai ter um arsenal com uma infinidade *exploits*, *sniffers*, *scanners*, *password crackers*, *wireless hacking* tools e muito mais!

Caso você queira ler mais sobre o Kali Linux, eu sugiro que você comece pela documentação oficial que pode ser encontrada em [https://www.kali.org/](https://www.kali.org/).

## Instalando o Kali Linux no seu pendrive

Agora que já aprendemos um pouquinho sobre o Kali Linux, vamos ao tópico principal dessa postagem que é justamente criar um pendrive bootável no modo live com a distribuição. Como dito anteriormente, iremos fazer tudo utilizando apenas a linha de comando. Caso você não goste dessa abordagem (tsc tsc), no final eu irei postar algumas ferramentas que você poderá estar utilizando para a mesma finalidade.

Inicialmente, você precisará de um pendrive com no mínimo 4GB de capacidade. Com ele em mãos, vamos formatá-lo para que possamos deixar tudo nos trilhos para o momento em que iremos inserir o Kali Linux e torná-lo bootável. Desta maneira, conecte o dispositivo ao seu computador e vamos em frente!

## Formatando o pendrive

O primeiro comando que iremos utilizar é o `lsblk`, que basicamente irá listar todos os dispositivos de armazenamento em bloco que estão conectados ao nosso computador. Geralmente nós identificamos o "nome" do pendrive pelo seu tamanho de armazenamento, mas se você estiver com dúvidas, sugiro que você utilize o comando duas vezes, uma sem o pendrive conectado e outra com ele. No meu caso, após utilizar o comando, identifiquei que o "nome" do bloco relacionado ao pendrive é `sdb`:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ocy8ev5ks8uapekb8mgh.png)

Agora que identificamos o nosso dispositivo, iremos utilizar o comando para formatá-lo, desta forma, **certifique-se de não ter nada de valioso armazenado nele, pois após a execução do comando, o pendrive será completamente limpo!**

Uma vez que o aviso foi dado, para formatar o pendrive iremos utilizar o seguinte comando juntamente com o "nome" que identificamos anteriormente (no meu caso, será `/dev/sdb`):

```
sudo dd if=/dev/zero of=/dev/sdb bs=4k status=progress && sync
```

O comando acima é bloqueante e pode levar vários minutos para ser concluído, por isso, seja paciente. Durante a execução do comando veremos algumas saídas desse tipo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5yrcltyqxcmr1y3q0pds.png)

Após o término eis o que veremos:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/su2onaouwag5d0v3hh4g.png)

Pronto, nosso pendrive está completamente limpo, mas ainda não acabamos. Precisamos criar uma nova tabela de partição para o dispositivo. Para isso, iremos utilizar o seguinte comando juntamente com o "nome" do bloco do pendrive que identificamos anteriormente (no meu caso, `/dev/sdb`):

```
sudo fdisk /dev/sdb
```

Após a execução desse comando, ele irá lhe pedir algumas instruções para a criação da tabela de partição. Abaixo, segue o fluxo que iremos digitar, bem como suas respectivas saídas:

- Pressione "`o`" para criar uma nova **Tabela de Partição DOS** vazia.
- Pressione "`n`" para adicionar uma **Nova Partição**.
- Ele irá pedir para você informar o **Tipo da Partição**, caso você não tenha preferência, pressione "`p`".
- Agora será requerido que seja informado o **Número da Partição**, apenas pressione "`enter`".
- Pressione "`enter`" novamente para a opção do **Primeiro Setor**.
- Novamente pressione "`enter`" para a opção do **Último Setor**.
- Por fim, pressione "`w`" para escrever a nova **Tabela de Partição DOS** no dispositivo e **sair**.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uv76iemjucwaqwlwzs6c.png)

Vamos utilizar o comando `lsblk` novamente para assegurarmos que de fato a nova partição foi criada. No meu caso ela foi, observe que tenho um "sub-bloco" de sdb chamado `sdb1`:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ykoywh50t7uocf6x0r1h.png)

Estamos quase acabando! Precisamos agora criar um sistema de arquivos MS-DOS na nossa nova partição. Para isso, iremos executar o seguinte comando informando o "nome" identificado do "sub-bloco" após a execução do `lsblk` (no meu caso, `/dev/sdb1`):

```
sudo mkfs.vfat /dev/sdb1
```

Após a execução do comando, teremos uma saída desse tipo:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4rx84nj8jbt9lpzmxbpm.png)

Pronto, agora basta desconectarmos o pendrive e conectarmos ele novamente para ver se o nosso computador está reconhecendo-o. Você pode utilizar o comando `eject` para desconectar o dispositivo (substitua `/dev/sdb` pelo nome do seu bloco):

```
sudo eject /dev/sdb
```

Ufa, formatamos o nosso pendrive utilizando a linha de comando! De fato, existem maneiras mais "simples" para desempenharmos essa função, mas durante a escrita dessa postagem, eu achei essa a mais "hacktificante" (risos).

## Baixando e instalando o Kali Linux no seu pendrive

Uma vez que concluímos a etapa de formatação do pendrive, agora iremos nos ater a como deixá-lo "bootável".

Antes de mais nada, você irá precisar baixar a imagem ISO do Kali Linux. Para isso, basta acessar a seguinte URL: [https://www.kali.org/downloads/](https://www.kali.org/downloads/). Nela você irá encontrar uma lista contendo várias versões do Kali Linux, contudo, para que tenhamos um maior êxito na nossa operação, eu sugiro que você baixe as versões que tenham "**(live)**" no final, como essa:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5otpspqbqs9heqs94q0f.png)

Fique a vontade para escolher entre 64-bit ou 32-bit, essa escolha vai depender do desempenho da sua máquina e/ou pendrive. Se for uma máquina/pendrive mais "humilde", opte por 32-bit, do contrário, 64-bit é uma excelente escolha. A única coisa que irá fazer realmente diferença na escolha de imagem ISO, como dito anteriormente, vai ser o fato dela ter ou não "**(live)**" no final. Dessa forma, baixe a que tenha esse sufixo, por favor.

Agora que baixamos o Kali Linux, vamos executar os seguintes passos para deixar o nosso pendrive bootável:

- Abra novamente o terminal
- Utilize o comando `cd` para ir até o diretório onde a imagem ISO do Kali Linux se encontra
- Conecte o pendrive ao seu computador
- Descubra o "nome" do bloco relacionado ao pendrive, no caso, o do meu é `sdb` (Utilize o comando `lsblk` para descobrir)
- Execute o seguinte comando no diretório em que a imagem ISO do Kali Linux está (no meu caso o nome da imagem é "kali-linux-2020.2-live-amd64.iso", se for diferente do seu, lembre-se de substituir pela que você baixou):

```
sudo dd if=kali-linux-2020.2-live-amd64.iso of=/dev/sdb bs=4M status=progress
```

- Aguarde alguns instantes. Como dito anteriormente, o comando `dd` é bloqueante, então pode demorar um tempinho até que a cópia seja concluída.
- Quando o processo estiver terminado, você verá uma saída muito parecida com essa:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ghy4ryz0d1rmnjnin49c.png)

Pronto! Agora basta só ejetar o pendrive e conectá-lo novamente para ver se tudo deu certo. Quando você acessar o conteúdo do pendrive, provavelmente vai se deparar com uma estrutura muito parecida (para não dizer igual) com essa:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nm7381y9xd6v6w42bsin.jpeg)

Agora basta você reiniciar o seu computador, acessar a BIOS ou qualquer outra função durante o boot para determinar qual será o tipo de inicialização do computador, e alterá-lo para que isso seja feito pelo seu pendrive. *Voilà*, agora você poderá utilizar o Kali Linux direto do seu pendrive, em qualquer computador!

## Menção honrosa

Como foi dito logo no começo, caso essa abordagem não seja interessante para você, estarei listando aqui algumas ferramentas que você poderá estar utilizando para alcançarmos o mesmo objetivo. Lembrando novamente que caso o seu intuito seja criar um bootável no modo live, é interessante que você baixe a imagem que contenha o sufixo "(live)", do contrário, será apenas um instalador normal. Eis algumas ferramentas que você poderá estar utilizando:

- [Etcher](https://www.balena.io/etcher/)
- [Universal USB Installer](https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/)
- [YUMI](https://www.pendrivelinux.com/yumi-multiboot-usb-creator/)
- [UNetbootin](https://unetbootin.github.io/)
- [Rufus](https://rufus.ie/pt_BR.html)

Dessa lista, eu particularmente recomendo fortemente a utilização do "Etcher", ele é bastante simples e fácil de usar.

## Considerações Finais

Caso você tenha seguido todos os passos aqui descritos utilizando a linha de comando, sugiro que você se aprofunde um pouco sobre as instruções que utilizamos que foram: `lsblk`, `dd`, `mkfs.vfat`. Para isso utilize o comando `man + {nome-da-instrução}`. Abaixo eis um *print* da utilização do comando `man lsblk`:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/szd4kkkmuynpqt7uv75n.png)

Ser curioso é um passo muito importante no caminho para se tornar um hacker, desta maneira, ao invés de simplesmente copiar os comandos, eu sugiro que você entenda como eles funcionam, para que assim você possa estar fazendo alguns acréscimos, deixando-os mais otimizados e também para que possa estar aplicando-os em outras situações.

Agradeço a sua leitura e espero ter contribuído um pouco para o seu aprendizado. Até a próxima!