Русский
Русский
English
Статистика
Реклама

Мой пароль не дата, не улица, и фишингом меня нe дocтaть. Как защититься от атак социальной инженерии. Часть 1

Введение

По статистике за 2020 год до 45% сотрудников организаций открывают фишинговые письма, 20-30% переходят по нежелательным ссылкам в таких письмах, а от 10 до 15% вводят свои учетные данные на фишинговых ресурсах. Данные процентные соотношения взяты с учетом следующих факторов:

  • фишинговые письма обходят все спам-фильтры и доставлены до целей (жертв)

  • письма содержат актуальную информацию для сотрудников той или иной организации в определенный промежуток времени.

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

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

Перед тем как начать

В процессе проведения тестирования методами социальной инженерии мы использовали услуги VPS в основном из-за наличия белого IP.

Весь процесс настройки будет производиться на Ubuntu 18.04.5 LTS c использованием:

  • Postfix 3.3.0-1

  • OpenDKIM 2.11.0

  • Dovecot 2.2.33.2

  • Certbot 0.27.0

В качестве примера будет использоваться доменное имя "example.com" и сеть 192.168.10.0/24.

Настройка smtp-сервера

Для отправки почтовых писем будет использоваться smtp-сервер Postfix. Установка smtp-сервера Postfix производится командой:

apt-get install postfix

Для упрощения процесса конфигурирования во время установки Postfix в пользовательском интерфейсе в списке типов конфигурации сервера необходимо выбрать Internet Site для автоматической генерации файла конфигурации main.cf

После установки Postfix производим его базовую настройку. Для этого в терминале прописываем команды по изменению доменного имени и сети, из которой будет отправляться почта.

postconf e 'myhostname=example.com'postconf e 'mynetworks=192.168.10.0/24'

Настройка OpenDKIM

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

Начнем с настройки DKIM для Postfix. Это цифровая подпись, которая подтверждает подлинность отправителя и гарантирует целостность доставленного письма. Для ее настройки нам понадобится OpenDKIM - открытая реализация системы аутентификации отправителя по DKIM. Установка OpenDKIM производится командой:

apt-get install opendkim opendkim-tools -y 

Cоздаем директорию /etc/opendkim/example.comи генерируем приватный и публичный ключ RSA.

openssl genrsa -out dkimprivate.key 1024openssl rsa -pubout -in dkimprivate.key -out dkimpublic.key

Примечание: для генерации ключей использовался более стабильный openssl, т.к. ключи, которые получались с помощью opendkim-genkey, не проходили проверки на сервисах тестирования записи DKIM.

Далее создаем файл доверенных узлов /etc/opendkim/TrustedHostsи делаем в нем запись следующего вида:

localhost#имя необходимого домена*.example.com

В файле /etc/opendkim/signingtable, который будет содержать список подписей, применяемых к сообщениям согласно адресу, указанному в поле заголовка From, создаем запись следующего вида:

*@example.com  mail._domainkey.example.com

Файл /etc/opendkim/keytable, который будет содержать таблицу ключей, приводим к следующему виду:

mail._domainkey.example.com example.com:mail:/etc/opendkim/example.com/dkimprivate.key

Далее открываем конфигурационный файл/etc/opendkim.conf и приводим его к следующему виду:

UMask                   002Domain                  example.comKeyFile                 /etc/opendkim/example.com/dkimprivate.keySelector                mailUserID                  opendkim:opendkimSyslogSuccess         YesLogWhy                  YesBackground              YesCanonicalization        relaxed/relaxedExternalIgnoreList      refile:/etc/opendkim/TrustedHostsInternalHosts           refile:/etc/opendkim/TrustedHostsKeyTable                refile:/etc/opendkim/keys/keytableSigningTable            refile:/etc/opendkim/keys/signingtableMode                    svPidFile                 /var/run/opendkim/opendkim.pidSignatureAlgorithm      rsa-sha256Socket                  inet:8891@localhost

Немного поподробнее про поля, которые были прописаны в файле выше:

  • Domain: параметр, определяющий имя используемого домена

  • KeyFile: параметр, описывающий путь до приватного ключа RSA, полученного с помощью openssl

  • UserID: параметр, который определяет под каким пользователем должен работать процесс OpenDKIM

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

  • InternalHosts: параметр, который определяет перечень внутренних хостов, чьи письма не должны быть проверены, но должны быть подписаны

  • KeyTable: таблица с параметрами подписи

  • SigningTable: список подписей, чтобы применить к сообщению на основе адреса, указанному в поле "От:" заголовка

  • PidFile: путь к PID файлу, который содержит идентификационный номер процесса

  • SignatureAlgorithm: алгоритм создания подписи

  • Socket: определяет параметры сервера OpenDKIM. Postfix будет отправлять сообщения на проверки и подпись через указанный в этом параметре сокет

Для взаимодействия Postfix и OpenDKIM в терминале прописываем следующие команды:

echo 'SOCKET="inet:8891@localhost"' >> /etc/default/opendkimpostconf -e milter_default_action=acceptpostconf -e milter_protocol=2postconf -e smtpd_milters = inet:localhost:8891postconf -e non_smtpd_milters = $smtpd_milters

После настройки Postfix и OpenDKIM проверяем отсутствие ошибок в конфигурационных файлах. Делаем это с помощью команд:

postfix check opendkim -n

Если в ходе проверок не было обнаружено ошибок, то перезапускаем сервисы Postfix и OpenDKIM и проверяем их статусы:

systemctl restart postfix systemctl restart opendkimsystemctl status postfix systemctl status opendkim

*Примечание

Если в ходе проверки статуса OpenDKIM возникает ошибка, связанная с отсутствием pid-файлаopendkim.pid, то переходим в/lib/systemd/system/opendkim.serviceи комментируем следующую строку:

#PIDFile=/var/run/opendkim/opendkim.pid

После чего еще раз перезапускаем OpenDKIM.

Настройка DNS-записей

После настройки OpenDKIM и создания приватных и публичных ключей переходим к настройке DNS-записей. Подробнее про них можно прочитать на данном ресурсе.

Для SPF создаем DNS-запись следующего вида:

В приведенной записи:

  • v - версия, всегда устанавливается как SPF1

  • ip4 - добавляет IP-адрес сервера, имеющего разрешение отправлять письма

  • a - позволяет отправлять письма с адреса, который указан в записи А на домене

  • mx - позволяет отправлять письма с адреса, который указан в записи MX на домене

  • ~all - определяет, что всем остальным ip-адресам присвоить режим мягкого возврата (попадание в папку спам).

Для DKIM создаем следующую DNS-запись:

В приведенной записи:

  • v - версия, всегда устанавливается как DKIM1

  • k тип ключа, всегда указывается как RSA

  • p - сам открытый ключ

Примечание: процесс создания открытого ключа RSA был описан в предыдущем разделе. Ключ находится/etc/opendkim/<имя используемого домена>/dkimpublic.key

Далее для DMARC подписи создаем следующую DNS-запись:

В приведенной записи:

  • v - версия, всегда устанавливается как DMARC1

  • p - правило для домена, none - означает "не делает ничего, кроме подготовки отчетов"

  • aspf - проверка соответствия записей, r - означает, что проверка осуществляется в мягком режиме

  • sp - правило для субдомена, none - означает "не делает ничего, кроме подготовки отчетов"

После добавления всех описанных записей можно сделать проверку, что они действительны. Сделать это можно на известном сервисеMxtoolbox.

Установка и настройка Dovecot и Certbot

Заключительной настройкой на подготовительной этапе будет конфигурирование Dovecot и Certbot. Dovecot в нашем случаи необходим, чтобы настроить авторизацию на smtp-сервере. Certbot же позволит управлять SSL-сертификатами от Let's Encrypt. Для установки Dovecot и Certbot используем следующую команду:

apt-get install dovecot-imapd dovecot-pop3d certbot

Для создания сертификатов Let's Encrypt прописываем в терминале следующую команду:

certbot certonly --standalone -d example.com

После завершения процесса сертификаты будут храниться в/etc/letsencrypt/live/examle.com

Далее производим дополнительную настройку Postfix. Для этого в терминале прописываем следующие команды:

postconf -e smtpd_tls_cert_file = /etc/letsencrypt/live/example.com/fullchain.pempostconf -e smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pempostconf -e smtp_tls_security_level = maypostconf -e smtpd_tls_security_level = maypostconf -e smtp_tls_note_starttls_offer = yespostconf -e smtpd_tls_loglevel = 1postconf -e smtpd_tls_received_header = yespostconf -e smtpd_use_tls=yespostconf -e smtpd_sasl_type = dovecotpostconf -e smtpd_sasl_path = private/authpostconf -e smtpd_sasl_local_domain = example.compostconf -e smtpd_sasl_security_options = noanonymouspostconf -e broken_sasl_auth_clients = yespostconf -e smtpd_sasl_auth_enable = yespostconf -e smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination

Следует немного прояснить, что обозначают некоторые параметры в приведенных выше командах:

  • smtpd_tls_cert_file - параметр, отвечающий за местонахождение сертификата сервера

  • smtpd_tls_key_file - параметр, отвечающий за местонахождение закрытого ключа сервера

  • smtp_sasl_auth_enable - параметр, который отвечает за включение поддержки sasl для проверки подлинности почтовых серверов

  • smtpd_sasl_path - параметр, который определяет путь до плагина аутентификации по механизму SASL

  • smtp_sasl_security_options - параметр безопасности, запрещающий механизмы, которые выполняют анонимную проверку подлинности. noplaintext - обозначает не использовать механизмы, которые передают незашифрованное имя пользователя и пароль

  • smtp_sasl_type - тип плагина sasl, используемый для проверки подлинности

  • smtpd_recipient_restrictions - параметр, отвечающий за список ограничений

Подробно с каждым параметром также можно ознакомиться в документации Postfix.

Также можно создать список виртуальных имен. Для этого прописываем следующие строки вконфигурационном файле /etc/postfix/main.cf:

virtualaliasdomains = $mydomainvirtualaliasmaps = hash:/etc/postfix/virtual

Далее открываем файл/etc/postfix/virtualи приводим его к следующему виду:

admin@example.com rootinfo@example.com root

Также в/etc/postfix/master.cfраскомментируем данные строки:

-o smtpdtlswrappermode=yes-o smtpdsaslauthenable=yes-o smtpdmilters=inet:localhost:8891

Переходим к настройке Dovecot. Открываем файл/etc/dovecot/conf.d/10-auth.confи прописываем следующие строки:

disableplaintextauth = yesauthmechanisms = plain login

Далее открываем файл/etc/dovecot/conf.d/10-mail.confи приводим его к следующему виду:

maillocation = maildir: ~ / Maildir

В файле/etc/dovecot/conf.d/10-master.conf находим селекторservice authи прописываем следующие строки:

service auth {   # Postfix smtp-auth  unixlistener / var / spool / postfix / private / auth {       mode = 0660       user = postfix       group = postfix }

Файл/etc/dovecot/conf.d/10-ssl.confприводим к следующему виду:

ssl = requiredsslcert = </etc/letsencrypt/live/example.com/fullchain.pemsslkey = </etc/letsencrypt/live/example.com/privkey.pemsslprotocols = !SSLv3 !TLSv1.1 TLSv1.2sslcipherlist = ALL:!LOW:!SSLv2:!EXP:!aNULL

Проверяем правильность конфигураций Postfix и Dovecot, после чего перезапускаем данные сервисы и проверяем их статусы:

postfix check dovecot -nsystemctl restart postfix systemctl restart dovecotsystemctl status postfix systemctl status dovecot

*Примечание: пути до ключей указываем те, что создались в процессе генерацию сертификатов с помощью Certbot выше.

Для проверки корректной настройки Postfix, Opendkim, Dovecot можно использовать сервис Mail-Tester, который позволит протестировать, попадают ли в дальнейшем письма, отправляемые с нашего почтового сервера, в спам.

echo "Test mail" | mail test-c69hzynjz@srv1.mail-tester.com -s "Hello" -a "MIME-Version: 1.0" -a "Content-Type: text/plain"

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

Источник: habr.com
К списку статей
Опубликовано: 23.01.2021 00:18:58
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

Информационная безопасность

Социальная инженерия

Фишинг

Postfix

Opendkim

Dovecot

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru