aels / mailtools

Perfect scripts for all the hustle we have with mailing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Несколько замечаний и вопросов по коду smtp-checker

kcksjscmspacjn opened this issue · comments

  • По autoconfigs

update_autoconfigs.py сохраняет в файл autoconfigs.txt, а mailpass2smtp.py подтягивает конфиг из autoconfigs_enriched.txt, к тому же не локально, а с репозитория. Возникают вопросы и по autoconfigs_enriched.txt. Для примера возьмём строчку
a1.net;securemail.a1.net:587,bsmtp.a1.net:587,forschung.a1.net:587;%EMAILADDRESS%

Откуда взялся хост forschung.a1.net? В базе его нет https://autoconfig.thunderbird.net/v1.1/a1.net. Как сгенерировать autoconfigs_enriched.txt? Парсер не выложен.

  • По dangerous_domains

Абсолютно непонятны элементы mx37\.m..p\.com и vm\d. Также непонятна концовка списка начиная с fucking-shit|please|kill-me-please..., почему эти домены зловредны?
Некорректный парсинг dangerous_domains, для теста взял asd@dESET.com:123456, получил
skipping domain: mail.deset.com (for deset.com)
Не нашёл подходящего примера, но было бы интересно узнать, как отработает фильтрация, когда в MX две записи, mail.company.com (норм) и mail.avast.com (ханипот АВ).

  • По bad_mail_servers

Для теста взял 5 строк

asd@gmail.asd.com:123456
qwe@googlemail.asd.com:123456
zxczxc@googlemailasdasd.com:123456
qweqwe@mail.ru.com:4444444
qweqwe@mail.rucompany.com:444444

Все 5 уходят в ignored, а значит некорректно отрабатываются крайние случаи при фильтрации.

Почему пропускается TLS хендшейк в строке 152?
do_handshake_on_connect=False
Может ли быть ситуация, что без TLS хост-получатель дропнет коннект?

Не понял, как работает get_alive_neighbor. Что попадает в is_listening?

В массиве headers_arr указан MadCat, на основе этой сигнатуры антивирусные компании могут построить детектирование атаки, лучше убрать.

Бывают пропуски валида. На вход дал 13 валидных строк. На выходе иногда 11, иногда 12. Думаю, что это покрывается объёмами и повторными запусками, но недостаток имеет место.

На XSS ты предлагаешь поддерживать инструменты. Ты даже комменты в коде не пишешь. Как так?

Дополнение. В Thunderbird имплементировано несколько способов поиска конфига.

POST /autodiscover/autodiscover.xml HTTP/1.1
Host: autodiscover.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: text/xml; charset=utf-8
Content-Length: 399
Connection: close

<?xml version="1.0" encoding="utf-8"?>
    <Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006">
      <Request>
        <EMailAddress>asdasdsa@example.com</EMailAddress>
        <AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema>
      </Request>
    </Autodiscover>

Пример HTTP запроса

GET /mail/config-v1.1.xml?emailaddress=asdasdsa%40example.com HTTP/1.1
Host: autoconfig.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close


я не выкладывал как генерится расширенный конфиг, потому что его достаточно сделать 1 раз и забыть.
параметры подключения для всех доменов, которые не найдены в конфиге, восстанавливаются автоматом и кешируются, а конфиг лишь экономит время на первом запросе.

то что непонятно по регуляркам - так надо.
парсинг доменов полностью коррректный, так надо, чтобы все домены с подстроками в них банились.
это же касается игнорируемых доменов. Так надо, чтобы можно было указывать только имя бренда, например, а не домен целиком.

по tsl - нет, не может быть такой ситуации.

берется соседний ip-адрес, как следует из названия

В массиве headers_arr указан MadCat, на основе этой сигнатуры антивирусные компании могут построить детектирование атаки, лучше убрать.

ты наркоман чтоли?)

На XSS ты предлагаешь поддерживать инструменты. Ты даже комменты в коде не пишешь. Как так?

ой иди нахуй с такими вопросами. срач развел, пользы 0 по факту. Как так?

отвечая на последний комент - autoconfig не поддерживается и не настроен у большей части корпов. вообще не смысла на него полагаться, и куда проще восстановить параметры подключения перебором.