渗透|渗透技巧——通过Exchange ActiveSync访问内部文件共享( 四 )


·User=test1 , 表示用户名为test1
·DeviceId=123456 , 表示设备ID , 会被Exchange ActiveSync记录
·DeviceType=Python , 表示设备类型 , 会被Exchange ActiveSync记录
方法为POST请求
header内容示例:
"Content-Type": "application/vnd.ms-sync.wbxml",
"User-Agent" : ,
"MS-ASProtocolVersion" : "14.1",
"Accept-Language" : "en_us",
"Authorization: Basic dXNlcjElM0FwYXNzd29yZDE="
body内容示例:
需要将xml格式转换为WAP Binary XML(WBXML) 。
xml格式示例:
渗透|渗透技巧——通过Exchange ActiveSync访问内部文件共享
本文插图

xml格式参考:
https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-asdoc/f8a23578-0ca4-4b36-aa07-3dcac5b83881
WAP Binary XML(WBXML)算法可参考:
https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-aswbxml/39973eb1-1e40-4eb5-ac74-42781c5a33bc
2.读取指定共享文件内容
访问的URL示例:https://192.168.1.1/Microsoft-Server-ActiveSync?Cmd=ItemOperations&ampUser=test1&ampDeviceId=123456&ampDeviceType=Python"
参数说明如下:
·Cmd=ItemOperations , 表示命令类型为ItemOperations

·User=test1 , 表示用户名为test1
·DeviceId=123456 , 表示设备ID , 会被Exchange ActiveSync记录
·DeviceType=Python , 表示设备类型 , 会被Exchange ActiveSync记录
方法为POST请求
header内容示例:
"Content-Type": "application/vnd.ms-sync.wbxml",
"User-Agent" : ,
"MS-ASProtocolVersion" : "14.1",
"Accept-Language" : "en_us",
"Authorization: Basic dXNlcjElM0FwYXNzd29yZDE="
body内容示例:
需要将xml格式转换为WAP Binary XML (WBXML) 。
xml格式示例:
xml格式参考:
https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-asdoc/e7a91040-42f1-475c-bac3-d83d7dd9652f
我基于peas的代码 , 提取出访问共享文件的功能 , 生成了一个免安装的版本 , 地址如下:
https://github.com/3gstudent/easBrowseSharefile
代码支持两个功能:
1.列出共享文件
2.读取指定共享文件内容
注:访问域内共享目录SYSVOL时 , 路径要加上域控制器的计算机名 , 而不是域名 。
正确的写法:
\dc1SYSVOL est.comPolicies{6AC1786C-016F-11D2-945F-00C04fB984F9}GPT.INI
错误的写法:
\test.comSYSVOL est.comPolicies{6AC1786C-016F-11D2-945F-00C04fB984F9}GPT.INI
如果掌握了域控制器的计算机名 , 可以通过Exchange ActiveSync从外网访问域内共享目录SYSVOL中的文件 。

0x06 防御检测
通过Exchange ActiveSync读取邮件和访问共享目录会留下设备信息 , 设备信息对应的代码位置:
https://github.com/FSecureLABS/peas/blob/master/peas/pyActiveSync/objects/MSASHTTP.py#L25
查看设备信息的两个方法 。
1.登录Exchange Admin Center
选择邮箱用户-&gtMobile Devices下的View details, 如下图:
渗透|渗透技巧——通过Exchange ActiveSync访问内部文件共享
本文插图

2.使用Exchange Management Shell
命令如下:
Get-ActiveSyncDevice|fl UserDisplayName,DeviceId,DeviceType,DeviceUserAgent


推荐阅读