quinta-feira, 4 de setembro de 2014

Análise: iBrute

Pessoal,

A não ser que você viva dentro de uma caverna, é bem provavel de você ja estar informado sobre o vazamento de dados da nuvem da Apple (iCloud). A Apple ja lançou um depoimento oficial¹ sobre o vazamento de dados no qual é anunciado que não existia vulnerabilidade! (entretanto alguns scripts lançados no github antes do anúncio indicam o contrário). Nesta postagem eu queria fazer uma pequena análise sobre o que ja foi divulgado e o script lançado no github.


Vazamento de Dados


Os vazamentos de dados ocorreram no serviço de núvem da Apple (iCloud). Algumas fontes (fora da Apple) indicam que o ataque ocorreu devido a uma falha (a qual a Apple parece não admitir hehe)  presente no mecanismo de autenticação do serviço "Find My iPhone" (o qual não apresentava um mecanismo para detectar ataques de força-bruta).


Figura 01: Find My iPhone

iBrute (PoC)


O script pode ser encontrado no github:

https://github.com/hackappcom/ibrute/blob/master/id_brute.py

Vou dividir o script em duas partes principais: Wordlists e Método TryPass 

Wordlists


O script começa abrindo 2 wordlists (a primeira para senhas e a segunda para endereços de e-mail) nas linhas 79 a 86. Dois loops são gerados para percorrer os elementos das 2 wordlists (linhas 90 a 106) e chamar um método TryPass (que recebe exatamente 2 parâmetros: e-mail e senha).

Figura 02: Carregando Wordlists

Método TryPass 


O método começa definindo a URL alvo do ataque (a qual vai receber o parâmetro de e-mail). Os dados descritivos do dispositivo (Ex: versão do iOS e identificador do dispositivo) são enviados em uma requisição JSON (linhas 45 a 58) . O método criar uma requisição para realizar uma autenticação HTTP do tipo 'Basic' (no qual as credenciais são enviadas em Base64 para o servidor).

Figura 03: Método TryPass

Conclusão


Nesta pequena postagem eu falei um pouco sobre o vazamento de dados da iCloud e o script publicado no github como prova de conceito. A Apple afirmou de que não existia vulnerabilidade entretanto corrigiu o problema de autenticação no "Find My iPhone" (no mínimo contraditório ?).

¹ http://www.apple.com/pr/library/2014/09/02Apple-Media-Advisory.html