RDot: White Hat Security Community

RDot: White Hat Security Community (https://rdot.org/forum/index.php)
-   Криптография/Cryptography (https://rdot.org/forum/forumdisplay.php?f=42)
-   -   Задай вопрос - получи Ответ (https://rdot.org/forum/showthread.php?t=117)

comynicator 19.01.2014 13:55

Подскажите чем зашифровано?
{79,69,150,72,85,152,184,63,248,0}

madhatter 21.01.2014 12:15

Цитата:

Сообщение от comynicator (Сообщение 34151)
Подскажите чем зашифровано?
{79,69,150,72,85,152,184,63,248,0}

Было бы неплохо узнать, откуда это извлечено. Как по мне, это массив какого-то ЯП с кодами символов. Кодировку не определил :( Это корректно выводится в utf16, но в виде какой-то непереводимой мути на китайском.
Посимвольно:
Код:

79 : "O"
69 : "E"
150 : "\x96"
72 : "H"
85 : "U"
152 : "\x98"
184 : "\xB8"
63 : "?"
248 : "\xF8"
0 : "\x00"


}{оттабыч 11.04.2014 00:05

Код:

$P$D592hKn52NdA8kx.5FW6CNaF.NGb.b1
Есть ли инструменты для этого типа хеша(это phpass в Joomla начиная с 2 ветки)? Спасибо за ответ!

AiR0 11.04.2014 07:37

в hashcat, в последней beta есть поддержка, но ее пока нет в паблике

$P$D592hKn52NdA8kx.5FW6CNaF.NGb.b1:test

madhatter 11.04.2014 11:07

Цитата:

Сообщение от }{оттабыч (Сообщение 35334)
Код:

$P$D592hKn52NdA8kx.5FW6CNaF.NGb.b1
Есть ли инструменты для этого типа хеша(это phpass в Joomla начиная с 2 ветки)? Спасибо за ответ!

Обычный phpass. Даже в джоне есть, достаточно давно.

net_toxic 16.12.2014 14:13

помогите хотя бы определить тип шифрования и чем можно расшифровать?
предположу что это des512?!

WzFDaq5jpw4xxMLLZ7tqrRnWaGMQ3wh3cBm9FKEtba0R2yapAN MDftueWNDgv0dX

c0der 16.03.2017 20:47

ФайлокриптинГ[triple helix]
 
Доброго времени, к0мрады...
преследуя филоХсофию "этичности" и соблюдая балланс добра со злом (а по анализу топикоФФ, большинство тут "тёмнокепковых" aka blackhat) буду описывать путь Инь (или Янь, можем на монетке разыграть ), тоесть путь не "вскрытия" а... защиты, посему надеюсь на лояльность местных гуру, их пособничество в созидании кода для последующей експлуатации и сотворения (спешл фо rdot.com) соотв. софтин...

итак, меньше текста... больше POC-а...
Задача:
0. иередача с сервера_0 на сервер_1 закриптованного метода\файла, с последующей его эксплуатацией (а-ля ioncub || zend...) но на чистопыхе...
имеем:
0.сервер_0 - серверная часть с обращением вида API (широковещательно)
1.сервер_1,2,3...*n - клиентская часть, принимающая агрументы от сервер_0
2.honey.php - "приёмо-передатчик" находиться на > сервер_1
3.алгоритм "triple helix" [c0der©]
4.гуглопедия
5.пряморукость
6.моск
___
исходник honey.php
PHP код:

<?php 
/*    universal adapter ID [triple helix by c0der]
*    $_POST = @param from serv. side emulate as local
*    SCRIPT_ID = unique server_N private key for API init
*/    

define('SCRIPT_ID''12345678');

    function 
decrypt($text$key) { 
        if (
$text rtrim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256md5($key), base64_decode($text), MCRYPT_MODE_CBCmd5(md5($key))), "\0")) {            
            return 
$text;
        } else {
            return 
false;
        }    
    }
    function 
encrypt($text$key) { 
        
$text base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256md5($key), $textMCRYPT_MODE_CBCmd5(md5($key))));
        return 
$text
    } 
    
    function 
magic($text$key) { 
        
$len strlen($text);
        
$key md5($key) . substr(md5(strrev($key)), 0strlen($key)); 
        for (
$i 0$i $len$i++) { 
            
$key .= $text[$i]; 
            
$text[$i] = chr((ord($text[$i]) + ord($key[$i])) % 256); 
        }
        return 
base64_encode($text); 
    }
    
    
$secret_code 'WzLZ7Y2rbHeyRvviaPcRioXkPHkmKKQCEqf2jy0IMr1zu4sO949Dybf5C94diLRieiWNO6qEzFZKtzLa9Yf/pk+w9c5MIBcUKRe53miZ8Fsm3H4ODywH8PLIKyt2DMH4o8luxZt5QBDCAxEpBJPunMHv5Y8rrwqnmDj271V/kYdYSE0QBKPwckJRSEVoPSs8SB0iNyJ3isEBag71FFYvTHttFFUIkyI0D11X9x/uWZmyT4qGm/0QCG2StDmK8/Y97H2GRMFmydlcVyCvdS15qwyNEgJ4ZqOG2fsEYBlM/wUIt8WxJ8xv/o97uOrK4UphHIC/rZxQTBuWkFR4Pz4Ldg==';
        
//Секретная функция проверки пинкода
        
    
$POST_code_2 'rpbPnaRZqaSqpJhdUXKioY+UYQ==';

 
//Зашифрованный текст или исходник [ ]
    
    
$data '$text = base64_decode($text);
    $len = strlen($text);
    $key = md5($key).substr(MD5(strrev($key)), 0, strlen($key));
    for($i=0;$i<$len;$i++){
    $text[$i]=chr(( ord($text[$i])-ord($key[$i]))%256);
    $key.=$text[$i];
    }
    return $text;'
;
    
    
        
$very_secret_post_curl_key encrypt('123'SCRIPT_ID);
        
$hash base64_encode(hash_hmac('sha256''123'SCRIPT_ID), true);
        
print_r($hash);
        
$data_for_decode_client_side encrypt($data$hash);
//тут пример зашифровывания текста||функции ($_POST['decode']) с помощью пинкода ($_POST['pincode'])    
    
if (isset($_POST['decode']) && !empty($_POST['decode'])) { 
        if (isset(
$_POST['pincode'])) {
            
$pin_text magic($_POST['decode'], $_POST['pincode']);
        } else {
            
$pin_text magic($_POST['decode'], '123');
        }
        
//Function body, как описано для create_function (секретный код для create_function('$text,$key' 
    
} else {
        
$pin_text magic('echo "Hello Bro...";''123');
//тот же пример зашифровывания функции но без "поста", тоесть по дефолту, для проверочки...
        
print_r('Just do it, bro... [echo \'Hello Bro *)\';]');
        
//$pin_text = 'xRe+lgV1vXnoif2itxNnW7XvYrGvAZTpcO+yB6WGCgQ='; //Закодированная строка магически (хуй забрутиш)
    
}
    
    if (
$very_secret_post_curl_key) {
//First helix...
        
$pin_code decrypt($very_secret_post_curl_keySCRIPT_ID); //post pincode decode
//Second helix...
        
$super_key base64_encode(hash_hmac('sha256''123'SCRIPT_IDtrue)); //Hash of STORE_ID && user_id
        
if (isset($super_key) && is_numeric($pin_code)) {
            
print_r('pin:'.$pin_code);    
            
print_r('sk:'.$super_key);    
            
print_r('edata:'.$data_for_decode_client_side);                
            
$matrix create_function('$text,$key'decrypt($data_for_decode_client_side$super_key));
            
//Получаем результат сложения по закодированной функции magic. //Third helix...
            
$matrix($pin_text$pin_code);
            
//Выполнение произвольной лямбда функции $_POST['decode']
        
} else {
            
print_r('Not correct pincode, bro...');
        }        
    } else {
        echo 
'Have a secret code ?';
    }
    
?>
<form method="post" action=""><input type="text" name="pincode" value=""/><br/><input type="text" name="decode" value=""/><input type="submit" value="&gt;"/></form>

как видим, "вскрыть" 2,3 спираль можно, но трудновато... если передавать в качестве параметра pincode = one_time_password, получаемый от сервера_0 в качестве аргумента, каждый раз, по типу "pin-pong", то получается криптостойкость на уровне...

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

p.s. самошифрование вдохновило от ув. profexer-а с его немалоизвестным P.A.S.-ом...

жду конструктива, уточнений, кирпичей...

zic 18.03.2017 16:31

c0der, я так понимаю это будет что-то вроде менеджера веб шеллов. Не совсем понял твою идею, но я бы не стал городить велосипеды и посмотрел бы как всё реализовано в тех же ботнетах :) RSA для шифрования сеансового ключа, AES, тот же HMAC в качестве ЭЦП.

Теперь касательно кода(функция magic()):
Код:

...
$key = md5($key) . substr(md5(strrev($key)), 0, strlen($key));
...

Особого доверия это не вызывает. Понятно, что ты хотел защититься от брутфорса $key(raw key), но по всей видимости, сделал хуже. Я не буду брутить исходный $key, я буду брутитить хешированный ключ. Если размер сообщения не превышает длины ключа в хешированном виде, то вместо законных 256^len($key) комбинаций для перебора ты получишь оценку 16^len($key), что намного хуже. Происходит это потому что ты отобразил raw_key в алфавит имеющий меньшую мощность чем исходный(md5 16 символов).


Часовой пояс GMT +3, время: 22:46.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot