Declaração do problema : Tendo dúvidas
sobre a fidelidade de sua esposa, você decidiu ler SMS , correio, etc ,
em seu smartphone. Infelizmente ele está bloqueado pelo esquema. Apesar
disso , você ainda consegue recuperar arquivos do sistema.
Você precisa encontrar este esquema de ensaio para desbloquear smartphone.
Você pode encontrar um link para sobre despejo completo do sistema de arquivos em seções de referências.
Abstract
Hoje em dia muitos, se não todos, os
smartphones oferecem, além da proteção de bloqueio de senha tradicional,
um padrão de bloqueio de um , que é uma mistura de gestos feitos pelo
proprietário do telefone que une pontos em uma matriz , a fim de
desbloquear o telefone. Esta \\\"nova abordagem de segurança\\\" permite
evitar toques indesejados sobre o dispositivo e ele será solicitado a
autorizar o seu acesso . Esta manipulação parece ser complicado e seguro
o suficiente , o que é totalmente errado !
Se você tiver uma olhada no que uma
fechadura padrão realmente é e como ele funciona , você pode facilmente
concluir que ele não é mais do que uma matriz 3 × 3 com alguma embutido
condições: O padrão elaborado pelo usuário deve conter no último quatro
pontos e cada ponto só pode ser usado uma vez, já que é uma matriz 3 ×
3, o máximo de pontos de um padrão de bloqueio pode conter é nove.
Estudar Esquema Padrão
Os 3 × 3 pontos da fechadura padrão pode ser representado por números (dígitos) , na verdade , os pontos são registadas por ordem a partir de 0 a 8 (canto superior esquerdo é 0 e terminando por 8 ) :
Assim, o padrão usado na imagem acima é de 1 - 2 - 5 - 8 - 7-4 .
Estatisticamente , não é um negócio
muito grande com todas as combinações entre 0123 e 876543210 , não é
mesmo 0,2 % de todos os possíveis números de nove dígitos e devemos ter
cerca de 895.824 possibilidades de esquema padrão disponível em um
dispositivo Android .
Dispositivos Android fazer dados de
bloqueio loja padrão em um SHA-1 formato de seqüência bytes
criptografados sem sal, usando algo semelhante a este trecho de código ,
a fim de alcançar este objectivo :
[ simples ]
private static byte [] patternToHash ( padrão List) {
if ( padrão == null) {
return null;
}
final int patternSize = pattern.size ();
byte [] res = new byte [ patternSize ];
for (int i = 0; i < patternSize ; i + +) {
Célula LockPatternView.Cell = pattern.get ( i ) ;
res [i] = (byte ) ( cell.getRow () * 3 + cell.getColumn ());
}
try {
MessageDigest md = MessageDigest.getInstance ( \\\" SHA-1 \\\");
byte [] hash = md.digest (res) ;
retornar de hash ;
} Catch ( NoSuchAlgorithmException nsa ) {
voltar res ;
}
}
[ / plain ]
Isto significa que , por exemplo, em vez
de armazenar diretamente 125.874 armazena uma matriz byte criptografado
em um arquivo de sistema chamado gesture.key localizado na pasta / data
/ sistema. Podemos ler a maioria dessas informações diretamente em
\\\"O projeto Android Open Source java\\\"
- Gerar um hash SHA-1 para o padrão. Não é a mais segura , mas é
- Pelo menos um segundo nível de protecção . O primeiro nível é que o arquivo
- Está em um local só pode ser lido pelo processo do sistema.
- @ Param padrão o padrão gesto .
- @ Return o hash do padrão em um array de bytes .
De acordo com este pedaço de código, nosso padrão de amostra deve ser guardada como 6c1d006e3e146d4ee8af5981b8d84e1fe9e38b6c
O único pequeno problema que enfrentamos
agora é que SHA-1 é uma função hash de criptografia de mão única, o que
significa que não podemos obter o texto simples a partir de um hash.
Devido ao fato de que temos combinações de padrões possíveis muito
finitos e outro fato que o OS Android não usa um hash salgado , não é
preciso muito para gerar um dicionário contendo todos os hashes
possíveis de seqüências 0.123-876.543.210 .
A resolução do problema
Sabemos o suficiente para analisar o
despejo do sistema de arquivos que temos , não é difícil encontrar
gesture.key e explorar o seu conteúdo :
Você pode abri-lo usando qualquer texto ou editor hexadecimal :
A última coisa a fazer agora é comparar
os bytes deste arquivo , 2C3422D33FB9DD9CDE876574E48F4E635713CB , com
valores no dicionário gerado anteriormente para encontrar o hash que
recupera o esquema padrão .
Quer saber mais ? O Instituto InfoSec
Advanced Computer Forensics Formação treina em habilidades forenses
críticas que são difíceis de dominar fora de um enviornment laboratório.
Já sabe como adquirir imagens forense ? Executar arquivo escultura ?
Leve o seu conhecimento forense existente mais e aperfeiçoar suas
habilidades com este Computer Forensics Boot Camp Avançada do Instituto
InfoSec . Após a conclusão do nosso avançadas Computação Forense Boot
Camp , os alunos saberão como :
Realizar análise de Volume Shadow Copy ( VSC)
Arquivo nível avançado e análise de estrutura de dados para o XP , o Windows 7 e 2008/ 2012 sistemas de servidor
Timeline Análise e Análise de aplicativo do Windows
iPhone Forensics
Um dicionário feito anteriormente pode
ser baixado na seção de referência e, usando qualquer navegador SQLite,
você pode facilmente encontrar o esquema padrão original : SELECT * FROM
RainbowTable onde hash = \\\" 2c3422d33fb9dd9cde87657408e48f4e635713cb
\\\" .
O que significa que este é o padrão que abre o \\\"dispositivo do alvo\\\" :
Conclusão
Não há dificuldades fissuras ou
ignorando esse tipo de proteção de um dispositivo baseado em Android , o
único verdadeiro obstáculo é que não podemos acessar diretamente o
arquivo / data / system / pasta e gesture.key exceto quando estamos
lidando com um dispositivo enraizada. Isto é feito para se divertir e
propósito curiosidade , já que, se você tem acesso total a um celular,
você pode simplesmente remover ou substituir o arquivo que contém o hash
SHA-1 com um preparado um, para além disso , na maioria dos casos os
arquivos de lock não têm valor a partir de um ponto de vista forense .
Técnicas mais complicados pode ser
utilizado se o dispositivo não está enraizada . Estamos falando de um
despejo físico do chip de memória eo uso de algumas ferramentas de
hardware especiais, como Riff -Box e um adaptador gabarito, mas esta é
uma preocupação pra vocês agora ;) .