Diogovictoriano
GF Bronze
- Entrou
- Jun 30, 2018
- Mensagens
- 25
- Gostos Recebidos
- 0
Ao analisar mais uma vez o código Python descobri uma serie de coisas e ainda há lá muito mais info e pistas.
Esta e outra informação esteve sempre à frente dos meus olhos mas só agora a vi.
- O endpoint "/chip_with_sn_production" tem 3 argumentos e não 2 como pensava estes são "key", "chip_sn" e "successed"
Isto faz-me começar acreditar novamente na tua ideia que podemos usar uma key e gerar infinitas autenticações até os chineses detectarem só temos é de enviar successed = 0 eheh
Exemplo https://45.248.86.44/dpt/api/chip_with_sn_production?key=bbd43b00-a99e-55e3-9828-71ba26097347&chip_sn=MTQzODE1QUIwMzAzMDAwMA==&successed=0
Quando descobrir o formato do chip_sn ao certo testo se isto é verdade.
- O servidor devolve erros pelo Header da resposta ao pedido HTTP
Info retirada do Header "reason → Error: Invalid chip sn len"
- O numero de serie que é extraído da box é enviado ao servidor codificado por base64
Info retirada código python do software de autenticação "chipsn_sign = base64.b64encode(chipsn_sign)"
Com uma ferramenta tipo Postman ou Chrome DevTools com opção "Preserve Log" podemos ver a informação de erro.
Excelente Diogovictoriano com esta informação já consigo avançar....
Analise preliminar é que o teu sniffer está com problemas de codificação ou tem alguns erros na comunicação mas consigo ver o padrão.
Temos de olhar para isto como hexadecimal e não ASCII.
O separador indica se a box já foi autenticada ou não.
- "ª" ou 0xAA (hexadecimal) significa não autenticada e em seguida vai o numero de serie de 8 Bytes, agora tenho a certeza são 8 Bytes
- "®" ou 0xAE (hexadecimal) significa autenticada e em seguida 8 Bytes de zeros
"getsn 8" com resposta "GSNª.8.«...." ou "47 53 4E AA 14 38 15 AB 03 03 00 00" significa numero de serie "14 38 15 AB 03 03 00 00" em hexadecimal 0x143815AB03030000
"getsn 8" com resposta "GSNªàà8M[04][03][00][00]" ou "47 53 4E AA E0 E0 38 4D 04 03 00 00" significa numero de serie "E0 E0 38 4D 04 03 00 00" em hexadecimal 0xE0E0384D04030000
"getsn 8" com resposta "GSN®........" ou "47 53 4E AE 00 00 00 00 00 00 00 00" significa que a box está codificada, isto acontece nas duas boxes, separador "®" ou 0xAE e numero de serie "00 00 00 00 00 00 00 00"
Este novo sniffing confirma que no "burnsn" os primeiros 8 Bytes são o numero de serie.
O que me leva a pensar.... será que estão a reescrever o numero de serie?
Se assim for podemos usar um comando "burnsn" sniffado para todas as boxes como Qu4k3 sugeriu.
Se alguém puder testar esta teoria que envie este hexadecimal a uma box não autenticada com o Termite mas tem de instalar o plugin Hex View Ver anexo 156543 e ativar Ver anexo 156544 em Settings -> Plugins
Código:0x0A6275726E736E20382036342033320A143815AB030300006D647DA4D602994DFF878E70D8374BFF0B55194B060B0B7C682E742AEE2D4651BC4AA5FA359ACA5733638E8C76F20581AE9E39603F66D14BE9FC1263B037ACC37F14E64ABE736C9C4FD54F97C03B6AB5806B25293FBE6B616C72B4083E6B9984
A solução até pode ser esta mas vou continuar a tentar explorar o servidor da solovox.
O meu sniffer é por cabo, será por isso?
Eu testei enviar um comando pelo putty e o sniffer respondeu corretamente, vou testar com outra box