товарищи, начал ковырять новую для меня тему - ICQ и ее схему логинаЕсли в логе login.txt есть запись вида Secure login то это безопасный вход.
Но есть возможность пробрутить пароль. В логе первое значение - уин, второе хэщ,
третье - соль. Есть два варианта брута:
const="AOL Instant Messenger (SM)"
1) md5(salt.pass.const)
- тут всё просто, брутим по маске
2)md5(salt.md5(pass).const)
- тут намного сложнее. md5(pass) представляеться в 16 байтовом виде.
естессно наткнулся на IcqMsgLogger, в ридми которого
было все написано. провел тест, и с инфиума и с icq6 - все эти значения норм получались и записывались.
потом пошел этап проверки - а все ли сходится?
решил проверить по пункту 1 и 2 - не сходится хеш с отснифаным!
т.к. целью сего исследования было научиться ловить все эти значения вручную wireshark'ом, полез в него и добыл нужные значения сам.
соединил строки, захешировал обоими способами - опять не сходится с отправленным клиентом хешем!
решил проверить - слазил в сорцы миранды 0.8.1. нашел там {client.cpp}
Код:
Скопировать в буфер обмена
#define AIM_MD5_STRING "AOL Instant Messenger (SM)"
#define MD5_HASH_LENGTH 16
mir_md5_init(&state);
mir_md5_append(&state,(const mir_md5_byte_t *)password, (int)strlen(password));
mir_md5_finish(&state,pass_hash);
mir_md5_init(&state);
mir_md5_append(&state,(mir_md5_byte_t*)key, (int)strlen(key));
mir_md5_append(&state,(mir_md5_byte_t*)pass_hash,MD5_HASH_LENGTH);
mir_md5_append(&state,(mir_md5_byte_t*)AIM_MD5_STRING, sizeof(AIM_MD5_STRING)-1);
mir_md5_finish(&state,auth_hash);
вижу - все вроде так как и написано в ридми.
смутило лишь 16байтовое представление хеша md5. но с этим справился, хоть и по наркомански:
вставил нужные значения хексом в пустой файл, а потом в него блокнотом все дописывал остальное(challenge-соль и строку эту 'AOL Instant Messenger (SM)') и брал хеш от получившегося файла - все равно не то выходит!(
(например, берем строку 123. ее хеш - 202cb962ac59075b964b07152d234b70. вставляем хексом и открываем блокнотом этот хеш: ,№b¬Y[–K-#Kp )
пробовал их копировать и в passwords pro hash generator - и опять не сходится.
господа, разъясните, что делаю не так и почему хеш все-таки не сходится? может что-то не так делаю, туплю где?
мб ошибаюсь как раз с этим 16байтовым представлением?