• XSS.stack #1 – первый литературный журнал от юзеров форума

[решено] криптографический конкурс с денежным призом

Пожалуйста, обратите внимание, что пользователь заблокирован
нейронка реально разгадала второй и третий уровень? охренеть, как? может, там как в амазоне, тысячи индусов в реальном времени отвечают на сообщения?
Зато потом, какой кайф, когда сам до этого дошел. Самый первый мой таск какой я решал, хак-квест тоже был на крипту. Так вот я там тоже ломал голову. И правда вот с такими же подсказками я его прошел. Еще сайт какой-то был не помню уже. Там все криптографические алгоритмы были на сайте, всё его ищу, найти не могу... Потерял его в заклыдках... Помогал мне в решении. Выглядил он как лендинг сайт однострачник где в мини блоках были все алгоритмы собраны encrypt decrypt. красного цвета, он потом одно время этот сайт в оффлайн уходил потом возвращался...


p.s. если кто найдет мне этот сайт буду благодарен.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Зато потом, какой кайф, когда сам до этого дошел. Самый первый мой таск какой я решал, хак-квест тоже был на крипту. Так вот я там тоже ломал голову. И правда вот с такими же подсказками я его прошел. Еще сайт какой-то был не помню уже. Там все криптографические алгоритмы были на сайте, всё его ищу, найти не могу... Потерял его в заклыдках... Помогал мне в решении. Выглядил он как лендинг сайт однострачник где в мини блоках были все алгоритмы собраны encrypt decrypt. красного цвета, он потом одно время этот сайт в оффлайн уходил потом возвращался...


p.s. если кто найдет мне этот сайт буду благодарен.
Скрытый контент для пользователей: .
 
нейронка реально разгадала второй и третий уровень? охренеть, как? может, там как в амазоне, тысячи индусов в реальном времени отвечают на сообщения?
Я не уверен что реально, может просто галлюцинации. Могу запостить тут все подсказки, для проверки. Вместо тысячи индусов был один я. На нулевом уровне она сначала вообще не хотела решать, пыталась отбрехаться, пока я её не вразумил как там дойти до base64. И с уровнем 2 был маленький затык, слово "Level" не увидела сразу. Зато потом практически мгновенно дошла до 5-го уровня.
 
Дайте хинт к 4, это брут по словарю?
UPD OpenCL не дает установить, не быть мне брутером(
 
Последнее редактирование:
возможно согласен, но это не "недоработка" от ТСа, я думаю что это больше зависит именно от нашего подхода к решению)
когда заберут деньги, опишу каждый пункт подробнее. например, во втором уровне все решают не так, как я изначально задумывал, но почему-то выходит норм :D

Зато потом практически мгновенно дошла до 5-го уровня.
это невозможно,
Скрытый контент для пользователей: alex778.

да и с первым уровнем не очень верится.

