Доброго времени суток, Хабр! Так как я всё еще нахожусь на творческих каникулах, то имею возможность со всей силы пилить собственные проекты. Одним из таких проектов является PhishIntel, о котором я рассказывал в прошлой статье. Но так уж получилось, что я его полностью переписал, а значит информацию о возможностях следует обновить.
PhishIntel написан на Python и немного приправлен Go, не требует установки дополнительных библиотек, запускается полностью готовым к бою одной командой.
python3 main.py
Теперь его главная задача: быстро получить первоначальную информационную базу о целевом ресурсе, с которой детективы, аналитики, и разного рода OSINT‑специалисты смогут работать дальше.
При запуске программы будет доступно интерактивное меню, в котором потребуется выбрать язык, и далее воспользоваться нужным инструментом. Проверка по username и email являются дополнительными, поэтому рассматривать будем только основной функционал по поиску информации на сайте.

Сбор данных с целевого ресурса представлыет собой краулер страниц, который рекурсивно обходит заданное количество страниц с соответствующей глубиной, и количеством параллельных запросов, собирая все что похоже на телефонные номера, электронную почту, криптокошельки, и адреса. Кроме того, собирается информация о домене. Вместе с тем происходит сканирование небольшого количества популярных портов, с целью определения доступности, и технологии за ними. Для этого модуля и был использован Go.
Через несколько секунд основной результат сохраняется в структурированном JSON‑отчёте, но есть возможность сохранить его краткую форму в более читаемом HTML‑формате. Тогда вы увидете еще и файл примерно с таким содержимым:



В стандартный отчет входят:
email‑адреса;
телефоны по российским и американским форматам;
телефоны из HTML‑полей
tel,phone,telephone,mobileи аналогов;адреса из специализированных полей и строк с явными адресными признаками;
источники только тех страниц, где найдены контакты;
внешние домены;
внешние API endpoint‑ы;
внешние JavaScript‑файлы;
агрегированные счётчики обхода;
DNS, IP и reverse DNS;
RDAP и WHOIS;
TLS‑сертификат;
цепочка перенаправлений;
найденные поддомены;
локальная история DNS/TLS.
ограниченное сканирование TCP‑портов исходного домена и определение технологий.
Что касается последнего, конечно, это не Nmap, но для общей информации вполне себе сойдет. Ранее PhishIntel включал в отчет работу активных сканеров, но я посчитал это излишеством. Все же это отдельная ступень работы. Хотя ничего не мешает добавить работу со сканерами в отдельный раздел, чтобы упростить возню со скриптами. Если в этом есть неоходимость.
Отдельно хочу отметить, что для работы программы не требуется обязательно заполнять .env. Но если вы понимаете. что делаете, хотите изменить стандартные настройки, добавить юзер агентов или прокси, заполните его в соответствии с примером .env.example.
Кроме того, вы легко можете изменить поведение сканера портов, дописав нужный функционал в модуль Go, и скомпилировав новый бинарник. Краткая документация по этому поводу лежит в директории сканера.
В целом, я хотел сделать простой, удобный и расширяемый инструмент, поэтому буду рад любым отзывам о его работе. Особенно было бы приятно почитать мнение специалистов из сфер, связаных с поиском и защитой информации.
Благодарю за внимание.

