Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Xiaomi-C200-Firmware-Analysis — Do UART ao Root: Invadindo o Xiaomi C200 via U-Boot | Kitploit
Ferramentas/GitHubGitHub/h3xdum/xiaomi-c200-firmware-analysis
Segurança de Sistemas EmbarcadosEscalada de PrivilégiosSegurança IoTExploraçãoEngenharia ReversaRecuperação de DadosHacking de HardwareSegurança de HardwareAnálise de Firmware

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHubh3xdum/xiaomi-c200-firmware-analysis

Xiaomi-C200-Firmware-Analysis

Do UART ao Root: Invadindo o Xiaomi C200 via U-Boot

Ver Repositório
1112há 8 mesesAinda não revisado

O Escopo

Neste repositório, mostrarei como obtive acesso à interface UART mesmo sem o conjunto comum de pinos expostos / pads de teste, usando U-Boot e truques para obter root em um estágio inicial e, eventualmente, extrair o firmware.

Reconhecimento Inicial

pcb Há algumas coisas importantes claras na PCB

  • Chip → Processador Ingenic T31
  • Memória Flash → Tipo SOIC-8 SPI NOR
  • Potenciais pads de teste UART

Primeiro, fui para os candidatos óbvios para um acesso UART direto. Há 4 pads de teste em uma fileira que parecem ser Tx, Rx, GND e alimentação, mas testá-los com um multímetro deu leituras erradas, como visto na imagem. Tentei a maioria dos outros pads de teste e ainda não consegui encontrar a leitura correta, então tive que mudar de estratégia.

Obtendo uma posição inicial

Como não há conectores restantes na placa nem pads de teste que possam ajudar, decidi ir direto à fonte, conectando-me aos pinos do processador e obtendo um shell UART dessa forma. Peguei o datasheet daquele processador e identifiquei os pinos do protocolo UART. T31

Agora só precisamos encontrar o aterramento na placa e conectar:

  • Tx → Rx
  • Rx → Tx
  • GND → GND

Usei algumas pontas de prova PCBite e um adaptador USB 2 TTL para esta configuração. pcb_uart

U-Boot & Root

Agora podemos usar picocom para obter o shell UART que procuramos.

root@kitploit:~
sudo picocom -b 115200 /dev/ttyUSB0

Se nada for feito, eu só obtenho os logs de boot e nenhum shell no final do processo de inicialização, então tive que interromper o U-Boot pressionando Enter imediatamente. Ao obter um shell U-Boot, primeiro imprimi os argumentos de ambiente. U-Boot_1 As coisas importantes para nós são:

  • bootargs → mostra que o comando init é executar o binário linuxrc e o layout do firmware (partições e sua finalidade/tamanho/slots)
  • bootcmd → O comando para carregar a memória da flash para a RAM e inicializar o dispositivo

Para obter acesso root rapidamente, posso usar o truque de alterar o comando init com setenv para obter um shell em vez de executar o binário linuxrc; então posso carregar a memória manualmente e inicializar o dispositivo (essencialmente copiando o comando bootcmd). U-Boot_1 Agora, quando a inicialização terminar, serei jogado em um shell inicial com essencialmente nada rodando no sistema, então executarei o binário linuxrc original em segundo plano e verificarei portas abertas neste sistema. root_netstat Sem sorte! A câmera só se comunica com sua nuvem em " 47.237.75.249 ", nenhuma interface web exposta para mexer. Como reverter o binário de comunicação com a nuvem está fora do escopo da minha pesquisa, foi aqui que decidi encerrar minha pesquisa :)

Extração do Firmware

Um extra para quem estiver interessado em brincar com o firmware: aqui está como obtê-lo. Mesma configuração de antes com o UART, mas desta vez apenas sondando e carregando a memória da flash para a RAM sem inicializá-la. Então você pode imprimir os dados da memória RAM e gravar a saída do terminal (com minicom desta vez) para salvar em um arquivo, limpá-lo um pouco com Python e obter o firmware; combinar binwalk e bootargs ajuda a nomear cada seção. Firmware

Baixar ferramenta