UPD OpenCL не дает установить, не быть мне брутером(
если у тебя линукс и проц Intel, то надо ставить старую версию рантайма, 16.1.1 точно работает.
и OpenCL понадобится ближе к концу, 4 уровень решается простым скриптом на твоём любимом скриптовом языке.
 
amd, видяха 3070, уже перешаманил все что мог - не хочет ставиться(
придётся брутить на процессоре, другим софтом 🤷‍♂️ но, как я писал, пароли брутятся быстро, и если долго не получается сбрутить - ты делаешь что-то не то.
 
состоит из 7 уровней не считая нулевого, а если не считать задачу по забиранию денег, то всего из 6
случайно оказалось, что там два шестых уровня :D

"первая часть" шестого уровня почему-то не брутится. попробуйте НЕ брутить :)
 
Зато потом, какой кайф, когда сам до этого дошел. Самый первый мой таск какой я решал, хак-квест тоже был на крипту. Так вот я там тоже ломал голову. И правда вот с такими же подсказками я его прошел. Еще сайт какой-то был не помню уже. Там все криптографические алгоритмы были на сайте, всё его ищу, найти не могу... Потерял его в заклыдках... Помогал мне в решении. Выглядил он как лендинг сайт однострачник где в мини блоках были все алгоритмы собраны encrypt decrypt. красного цвета, он потом одно время этот сайт в оффлайн уходил потом возвращался...


p.s. если кто найдет мне этот сайт буду благодарен.
cyberchef
 
Ну что, как успехи? Кто-либо продвинулся дальше 4-го лвла?
у меня эти задачки украли 12 часов рабочего времени, надо наверстывать, хых
 
Пожалуйста, обратите внимание, что пользователь заблокирован
у меня эти задачки украли 12 часов рабочего времени, надо наверстывать, хых
решаю с самого выхода этого топика, остановился на четвертом лвле, что делать дальше - не знаю, но останавливаться явно не собираюсь, хочется дойти до конца
 
Пожалуйста, обратите внимание, что пользователь заблокирован
у меня были мысли по этому поводу, что это нереальный шифр и это связано со словарем, но непонятно что нужно сделать =/
Такая же ситуация абсолютно. Вроде все понятно но как это применить вообще не даю дупля
 
есть победитель, скоро выложу описание и решение всех уровней.
 
под спойлерами отдельно описание задачи, что именно подразумевалось в каждом пункте, и её решение.
решение отдельно для тех, кому интересно решить задачу самостоятельно, уже зная, что именно нужно (было) делать.

level 0
текст закодирован в base64, а потом переведён в шестнадцатиричный вид (hex encoding)

нагуглите онлайн конвертер "hex to binary" и "base64 decode"

level 1. a simple rotation cipher
шифр Цезаря со сдвигом = 14 (чтобы отличался от не менее популярного ROT13).
подсказка тут не нужна, потому что по самому описанию задачи гугл выдаёт шифр Цезаря.

очень простой и популярный шифр, алгоритм есть на любом языке программирования, и даже чатгопота выдаст рабочий код.
я пользовался таким скриптом:

Код:
<?php
function Cipher($ch, $key) {
    if (!ctype_alpha($ch)) return $ch;
    $offset = ord(ctype_upper($ch) ? 'A' : 'a');
    return chr(fmod(((ord($ch) + $key) - $offset), 26) + $offset);
}
function Encipher($input, $key) {
    $output = "";
    $inputArr = str_split($input);
    foreach ($inputArr as $ch) $output .= Cipher($ch, $key);
    return $output;
}
function Decipher($input, $key) {
    return Encipher($input, 26 - $key);
}

$text = file_get_contents('input.txt');
echo "text: $text \n\n";
for ($i=0; $i<27; $i++) {
    $plain = Decipher($text,$i);
    if (strpos($plain, 'level') !== false) { 
        echo "key: $i ";
        echo "plain: $plain \n\n";
    }
}



level 2. base64 is bad because 0 looks like O and l looks like I

я подразумевал здесь base58 https://en.wikipedia.org/wiki/Binary-to-text_encoding#Base58
Base58: Similar to Base64, but modified to avoid both non-alphanumeric characters (+ and /) and letters that might look ambiguous when printed (0 – zero, I – capital i, O – capital o and l – lower-case L). Base58 is used to represent bitcoin addresses.
но, судя по вашим сообщениям, срабатывает и Base62.

нагуглите онлайн конвертер текста в base58



level 3. this is not a real encryption, just encoding. for Unix ;)

текст закодирован в uuencode https://en.wikipedia.org/wiki/Uuencoding
подсказка - "for Unix", решение гуглится по запросу "encoding for unix"

в линуксоподобных ОС есть команда uudecode, но для неё нужно создать специально оформленный файл, я специально обрезал текст для усложнения задачи. в начале файла нужна строка "begin 600 output.txt", потом сам текст задания (после "----"), и в конце файла нужны две строки "`", "end".
ну и есть онлайн конвертеры.



level 4. this is a real encryption. or not? good luck 🤟👇

нужно сбрутить шифр XOR, используя популярный словарь "rockyou".

подсказка - "or not" намекает, что текст зашифрован алгоритмом XOR "не или" https://ru.wikipedia.org/wiki/XOR
вторая подсказка оказалась слишком сложной - 🤟👇"rock you" - это какой именно вордлист надо использовать для брута.

