
Ловец фишинга с помощью Certstream
Ловите возможные фишинговые домены в почти реальном времени, отслеживая подозрительные выпуски TLS-сертификатов, сообщаемые в Certificate Transparency Log (CTL) через API CertStream. «Подозрительными» считаются выпуски, доменное имя которых набирает балл выше определённого порога на основе файла конфигурации.
Это просто рабочий PoC. Не стесняйтесь вносить свой вклад и настраивать код под свои нужды. 👍

Скрипт должен нормально работать с Python2 или Python3. В любом случае установите зависимости после клонирования или загрузки исходного кода:
pip install -r requirements.txt
Phishing Catcher использует простой YAML-конфигурационный файл для назначения числового балла строкам, которые могут быть найдены в общем имени сертификата TLS или в поле SAN (т.е. в доменном имени сертификата). Файл конфигурации suspicious.yaml поставляется с разумными значениями по умолчанию, но вы можете настроить или добавить как сами строки, так и балл, назначенный каждой строке, отредактировав файл переопределения external.yaml.
Оба файла конфигурации: стандартный suspicious.yaml и изменяемый пользователем external.yaml содержат два YAML-словаря: keywords и tlds. Ключами словарей являются строки, а значениями — баллы, назначаемые, если эта строка найдена в доменном имени выданного сертификата. Например:
keywords:
'login': 25
Здесь балл 25 добавляется к общему ключевому слову login, когда оно найдено в доменном имени сертификата TLS. Увеличение этого значения повысит уровень подозрения к доменам, содержащим строку login, что позволит вам подвергнуть эти выпуски сертификатов более тщательной проверке.
Однако, чтобы быть отмеченным как подозрительный Phishing Catcher, балл, назначенный данному сертификату, должен достигать или превышать (>=, «больше или равно») следующие пороги:
| Балл | Отмечается как |
|---|---|
| 65 | Потенциальный |
| 80 | Вероятный |
| 90 | Подозрительный |
💡 См. функцию
score_domain()в исходном коде для подробностей об алгоритме оценки.
После настройки по вашему вкусу использование так же просто, как запуск скрипта:
$ ./catch_phishing.py

Если вы используете MacOs или другую версию ОС, которая может затруднить установку phishing_catcher, то использование инструмента в Docker — один из ваших вариантов.
docker build . -t phishing_catcher

GNU GPLv3
Если этот инструмент был вам полезен, можете отблагодарить меня, купив мне кофе.