Nesta
postagem eu vou estar apresentando uma análise sobre uma pequena
vulnerabilidade que eu encontrei em Outubro de 2014 (mas ainda não
tinha parado para escrever sobre ela no blog). O equipamento
analisado nesta postagem é o THA-101 da TRENDnet. A vulnerabilidade
trata-se de uma senha hardcoded no servidor web do dispositivo.
Analisando o firmware
O
firmware do THA-101 analisado (na época) era o v1.01
(disponibilizado na seção de suporte do site da TRENDnet). O
primeiro passo da análise foi verificar o conteudo do firmware do
dispositivo. O firmware apresenta dois arquivos interessantes (ver figura 01)
![]() |
Figura 01: Extraindo o firmware |
O sistema de arquivos encontra-se no arquivo '3E5000.tar' (ver figura 02).
![]() |
Figura 02: Sistema de arquivos |
Analisando o Servidor Web
Durante
a análise estática do servidor web (o binário encontra-se em '/bin/boa'), eu identifiquei uma string
suspeita no executável (ver figura 3)
![]() |
Figura 03: String suspeita |
A
string suspeita é utilizada pela função 'sub_4739A8' (ver figura
04)
![]() |
Figura 04: Referências da string suspeita |
Disassembly da Função
No disassembly da função 'sub_4739A8' é possível ver que a string
suspeita (“3089rp3090”) é comparada com outra string através da
função 'strcmp' (ver figura 05).
![]() |
Figura 05: Disassembly da função (01) |
Caso as duas strings sejam iguais, o servidor web redireciona o
usuário para a página de upload de firmware:
“/adm/upload_firmware.asp” (ver figura 06).
![]() |
Figura 06: Disassembly da função (02) |
Conclusão
Nesta postagem eu apresentei uma pequena análise sobre uma
vulnerabilidade (senha hardcoded) presente no THA-101 da TRENDnet. A
minha teoria é que os desenvolvedores do dispositivo devem ter
esquecido esta funcionalidade ativa no equipamento (a qual era
provavelmente utilizada em testes internos). O primeiro contato com a
TRENDnet foi realizado em 08/10/2014. A TRENDnet lançou a versão
nova do firmware (v1.02) no dia 29/10/2014.
Por favor escrevam suas sugestões e comentários!
Obrigado :)
Keep Hacking!