download.bg
 Вход Списание  Новини  Програми  Статии  Форум  Чат   Абонамент  Топ95   Архив 

Разбиване на WinRar парола. Или малко повече инфо за BruteForce и Dictionary атаките. Чисто Bash програмиране.

< 1 2 3 >

Автор
Съобщение
phrozencrew
Пон, 23.11.09, 21:15
Започвам тази тема за да хвърлим малко светлина върху тези 2 типа атаки. Тъй като принципите на кракване на пароли с тези техники са супер аналогични избрах да покажа как можете за 5 минути да си напишете bash скрипт, който да кракне парола на популярната програма WinRar.
Защо WinRar? Защото механизма на шифроване му е доста усъвършенстван. За да кодира архива WinRar използва самата парола, като ключ. За разлика от други типове архиви, при този вид архивиране няма друг начин, освен прилагането на сила и то с много мускули :).

Какво трябва да направим за да хакнем подобна парола? Да разберем цикъла по който функционират всичките ремембъри пасс и дрън дрън платени приложения за WinBlowz.
Цикъла е следния:
1. Зареждане на речник с думи или генериране на комбинации от символи.
2. Извличане на всяка дума по отделно от тези списъци и тестване на архива с нея
3. При получаване на положителен резултат изписване на паролата и моментално прекратяване на скрипта

Няма да се впускам в дълги обяснения за всяка команда на bash, която ще използвам, защото всички, команди, които видите ще бъдат описани в урока за bash, който започнахме.

Да започнем с техниката Dictionary atack. При тази техника обикновено се теглят готови списъци с думи от интернет. При нея се разчита, че повечето хора ползват логично-свързани символи, от сорта на abv, abcd, admin, user, potrebitel, ivan, asen, Hasan, Mitko, az и т.н. Как се събират тези речници е друг въпрос. Факт е, че около 20% от потребителите на интернет използват 1000 еднакви думи за пароли (поне такава статистика имаше преди 2-3 години). Значи ако разполагаме с речник с тези 1000 думи ще можем да кракнем личната информация на 20% от потребителите на глобалната мрежа. Стига статистика.
Да видим как ще изградим по-горе описания цикъл с bash под linux (в случая ще ползвам Ubuntu). За целта ще използвам един Rar архив, на който сложих парола rar_archive.rar. Да предположим, че съм изтеглил и един речник с който да бомбандирам архива, всъщност речника си го написах сам, като нарочно добавих паролата в него paroli.txt. Сега ще напиша и няколко реда на bash, които да разбият паролата на архива:
counter=0
IFS='
'
for i in `cat paroli.txt`;
do
        unrar t -p"$i" rar_archive.rar > /dev/null 2>&1
	stat=$?
	if [ $stat -eq 0 ]; then
		echo "Parolata e:  $i"
		echo "Namira se na red $counter v dictionary faila"
		exit $stat
	fi
        let counter+=1
done
echo
echo Count: $counter
exit $stat

Записваме този файл като rar-hack.sh в същата директория с архива и речника.
За да направим файла изпълним в конзолата трябва да изпълним:
chmod +x rar-hack.sh

Малко обяснения за скрипта. Реда:
for i in `cat paroli.txt`;

Зарежда всеки ред от файла paroli.txt и го подава на променливата i. След това тази промелива се тества дали отговаря на паролата, което го правим в:
unrar t -p"$i" rar_archive.rar > /dev/null 2>&1

Програмата unrar е разпостранена в много linux дистрибуции, така, че предполагам и при вас и има. Ако погледнем в "unrar --help" ще видим, че командата "t" тества архива, а суича "-p[pass]" вкарва парола при поискване. Идеално, тъкмо за нас :)! Време е да изпълним цялата тая хавица.
Ако искаме да направим бенчмарк на времето за разбиване на паролата можем да изпълним скрипта, като добавим time пред скрипта:
time ./rar-hack.sh

При мен разби паролата за 2 секунди. Но моята машина вече е старичка.

Да видим по-интересната техника с BruteForce. Няма да се спирам на дълги обяснения. В този случай ще заместим речника с един масив в който генерираме последователни комбинации от символи. Нещо като да пуснеш ТОТО 2 със всички възможни комбинации :).
Масива го създавам много лесно, като няма да обхвана цялата латинска азбука, а само символите a,b,c,d,e,f,g и то във всички четирисимволни комбинации между тях, като afcd, aaaa, ffff, fbcd и т.н.:
counter=0
words=({a..g}{a..g}{a..g}{a..g})
 
