Instalando John the Ripper (JtR) no Mac OS
Nota: Testado no Mac OS Sierra usando Homebrew.
Recentemente precisei instalar o JtR (http://www.openwall.com/john/) em um Macbook Pro. Um pouco mais trabalhoso do que nas distribuições Linux em geral, mas nada impossível. Apesar de haver um build para OSX (http://download.openwall.net/pub/projects/john/contrib/macosx/), o arquivo data de 2012 e não possui diversas melhorias presentes nas versões mais recentes - incluindo o suporte a Kerberos TGS Tickets. Além disso, em geral, eu prefiro compilar o JtR a partir da versão mais recente no Github (bleeding-jumbo); então os passos abaixo fazem mais sentido para mim de qualquer forma.
Pré-requisitos
Passo 1: Cabeçalhos do OpenSSL
brew install openssl
brew link openssl --force
O último comando irá forçar o link do OpenSSL instalado pelo Homebrew (isto é, obriga que os cabeçalhos da versão do OpenSSL do sejam usados). A ação pode ser desfeita depois ou, como aconteceu no meu caso, pode acarretar numa mensagem de erro informando quais diretivas devem ser passadas para que o compilador use especificamente esses cabeçalhos. Tome nota desta informação, pois ela será útil durante o processo de compilação do JtR.
Alternativa: Baixar os fontes do Github funciona da mesma forma.
Passo 2: GCC - Por padrão, o comando “gcc” do XCode é na verdade clang. Como posto nas instruções de instalação do John (https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/doc/INSTALL), usar o gcc “de verdade” permite usar melhor o hardware e ganhar em performance.
brew install gcc
Passo 3: OpenMPI (opcional) - Eu gosto de usar MPI junto com o JtR, mas é completamente opcional.
brew install openmpi
Compilando
Passo 4: Baixar a última versão a partir do repositório no Github:
git clone https://github.com/magnumripper/JohnTheRipper.git -b bleeding-jumbo john
Passo 5: Compilar usando o GCC e os cabeçalhos corretos do OpenSSL:
cd john/src
./configure CC="gcc-6" LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" --enable-mpi && make clean && make
Nota: As variáveis CC e LDFLAGS podem mudar de acordo com o seu compilador e o diretório onde os cabeçalhos do OpenSSL estão localizados.
Testando
./john --test
Erros
Durante a compilação, alguns desses erros podem surgir:
configure: error: JtR requires OpenSSL headers being installed
Undefined symbols for architecture x86_64: "_Camellia_cfb128_encrypt", referenced from: _gpg_common_check in gpg_common_plug.o "_Camellia_set_key", referenced from: _gpg_common_check in gpg_common_plug.o
ld: symbol(s) not found for architecture x86_64
Solução sugerida: Certifique-se de que o caminho para os cabeçalhos do OpenSSL estão corretos (Passo 1 e em “Compilando”) e tente novamente.











