Разместить здесь вашу рекламу


Мой пароль не дата, не улица, и фишингом меня н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 1024
openssl 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                   002
Domain                  example.com
KeyFile                 /etc/opendkim/example.com/dkimprivate.key
Selector                mail
UserID                  opendkim:opendkim
SyslogSuccess         Yes
LogWhy                  Yes
Background              Yes
Canonicalization        relaxed/relaxed
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/keys/keytable
SigningTable            refile:/etc/opendkim/keys/signingtable
Mode                    sv
PidFile                 /var/run/opendkim/opendkim.pid
SignatureAlgorithm      rsa-sha256
Socket                  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/opendkim
postconf -e milter_default_action=accept
postconf -e milter_protocol=2
postconf -e smtpd_milters = inet:localhost:8891
postconf -e non_smtpd_milters = $smtpd_milters

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

postfix check 
opendkim -n

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

systemctl restart postfix 
systemctl restart opendkim
systemctl 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.pem
postconf -e smtpd_tls_key_file = /etc/letsencrypt/live/example.com/privkey.pem
postconf -e smtp_tls_security_level = may
postconf -e smtpd_tls_security_level = may
postconf -e smtp_tls_note_starttls_offer = yes
postconf -e smtpd_tls_loglevel = 1
postconf -e smtpd_tls_received_header = yes
postconf -e smtpd_use_tls=yes
postconf -e smtpd_sasl_type = dovecot
postconf -e smtpd_sasl_path = private/auth
postconf -e smtpd_sasl_local_domain = example.com
postconf -e smtpd_sasl_security_options = noanonymous
postconf -e broken_sasl_auth_clients = yes
postconf -e smtpd_sasl_auth_enable = yes
postconf -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 = $mydomain
virtualaliasmaps = hash:/etc/postfix/virtual

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

admin@example.com root
info@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 = yes
…
authmechanisms = 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 = required
sslcert = </etc/letsencrypt/live/example.com/fullchain.pem
sslkey = </etc/letsencrypt/live/example.com/privkey.pem
sslprotocols = !SSLv3 !TLSv1.1 TLSv1.2
sslcipherlist = ALL:!LOW:!SSLv2:!EXP:!aNULL

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

postfix check 
dovecot -n
systemctl restart postfix 
systemctl restart dovecot
systemctl 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"

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

Источник: https://habr.com/ru/post/538804/


Интересные статьи

Интересные статьи

Уже набила оскомину шутка, что в аббревиатуре IoT буква S обозначает безопасность. Обычно этим сетуют на несогласованность или отсутствие стандартов. На практике даже сам...
Однако, снова здравствуйте. Прошла еще одна неделя — делимся результатами работы над нашей ракетой. Кто с нами впервые, для понимания происходящего, советую ознакомиться с ист...
Первая часть Оглавление Не конкурент магнитной ленте Жизнь после DiscoVision Заключение Не конкурент магнитной ленте LaserDisc не завоевал рынок даже на ранних этапах, по...
Мир IT разнообразен донельзя. Кто каких только технологий и решений не создает, что только не разрабатывает! Компании творят продукты каждая по-своему, но многие процессы схожи, а потому могут ...
И двух лет не прошло, как новая порция моих удивительных историй про приключения около IT кристаллизовалась и ждёт своих читателей. Приключения продолжаются! Присаживайся поудобнее, включай пригл...