for i in "${words[@]}";
do
        unrar t -p"$i" rar_archive.rar > /dev/null 2>&1
	stat=$?
	if [ $stat -eq 0 ]; then
		echo "Parolata e:  $i"
		echo "Namira se na red $counter v dictionary faila"
		exit $stat
	fi
        let counter+=1
done
echo
echo Count: $counter
exit $stat

Да запишем и този файл като rar-hack-s-masiv.sh . Да видим какво ще стане и като го изпълним, като пак измерим времето:
time ./rar-hack-s-masiv.sh

Тук скоростта на кракване зависи от това на кое място в комбинациите се намира съвпадението с паролата. Ако имаме четирите символа "zzzz" то при едно подобно трасиране ще ни трябват няколко часа, защото това ще е последната възможна комбинация от латинската азбука с малки букви.
Моята вефта машинка позна паролата за:
real	0m5.747s

Чудесно, но ако паролата е по-сложна, с повече от 4 символа. Е тогава ще ми трябват дни. Възможностите, които имам са да направя скрипта многонишков и така да уплътня максимално процесорното време.
Друго, което трябва да се знае, че не бива да зареждате толкова големи масиви в временната памет, защото така ще зависне машината. По добре е вместо масив да се използват xargs:
echo {a..g}{a..g}{a..g}{a..g} | xargs -n1

или нещо от сорта.

Ще ми е интересно някой да ми каже паролата на тоя архив !

dreamskill
Пон, 23.11.09, 21:27
abcd е паролата
Сложи cc "договор" на твои уроци, нищо чудно, ако някои "софийци" ги откраднат.
И отново ти благодаря че ни учиш на такива неща.
phrozencrew
Пон, 23.11.09, 21:32
Браво dreamskill! Имаме участник, познал верният отговор!
Ще те черпя някой ден една боза !
Абе ти нали не харесваше много Linux-ите. Кога успя да си пуснеш машината с такова дистро?
dreamskill
Пон, 23.11.09, 21:42
Еми аз имам инсталирано убунту на лаптопа, ама успях да разбия паролата без bash
galkamalka
Пон, 23.11.09, 21:43
Едиз не забрявай, че баш шефа ако изобщо се сети......идва със "софийца" регистрация
И не казвай, че си ползвал нещу от сорта на RarCrack! под Gentoo

Благодаря и аз за този урок!
Нещо напоследък се раздаваш...нз що ама благодаря.

dhtj
Пон, 23.11.09, 21:49
Ей тва програмиста много упорито животно бе
Защо трябва да знам bash, trash и миш-маш, като мога да пусна едно търсене в гугъл за rar password и всичко да се подреди???

dreamskill
Пон, 23.11.09, 21:53
dhtj, същото е да питаш - защо ми е да уча html, като има готови темплейти.
танясекс
Пон, 23.11.09, 21:54
ЯКООО ..... Ще ми е интересно с 5 символа как ще се справите ..... Ама да са букви и цифри
Давай Нед .... Измисли им задачка закачка :)

Благодаря , че и днеска намерих нещо интересно тук, благодарение на теб .

dhtj
Пон, 23.11.09, 21:54

RE: Разбиване на WinRar парола. Или малко повече инфо за BruteForce и Dictionary атаките. Чисто Bash програмиране.

” dhtj, същото е да питаш - защо ми е да уча html, като има готови темплейти. „
Е като имаш темплейти как ще си ги редактираш без да знаеш хтмл? Не е същото - тука за 1 минутка написах в гугъл rar password, теглих първия триал който видях и той за 30 секунди разкри паролата ....
dhtj
Пон, 23.11.09, 21:56

RE: Разбиване на WinRar парола. Или малко повече инфо за BruteForce и Dictionary атаките. Чисто Bash програмиране.

” ЯКООО ..... Ще ми е интересно с 5 символа как ще се справите ..... Ама да са букви и цифри
Давай Нед .... Измисли им задачка закачка :) „
няма да е честно - едиз има core2duo със 2мб кеш, а аз имам cure1huio със 128 кб кеш

< 1 2 3 >

Коментар

за нас | за разработчици | за реклама | станете автори | in english  © 1998-2024   Experta Ltd.