• 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Генерация номеров кредитных карт(без регистрации и sms)

  • Автор темы Автор темы Nesty
  • Дата начала Дата начала

Nesty

One Level
11.05.2018
2
1
Номер кредитоной карты(PAN -Primory Account Number) может содержать от 12 до 19 цифр
Первая цифра это MII -Major Industry Identifier
Python:
MMI = {
    'ISO_TC68': 0,
    'AIRLINES': 1,
    'AIRLINES_AND_OTHER_INDUSTRY_ASSIGNMENT': 2,
    'TRAVEL_AND_ENTERTAINMENT': 3,
    'BANKING_AND_FINANCIAL': 4,
    'BANKING_AND_FINANCIAL': 5,
    'MERCHANDISING_AND_BANKING': 6,
    'PETROLEUM': 7,
    'TELECOMMUNICATIONS_AND_OTHER_INDUSTRY_ASSIGNMENT': 8,
    'NATIONAL_ASSIGNMENT': 9,
}

Если эта цифра 9, следующие три цифры - это код страны из .Например для Австралии это 036.

Идентификационный номер эмитента, также известный как идентификационный номер банка (BIN), представляет собой первые шесть цифр номера кредитной карты. Они идентифицируют учреждение, которое выпустило кредитную карту держателю карты, например для MASTERCARD это 511111- 551111, с 2017 добавлен диапазон 222100–272099.

С 7-ой до n-1 это индивидуальный идентификатор аккаунта, максимальная длинна ограничена 12 цифрами.
Последняя цифра - контрольная сумма, используется для проверки основного номера счета для защиты от случайных ошибок.

Алгоритм Луна(англ. ) представляет собой следующую последовательность действий:

Для примера используем 5501-5746-0551-8031
Последняя цифра (1) - наша контрольная цифра( далее в расчетах она не учитывается т.е list[:-1])
Теперь список принял вид 5501-5746-0551-803
Удваиваем каждую вторую цифру, начиная с первой
Python:
{i: v * 2 for i, v in enumerate(list_int[:-1]) if i == 0 or i % 2 == 0}

5501 - 5746 - 0551 - 803
(10)5(0)1 - (10)7(8)6 - (0)5(10)1-(16)0(6)

Суммируем произведение

(1)5(0)1 - (1)7(8)6 - (0)5(1)1 - (7)0(6)

Получаем сумму элементов(49) и умножаем полученный результат на 9. Произведение равно 441, а последняя цифра равна нашей контрольной (1), следовательно номер валидный.

Python:
from random import randint

ISSUER_ID = {
    'MASTERCARD': randint(511111, 551111),
    'VISA': randint(411111, 499999)
}


def userId() -> int:
    return randint(1111111111, 9999999999)


def issuerId(key: str = 'MASTERCARD') -> int:
    return ISSUER_ID.get(key)


def checkLuhn(list_int: list) -> bool:
    c_sum = list_int[-1]
    tmp_v = {i: v * 2 for i, v in enumerate(list_int[:-1]) if i == 0 or i % 2 == 0}
    for k, v in tmp_v.items():
        if v >= 10:
            y = str(v)[0]
            z = str(v)[1]
            w = int(y) + int(z)
            tmp_v.update({k: w})
    for k_, v_ in tmp_v.items():
        list_int[k_] = v_
    res = sum(list_int[:-1]) * 9
    if str(res)[-1] == str(c_sum):
        return True


def gen() -> None:
    while 1:
        iid = str(issuerId())
        uid = str(userId())
        num = iid + uid
        l_tmp = [int(i) for i in num]
        if checkLuhn(l_tmp):
            print(num)


if __name__ == '__main__':
    gen()

Чекнуть номер можно на там же можно и сгенерировать=)
 
  • Нравится
Реакции: 1984
А если первая цифра не 9, то следующие 3 что?
 
  • Нравится
Реакции: 1984
Если первая не девять, то следующие 5 цифр это BIN Bank identification number или IIN Issuer identification number
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD