Conferência BLACK HAT USA. Como um hacker de Hollywood usa câmeras de vigilância. Parte 2

Conferência BLACK HAT USA. Como um hacker de Hollywood usa câmeras de vigilância. Parte 1

Também podemos usar esse erro para obter ou substituir a senha de administrador criptografada, armazenada em / etc / privpasswd.



Podemos extrair o conteúdo deste arquivo. Como você pode ver, ele contém o nome de usuário root e a senha criptografada.



No momento, temos duas opções: você pode tentar descriptografar a senha usando uma ferramenta como John the Ripper:



Se isso não funcionar, para o inferno com isso - nós temos root e apenas substituímos esse arquivo. De qualquer forma, obtemos acesso ao “painel de administração” e, da mesma forma que no caso da câmera anterior, teremos novamente os direitos de administrador e usuário root.



Essas vulnerabilidades ocorrem na maioria das câmeras IQ InVision, incluindo as séries 3 e 7, Sentinel, Alliance-Pro, Alliance-MX e Alliance-Mini. Não listarei todos os modelos; caso contrário, ficarei aqui para sempre. A lista completa dessas câmeras está disponível na Internet na lista Shodan Dork. O triste é que, como você sabe, as câmeras deste fabricante são amplamente utilizadas em escolas, delegacias, bancos, cassinos, empresas financeiras e de consultoria, serviço DHL e assim por diante.

Vi que hoje a câmera mais cara é a N5072 da 3SVision. Seu preço é indicado pela frase "Fale conosco", então percebi imediatamente que não posso pagar. Eu tive alguns problemas com esta câmera porque, para todas as outras câmeras, eu poderia simplesmente acessar o site do fabricante, baixar o firmware e analisar o código em busca de vulnerabilidades. Não precisei comprar um dispositivo, pelo menos para realizar os testes iniciais.



Mas quando eu fui ao site do fabricante para baixar o firmware desta câmera, uma janela pop-up JavaScript apareceu na minha frente pedindo para eu digitar minha senha. Eu imediatamente tentei todas as senhas mais comuns: amor, sexo, deus, mas não funcionou. Mas no final, a guia senha = 4 funcionou. E você sabe porque? Porque se você olhar para o JavaScript que envia a senha de volta ao servidor, nem preciso explicar o que você vê lá (risos), é ótimo.



Até obter a senha correta, você é simplesmente redirecionado para o URL atual com a guia "e comercial" = 4 no final da linha. Como sou competente o suficiente para entender o que é, digitei essa senha como senha e fui para a página de download do firmware.

Essa abordagem não é um bom presságio para a segurança de seu sistema. O fato de eles usarem o servidor da Web httpd personalizado no firmware parece bastante inofensivo, mas se você observar as linhas deste arquivo binário, poderá ver que todas elas são altamente personalizáveis.



Então, decidi que, como parece realmente personalizável, preciso considerar como o servidor da web lida com a autenticação. Agora que sei que as câmeras usam dispositivos HTTP básicos para autenticação, uso o base64 para descriptografar. Se você está familiarizado com a autenticação via http, sabe que aqui o nome de usuário e a senha são combinados e codificados na base64.



Então comecei a procurar no código referências cruzadas que mencionam b64_decode. Tudo o que eles fazem ao descriptografar sua senha é passá-la para b64_decode para verificação e, perfeitamente, tudo bem, eles descriptografaram sua senha. Em seguida, eles fazem duas comparações de sequência de caracteres: uma sequência com um parâmetro codificado como 3sadmin e outra sequência codificada codificada 27988303.

Costumava pensar que você não pode ser burro de colocar coisas codificadas no servidor HTTP, pois isso não é confiável, mas continua funcionando.



Assim, você pode acessar qualquer câmera 3SVision e se tornar um administrador. Isso dá acesso a caixas registradoras de vídeo, postos de controle de Taiwan e porões de empresas industriais russas.

Mas olhar para todo esse vídeo rapidamente se torna chato, então eu queria começar a torcer. Felizmente, seu código está repleto de todos os tipos de chamadas inseguras do sistema, e o invasor abre o campo mais amplo para ataques, especialmente se ele fizer login como administrador. O melhor exemplo disso é o manipulador de vídeo records.cgi.



Nem todas, mas muitas dessas câmeras oferecem suporte ao armazenamento local, portanto, você pode, por exemplo, inserir seu cartão de memória SD dentro da câmera e salvar vídeos para si. Você também tem a oportunidade de gerenciar alguns arquivos básicos através da interface de administração, e isso é feito através da função do_records na página cgi. Cgi não é uma página física no disco. Quando o servidor da Web vê que você solicitou um registro CGI, ele chama o manipulador de funções do_records, que verifica qual ação você está executando. Por exemplo, se você deseja remover um arquivo, deve passar o valor do comando aRemove igual a "remover".



Além disso, você deve indicar qual arquivo deseja excluir.



Este nome de arquivo é inserido no comando RM, que é passado para o sistema.



Eu acho que você já entendeu o que isso poderia levar. Em vez de um nome de arquivo, você pode inserir um comando que causará uma reinicialização do sistema e assim por diante. Nesse caso, teremos controle total sobre o sistema, como foi o caso das invasões de câmeras anteriores.



Isso funciona em quase toda a linha de produtos 3SVision e afeta não apenas as câmeras, mas também o servidor de vídeo, porque eles usam o mesmo servidor da web. Quando conduzi minha pesquisa, descobri outra empresa chamada A-Linking, que usa o mesmo firmware em suas câmeras. Mas eles mudaram as credenciais codificadas para outra coisa. Portanto, eles ainda têm esses dados codificados, mas agora são diferentes das credenciais usadas no firmware da câmera 3SVision. Não listarei todos os modelos dessas câmeras, apenas observo que elas estão todas na classificação de vulnerabilidade Shodan Dork.



Dado seu alto custo em comparação com as câmeras de outros fabricantes, isso é especialmente interessante. Além disso, como você sabe, essas câmeras são usadas em empresas militares, energéticas e industriais estrangeiras. Se você os viu em Shodan Dork, tenha cuidado com a venda dessas câmeras no exterior e não me culpe se os militares chineses vierem buscá-lo.

Então, o que dá o que eu falei? Penetra na sua rede, vejo você e tenho privilégios de root. Essa é uma ótima oportunidade para qualquer invasor, já que a maioria dessas câmeras também está conectada à rede interna. Você pode acessá-los remotamente, entrar, obter direitos de root, entrar em um computador com Linux e, a partir daí, fazer o que quiser com a rede local.

Aqui eu recuei um pouco e disse: “ok, está tudo ótimo, mas o que posso fazer com a própria câmera”? Eu tenho acesso root à câmera, isso é incrível, mas se você for ao administrador habitual dos sistemas de vigilância e disser a ele que tem acesso root à câmera, ele nem entenderá o que isso significa. Portanto, eu queria fazer algo mais interessante, algo que realmente demonstre todas as possibilidades. Eu queria interceptar um fluxo de vídeo parecido com este:



E substitua-o por algo parecido com isto:



Esse é um tipo de truque clássico de Hollywood, quando você deseja penetrar em um objeto protegido repleto de câmeras de vigilância, e um hacker do seu grupo deve quebrar essa câmera para mostrar que não há ninguém lá, embora na realidade haja alguém lá. Para provar a possibilidade desse truque, escolhi a câmera de vigilância Trendnet TV-IP410WN.



Eu o escolhi por vários motivos. Antes de tudo, posso comprar, o que é uma grande vantagem. Em segundo lugar, ele possui uma conta backdoor:



Permitindo acessar esses arquivos:



Que possuem uma vulnerabilidade muito ampla que permite a injeção de comandos:



Que, por sua vez, pode ser muito simplesmente usado para enviar os pacotes que precisamos para a câmera:





Aqui estão as mesmas oportunidades de hackers que mencionei anteriormente, apenas neste caso, temos uma câmera mais barata.

Como se viu, esse erro específico ficou conhecido em 2011. Mas o problema era que nem eu nem mais ninguém poderia usar essas informações, porque na descrição dessa vulnerabilidade não havia uma lista de dispositivos nos quais ela estava presente, nem indicações de um firmware específico, então todos a ignoraram. mensagem. Portanto, se você recorresse ao Google com a solicitação "vulnerabilidade da câmera TV-IP410WN", não encontraria nada.
Outro problema de não fornecer essas informações é que essa vulnerabilidade permanece desconhecida não apenas para as pessoas envolvidas na segurança dos computadores, mas também para os fabricantes e fornecedores de produtos. Isso não permite determinar qual firmware e quais modelos de câmera precisam ser corrigidos. Portanto, esses dispositivos ainda são vendidos em todos os lugares com o mesmo bug - Shodan Dork aponta para mais de 28 mil dessas câmeras.

Portanto, suponha que a imagem do canal de vídeo observada pelo administrador seja mostrada aqui, o que é mais consistente com os objetivos de nosso experimento. Assumimos que o administrador assista a este vídeo através da interface da web, e não através de algum tipo de serviço ao usuário, RTPID ou algo assim.



Se você capturar a imagem dessa câmera em particular visualizada em um navegador, poderá ver que o processo mjpg.cgi é responsável por assistir a este vídeo.



Usando a injeção de comando, podemos ver quais processos estão em execução e, na verdade, "matar" todos os processos mjpg.cgi:



Isso levará ao efeito de "congelamento" temporário da imagem do canal de vídeo do administrador. Isso acontecerá porque o navegador mostrará a última imagem recebida e não receberá mais nenhuma imagem desta câmera. Mas não faremos isso, porque se o administrador atualizar o navegador ou navegar para uma nova página e retornar à visualização da câmera, o streaming de vídeo será retomado e ele verá a imagem em tempo real.

Portanto, tentaremos substituir o arquivo mjpg.cgi, o que não deve ser difícil - duas linhas do script bash serão suficientes.



Em particular, tudo o que você precisa fazer é substituir esta página cgi no disco por um script que retorne alguns cabeçalhos básicos ao navegador e, em seguida, use o comando cat para inserir uma imagem JPEG estática do elevador vazio na transferência. Poderia ser uma imagem de cabra, qualquer coisa. Mas, no nosso caso, o administrador agora vê constantemente um elevador vazio, independentemente do que realmente está acontecendo lá.



De fato, parece muito mais interessante no vídeo "ao vivo"; portanto, se os deuses da demonstração estiverem comigo hoje, ficaremos bem. Então, como pode ser visto na tela, minha câmera guarda meu tesouro - uma garrafa de cerveja. Veja, eu pego, e a câmera mostra. Agora, utilizarei uma exploração na forma deste script que "matará" o vídeo em tempo real e o substituirá por um arquivo de imagem estática, sobre o qual acabei de falar.

Ele também me dará direitos administrativos para controlar a câmera e configurar um URL secreto para que eu ainda possa assistir ao vídeo original enquanto o canal de administração continua transmitindo o vídeo congelado. Na tela, você vê como esta exploração está sendo enviada.



Então, tudo correu bem, ele me devolveu as credenciais do usuário - login do administrador e senha securecam1234.



Ele também me diz que o URL está configurado para que eu possa assistir ao canal de vídeo real; portanto, se eu for agora para o meu navegador hacker, insira minhas credenciais, posso ver o que acontece.



Então, se alguém pegar a garrafa, eu vou descobrir:



Mas o administrador - não, sua garrafa permanecerá na mesa.



Então, algumas reflexões finais sobre esse assunto que quero enfatizar. Apresentei uma lista longe de abrangente de câmeras vulneráveis; minha pesquisa não era dessa natureza. Na realidade, existem muitas outras câmeras, e a maioria delas é muito fácil de quebrar.

Quase todas as câmeras mostram o número do modelo na página de login ou na página de entrada de credenciais, mesmo que você não tenha se autenticado, dependendo de como elas verificam essa autenticação. Se o invasor souber o número do modelo sem saber mais sobre esta câmera, poderá acessar o Google, encontrar o site do fabricante e fazer o download do firmware.

Você também pode precisar descobrir essa guia = 4, mas depois de receber o firmware, você pode procurar por vulnerabilidades nesta câmera sem precisar comprá-la.

Foi exatamente o que fiz com todas essas câmeras - tudo foi feito com a ajuda da análise de firmware, todas as explorações foram criadas com base em mim e não comprei uma única câmera. Depois, bastava usar o Binwalk para analisar e descompactar o firmware, e a IDA e o Qemu para desmontar e emular, se necessário, após o que uma vitória me aguardava.
E agora vou responder suas perguntas. Com relação à segurança das câmeras, direi o seguinte: eu poderia descrever por algumas horas todas as câmeras cuja segurança eu examinei, mas não havia uma única câmera entre elas que estivesse perfeitamente protegida. Enquanto isso, existem fabricantes cujos produtos eu simplesmente não tive a oportunidade de conhecer, porque não havia dinheiro para comprar uma câmera assim, pois eles não oferecem a capacidade de baixar o firmware gratuitamente. Portanto, não me atrevo a afirmar que não há câmeras de vigilância confiáveis.

Eles me perguntam se é possível substituir uma imagem estática por hackers por algo dinâmico. A maneira mais fácil seria inserir algo como um arquivo animation.gif, seria uma solução puramente hacker. No entanto, acho que é bem possível escrever seu próprio cgi, o que permitirá que você exiba vídeo em tempo real. Estou com preguiça de fazer isso, apesar da minha demonstração. Mas se você conhece o conceito desses dispositivos, pode fazer o que quiser com eles.


Obrigado por ficar conosco. Você gosta dos nossos artigos? Deseja ver materiais mais interessantes? Ajude-nos fazendo um pedido ou recomendando a seus amigos, um desconto de 30% para os usuários da Habr em um análogo exclusivo de servidores básicos que inventamos para você: Toda a verdade sobre o VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD 1Gbps da US $ 20 ou como dividir o servidor? (as opções estão disponíveis com RAID1 e RAID10, até 24 núcleos e até 40GB DDR4).

VPS (KVM) E5-2650 v4 (6 núcleos) 10GB DDR4 240GB SSD de 1Gbps até dezembro de graça quando pagar por um período de seis meses, você pode fazer o pedido aqui .

Dell R730xd 2 vezes mais barato? Somente nós temos 2 TVs Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100 a partir de US $ 249 na Holanda e nos EUA! Leia sobre Como criar um prédio de infraestrutura. classe usando servidores Dell R730xd E5-2650 v4 custando 9.000 euros por um centavo?

Source: https://habr.com/ru/post/pt427369/


All Articles