подсказка "часть открытого текста вам известна ;)" намекает, что для ускорения брута можно искать слово "level" в полученном результате, но можно и не искать, XOR брутится очень быстро.
реализация алгоритма XOR есть в любом языке программирования, и я думаю, что даже чатгопота выдаст рабочий код для перебора по словарю.
я использовал такой скрипт:

Код:
<?php

function xor_string($string, string $key) {
    for($i = 0; $i < strlen($string); $i++) 
        $string[$i] = ($string[$i] ^ $key[$i % strlen($key)]);
    return $string;
}

$i=0;
$input = base64_decode("XVZFUgQUTR5SXlgfFwZbDxAGQ0oTQwcUGkIXUFgTVkhmHVEeEVZddBpNCEQbXl0dPUUZVR14HmtaYVx7E18ddAN9VC4BV3M8ZUlBD1kBDRsmAnphQVlaAXgaXUYAbjADOh8GSQQYBT4bQHELV0oLTTEJ");
$fh = fopen('rockyou.txt','r');
if ($fh) {
    while (!feof($fh)) {
        $i++;
        echo "$i           \r";
        $key=trim(fgets($fh));
        if (empty($key)) continue;
        $res = xor_string($input, $key);
        if (strpos($res,'level') !== false) {
            echo "\nkey found: $key\n";
            echo "decoded:\n";
            echo $res;
            echo "\n";
#            fclose($fh);
#            exit(0);
        }
    }
    fclose($fh);
}



level 5. ok, now try to break a Real enCryption.

текст зашифрован алгоритмом RC4, подсказка - большие буквы.
нужно сбрутить шифр RC4, используя всё тот же словарь "rockyou".

подсказка "часть открытого текста вам известна ;)" намекает, что для ускорения брута можно искать слово "level" в полученном результате. но можно и не искать, брут RC4 такой же быстрый, как и XOR.

возможность брута я проверял этим софтом: https://github.com/signifi3d/rc4crack
только его пришлось поправить, т.к. он падал на пустой строчке в вордлисте - в файле dict.c внутри цикла while добавил проверку:
Код:
    if (strlen(buffer) == 1) { printf("empty word\n"); }
    else { ... всё остальное
для этого софта текст задачи сначала надо раскодировать из base64 и перегнать в hex.



level 6: <ссылка на архив>

архив запаролен. я не думал, что это окажется проблемой, но не все догадались, какой пароль, и получилось, что шестых уровней два :D

пароль от архива = ключ из брута RC4 в предыдущем уровне :)
плюс его можно сбрутить всё по тому же вордлисту rockyou.

level 6. good luck #=^-^=

бинарный файл - контейнер Veracrypt.
подсказка "#" - "hash", "=^-^=" - "cat" намекает, что нужно воспользоваться софтом hashcat.

если погуглить размер файла плюс ключевое слово о брутфорсе, что-нибудь типа "292kb hashcat" или "299008 bruteforce", то в первых же строчках гугла будет форум hashcat.net с топиками про Veracrypt.


