Exim远程命令执行漏洞 2018年2月5日,有安全研究人员向Exim报告了4.90.1之前版本的Exim SMTP Mail Server存在一个缓冲区溢出漏洞,对应CVE编号:CVE-2018-...6789,通过对该漏洞的利用可能实现远程命令执行效果,2月10日,Exim发布了补丁和安全公告,相关信息链接: https://exim.org/static/doc/security/CVE-2018...-2018-6789-en/ 根据公告,缓冲区溢出通过base64() 函数的调用触发,是一个内存越界读的堆溢出漏洞,针对Debian和Ubuntu上实际运行Exim SMTP Mail Server...网络上Exim部署开放情况 全球分布 通过安恒研究院sumap平台查询,全球Exim SMTP Mail Server主要分布情况如下,包含SMTP_SSL的 465端口和SMTP 25端口。...国内分布 通过安恒研究院sumap平台查询,国内Exim SMTP Mail Server主要分布情况如下,包含SMTP_SSL的 465端口和SMTP 25端口。
1/0.0.0.0/g" /etc/exim4/update-exim4.conf.conf RUN sed -i "1i\MAIN_TLS_ENABLE = yes" /etc/exim4/exim4....conf.template COPY exim.crt /etc/exim4/exim.crt COPY exim.key /etc/exim4/exim.key COPY exim_start /exim_start...搜了半天在网上没找到答案,最后使用strace进行调试,发现python在unwrap后估计还在等服务器回应,但是服务器不会,所以IO就卡住了。...exim.crt /etc/pki/tls/certs/exim.pem COPY exim.key /etc/pki/tls/private/exim.pem COPY exim_start /exim_start...RUN chmod +x /exim_start CMD ["/exim_start"] 总结了一下我测试成功的机器: •Debian 10 exim 4.92 •ubuntu 18.04 exim
0x00 前言 Exim 是基于GPL协议的开源软件,由英国剑桥大学的Philip Hazel开发。Exim 是一个MTA(邮件传输代理) ,负责邮件的路由,转发和投递。...Exim可运行于绝大多数的类UNIX系统上,包括了Solaris、AIX、Linux等。 Exim和其他开源的MTA相比,最大的特点是配置极其灵活。...Exim的配置文件是一个文本文件,支持String Expansion技术。能够执行诸如条件判断、字符转换等功能。...Exim有许多功能,包括发送地址重写、IPV6支持、TLS/SSL支持、正则表达式(PCRE)、列表与匹配、系统级过滤器(system wide filter),SMTP批处理。...id=CVE-2024-39929 https://bugs.exim.org/show_bug.cgi?id=3099#c4
作者:Hcamael@知道创宇404实验室 发表时间:2017年12月1日 感恩节那天,meh在Bugzilla上提交了一个exim的uaf漏洞:https://bugs.exim.org/show_bug.cgi...id=1051" -O Makefile $ cd .. # 修改Makefile文件的第134行,把用户修改为当前服务器上存在的用户,然后编译安装 $ make && make install 然后再修改下配置文件.../etc/exim/configure文件的第364行,把 accept hosts = : 修改成 accept hosts = * PoC测试 从https://bugs.exim.org/attachment.cgi...id=1050获取到meh的debug信息,得知启动参数: $ /usr/exim/bin/exim -bdf -d+all PoC有两个: https://bugs.exim.org/attachment.cgi.../build-Linux-x86_64/exim这个binary是没有patch printf的代码,/usr/exim/bin/exim是patch了printf的binary 到这里就很奇怪了,加了个
感恩节那天,meh在Bugzilla上提交了一个exim的uaf漏洞:https://bugs.exim.org/show_bug.cgi?...id=1051" -O Makefile $ cd .. # 修改Makefile文件的第134行,把用户修改为当前服务器上存在的用户,然后编译安装 $ make && make install 然后再修改下配置文件...id=1050获取到meh的debug信息,得知启动参数: $ /usr/exim/bin/exim -bdf -d+all PoC有两个: https://bugs.exim.org/attachment.cgi.../build-Linux-x86_64/exim 这个binary是没有patch printf的代码, /usr/exim/bin/exim 是patch了printf的binary 到这里就很奇怪了...源码 https://github.com/Exim/exim.git [2]Bugzilla-2199 https://bugs.exim.org/show_bug.cgi?
重新复现漏洞 比上一篇分析中复现的步骤,只需要多一步,注释了 /usr/exim/configure 文件中的 control = dkim_disable_verify 然后调整下poc的padding...dkim_disable_verify) 1734: dkim_exim_verify_init(chunking_state <= CHUNKING_OFFERED); 1735:#endif 进入了...dkim_exim_verify_init 函数,之后的大致流程: dkim_exim_verify_init -> pdkim_init_verify -> ctx->linebuf = store_get...在注释了dkim的配置后,在 dkim_exim_verify_init 函数的流程中,执行了一个 store_get 函数,申请了一个0x4000大小的堆,然后在 dkim_exim_verify_init...参 考 链 接 [1] https://devco.re/blog/2017/12/11/Exim-RCE-advisory-CVE-2017-16943-en/
dkim_disable_verify) 1734: dkim_exim_verify_init(chunking_state <= CHUNKING_OFFERED); 1735:#endif 进入了...dkim_exim_verify_init函数,之后的大致流程: dkim_exim_verify_init -> pdkim_init_verify -> ctx->linebuf = store_get...(PDKIM_MAX_BODY_LINE_LEN); bdat_getc -> smtp_getc -> smtp_refill -> dkim_exim_verify_feed -> pdkim_feed...在注释了dkim的配置后,在dkim_exim_verify_init 函数的流程中,执行了一个store_get 函数,申请了一个0x4000大小的堆,然后在dkim_exim_verify_init...函数和dkim_exim_verify_feed 函数中,都有如下的代码: store_pool = POOL_PERM; ...... store_pool = dkim_verify_oldpool
虽然去年我研究过Exim,但是时间过去这么久了,所以这次复现还是花了大量时间在熟悉Exim源码上。...: $ cat Local/makefile | grep -v "#" BIN_DIRECTORY=/usr/exim/bin CONFIGURE_FILE=/usr/exim/configure EXIM_USER...本篇的复现,都是基于只输出部分debug信息的模式: $ /usr/exim/bin/exim -bdf -dd # 输出完整debug信息使用的是-bdf -d+all # 不开启debug模式使用的是...x/s 0x0000000001cedae0 0x1cedae0: "acl_check_auth" 当我把该字符串修改为${run{/usr/bin/touch /tmp/pwned}} 则当我向服务器发送...2018/03/06/exim-off-by-one-RCE-exploiting-CVE-2018-6789-en/ https://github.com/Exim/exim/commit/cf3cd306062a08969c41a1cdd32c6855f1abecf1
虽然去年我研究过Exim,但是时间过去这么久了,所以这次复现还是花了大量时间在熟悉Exim源码上。...: $ cat Local/makefile | grep -v "#" BIN_DIRECTORY=/usr/exim/bin CONFIGURE_FILE=/usr/exim/configure...EXIM_USER=ubuntu SPOOL_DIRECTORY=/var/spool/exim ROUTER_ACCEPT=yes ROUTER_DNSLOOKUP=yes ROUTER_IPLITERAL...0x0000000001cedae0 0x1cedae0: "acl_check_auth" 当我把该字符串修改为${run{/usr/bin/touch /tmp/pwned}} 则当我向服务器发送...的版本) 开启CRAM-MD5认证,或者其他有调用b64decode函数的认证 需要有该exim的binary来计算堆偏移 需要知道exim的启动参数 ?
近日,腾讯云安全中心监测到知名邮件代理程序 Exim 被曝存在远程代码执行漏洞 (漏洞编号:CVE-2019-10149),攻击者可利用该漏洞获取 Exim 服务器控制权。...为避免您的业务受影响,云鼎实验室建议使用到 Exim 组件的用户及时开展安全自查,如在受影响范围,请您及时进行更新修复,避免被外部攻击者入侵。...【影响版本】 Exim 4.87 到 4.91 版本 【安全版本】 Exim 4.87 之前版本 Exim 4.92 及 更新版本 【修复建议】 ➤注意事项: Exim 官方于 2016年4月6日发布了...➤为避免 Exim 服务器被入侵利用,云鼎实验室建议用户: 检查自身 Exim 版本号,查看是否在受影响范围; 如 Exim 为 4.8.7之前的老版本,建议自查是否手工编译启用了 EXPERIMENTAL_EVENT...配置,如未启用,则不受影响; 如 Exim 为较新版本且在受影响范围,建议及时升级更新进行防护。
最近,外媒报道:俄罗斯军方网络威胁者Sandworm已经利用一个版本的电子邮件服务器漏洞至少数月之久。 ?...至少从2019年8月开始,Sandworm就一直在利用易受攻击的Exim邮件服务器,将被黑的服务器用作目标系统上的初始感染点,并且转移到受害者网络的其他部分。...尽管相关补丁也已发布,但是许多运行Exim的计算机仍没有安装补丁,暴露在攻击威胁之下。 ?...此外,遭到入侵的邮件服务器还可以拦截所有传入的邮件,并且在某些情况下,实现挖掘历史邮件存档。...尽管还不清楚Sandworm的具体意图,但建议大家立即更新Exim以修复漏洞,梳理流量日志检查是否被利用,而系统管理员可以使用软件包管理器或通过从https://www.exim.org/mirrors.html
当Exim服务器接受TLS连接时,攻击者发送一个以“\0”结尾的SNI请求,可能导致攻击者以root权限远程执行任意代码。Exim默认配置不开启TLS功能,但很多用户都需要启用TLS来处理网络流量。...Exim是一款邮件传输代理软件,可实现邮件的路由、转发和投递。...参考链接: http://exim.org/static/doc/security/CVE-2019-15846.txt SEE MORE → 2影响范围 受影响版本 Exim Version < 4.92.2...不受影响版本 Exim Version = 4.92.2 3漏洞检测 3.1 人工检测 使用命令“exim -bV”即可查看到当前exim版本,如果我们当前的版本在受影响列表中,即可确定存在漏洞。...4漏洞防护 4.1 官方升级 目前Exim官方已在4.92.2版本中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接: https://ftp.exim.org/pub/exim/exim4
2017-11-17) x86_64 GNU/Linux 编译环境:ldd (Debian GLIBC 2.25-3) 2.25 分析版本: $ git clone https://github.com/Exim.../exim.git $ git checkout ef9da2ee969c27824fcd5aed6a59ac4cd217587b 调试时下的断点: b check_helo b b64decode b.../var/spool/exim/log/%slog\x00" #由于第一次覆盖把日志文件的名字覆盖了,又重新写入 payload += 'f'*(0x2000-len(payload...最后攻击效果虽然在进程里起了bash,但是并没有弹回来shell,应该和我本地的环境有关,touch命令倒是执行成功了,调试发现,起了bash后,exim进程又把它kill了,很奇怪。...参考链接 https://paper.seebug.org/469/ https://devco.re/blog/2018/03/06/exim-off-by-one-RCE-exploiting-CVE
这个挑战有点复杂,既是实际挑战,又是关于在Linux上安装和配置的两因素身份验证是否可以阻止Linux服务器被利用的“概念证明”。...exim本地提权获取Flag 随后我使用 find 命令来查找具有 SUID 权限的文件命令发现了一个 exim4: (PS:Exim是一个MTA(Mail Transfer Agent,邮件传输代理)...服务器软件,该软件基于GPL协议开发,是一款开源软件。...然后我又看了看 exim 的版本发现它的版本是 4.8.9: exim --version ?...然后我把 exp 复制到了 root.sh 里,当然你也可以把这个 exp 下载到本地,再由本地上传到靶机服务器里,但是我嫌它麻烦,我直接 vi 编辑进去就可以了: ?
攻击机:Kali Linux 靶机环境:192.168.241.141 所用工具:nmap | sqlmap | john 0x01 知识点 SQL注入 exim提权 0x02 信息搜集 端口发现 发现...22和80端口开放 端口服务探测 对相关端口服务进行细致探测 访问页面,又是熟悉的面孔 综上信息搜集可以发现,开放22和80端口,服务器为Linux,web中间件为Apache,框架为Drupal...写一个python交互 :python -c 'import pty;pty.spawn("/bin/bash")' 提权 使用find命令查找具有suid权限的命令,找到一个exim4命令,exim...是一款在Unix系统上使用的邮件服务,exim4在使用时具有root权限 使用searchsploit命令搜索exim相关漏洞 然后把46996.sh拷贝到本地并改名为666.sh,并在kali开启...至此看到了flag,渗透测试结束 0x04 总结 对网页链接中带有参数保持可能存在注入的敏感性 通过注入拿到的密码需要用john进行解密 进入后台密码找到上传点,利用NC可以拿到反弹shell 发现exim
是给某个用户或者组授予执行某些命令的权限,权限在人身上 SUID是给命令赋予root用户的权限,权限在命令上 find / -perm -u=s -type f 2>/dev/null 查看exim...的版本 exim4 --version 使用searchsploit 对exim 4.89在漏洞库中查找可利用的漏洞 searchsploit exim 4.89 没有本地提权的漏洞,直接查找exim...可利用的漏洞 searchsploit exim 查看漏洞 下载脚本 切换在/var/www/html,打开apache服务 systemctl start apache2 在shell中下载 wget
Exim 是 Debain 系统上的默认 MTA 软件,它比 Postfix 更加轻量而且超级容易配置,因此我们在将来的教程中会推出 Exim 的教程。...,虽然这里是局域网服务器。...它会让你输入完全限定的服务器域名(例如: myserver.mydomain.net)。...对于局域网服务器,假设你的域名服务已经正确配置,(我多次提到这个是因为经常有人在这里出现错误),你也可以只使用主机名。...SIZE 表示服务器可接收的最大消息大小。 VRFY 可以告诉客户端某一个特定的邮箱地址是否存在,这通常应该被取消,因为这是一个安全漏洞。 ETRN 适用于非持久互联网连接的服务器。
删除 exim4 服务 exim4服务 开放 port :25 大家都知道这个端口做啥都吧!...systemctl stop exim4 systemctl disable exim4 apt-get purge --auto-remove exim4 exim4-base exim4-config...exim4-daemon-light rm -rf /var/log/exim4/ 删除 rpcbind 服务 rpcbind 服务 此服务开启port :111 这个端口。
2、将公钥上传到您的服务器上。 将 example_user 替换为你用来管理服务器的用户名称,将 203.0.113.10 替换为你的服务器的 IP 地址。...因为默认情况下不同发行版会运行不同的服务,你的输出将有所不同: netstat 告诉我们服务正在运行 RPC(rpc.statd 和 rpcbind)、SSH(sshd)、NTPdate(ntpd)和Exim...(exim4)。...我们看到类似的 SSH,Exim 正在侦听来自回环接口的流量,如所示的 127.0.0.1 地址。...然而,Exim 和 RPC 是不必要的,除非你有特定的用途,否则应该删除它们。 本节针对 Debian 8。默认情况下,不同的 Linux 发行版具有不同的服务。
2、将公钥上传到您的服务器上。 将 example_user 替换为你用来管理服务器的用户名称,将 203.0.113.10 替换为你的服务器的IP地址。...因为默认情况下不同发行版会运行不同的服务,你的输出将有所不同: netstat 告诉我们服务正在运行RPC(rpc.statd 和 rpcbind)、SSH(sshd)、NTPdate(ntpd)和Exim...(exim4)。...我们看到类似的SSH,Exim正在侦听来自回环接口的流量,如所示的 127.0.0.1 地址。 UDP UDP套接字是无状态的,这意味着它们只有打开或关闭,并且每个进程的连接是独立于前后发生的连接。...· 然而,Exim和RPC是不必要的,除非你有特定的用途,否则应该删除它们。 本节针对Debian 8。默认情况下,不同的Linux发行版具有不同的服务。
领取专属 10元无门槛券
手把手带您无忧上云