Skip to content

Latest commit

 

History

History
72 lines (44 loc) · 3.89 KB

Exchange攻击.md

File metadata and controls

72 lines (44 loc) · 3.89 KB

1. Exchange介绍

Exchange是一个电子邮件服务组件,由微软公司开发。它不仅是一个邮件系统,还是一个消息与协作系统。Exchange可以用来构建企业、学校的邮件系统,同时也是一个协作平台,可以基于此开发工作流、知识管理系统、Web系统或其他消息系统。

Exchange服务运行在IIS服务器上,使用c#的aspx开发。exchange会对外暴露接口如OWA,ECP等,会暴露在80端口,而且25/587/2525等端口上会有SMTP服务,所以可以通过一些端口特征来定位exchange。

2. Exchange攻击

其实exchange的利用方式,主要还是使用漏洞进行攻击,在exchange服务中从18年至今也有不少漏洞,主要的横向移动的方式就是利用这些漏洞进行攻击。

像一些大型企业都会有自己的邮件服务器,这些邮件服务器可能是放在公网上也有可能是放在内网中,异地发邮件正常企业都会将邮件服务器放在外网上。fofa:"exchange”&&port="443"

倘若内部发邮件就会放在内网中,同时还有一些邮件服务器并不会放在域控上,可能是一个单独的邮件服务器,那么就算我们拿到权限也无法控制域控,但是可以通过获取到的这台邮件服务器进行深层次的利用,比如:发送钓鱼邮件或者利用之前学过的一些方式去上线域控。

2.1. 内网Exchange服务探测

这里我们提前控制其中一台域内主机进行上线,以便完成后续的操作,这里我们首先要去收集消息。

2.1.1. 服务探测

这里有很多种方式获取到关于exchange服务的信息。

2.1.1.1. SPN扫描

之前我们提过,使用SPN进行扫描可以扫描域内主机的服务信息,那么这里我们也可以利用这种方式进行扫描。

setspn -T 0day.org -q */*

2.1.1.2. 端口扫描

exchange会对外暴露接口如OWA,ECP等,会暴露在80端口,而且25/587/2525等端口上会有SMTP服务,所以可以通过一些端口特征来定位exchange。

例如445端口80端口,不是exchange服务唯一的端口,这里可以利用25端口来进行测试,由于我这里就开启域控主机与域内主机,所以这里扫描只有一个域控。

2.1.1.3. 脚本扫描

可以探测ip开启Exchange服务,版本,以及版本可能存在的cve。 python Exchange_GetVersion_MatchVul.py 192.168.3.142

2.2. Exchange邮箱攻击

当获取到邮件服务器的地址后,一般可以使用域内主机的账户密码来登陆。

0day/webadmin 
admin12345

如果没有获取到账号密码,就是使用账号来爆破登录。 由于我们先前已经获取到其中一台主机的权限了,这里我们可以进行信息收集,对邮件服务器发起爆破,正常邮件服务器可能都是使用域内主机的账户密码来登陆,所以我们先要收集域内账户与密码,进行爆破。 socks代理后,使用bp来爆破。

登录后可以进行钓鱼邮件攻击。

^ 漏洞攻击 一般也需要账号密码。访问邮件的登录页,右击查看源码可以看到的域控主机上的Exchange版本,寻找对应的漏洞和exp,利用即可。 如:命令执行漏洞,一键上传aspx一句话木马webshell 拿下Exchange服务器的权限一般都是域管理员权限,所以拿下服务器的权限也就离域控权限不远了。

如去对应的微软上去查询版本,使用ctrl+f查询,要重点查看前面的server版本可能要看整个名字,
比如:Update Rollup 22 for Exchange Server 2010 SP3 有些漏洞的虽然支持2010版本,
但是可能不支持sp3,就会导致漏洞验证不成功,所以不管使用exp还是POC都注意关注版本。
获取以上信息后,就可以去查找exp或者poc了,
而网上很多关于Exchange的验证POC和攻击EXP都需要自己编译,所以可能还需自己进行编译成exe程序。