задача усложняется тем, что неизвестны алгоритмы, использованные при создании контейнера.
но если посмотреть инструкцию к hashcat, а именно режимы брута Veracrypt, то там будут цифры типа 137хх
Код:
  13711 | VeraCrypt RIPEMD160 + XTS 512 bit                   | Full-Disk Encryption (FDE)
  13712 | VeraCrypt RIPEMD160 + XTS 1024 bit                  | Full-Disk Encryption (FDE)
  13713 | VeraCrypt RIPEMD160 + XTS 1536 bit                  | Full-Disk Encryption (FDE)
  13741 | VeraCrypt RIPEMD160 + XTS 512 bit + boot-mode       | Full-Disk Encryption (FDE)
  13742 | VeraCrypt RIPEMD160 + XTS 1024 bit + boot-mode      | Full-Disk Encryption (FDE)
  13743 | VeraCrypt RIPEMD160 + XTS 1536 bit + boot-mode      | Full-Disk Encryption (FDE)
  13751 | VeraCrypt SHA256 + XTS 512 bit                      | Full-Disk Encryption (FDE)
  13752 | VeraCrypt SHA256 + XTS 1024 bit                     | Full-Disk Encryption (FDE)
  13753 | VeraCrypt SHA256 + XTS 1536 bit                     | Full-Disk Encryption (FDE)
  13761 | VeraCrypt SHA256 + XTS 512 bit + boot-mode          | Full-Disk Encryption (FDE)
  13762 | VeraCrypt SHA256 + XTS 1024 bit + boot-mode         | Full-Disk Encryption (FDE)
  13763 | VeraCrypt SHA256 + XTS 1536 bit + boot-mode         | Full-Disk Encryption (FDE)
  13721 | VeraCrypt SHA512 + XTS 512 bit                      | Full-Disk Encryption (FDE)
  13722 | VeraCrypt SHA512 + XTS 1024 bit                     | Full-Disk Encryption (FDE)
  13723 | VeraCrypt SHA512 + XTS 1536 bit                     | Full-Disk Encryption (FDE)
  13771 | VeraCrypt Streebog-512 + XTS 512 bit                | Full-Disk Encryption (FDE)
  13772 | VeraCrypt Streebog-512 + XTS 1024 bit               | Full-Disk Encryption (FDE)
  13773 | VeraCrypt Streebog-512 + XTS 1536 bit               | Full-Disk Encryption (FDE)
  13781 | VeraCrypt Streebog-512 + XTS 512 bit + boot-mode    | Full-Disk Encryption (FDE)
  13782 | VeraCrypt Streebog-512 + XTS 1024 bit + boot-mode   | Full-Disk Encryption (FDE)
  13783 | VeraCrypt Streebog-512 + XTS 1536 bit + boot-mode   | Full-Disk Encryption (FDE)
  13731 | VeraCrypt Whirlpool + XTS 512 bit                   | Full-Disk Encryption (FDE)
  13732 | VeraCrypt Whirlpool + XTS 1024 bit                  | Full-Disk Encryption (FDE)
  13733 | VeraCrypt Whirlpool + XTS 1536 bit                  | Full-Disk Encryption (FDE)

а если вспомнить предыдущий уровень, то станет понятно, какой именно режим надо брутить :)

hashcat -a 0 -m 13731 data.bin rockyou.txt


level 7. a WInner is you, Friend!

строка - приватный ключ от адреса Bitcoin, представленный в hex виде.
подсказка WIF намекает, что для импорта этого ключа в кошелёк его надо перегнать в https://en.bitcoin.it/wiki/Wallet_import_format (или воспользоваться кошельком, который умеет делать это автоматически)

так как мой кошелёк, Electrum, не понимает приватные ключи в формате hex, я перегонял ключ в WIF вручную.
инструкция по ссылке выше.
1. Take a private key.
2. Add a 0x80 byte in front of it for mainnet addresses
3. Perform SHA-256 hash on the extended key.
тут нюанс: sha256 хэш надо брать от бинарных данных, а не от hex строки. в линуксе делается так:
Код:
hexdecode строка | sha256sum | tr [:lower:] [:upper:]
4. Perform SHA-256 hash on result of SHA-256 hash.
опять декодируем строку из hex в бинарный вид и берём sha256 хэш от неё:
Код:
hexdecode новаястрока | sha256sum | tr [:lower:] [:upper:]
5. Take the first 4 bytes of the second SHA-256 hash; this is the checksum.
должно получиться 556D16D9
6. Add the 4 checksum bytes from point 5 at the end of the extended key from point 2.
7. Convert the result from a byte string into a base58 string using Base58Check encoding. This is the wallet import format (WIF).
base58 во втором уровне я выбрал не случайно :)
в результате кодирования в base58 должна получиться строка 5JVVUEFt....., это и есть "wallet import format", который понимает Electrum и любой другой кошелёк.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
слово base64 сбивает с толку, на том уровне котором я остановился, его надо было тогда уж совсем не писать

есть победитель
анон ?????
 
Кто это? Признавайтесь
хочешь подкараулить в тёмном переулке и отжать эти две сотки? :D
кошелёк 1xssisA4UFz2aChbsA7jb7DjRJGnUBs3s, вычисляйте по айпи.


слово base64 сбивает с толку, на том уровне котором я остановился, его надо было тогда уж совсем не писать
на чём остановился и как сбивает с толку?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх