Як я ламав the bat, або паролі вампіра

Як я ламав The Bat. або паролі вампіра.

div.main Як я ламав The Bat. або паролі вампіра.

Після величезної кількості хвалебних статей "про кращому Мейлер всіх часів і народів" у всіляких виданнях я набрав пару відер важких каменів і буду бомбити ними загиджений кажанами город RIT Labs. І нехай не ображаються. У будь-якій бочці меду повинна бути одна (але велика) ложка р еее-е-е, дьогтю.

Ти не замислювався: скільки людей користуються The Bat! -ом? (Вся редакція Х юзает тільки The Bat! - прим. Ред.) Скільки народу викачує його з ritlabs.com і голосно кричить в fido7.ru.crack: "Дайте мені кряк до Бату!", Створюють трафік astalavista.box.sk і інших пошукових машин?

Багато! За словами SideX`а, їх добра третина, а то й половина Новомосковсктелей Х. Зручна річ: швидко бігає, місця мало займає, наворотів і прибамбасів неміряно. А у тебе, бува, не Бет Мейлер працює? І про що в ньому пишеш? А перепісочку де зберігаєш? Де зазвичай? І не боїшся? А-а-а, пароль поставив! Ну, постривай, постривай. Перевіримо, як ти вмієш зберігати таємниці.

А почалося все з дрібниці. Вирішив якось разок перевірити: чи можна Бату довіряти на зберігання духовні цінності (CityCat'овскій eat.dodbar). Поставив пароль. Дай, думаю, подивлюся: а чого він там робить-то з паролем? Подивився. Не минуло й п'яти хвилин, як була написана програма (найпростіша, на Паскалі), що показує пароль будь-якого запаролений ящика. Але про все по порядку.

Отже, слово обвинуваченому - Бату Вампіровічу:

"Працюючи з The Bat. Ви можете закрити вашу поштову скриньку паролем, так що ніхто не зможе прочитати Ваші листи без Вашого дозволу".

Ну так! Так вже й ніхто! Дозволи ще питати!

Надрежем лобову кістку.

Нагадаю, що всі листи Bat! зберігає в файлах, (він їх називає базами листів) з розширенням .MSB. З них-то я і почав. Зберігаю один з них (ну, наприклад, Inboxmessages.msb) без пароля на ящику з ім'ям ORIG.MSB, потім встановив пароль на скриньку (його можна було навіть не запам'ятовувати - настільки неважко виявилося його звідти дістати) і зберіг цей же файл з ім'ям CRYPT.MSB.

Порівнюю зашифрований і незашифрований .MSB-файл, пильним оком помічаю такі речі:

1) розмір файлу не змінився (добра ознака, однак);

2) змінився шматок в заголовку файлу (а що ж там лежить?);

3) зашифроване тіло листа (а який сенс хакати порожній файл?).

При цьому послідовності символів в оригінальному листі повторюються і в зашифрованому вигляді. Маємо явно не блоковий шифр, тому що він з повторюваних рядків на виході ТАКЕ витворяє - мати рідна не впізнає. Та й не підстановлювальний теж - в ньому рядок з однакових символів (пристойної довжини - див. Малюнок) на виході може виникнути тільки дивом. Причому з тієї ж позиції. І однаково в усіх листах. Але іншими символами. Допивав ранковий кефір, відставляю чашку в сторону. АГА! Потрапивши! Виникла правомірна думка, що переді мною звичайний заїжджений XOR по одному байту. І це дійсно він!

Ну ось! Тепер він і тебе порахував!

Значення, яким XORітся файл, залежить від пароля. Потрібні докази? Мені в лом їх копати: дуже не хочеться аналізувати код EXE мега в 3 довжиною. Або перебирати сотні три паролів. Тому тут починається те, що буржуйські криптологи називають "Known text attack", тобто "Атака за відомим тексту" - маємо оригінальний текст, маємо отриманий текст, знаємо алгоритм - отримуємо ключ.

Але не дарма ж є два файли - з паролем і без. Оскільки в результаті нелюдських знущань було з'ясовано, що ВСЕ (непусті) Bat! Івські MSB-файли ЗАВЖДИ (неясно навіщо) закінчуються парою символів CR-LF (переклад рядка). З'ясування значення, яким проводиться XOR, спрощується до непристойності.

Беру останній байт файлу і влаштовую йому XOR за значенням 10 (LF, якщо хто забув). Бачу послідовності в заголовку файлу (з 13 байта) і пройдуся по ній XOR'ом з тим самим значенням. Поспішайте бачити! Ось воно - Pascal'евская (0-й байт - довжина) рядок з паролем. Ось так! Пароль наш!

Отримую значення, яким зашифрований файл. Так можна розшифрувати всі листи в цьому файлі. Судячи з усього, Bat! з вводиться пароля обчислює значення, потім їм розшифровує лежить в .MSB пароль і порівнює його з введенням. Схема дуже навіть хороша, надійна, от тільки всю цю красу і ідилію псує катастрофічно невдалий (просто лажово) алгоритм шифрування. Вже дуже він у них простий. Творців невистачило ні на який більш-менш пристойний блоковий шифр. Навіть не блоковий. Та будь-який. Caesar або Viginere (а ще крутіше - DES) змусили хоча б задуматися (на пару хвилин, годин, днів, тижнів - в залежності від складності алгоритму). А так. дитячий лепет.

"Якщо у Вас вже є пароль для ящика, Ви можете ввести порожню рядок в якості пароля - після цього ящик буде не захищений".

А пароль вже є. Вперед!

До речі, зашифрований таким хитрим чином пароль лежить в КОЖНОМУ .MSB-файлі в ящику (а на кой, власне, в кожному?).

А тепер - Кіндер-Сюрприз для Самих Кмітливих! У інтегрованої в The Bat! дзвонилка може зберігатися і login з password'ом - раптом The Bat! у юзера сам додзвонюється і пошту забирає. Зберігається не в реєстрі, а поруч з .MSB - в каталозі ящика, в account.cfg, здається. Ось вам ще і Інет на халяву! Але ж хотіли просто пошту почитати.

Найнервовіші, напевно, зараз заволають: "А нам що ж робити"? А вам, дорогі мої, настійно рекомендується не зберігати паролі де завгодно і користуватися PGP. ПЖП з Батом прекрасно інтегрується. А головне - намагайтеся якомога рідше пускати за свій комп сторонніх, навіть добре вам знайомих. У мене один добре знайомий (ака сторонній) за дві хвилини гіговий гвинт примудрився прошерстить, поки я чайник ходив ставити (правда, нічого важливого не знайшов - для цього у мене Kremlin встановлений - DES, IDEA, CAST, 3DES і інші офіційні особи), а після мого приходу негайно дістав у вухо і більше так не робив. ) Так що стежте, женіть всіх. Адже це персональний комп'ютер, а не колективна іграшка.

А ось і заповітний лістинг нового монстра для вибивання паролів з вампіра.

var SourceFile: file of byte;

Схожі статті