vlambda博客
学习文章列表

社会工程学|centos下搭建邮件服务器

0x01 前言
现在hvv中钓鱼也不怎么让使用了,因为社工稍微不慎,就会反噬自身,现在从一封邮件的生老病死,看
社工中邮件攻击的一些技术点。
0x02邮件发送接收原理图
说到邮件钓鱼,不得不谈谈一封邮件的发送和接收






0x03搭建
注:abc.com为测试域名,虚构
绑定mail域名(易错)
A记录绑定自己的域名和ip,然后加MX记录解析到域名的ip,但是这样做会错,因为会无法识别
mail.abc.com是什么


社会工程学|centos下搭建邮件服务器

实际上,应该这样子做:


社会工程学|centos下搭建邮件服务器


原因

mail.abc.comA记录解析到邮件服务器IP(后面的各个客户端配置的域名都写这个A记录的),再把abc.comMX记录解析到mail.abc.com(这个是当遇到***@abc.com时会解析到mail.abc.com)。测试端口telnet命令也要用mail.abc.com,不能用mx记录的abc.com(用这个会解析到A记录解析的abc.com)。


配置好了之后可以用nslookup测试:


nslookup mail.abc.com


如果返回vps的ip就说明这一步正确
环境:


内网ip为:10.41.161.214防火墙:全部关闭,防止出现端口没开的情况操作系统:centos7 x64移除了centos自带的sendmail服务,防止出现意外:rpm -e sendmail 或者 yum remove sendmail


修改hostname

hostnamectl set-hostname mail.域名


安装发送者和接收者
参考:
https://blog.csdn.net/ly_6118/article/details/89637270
https://blog.51cto.com/u_12227558/2074095
https://www.cnblogs.com/aeolian/p/13431404.html
https://www.jianshu.com/p/9260eebc3e0c


从文首的图可以看出,一个邮件服务器应该包含发送者和接收者。发送者一般在25端口,是smtp服务器,我们需要开放我们需要的端口,端口有25(SMTP服务,用于发送邮件),110(pop3服务,用于接收邮件)143(imap服务,用于接收邮件)


POSTFIX(发送者)

安装:
yum install postfix
备份/etc/postfix/main.cf:
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
修改main.cf:

修改内容:# 75行: 取消注释,设置hostnamemyhostname = mail.abc.com# 83行: 取消注释,设置域名mydomain = abc.com# 99行: 取消注释myorigin = $mydomain# 116行: 默认是localhost,我们需要修改成allinet_interfaces = all# 119行: 推荐ipv4,如果支持ipv6,则可以为allinet_protocols = ipv4# 164行: 添加hostnamectl set-hostname mail.域名mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain# 264行: 取消注释,指定内网和本地的IP地址范围mynetworks = 127.0.0.0/8# 419行: 取消注释,邮件保存目录home_mailbox = Maildir/# 571行: 添加smtpd_banner = $myhostname ESMTP# 添加到最后# 规定邮件最大尺寸为10Mmessage_size_limit = 10485760# 规定收件箱最大容量为1Gmailbox_size_limit = 1073741824# SMTP认证smtpd_sasl_type = dovecotsmtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_security_options = noanonymoussmtpd_sasl_local_domain = $myhostnamesmtpd_recipient_restrictions =permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject


以上对应的对应的行数位置可能随着版本不同会有差异。具体的一些参数含义在本小节前面有解释
重启:
systemctl restart postfix
systemctl enable postfix
修改MTA,验证是否postfix成功:
alternatives --config mta


社会工程学|centos下搭建邮件服务器



dovecot(接收者)
yum install dovecot
vim /etc/dovecot/dovecot.conf


更改内容:

# 26行: 如果不使用IPv6,请修改为*listen = *#在主配置文件中的第48行,设置允许登录的网段地址,也就是说我们可以在这里限制只有来自于某个网段的用户才能使用电子邮件系统。如果想允许所有人都能使用,则不用修改本参数login_trusted_networks = 192.168.10.0/24更改内容

编辑文件10-auth.conf

vim /etc/dovecot/conf.d/10-auth.conf更改内容:# 9行: 取消注释并修改 disable_plaintext_auth = no# 97行: 添加 auth_mechanisms = plain login

编辑文件10-mail.conf

vim /etc/dovecot/conf.d/10-mail.conf更改内容(设置邮件存放地址,~代表用户的根目录,每个用户都会存在一个此目录):# 30行: 取消注释并添加 mail_location = maildir:~/Maildir编辑文件10-master.conf

vim /etc/dovecot/conf.d/10-master.conf

更改内容:# 97-99行: 取消注释并添加 # Postfix smtp验证unix_listener /var/spool/postfix/private/auth {mode = 0666user = postfixgroup = postfix}注意:如果我们没有使用ssl的话需要进行下面的操作。使用了则不需要。

编辑文件10-ssl.conf

vim /etc/dovecot/conf.d/10-ssl.conf更改内容# 8行: 将ssl的值修改为 ssl = no启动dovecot并添加到开机自启。systemctl restart dovecotsystemctl enable dovecot

测试是否搭建成功可用


下载任意一个邮件客户端软件,比如foxmail,本次测试用的是


社会工程学|centos下搭建邮件服务器



就是刚才创建的邮箱管理员admin,密码admin


社会工程学|centos下搭建邮件服务器



社会工程学|centos下搭建邮件服务器

如果进去之后无法成功刷新出邮件,并且报错说密码验证错误,那就改账号为admin,再输入密码admin:


社会工程学|centos下搭建邮件服务器



到此,说明发件服务成了;接着创建一个新用户test
useradd tset
passwd test
本地telnet 登陆telnet localhost 110
成功即可说明收件功能也成了:


社会工程学|centos下搭建邮件服务器



但是用foxmail无法发送邮件,猜测原因:

1.foxmail本身不支持postfix2.我搭建的问题

为了验证是哪个问题,决定手动登陆邮箱发件,看看是否可以发送:

社会工程学|centos下搭建邮件服务器



从admin发送给test,test也确实收到了:


社会工程学|centos下搭建邮件服务器



同样,测试发送给任意匿名邮箱: