2016-01-03


Custom wordlist generator with John the Ripper, List Rules mode

開膛手約翰,自定義單詞列表生成

📎️ openwall.com/john/
В "man" страницата описанието на ... 🎩️ John the Ripper започва 📎️"john, a tool to find weak passwords of your users"... помощ за системните администратори, търсещи да открият лесни за отгатване пароли,уязвими за brute-force🔨️cracking или елементарни dictionary attacks Веднага след приключване на инсталацията може да извикате John през Linux терминала с командата "whereis":
nick@user:~$ whereis john
Трябва да се получи отговор подобен на този:
john: /usr/sbin/john /etc/john /usr/share/john /usr/share/man/man8/john.8.gz
/usr/sbin/john,където се намира изпълнимият bin файл.
/etc/john,там е john.conf
В /usr/share/john,присъстват password.lst,lm_ascii.chr,ascii.chr,digits.chr,cronjob
Файлът "password.lst" е речник, който идва с програмата и съдържа най обичайни пароли, много често използвани от потребителите.
/usr/share/man/man8/john.8.gz - помощни текстови файлове.
Има още една важна папка, скритата директория (. John) Там ще се създаде текстовият файл john.pot. Може да не са видими след инсталация, но при изпълнение на следната команда трябва да се появят в "home":
john -incremental:ASCII -stdout
Сега ще използвам John за друго, съставяйки чрез него речник с думи, "wordlist". Такива списъци се експлоатират от програми,които прилагат "dictionary метод" за познаване на пароли. Най-общо казано, ако дума от речника съвпада с парола на потребител,опитът е успешен. Моята цел е да създам подходящ wordlist за "THC-Hydra" и чрез отдалечен достъп да го изпълня върху примерен, тестов акаунт в Локална мрежа https://github.com/thc-hydra
При dictionary теста, Hydra изисква инфо и за user name...
Цялата истина за John се крие във файла john.conf. Може да го отворите с текстов редактор (Gedit, Kate, Nano, Leafpad, Xed...) Под Ubuntu:
sudo gedit  /etc/john/john.conf
Аз ще го променя според нуждите си в момента. Към версия (1.8.0-2) се поддържат различни схеми на хеширане и определен набор Incremental стойности: ASCII, LM_ASCII, Alnum, Alpha, Digits... В по-старите варианти част от тях бяха именувани по друг начин: Incremental:All вместо ASCII, LanMan заместен от LM_ASCII и т.н... Извадка от john.conf, отворен в текстов редактор:

Incremental:ASCII - Описание на опцията.

File = $JOHN /ascii.chr
Файлът ascii.chr намиращ се в /usr/share/john е списък от символи, които ще се използват при генерирането на думи. Включва почти всичко, цифри, интервал, пунктуация, малки и главни букви, препинателни знаци, комбинация от бутона Shift плюс цифрите и други ... !@#$%^&*()

MinLen = 0
"Минимална" дължина, 0 е подразбираща се стойност

MaxLen = 13
"Максимална" дължина , 13 е подразбираща се стойност

CharCount = 95
Брой символи съдържащи се в ascii.chr...
За да си представите размера на изходния файл при тези величини, просто трябва да повдигнете CharCount на степен MaxLen.

CharCount ^ MaxLen = 95 ^ 13
Online calculator:
📎️ exponentiation-calculation
При различни цифрови параметри зададени върху MinLen и MaxLen ще се променя и генерираният резултат.Един примерен сценарий за разкриване на парола чрез dictionary метод използва вече създадена база с думи. При brute-force ще се тества всяка възможна подредба съобразена със зададени стойности във файла "john.conf". Определените характеристики върху MaxLen, MinLen, Incremental, CharCount, ascii.chr или custom.chr са важни. Възпроизвеждат се съчетания от всички символи или само от посочените, към зададени дължини в Min/ MaxLen. John ще се съобрази с тези указания и след като избере правилния криптиращ алгоритъм (DES, MD5 и т.н), ще генерира хеш за всяка създадена комбинация, след което ще го сравни с хеша на паролата. Написаното тук търси само изграждането на речник с думи.

Пример:
MinLen = 8 минимална дължина
MaxLen = 8 (максимална дължина ...) Образуваните думи се състоят само от 8 символа. Тези, които фигурират във файла с разширение .chr

Пример:
MinLen = 4 (мин.дължина ... )
MaxLen = 8 (максимална дължина ...) Тук ще се появи резултат от 4,5,6,7 и 8 символа. За да започне процедурата изпълнете следната команда:
john -incremental:ASCII -stdout>ASCII_Wordlist
По този начин текстов файл с име "ASCII_Wordlist" ще се съхрани в "Home". Ако изпълните само:
john -incremental:ASCII -stdout
Върху екрана ще се отпечатва всяко предложение без да се съхранява някъде. Ще го прекратите с клавишната комбинация Ctrl-C. На този етап ми изписва,че може да генерира до 24 символа, (MaxLen = 25 exceeds the compile-time limit of 24). По идентичен начин се действа при използването на другите Incremental опции:

Incremental:Alpha - всички 52 букви
Incremental:Digits - само цифри от 0 до 9
Incremental:Alnum - всички 62 букви и цифри
LowerNum (малки букви плюс цифри, 36 общо),
UpperNum (главни букви плюс цифри, 36 общо),
LowerSpace (малки букви, плюс пространство, 27 общо)

Съответно:
john -incremental:Alnum -stdout> Wordlist
john -incremental:Digits -stdout> Wordlist
john -incremental:Alpha -stdout> Wordlist
#### 📎️ custom.chr
С John the Ripper има възможност за създаване на custom.chr, който ще включва избрани символи. Ето как става: Чрез файловия мениджъра се доберете до home/*/ .john/ ("покажи скритите файлове"). Отворете файла john.pot с текстов редактор и въведете вашите предпочитания в него. Ще използвам петнадесет "знака" , които ще ми послужат за този пример. Той трябва да изглежда така:
john-password-algorithm
: */Ob!@MdqwCZ?uy
📛️ Пред символите трябва да има двоеточие❗️ " : "
Може да се използва следният синтаксис при създаване на custom.chr.
john --make-charset=custom.chr

...или

john -make-chars:custom.chr
Именувайте файла както желаете,например my.chr
Не трябва да сте root. Няма смисъл да се задава като аргумент файлът "john.pot". При създаване на собствен (.chr) John the Ripper винаги разпознава и се обръща към уникалното име "john.pot". Файлът custom.chr ще се съхрани в "home". Ето резултата:
nick@user:~$ john -make-chars:custom.chr
Loaded 1 plaintext
Generating charsets........................ DONE
Generating cracking order..- Stable order (3 recalculations)
Successfully wrote charset file: custom.chr (15 characters)
Като root поставете току що създадения файл "custom.chr" в /usr/share/john, с десен бутон върху него задайте нужните права:
photo
Сега трябва да се допише файлът "john.conf", като се вмъкне "Custom Incremental" опцията без коментарите,които съм направил.
[Incremental:Custom]
File = $JOHN/custom.chr
MinLen = 4      ### зададена стойност от 4 символа
MaxLen = 4     ### определена дължина от 4 знака
CharCount = 15   ### налични във файла "john.pot"

Вече може да се създаде тестов wordlist на база Incremental: Custom
john -incremental:custom -stdout>custom_Wordlist

...или

john -incremental=custom -stdout>custom_Wordlist
Файлът 📎️ "custom_Wordlist" ще се съхрани в Home. По време на генерирането може да се разглеждат резултатите, като просто натискате от време на време някой клавиш.
#### 📎️ List Rules
Големият обем на получените речници при използването на "Incremental modes" ни довежда до употребата на правила от секцията "List Rules".
#### 📎️ john/doc/RULES
Те предсавляват пермутации върху вече съществуващи символи. По този начин се създават съкратени,"непълни" речници с думи. Подобно на непълното комбиниране на числа при някой хазартни игри. Успехът е гарантиран при условия определени от потребителя. За да работят правилата от List Rules, на john му трябва някакъв речник с думи,върху който да ги приложи Аз избирам в моят речник "WORD.lst" да фигурира само един символ, една точка... Ще създам правило от два реда, което ще приложа върху тази "точка". Генерираните думи ще се състоят само от десет (10) символа. В резултат на това ще създам моя "List Rules Wordlist". Като root пиша директно в "john.conf" непосредствено под:
📎️ # Wordlist mode rules
След като сейфна файла той веднага влиза в сила и мога да го приложа:
i0[!ijl1]i[01][Aa4]i2[hHNn]i[23][O@o0]i4[zZ27]i[45][B8&b]i6[gqd]i[67][QDG6]i8[Ee39]i[89][S$5s]@.

i0[!ijl1]i1[Aa4]i2[hHNn]i[03][O@o0]i4[zZ27]i[15][B8&b]i[26][gqd]i7[QDG6]i[48][Ee39]i[79][S$5s]@.
photo
примерна картинка отнасящта се само за първия ред:
Използван синтаксис в Linux терминал:
john -wordlist:WORD.lst -rules -stdout

отпечатва резултат на екрана

john -wordlist:WORD.lst -rules -stdout>List_Rules_Wordlist

създава файл List_Rules_Wordlist в home

john -w:WORD.lst -ru -stdout>List_Rules_Wordlist

съкратен вариант на командата

john : Основна команда за стартиране на John the Ripper.
-w:WORD.lst : ще се използва WORD.lst,текстовият файл в $HOME.
-ru : john ще приложи своите вградени правила за промяна на думите от WORD.lst и ще генерира резултати в List_Rules_Wordlist.Това може да бъде промяна на регистъра (промяна на буквите от малки на главни или обратно),обръщане на последователността на символите с цел ефективност и т.н. Тук използвам само една точка,но тя може да се замени например с единични букви на няколко реда или друго.
-stdout : извлича резултати като стандартен изход, вместо да ги използва за разбиване на пароли.
>List_Rules_Wordlist : bash команда,която извежда резултат към файл с име List_Rules_Wordlist.
След всичко това получавам речник с приблизителен размер 600 МВ.


Няма коментари :

Публикуване на коментар

Забележка: Само членове на този блог могат да публикуват коментари.