Requisito SSE2 para John The Ripper

4

Eu tenho um problema com john no Kali x86. Para encurtar a história, não posso permitir executar john no Kali Linux 2.0 instalado em LV, mas, como eu me lembro, consegui rodar em versões mais antigas do Kali e antigas do john no VM. O erro é:

Sorry, SSE2 is required for this build

Bem, o Kali é executado com um CPU suficiente, eu acho, então eu olhei e para cada núcleo saiu como:

root@kali:~# cat /proc/cpuinfo

 model name : Intel(R) Core(TM)2 Duo CPU     T5800  @ 2.00GHz
 microcode  : 0xa4
 cpu MHz    : 800.000
 cache size : 2048 KB
 flags      : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat 
              pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm 
              constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor
              ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm dtherm

E o resultado de dmidecode :

root@kali:~# dmidecode -t 4

 # dmidecode 2.12
 SMBIOS 2.4 present.

  Handle 0x001E, DMI type 4, 35 bytes
  Processor Information
  Socket Designation: CPU
  Type: Central Processor
  Family: Pentium M
  Manufacturer: Intel(R) Corporation
  ID: FD 06 00 00 FF FB EB BF
  Signature: Type 0, Family 6, Model 15, Stepping 13
Flags:
    FPU (Floating-point unit on-chip)
    VME (Virtual mode extension)
    DE (Debugging extension)
    PSE (Page size extension)
    TSC (Time stamp counter)
    MSR (Model specific registers)
    PAE (Physical address extension)
    MCE (Machine check exception)
    CX8 (CMPXCHG8 instruction supported)
    APIC (On-chip APIC hardware supported)
    SEP (Fast system call)
    MTRR (Memory type range registers)
    PGE (Page global enable)
    MCA (Machine check architecture)
    CMOV (Conditional move instruction supported)
    PAT (Page attribute table)
    PSE-36 (36-bit page size extension)
    CLFSH (CLFLUSH instruction supported)
    DS (Debug store)
    ACPI (ACPI supported)
    MMX (MMX technology supported)
    FXSR (FXSAVE and FXSTOR instructions supported)
    SSE (Streaming SIMD extensions)
    SSE2 (Streaming SIMD extensions 2)
    SS (Self-snoop)
    HTT (Multi-threading)
    TM (Thermal monitor supported)
    PBE (Pending break enabled)
Version: Intel(R) Core(TM)2 Duo CPU     T5800  @ 2.00GHz
Voltage: 1.6 V
External Clock: 800 MHz
Max Speed: 2000 MHz
Current Speed: 1200 MHz
Status: Populated, Enabled
Upgrade: <OUT OF SPEC>
L1 Cache Handle: 0x0021
L2 Cache Handle: 0x001F
L3 Cache Handle: Not Provided
Serial Number: Not Specified
Asset Tag: FFFF
Part Number: Not Specified

O resultado do uname

root@kali:~# uname -a
  Linux kali 4.0.0-kali1-686-pae #1 SMP Debian 4.0.4-1+kali2 (2015-06-03) i686 GNU/Linux

O resultado da versão do gcc

root@kali:~# gcc --version
  gcc (Debian 4.9.2-10) 4.9.2

No entanto, instalei o John the Ripper 1.8 , além do que veio pré-carregado com a distribuição do Kali Linux e não encontrei nenhum benchmark para o SSE2 durante o processo de compilação.

  • Então, o que é SSE2 em geral?
  • O SS2E pode ser usado em processadores x86?
  • Por que esses builds como o john precisam do SSE2?

EDITAR:

  • Por que esses builds não podem ser executados em um sistema que possui especificação SSE2?

Obrigado antecipadamente.

    
por CagCak 21.08.2015 / 12:04

2 respostas

8
  • O que é SSE2 em geral?

O SSE2 é um subconjunto de instruções especializadas estendidas do conjunto de instruções Intel x86. Eles são dedicados ao SIMD (Dados Múltiplos de Instrução Única), o que significa que em uma instrução eles podem manipular vários dados graças a registros extra-amplos específicos (ou seja, os registradores XMM que são 128-bits wides).

As possíveis divisões dos registradores XMM são mostradas na figura a seguir.

  • O SS2E pode ser usado em processadores x86?

Qualquer processador Intel x86 relativamente recente possui um conjunto de instruções SSE2. Se você quiser verificar se a CPU tem, basta fazer:

$> cat /proc/cpuinfo | grep flags | tail -n 1
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36
        clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb
        rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology
        nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx
        est tm2 ssse3 fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt
        tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm ida arat epb pln
        pts dtherm tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust
        bmi1 avx2 smep bmi2 erms invpcid xsaveopt

Você pode ver aqui todos os subconjuntos de instruções que seu processador incorporou. Você deve encontrar sse2 na lista (é o caso aqui).

  • Por que esses builds como o john precisam do SSE2?

O SEE é realmente útil para lidar com processamento de sinais e algoritmos altamente paralelizados. No caso de John the Ripper, o conjunto de instruções SSE2 é usado para paralelizar o algoritmo de força bruta de função hash. Ele calcula várias tentativas de hash em uma instrução para acelerar a exploração do espaço-chave (ou para esgotar o diccionário).

  • Por que esses builds não podem ser executados em um sistema que possui especificação SSE2?

É muito provável que esteja ligado a um motivo de software. Ou você instalou o sistema 32bits em uma CPU de 64bits (i386 sobre amd64), ou você pode não ter as ferramentas de compilação que são capazes de lidar com conjuntos de instruções SSE2. Também pode ser porque o sistema de compilação de John tem uma falha e não detectou adequadamente a capacidade do seu sistema.

Mas você não fornece informações suficientes sobre o sistema para resolver o problema.

Se você deseja instalar o john , é melhor usar o pacote pré-compilado que vem com a sua distribuição (este é um pacote padrão em praticamente qualquer distribuição mainstream agora).

    
por 22.08.2015 / 00:17
0

Instale a versão antiga ou mais recente do john the ripper no kali linux 2.0, exceto o que está instalado em seu sistema. Seu problema resolverá.

    
por 21.04.2016 / 14:05