![Ideia básica](https://rvso.com/image/169408/Ideia%20b%C3%A1sica.png)
Vamos supor que eu tenha uma máquina virtual e não tenha acesso de forma alguma ao hipervisor. Além disso, não posso alterar nenhum parâmetro do sistema, como configurar a inicialização protegida por senha com LUKS ou algo assim. No entanto, posso instalar as ferramentas que desejar e ter acesso root total. Usar dd para escrever zeros ou aleatórios no dispositivo eventualmente falhará e não deixará o sistema vazio. Você tem alguma sugestão sobre como resolver isso? Talvez algum script que eu possa executar na inicialização ao reiniciar o sistema?
Responder1
Ideia básica
- Faça um disco RAM - ou tmpfs
- Instale o busybox, vinculado estático, no disco RAM.
- Crie nós de desenvolvimento para seus discos e /dev/null e similares no disco RAM.
pivot_root
para o disco RAM.exec
um shell de busybox.kill
qualquer outra coisa em execução na máquina que impeça a próxima etapa. Talvez seja necessário colocar também um servidor ssh no disco RAM ou usar algo parecidobusybox nc -l -l -p1234 -e busybox sh
para fornecer um acesso alternativo.- Desmonte os discos "reais".
- use o busybox
dd
para limpar os discos "reais".
Observe que essa linha do busybox não oferece um "terminal", apenas um shell, então muitas coisas são estranhas. E se você usar telnet
para se conectar a ele, fica mais estranho. Especificamente, você obtém retornos de carro antes de cada avanço de linha, portanto a digitação pwd
falha, mas adicionar um espaço depois funciona. Eu recomendo usar nc
ou busybox nc
como seu cliente.
Problema
Você não pode realmente matar o init e se safar. Você pode ou não conseguir desmontar os discos eliminando coisas que foram iniciadas a partir desse disco.
Acho que existem duas alternativas.
- Altere os scripts de inicialização para configurar o túnel ou para limpar o disco para você. Existem kits de ferramentas de limpeza de disco que podem ter uma versão que pode ser combinada com os módulos do seu kernel para fazer isso posteriormente.
- Tente limpar os discos sem desmontá-los. Se você fizer isso, certifique-se de
poweroff -fn
.