quinta-feira, 30 de junho de 2011

Rainbow Crack e Rainbow Tables

RainbowCrack é um programa que gera rainbow tables para serem usadas na quebra de senhas. O RainbowCrack difere dos programas de força bruta convencionais, pois utiliza tabelas previamente criadas, chamadas rainbow tables, para reduzir drasticamente o tempo necessário para quebrar senhas.

Um ótimo programa para utilizarmos para quebrar senhas Windows com rainbow tables é o Ophcrack

#aptitude install ophcrack


Outro programa, que quebra inclusive hashs MD5, SHA1, SHA2 e etc, é o Cain (que roda em Windows).


RainbowCrack é uma ferramenta cujo objetivo é quebrar hash de senhas.

O método utilizado pela ferramenta é o brute force. Nesse método, todas as senhas em texto plano e seus hashs correspondentes são computados um por um. O hash computado é comparado com o hash alvo. Se um deles for igual, a senha em texto plano é encontrada. Do contrário, o processo continua até finalizar todas as senhas possíveis.

No método time-memory, a tarefa de computar hashs é feita através do armazenamento dos resultados no que chamamos de "rainbow table". Depois disso, os hashes podem ser acessados a partir das rainbow tables sempre que necessário. O processo pré-computacional precisa de muito tempo para criar as chaves que serão posteriormente utilizadas. No entanto, uma vez que esse processo tenha terminado, a performance da rainbow tables pode ser de centenas a milhares de vezes maior do que o método de brute force.

Vamos ver passo a passo como utilizar o software RainbowCrack. Esse software inclui três ferramentas que devem ser usadas em sequência para fazer a coisa funcionar:


  • Passo 1: usar o rtgen para gerar as rainbow tables.

  • Passo 2: usar o rtsort para organizar as rainbow tables geradas pelo rtgen.

  • Passo 3: usar o rcrack para buscar o conteúdo das rainbow tables organizadas pelo rtsort.

O processo de buscar o conteúdo no passo final, é equivalente ao processo de quebra de hash. E todas essas ferramentas são utilizadas através da linha de comando.

O programa rtgen precisa de diversos parâmetros para gerar uma rainbow table, e a sintaxe do comando é:

rtgen hash_algorithm charset plaintext_len_min plaintext_len_max table_index chain_len chain_num part_index

Explicação dos parâmetros:


  • hash_algorithm

    O algoritmo dos hashs (lm, ntlm, md5 e assim por diante) usado na rainbow table.

  • charset

    A configuração dos caracteres (charset) do texto plano na rainbow tables. Todos os charsets possíveis estão definidos no arquivo charset.txt.

  • plaintext_len_min

    plaintext_len_max


    Estes dois parâmetros definem o tamanho possível de todo o texto plano na rainbow tables. Se o charset é numérico, o plaintext_len_min é 1, e o plaintext_len_max é 5, então a string "12345" será incluída na tabela, mas "123456" não.

  • table_index

    chain_len

    chain_num

    part_index


    Estes quatro parâmetros são mais difíceis de explicar em poucas palavras. Ler e compreender o artigo original de Philippe Oechslin (criador do RainbowCrack), pode ajudar a entender o significado exato.

    O table_index está relacionado ao "reduce function" que é utilizado na rainbow table.

    O chain_len é o tamanho de cada "rainbow chain" na rainbow table. Uma "rainbow chain" configurada como 16 bytes é a menor unidade em uma rainbow table. Uma rainbow tables contém diversas rainbow chains.

    O chains_num é o número de rainbow chains em uma rainbow table.

    O parâmetro part_index determina como o "start point" em cada rainbow chain é gerado. Deve ser um número (ou começar com um número).


Os valores corretos de todos os parâmetros dependem do que vocês precisa, e selecionar bons parâmetros requer um bom entendimento do algoritmo de time-memory tradeoff.

Uma configuração que funciona está logo abaixo, como um exemplo:


  • hash_algorithm

    lm, ntlm or md5

  • charset

    alpha-numeric = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789] ou

    loweralpha-numeric = [abcdefghijklmnopqrstuvwxyz0123456789]

  • plaintext_len_min

    1

  • plaintext_len_max

    7

  • chain_len

    3800

  • chain_num

    33554432

  • key space

    36^1 + 36^2 + 36^3 + 36^4 + 36^5 + 36^6 + 36^7 = 80603140212

    Key space é o número de possíveis strings em texto plano para o charset, plaintext_len_min e plaintext_len_max selecionados.

  • table size

    3 GB

  • success rate

    0.999

    O algoritmo de time-memory tradeoff é um algoritmos probabilístico. Qualquer que seja os parâmetros selecionados, há sempre probabilidade de que as strings dentro do charset selecionado e o tamanho das strings não seja completamente coberto. A taxa de sucesso é de 99.9% com os parâmetros usados nesse evento.

    comandos para gerar as tabelas

  • Os comandos do rtgen usados para gerar as rainbow tables são:

  • rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0

    rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0

    rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0

    rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0

    rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0

    rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0

Se precisar criar uma tabela de hashes ntlm ou lm, substitua o "md5" nos comandos acima por "ntlm" ou "lm".

Se precisar de uma tabela com o charset alpha-numeric, substitua o "loweralpha-numeric" nos comandos acima por "alpha-numeric".

Se uma tabela com hashes lm for criada, tenha certeza de que seu charset seja alpha-numeric ao invés de loweralpha-numeric. O algoritmo lm nunca utiliza caracteres minúsculos como strings.

Agora é hora de criar uma rainbow table.

Altere o diretório corrente em seu terminal de comando para o diretório do RainbowCrack, e execute o comando seguinte:

# cd /pentest/passwords/rcrack

# rtgen md5 loweralpha-numeric 1 7 0 3800 33554432 0


Esse comando leva 4 horas para ser completado em um computador com um processador Core2 Duo E7300. É possível parar a execução do mesmo a qualquer momento pressionando Ctrl+C. Da próxima vez que o comando for executado com a mesma linha de comando, ele continuará a partir do ponto em que foi interrompido para continuar com a geração da tabela.

Quando o comando tiver terminado, um arquivo com o nome de "md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt" e tamanho de 512 MB será criado. O nome do mesmo é simplesmente a linha de comando utilizada com os parâmetros interligados, com a extensão "rt". O programa rcrack que será explicado mais a frente, precisa dessas informações para saber quais os parâmetros existentes na rainbow table. Portanto, não renomeie o arquivo.

As demais tabelas podem ser geradas da mesma forma, com os comandos:

# rtgen md5 loweralpha-numeric 1 7 1 3800 33554432 0

# rtgen md5 loweralpha-numeric 1 7 2 3800 33554432 0

# rtgen md5 loweralpha-numeric 1 7 3 3800 33554432 0

# rtgen md5 loweralpha-numeric 1 7 4 3800 33554432 0

# rtgen md5 loweralpha-numeric 1 7 5 3800 33554432 0


Finalmente, esses arquivos são gerados:

md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt 512MB

md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt 512MB

md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt 512MB

md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt 512MB

md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt 512MB

md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt 512MB


Agora, o processo de criação da rainbow table está completo.

As rainbow tables geradas pelo programa rtgen precisam de um pós-processamento para tornar sua consulta mais fácil e rápida. O programa rtsort é utilizado para organizar todas as rainbow chains em uma rainbow table.

Utilize os seguintes comandos:

# rtsort md5_loweralpha-numeric#1-7_0_3800x33554432_0.rt

# rtsort md5_loweralpha-numeric#1-7_1_3800x33554432_0.rt

# rtsort md5_loweralpha-numeric#1-7_2_3800x33554432_0.rt

# rtsort md5_loweralpha-numeric#1-7_3_3800x33554432_0.rt

# rtsort md5_loweralpha-numeric#1-7_4_3800x33554432_0.rt

# rtsort md5_loweralpha-numeric#1-7_5_3800x33554432_0.rt


Cada comando acima, leva cerca de 1 a 2 minutos para completarem sua execução. O programa rtsort gravará a rainbow table organizada por sobre o arquivo orginal. Não interrompa a execução do comando, do contrário o arquivo original será danificado.

Agora o processo de organização das rainbow tables está completo.

O programa rcrack é utilizado para acessar as rainbow tables. Ele aceita apenas rainbow tables organizadas.

Assumindo que as rainbow tables organizadas estejam no mesmo diretório do programa, para quebrar hashes únicos a linha de comando será:

# rcrack *.rt -h aqui_vai_o_hash_para_ser_quebrado


O primeiro parâmetro especifica o caminho para buscar nos arquivos das rainbow tables. Os caracteres "*" e "?" podem ser usados para especificar vários arquivos.

Normalmente isso leva algumas dezenas segundos para finalizar, se a string existir dentro do "range" do charset e tamanho de strings selecionados. Do contrário, leva-se muito mais tempo para buscar por todas as tabelas, apenas para não encontrar nada.

Para quebrar múltiplos hashs, coloque todos os hashs em um arquivo de texto, com um hash por linha. E então especifique o nome do arquivo na linha de comando do programa rcrack:

# rcrack *.rt -l arquivo_com_lista_de_hashes

Se as rainbow tables que gerou usam o algoritmo lm, o programa rcrack possui um suporte especial para o parâmetro "-f". Um arquivo de dump de hash no formato pwdump é necessário como input para o programa rcrack. O conteúdo do arquivo parecerá com o seguinte:

Administrator:500:1c3a2b6d939a1021aad3b435b51404ee:e24106942bf38bcf57a6a4b29016eff6:::

Guest:501:a296c9e4267e9ba9aad3b435b51404ee:9d978dda95e5185bbeda9b3ae00f84b4:::


O arquivo pwdump é a saída de utilitários tais como pwdump2, pwdump3 ou outros. E contém os hashes tanto lm quant ntlm.

Para quebrar hashes lm em arquivos pwdump, use o seguinte comando:

# rcrack *.rt -f arquivo_pwdump


O algoritmo de hash lm converte todas as letras minúsculas em strings maiúsculas; como resultado disso, todas as strings quebradas através do hashe lm, nunca contém letras minúscula, enquanto que a string original poed conter letras minúsculas. O programa rcrack tentará corrigir isso em hashes ntlm armazenados no mesmo arquivo e exibir a string original.

quarta-feira, 29 de junho de 2011

Olha o negócio melhorando ai ...

por Gustavo Lima

Já comecei a ouvir de diversos gerentes e executivos de TI a seguinte frase: Precisamos investir nestes dois últimos quarters em segurança. Precisamos contratar mais pessoas capacitadas para gerir a nossa infra de forma segura.

Isso sempre acontece depois de uma pancada na cabeça, neste caso, uma bela de uma pancada em diversos sites de empresas e do governo. O fato é que diversos executivos perceberem que as economias feitas quando o assunto era segurança apresentaram um péssimo resultado.

Há quem diga que as empresas brasileiras não entendem quase nada quando o assunto é segurança corporativa e que a utilização de IDS/IPS e WAF (Web Application Firewall) é mito para muitos, mas falou em normas ISO 27001 ou 27002, todo mundo sabe e já até se certificou. Acontece que a norma em si não protegerá a sua infraestrutura de ataques Hackers, e para isso é necessário o seguinte conjunto: Profissional + Equipamento + Procedimentos/Normas

Hoje, nós temos equipamentos, procedimentos e normas, o que falta são os profissionais para implementar tudo isso e aí está o novo booooom do mercado. A contratação de profissionais especializados em segurança da informação, sejam eles focados em Firewall, realização de testes de segurança e auditoria. Haverá vagas para todos, mas um detalhe, vocês devem estar preparados para ocupá-las.

Nível Superior, inglês, conhecimentos em TCP/IP, segurança e algumas certificações como CCNA e CCSA(Checkpoint) ajudam e muito na hora da procura de um bom emprego em segurança.

Estudem pois o mercado vai bombar…

terça-feira, 7 de dezembro de 2010

BackTrack 4 R2 – Novo release "Nemesis"


A equipe do BackTrack lançou o BackTrack 4 R2 com algumas melhorias, como um novo kernel suportando mais placas de rede sem-fio, USB 3.0, Metasploit com suporte a MySQL, entre outras novidades. Veja mais detalhes no anúncio do lançamento, em , em BackTrack 4 R2 download available | BackTrack Linux – Penetration Testing Distribution.

segunda-feira, 14 de junho de 2010

O Básico sobre Metasploit

Para você Profissional de Segurança que quer aprender o básico sobre o metasploit e não sabe onde encontrar informações, segue um ótimo video da Darknet Consulting ( http://darknet-consulting.com/ ), que mostra como fazer isso:

Faça o download do video aqui: http://darknet-consulting.com/video/vector2/meta101.wmv

-- Jacó Ramos Vieira dos Santos

terça-feira, 8 de junho de 2010

Proteja-se de sites inseguros

É sabido a utilidade que o site virustotal.com tem em exames de perícia na identificação de arquivos suspeitos. Agora é possível fazer o mesmo para sites. O site URLVoid permite que se faça um scan em busca de arquivos maliciosos em sites. O uso é bem intuitivo, basta digitar o endereço e clicar em "Scan Now", que o endereço será submetido à análise feita por 19 antivírus.
Uma segurança a mais para sua navegação. Fica a dica!

quarta-feira, 11 de novembro de 2009

Teste se você é uma isca fácil para ladrões de senhas na Internet

O UOL Tecnologia colocou no ar um teste online muito simples e interessante, para você saber se os seus hábitos na Internet te colocam no "grupo de risco" dos que sofrem fraude online.

São algumas perguntas simples e que abordam as principais artimanhas que os criminosos cibernéticos utilizam para enganar os internautas e roubar suas informações (dados pessoais e suas senhas de acesso).

Faça o teste: Você é uma isca fácil para ladrões de senhas e dados na internet?

terça-feira, 27 de outubro de 2009

Computação Forense no Windows 7

Windows 7 was released this past week. A lot of work by the SANS community has been accomplished at uncovering digital forensic artifacts from it. First off, Windows 7 is really Windows VISTA release 2. Many of the features that are found in Windows Vista will be found in Windows 7. WIN7

First of all, all the SANS Digital Forensic Courses have already included up-to-date material fully covering Windows 7 and Vista unlike anyone has done before. In fact, our challenge for SEC408, Computer Forensic Essentials is strictly based off of a Windows Vista case. We have details in SEC408, Computer Forensic Essentials, that are not as covered in peer courses.

Here is just a few things we have helped document regarding Windows 7.

User Profiles:

With the release of Vista/Win7, Microsoft significantly changed the folder structure and mechanisms used by the operating system for user profiles. One of these changes was to make roaming profiles more explicit. Roaming profiles allow users to log onto other systems in the domain and have their profile information follow them. They have been around for many years, and in Vista/Win7, Microsoft decided to make what follows a user, and what doesn’t follow a user much more explicit. Hence within a user profile in Vista/Win7, there are now two different set of folders: Roaming and Local. For our purposes, we want to be able to determine where our browser artifacts will be located in this new file structure. Traditionally Microsoft has included cookies in a roaming profile and excluded cache and history files by default. Thus, cookies are now found under the Roaming folder and history and cache can be found within the Local folder.


Internet Explorer:

The major change within Vista/Win7 that affects us when performing browser forensics is the newly implemented “Protected Mode”. The idea is that if malicious code is run in the browser, it will not have the necessary privileges to cause harm to the operating system. Since not all activities using the browser will be unprivileged, a duplicate set of directories were necessary to store files from unprivileged use, called Low folders. An example of what this looks like in the file system is:

%userprofile%\AppData\Local\Microsoft\Windows\History\Low\History.IE5 (for the IE history files)

“Protected Mode” conducts web browsing as an unprivileged user

  • A new set of locations were added: low folders
  • Most browser evidence will be in low folders
  • Local file usage is stored in the standard history folder (because it is not performed with restricted permissions)
  • If Protected Mode is turned off, low folders will not be utilized
  • If User Access Control (UAC) is turned off, low folders will not be utilized (it is required for Protected Mode to operate)
  • If the instance of IE is run with Administrator permissions, the low folders are also not used

Locations for History Files in Windows 7

USB Key Analysis:

We discussed full Windows 7 USB Key Analysis in this post: http://blogs.sans.org/computer-forensics/2009/09/09/updated-computer-forensic-guide-to-profiling-usb-thumbdrives-on-win7-vista-and-xp/

USB Drive Enclosure Analysis:

We discussed how to perform Windows 7 USB Drive Enclosure Analysis in this post: http://blogs.sans.org/computer-forensics/2009/09/09/usb-key-analysis-vs-usb-drive-enclosure-analysis/

Defrag Analysis:

Chad Tilbury discussed detecting defrag analysis here: http://blogs.sans.org/computer-forensics/2009/08/17/de-mystifying-defrag-identifying-when-the-windows-defragmenter-has-been-used-for-anti-forensics-part-2-vista/

Timeline Analysis:

Kristinn Guðjónsson developed and released a full scope timeline creation tool called log2timeline that is able to parse many Windows Vista and Windows 7 artifacts in a single simple tool.

  • Prefetch directory (reads the content of the directory and parses files found inside)
  • UserAssist key info (reads the NTUSER.DAT user registry file to parse the content of UserAssist keys)
  • Squid access logs (with emulate_httpd_log off)
  • Restore points (reads the content of the directory and parses rp.log file inside each restore point)
  • Windows shortcut files (LNK)
  • Firefox 3 history file (places.sqlite)
  • Windows Recycle Bin (INFO2)
  • Windows IIS W3C log files
  • OpenXML Metadata (for metadata inside Office 2007 documents)
  • ISA Server text export from queries (saved to clipboard and from there to a text file)
  • TLN (Timeline) body file
  • Mactime body file (so it can be output in a different format)

http://blogs.sans.org/computer-forensics/2009/08/13/artifact-timeline-creation-and-analysis-tool-release-log2timeline/

Shadow Copy Forensics

Troy Larson from Microsoft has done a wonderful job continuing to discuss the Shadow Volume Copy and ways you can examine them in an investigation. We posted back in 2008 on many of his techniques.

http://blogs.sans.org/computer-forensics/2008/10/10/shadow-forensics/

The work continues: There are many artifacts yet to be uncovered and more work is being done. Keep your eyes peeled on this site and additional sites like Harlan Carvey’s http://windowsir.blogspot.com/ as he is publishing many details as well.

If you have any sites that contains Windows 7 artifact information please post them in comments and Ill update the post as we move forward.


Fonte: http://blogs.sans.org/computer-forensics/2009/10/27/windows-7-computer-forensics/