Diagnozowanie pobranego pliku niewłaściwego typu
Jak mówi steeldriver , oznacza to, że plik tak naprawdę nie jest plikiem spakowanym gzipem - lub jakimkolwiek innym plikiem spakowanym gzipem - pomimo tego, że ma taką nazwę.
Podczas pobierania pliku wget
często pojawiają się oznaki, że otrzymałeś inny rodzaj pliku niż to, czego szukałeś:
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]
W tym przypadku głównymi znakami są:
301 Moved Permanently
Wiadomość, przekierowanie do adresu z oznaczeniami /
. Spowoduje to załadowanie domyślnej strony dla jakiegoś katalogu na serwerze, który zwykle index.html
i prawie zawsze jest plikiem HTML.
Length: unspecified [text/html]
, informując, że otrzymujesz zwykły tekst ( text
) i że ma on być interpretowany jako html
. To naprawdę coś więcej niż znak - możesz być całkiem pewien, że nie otrzymałeś na podstawie tego prawdziwego pliku spakowanego gzipem.
Możesz także skorzystać z file
narzędzia, które sprawdza plik i informuje, jaki to plik:
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
I oczywiście można sprawdzić samemu plik za pomocą narzędzi takich jak head
, less
oraz 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="/ubuntu//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">
Gdyby to był naprawdę plik binarny, dostałbyś całą masę bezsensownych śmieci, ponieważ jakikolwiek pager lub przeglądarka bezowocnie próbuje interpretować coś jako zwykły tekst, który tak naprawdę nie jest. Na przykład w poprawnym pliku:
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▒▒ߪ▒▒▒▒▒▒▒▒▒▒_♠▒-▒
(Skopiowałem dopiero początek.)
Uzyskiwanie właściwego pliku
To mówi, jak dowiedzieć się, co poszło nie tak w tych sytuacjach (aw tym przypadku w szczególności). Ale jak znaleźć i pobrać właściwy plik?
Zależy to od sytuacji. Jednak dobrym początkiem jest:
Przejdź do oficjalnej strony oprogramowania i sprawdź, czy zawierają linki do pobrania. Nawet jeśli tak otrzymałeś link, którego pierwotnie używasz, jeśli minie trochę czasu, może się okazać, że link się zmienił.
Na przykład w tym konkretnym przypadku bieżąca wersja to 1.8.0 zamiast 1.7.0.2 (i podana w j
podkatalogu zamiast f
), a stara wersja nie jest już dostępna pod tym samym adresem URL.
Przejdź do strony, na którą zostałeś przekierowany podczas pobierania pliku. W tym przypadku jest to: http://www.openwall.com/john/
Lub możesz nawet zbadać pobrany plik. (Lub otwórz go w przeglądarce internetowej).
Nastąpiło przekierowanie do głównej strony pobierania oprogramowania . Możesz pobrać w przeglądarce internetowej lub skopiować poprawny bieżący link do pobrania i pobrać go za pomocą wget
. Istnieje kilka opcji, ale zakładając, że w rzeczywistości nie potrzebują tej konkretnej starą wersję ty próbujesz pobrać, a na podstawie pliku określonego ty zrobił próbę pobrania, podejrzewam http://openwall.com/john/j/ john-1.8.0.tar.gz jest tym, czego szukasz.
Oczywiście czytelnicy, którzy znajdą ten post później, mogą uznać, że ten link już nie działa. Ale przedstawione tutaj podejście do rozwiązywania tego rodzaju problemów pozostanie aktualne.
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]
Pobrałem plik. Zauważ, że tym razem nie nastąpiło żadne niepożądane przekierowanie, a typ jest podany jako application/x-tar
zamiast text/html
.
(Przekierowanie HTTP nie zawsze jest złe. Dzieje się tak, gdy przekierowuje Cię do czegoś, co nie wydaje się, że może to być plik, którego szukasz, co do którego możesz podejrzewać, że pobieranie się nie powiodło.)
file
zgadza się:
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
I rozpakowuje się pomyślnie:
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
(Masz rację, że nie ma znaczenia, czy używasz z
; nadal by działał tar xzf
, ponieważ jest to właściwy plik).
Możesz przystąpić do budowania kodu źródłowego i instalacji.
Pamiętaj, że nie zawsze musisz budować ze źródła
Czasami naprawdę chcesz najnowszej wersji programu i nie ma go w repozytoriach Ubuntu. Możesz spróbować znaleźć umowę PPA, ale jeśli nie znajdziesz takiej, której tak naprawdę ufasz lub która zapewnia dokładnie to, czego chcesz, lub chcesz zbudować ją z niestandardowymi opcjami lub po prostu lubisz budować z kodu źródłowego, a następnie budować z kod źródłowy jest cenną i przydatną techniką.
Zalecam jednak sprawdzenie przynajmniej oprogramowania dostępnego w oficjalnych repozytoriach Ubuntu dla twojego systemu. W moim systemie 16.04:
ek@Io:~$ apt show john
Package: john
Version: 1.8.0-2
Priority: optional
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Ruben Molina <rmolina@udea.edu.co>
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.
Istnieje kilka innych sposobów wyszukiwania pakietów. Często przydaje się korzystanie ze strony wyszukiwania pakietów Ubuntu .
Ponieważ miałeś zamiar zainstalować wersję 1.7.0.2, prawdopodobnie wersja 1.8.0 w oficjalnych repozytoriach jest dość aktualna. (Rzeczywiście, 1.8.0 wydaje się być tą samą wersją, co wersja przeznaczona do pobrania z oficjalnej strony internetowej.) Naprawdę możesz po prostu chcieć zainstalować to:
sudo apt update
sudo apt install john
john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines