- PVSM.RU - https://www.pvsm.ru -

Хакер опубликовал способ подбора pin-кодов к iPhone без дополнительных устройств

image

Недавняя история с устройством [1]для подбора pin-кода к iPhone так впечатлила известного хакера и разработчика jailbreak для iOS Мажида Альфхайли [2], что он задумался – а нельзя ли всё-таки сделать программный подбор pin-кода к устройству, да ещё и быстрее, чем один pin за 40 секунд? Оказалось – можно. Единственное требование – устройство должно быть подвергнуто jailbreak.

Сначала разработчик написал следующий код для перебора всех паролей с 0000 до 9999:

(void)bruteforce {
    NSString *numString;
    NSString *oneZeroString = @"0";
    NSString *twoZeroString = @"00";
    NSString *threeZeroString = @"000";

    for (int i = 1; i <= 9999; i++)
    {
        numString = [NSString stringWithFormat:@"%d", i];
        switch ([numString length])
        {
            case 1:
                {
                    numString = [threeZeroString stringByAppendingString:numString];
                    break;
                }
            case 2:
                {
                    numString = [twoZeroString stringByAppendingString:numString];
                    break;
                }
            case 3:
                {
                    numString = [oneZeroString stringByAppendingString:numString];
                    break;
                }
            default:
                break;
        }
        NSLog(@"code : %@", numString);
    }
}

Затем в дампе SpringBoard он нашёл класс SBDeviceLockController с методом

(BOOL)attemptDeviceUnlockWithPassword:(id)password appRequested:(BOOL)requested;

Затем он сделал библиотеку, подключающуюся к процессу SpringBoard и запускающую вышеуказанный код по окончанию процесса, и вызывающую attemptDeviceUnlockWithPassword:appRequested для каждого нового pin-кода.

Всё работало, за исключением того, что после 10 попыток телефон блокировался. После дополнительного исследования хакер нашёл в классе SBFDeviceLockController методы

(bool)_temporarilyBlocked; 
(bool)isPasscodeLockedOrBlocked; 
(bool)isBlocked;

После переопределения этих методов таким образом, чтобы они возвращали NO, код заработал в полную силу. 10 попыток не блокируют устройство, проверка одного pin-кода занимает 5 секунд – то есть, проверка всех четырёхзначных кодов займёт не более 14 часов. Теперь хакер работает над автоматической утилитой, которая сможет отправлять этот код на устройство через USB.

Вывод: чем длиннее и сложнее пароль, тем выше ваша безопасность. Впрочем, это и так было очевидно.

Автор: SLY_G

Источник [3]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/ios/86754

Ссылки в тексте:

[1] Недавняя история с устройством : http://geektimes.ru/post/247450/

[2] Мажида Альфхайли: http://blog.freemanrepo.me/2015/03/23/bruteforce/

[3] Источник: http://geektimes.ru/post/247754/