Diagnosticando um arquivo baixado do tipo errado
Como steeldriver diz , isso significa que o arquivo não é realmente um arquivo tar gzipado - ou qualquer tipo de arquivo gzipado - apesar de ser nomeado como um.
Quando você faz o download de um arquivo com wget
, muitas vezes há indicações de que você acabou de obter um tipo de arquivo diferente daquele que estava procurando:
ek@Io:~$ wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
--2017-01-28 23:57:33-- http://openwall.com/john/f/john-1.7.0.2.tar.gz
Resolving openwall.com (openwall.com)... 195.42.179.197
Connecting to openwall.com (openwall.com)|195.42.179.197|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.openwall.com/john/ [following]
--2017-01-28 23:57:40-- http://www.openwall.com/john/
Resolving www.openwall.com (www.openwall.com)... 195.42.179.202
Connecting to www.openwall.com (www.openwall.com)|195.42.179.202|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘john-1.7.0.2.tar.gz’
john-1.7.0.2.tar.gz [ <=> ] 15.27K 3.61KB/s in 4.2s
2017-01-28 23:57:51 (3.61 KB/s) - ‘john-1.7.0.2.tar.gz’ saved [15633]
Neste caso, os principais sinais são:
- A mensagem
301 Moved Permanently
, redirecionando para um endereço com um/
à direita. Isso carrega a página padrão de algum diretório no servidor, que geralmente éindex.html
e quase sempre um arquivo HTML. -
Length: unspecified [text/html]
, informando que você está recebendo texto simples (text
) e que deve ser interpretado comohtml
. Isso é realmente mais do que um sinal - você pode ter certeza de que não obteve um arquivo real com base no arquivo.
Você também pode usar o utilitário file
, que examina um arquivo e informa qual tipo de arquivo parece:
ek@Io:~$ file john-1.7.0.2.tar.gz
john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines
E, é claro, você mesmo pode examinar o arquivo com ferramentas como head
, less
e view
:
ek@Io:~$ head john-1.7.0.2.tar.gz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>John the Ripper password cracker</TITLE>
<link href="/style.css" type="text/css" rel="stylesheet">
<META name="keywords" content="John the Ripper, password cracker, JtR, password checker, password recovery, password, cracker, crackers, cracking, crack, crypt, passwd, shadow, Unix, Linux, Windows, Win32, Mac OS X, Mac OSX, MacOS X, OS X, OSX, DOS, VMS, OpenVMS, hash, DES, MD5, Blowfish, Kerberos, AFS, LM, LanMan, LanManager, NT, 2000, XP, 2003, Vista, 7, NTLM, NTLMv1, MD4, Netscape LDAP, SHA, SSHA, MySQL, TGT, s/key, Eggdrop, Apache, apr1, SYSUAF, SYSUAF.DAT, AltiVec, MMX, SSE, SSE2, AVX, XOP, wordlist, wordlists, dictionary, brute force, decrypt, challenge, response, John, Ripper, john, jhon, jonh, jack, Jack the Ripper">
<META name="description" content="A fast password cracker for Unix, Windows, DOS, and OpenVMS, with support for Unix, Windows, and Kerberos AFS passwords, plus a lot more with contributed patches">
</HEAD>
<BODY bgcolor="#E0E0E0" text="black" link="blue" alink="red" vlink="navy">
Se este fosse realmente um arquivo binário, você teria conseguido um monte de lixo sem sentido, já que qualquer pager ou visualizador que você usa infrutiferamente tenta interpretar algo como texto simples que realmente não é. Por exemplo, no arquivo correto:
ek@Io:~$ head john-1.8.0.tar.gz
WӦQ♥john-1.8.0.tar ▒▒kw▒ر&▒▒ٿ▒▒▒▒4E]|▒v▒NF▒d[▒n▒▒▒L&▒HB▒$▒ ▒df͚▒▒▒▒▒ꩪ▒7@▒▒▒9ӳf▒▒J▒m ▒ؗ▒u▒▒~,▒ї▒▒▒ˣ▒▒ӣ_▒▒▒▒C▒▒|▒▒▒▒▒şw▒v▒▒>▒|w▒▒▒}▒▒▒ί▒▒i9▒?7+▒gY7i▒$▒▒ʲ▒▒s?▒J'MV%▒rY4ur[▒4▒▒e▒▒.▒▒▒▒▒&/u▒-2▒W▒▒V▒▒!o▒0b▒▒▒♥▒|Q▒4▒▒▒&▒▒Y1Y▒F▒▒Iy▒▒▒▒$▒▒▒▒,▒]▒h▒▒8▒"▒▒M▒,Һ~(▒i▒4Y▒d▒QgQ▒*ۚf7yA▒.▒&i▒<d▒↓▒7▒H_-l▒7▒▒▒Z▒▒.m▒▒ʒ%F,▒۬▒*▒▒hrW▒cY▒▒
▒+▒O1▒-y>▒▒J▒yM?▒4I▒▒▒kYS▒▒:▒▒n▒C▒▒%▒▒▒v▒▒▒{[[tN▒9▒▒▒kA▒▒▒▒▒/[▒▒▒▒u▒▒▒z▒▒▒▒>▒▒5▒▒▒▒t▒t▒▒Y6Û<▒*/i▒i{K>▒,▒▒▒▒▒;9)▒Z.mJSeiLB▒▒▒▒▒j▒▒eQ緅▒_▒α▒Ŋ▒▒▒W▒▒▒▒▒_▒▒ˢ▒▒-q▒<gyw͍▒9▒?▒,▒▒▒▒h&▒V"▒▒▒▒▒▒▒l▒▒3▒▒▒▒\▒▒i#▒▒综▒◄0▒▒▒.e♠>a▒▒▒▒▒▒$klt:▒▒rA▒M▒'F▒R▒▒▒▒Lo▒♥1z▒\▒↓X▒▒▒P"֕▒▒▒♦▒▒▒▒|▒▒▒▒▒▒1I▒o"'#|6e▒▒t▒Ц▒FVL▒▒S▒ޓ▒▒;▒x▒▒▒▒▒▒▒QVrr▒▒▒9O▒W7▒♠Og▒
▒▒▒8▒▒/▒▒dm▒FG'▒'t2L▒▒&L▒Y:▒▒▒▒▒4▒rI<▒#▒+▒je▒▒▒>T9▒▒M▒XE-ʆ▒▒'n▒▒$↑▒m▒W▒▒w̕▒▒m▒n%▒|A_▒yGp↑D▒↓▒▒▒i▒▒}ӡH▒▒▒▒$$H▒▒&▒▒4▒▒▒Z-@♣▒*~▒▒▒ y6▒▒▒'▒v↓▒s▒+̱▒?▒1▒▒▒<▒>▒^▒▒Y#k▒
7'N'▒o▒.&▒▒(▒Դ~AD▒"E◄' lq▒'▒▒'▒[▒9◄▒▒wzuK▒N▒▒Y▒▒%or▒▒)▒▒i↓▒▒▒l5.S▒r▒_*▒RO▒{▒$▒(▒▒▒▒C▒·▒▒׀f2ˊ[:▒▒▒,|ew▒▒▒Ag▒'▒▒▒H▒▒t▒{͓▒▒▒▒JH˭s▒)g▒ON▒▒eŚQ▒▒▒♠ s▒▒ߪ▒▒▒▒▒▒▒▒▒▒_♠▒-▒
(eu copiei apenas o começo disso).
Obtendo o arquivo correto
Isso diz a você como descobrir o que deu errado nessas situações (e, neste caso, em particular). Mas como você realmente encontra e baixa o arquivo correto ?
Isso varia de situação para situação. No entanto, um bom começo é:
-
Vá para o site oficial do software e veja se eles fornecem links de download. Mesmo que seja assim que você tenha o link que você está usando originalmente, se algum tempo tiver passado, você pode descobrir que o link mudou.
Por exemplo, neste caso específico, a versão atual é 1.8.0 em vez de 1.7.0.2 (e fornecida no subdiretório
j
em vez def
), e a versão antiga não está mais disponível no mesmo URL. -
Vá para a página para a qual você foi redirecionado quando fez o download do arquivo. Nesse caso, isso é: link
Ou você pode até examinar o arquivo que foi baixado. (Ou abra em um navegador da Web.)
Você foi redirecionado para a página de download principal do software . Você pode fazer o download em um navegador da Web ou copiar um link de download atual correto e baixá-lo com wget
. Existem algumas opções, mas presumindo que você não precisa dessa versão antiga específica que estava tentando baixar, e com base no arquivo específico que você tentou fazer o download, Suspeito que o link é o que você está procurando.
É claro que os leitores que encontrarem essa postagem mais tarde poderão encontrar o link que não funciona mais. Mas a abordagem demonstrada aqui para solucionar esse tipo de problema permanecerá válida.
ek@Io:~$ wget http://openwall.com/john/j/john-1.8.0.tar.gz
--2017-01-29 00:16:19-- http://openwall.com/john/j/john-1.8.0.tar.gz
Resolving openwall.com (openwall.com)... 195.42.179.197
Connecting to openwall.com (openwall.com)|195.42.179.197|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5450412 (5.2M) [application/x-tar]
Saving to: ‘john-1.8.0.tar.gz’
john-1.8.0.tar.gz 100%[================================================================================>] 5.20M 78.8KB/s in 26s
2017-01-29 00:16:47 (202 KB/s) - ‘john-1.8.0.tar.gz’ saved [5450412/5450412]
Eu baixei o arquivo. Observe que, desta vez, nenhum redirecionamento indesejado aconteceu e o tipo é dado como application/x-tar
em vez de text/html
.
(Um redirecionamento HTTP nem sempre é ruim. É quando você é redirecionado para algo que não parece ser o arquivo que você está procurando e que você deve suspeitar que seu download não tenha sido bem sucedido.)
file
concorda:
ek@Io:~$ file john-1.8.0.tar.gz
john-1.8.0.tar.gz: gzip compressed data, was "john-1.8.0.tar", last modified: Thu May 30 04:19:35 2013, max compression, from Unix
E descompacta com sucesso:
ek@Io:~$ tar xf john-1.8.0.tar.gz
ek@Io:~$ cd john-1.8.0/
ek@Io:~/john-1.8.0$ ls -l
total 12
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 doc
lrwxrwxrwx 1 ek ek 10 May 29 2013 README -> doc/README
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 run
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 src
(Você está certo de que não importa se você usa o z
; ele ainda teria funcionado com tar xzf
, já que este é o arquivo correto.)
Você pode continuar a criar o código-fonte e instalá-lo.
Lembre-se, você nem sempre precisa criar a partir da origem
Às vezes você realmente quer a última versão de um programa, e não está nos repositórios do Ubuntu. Você pode tentar encontrar um PPA, mas se você não encontrar nenhum que você realmente confie ou que forneça o que você quer, ou você queira construí-lo com opções personalizadas, ou você realmente gosta de construir a partir do código-fonte, código fonte é uma técnica valiosa e útil.
Eu recomendo verificar pelo menos o software que está disponível nos repositórios oficiais do Ubuntu para o seu sistema, no entanto. No meu sistema 16.04:
ek@Io:~$ apt show john
Package: john
Version: 1.8.0-2
Priority: optional
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Ruben Molina <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 452 kB
Depends: libc6 (>= 2.14), john-data (= 1.8.0-2)
Suggests: wordlist
Homepage: http://www.openwall.com/john/
Supported: 5y
Download-Size: 184 kB
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
Description: active password cracking tool
John the Ripper is a tool designed to help systems administrators to
find weak (easy to guess or crack through brute force) passwords, and
even automatically mail users warning them about it, if it is desired.
.
Besides several crypt(3) password hash types most commonly found on
various Unix flavors, supported out of the box are Kerberos AFS and
Windows NT/2000/XP/2003 LM hashes, plus several more with contributed
patches.
Existem várias outras maneiras de pesquisar por pacotes. Geralmente é útil usar a página da Web Pesquisa de Pacotes do Ubuntu .
Como você estava tentando instalar a versão 1.7.0.2, presumivelmente a versão 1.8.0 nos repositórios oficiais é recente o suficiente. (De fato, 1.8.0 parece ser a mesma versão fornecida para download no site oficial.Então você pode querer instalar isso:
sudo apt update
sudo apt install john