MENU

Five86-1-Vulnhub Walkthrough

靶机地址

靶机难度:初级+

工具及漏洞信息

  • netdiscover
  • nmap
  • gobuster
  • OpenNetAdmin命令注入
  • crunch 根据给定字符生成字典
  • john 字典破解hash

0x01信息收集

扫描靶机

netdiscover-r参数扫描192.168.1.0/16或者路由器管理界面查看有线连接的设备得到靶机ip

nmap扫描主机及端口信息:

nmap -sS -A -n -T4 -p- 192.168.1.3

靶机开放了228010000三个端口,看了80端口发现是空白的,用curl确认:

确实没有内容,再看一下10000端口:

Webmin,版本MiniServ 1.920

扫描目录

gobuster扫描网站目录:

gobuster dir -u http://192.168.1.3 -s 200,301,302,307,401,403 -t 100 -q -x .php,.txt,.html,.zip,.bak,.tar.gz -w /usr/share/wordlists/seclists/Discovery/Web-Content/raft-large-directories.txt

发现有robot.txt和一个可疑401目录/reports,访问发现需要认证:

robots.txt里面发现目录/ona,与nmap扫描吻合,访问;

openNetAdmin v18.1.1(一个IP网络系统和主机管理系统)

信息收集总结

目前收集到的主要信息如下:

  • ssh 22端口开放,是否考虑爆破
  • Webmin MiniServ 1.920 10000端口 是否存在可利用漏洞
  • openNetAdmin v18.1.1 /ona目录 是否存在可利用漏洞

0x02 OpenNetAdmin漏洞

那就分别看看WebminopenNetAdmin有没有能利用的漏洞:

exploit-db:

searchsploit:

OK,那我开启msf搜索模块:

可以看到,msf中并没有我们刚才搜到的Unauthenticated RCE(Metasploit)openNetAdmin甚至一个都没有

那我们手动下载exploit-db上的exploit文件并移入msfexploit数据库:

/usr/share/metasploit-framework/modules/exploits/

重启Metasploit就可以直接使用两个exp了,先使用Webmin的看一下:

竟然只支持Webmin<= 1.910版本,那试下openNetAdmin:

成功获取到meterpreter会话

0x03 普通用户提权

如果要从meterpreter进入shell记得用Python获取一个tty,不然有些命令是无法执行的

python -c 'import pty; pty.spawn("/bin/bash")' # 有些没有安装Python2,所以需要换成python3 -c

我这里先不进入,老规矩,查看下当前目录、网站目录、家目录:

当前目录没啥,看下网站目录:

在网站目录,我们刚才不能访问的/reports子目录中的.htaccess文件中找到提示

/var/www/.htpasswd中找到如下提示:

douglas:$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1

# To make things slightly less painful (a standard dictionary will likely fail),
# use the following character set for this 10 character password: aefhrt

给出了一个用户名和密码的hash值,提示我们需要爆破,密码位数为10位,包含aefhrt这6个字符

kali自带的工具crunch生成密码字典,crunch可以根据我们指定的字符以及最大最小个数创建字典

Usage: crunch <min> <max> [options]

于是我使用crunch 10 10 aefhrt -o passwd生成密码字典:

再使用john来爆破hash:

echo '$apr1$9fgG/hiM$BtsL9qpNHUlylaLxk81qY1' > hash
john --wordlist=passwd hash

在经历了漫长的等待之后得到密码fatherrrrr,于是我们使用douglas:登录ssh:

douglas:fatherrrrr
ssh douglas@192.168.1.3

sudo -l查看当前用户的权限

发现可以以jen的权限执行cp命令,于是准备切换到jen账户

0x04 提权root

ssh-keygen生成密钥,将公钥拷贝到/home/jen/.ssh目录下,之后使用jen账户登录:

ssh-keygen -b 2048
cp /home/douglas/.ssh/id_rsa.pub /tmp/authorized_keys

这个时候我们来到/tmp(临时目录)下给authorized_keys这个文件一个可执行权限

使用sudojen用户权限去执行 cp 命令,把刚刚生成的authorized_keys移动到/home/jen/.ssh/

chmod 777 /tmp/authorized_keys
sudo -u jen /bin/cp /tmp/authorized_keys /home/jen/.ssh/
ssh jen@127.0.0.1

这里登录jen账户的时候提示我们有一封邮件,在/var/mail/中找到了这封名为jen的邮件:

从邮件得知了用户密码Moss:Fire!Fire!SSH链接登陆之~

moss:Fire!Fire!
ssh moss@192.168.1.3

切换到moss账户后,又到了我熟悉的SUID提权,用find查看

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

发现了SUID权限的/home/moss/.games/upyourgame,好像是个游戏,去玩一下:

啥狗屁逻辑,就是刁难一下你,然后直接给了root权限,最后在root目录成功拿到flag:

本文完。

参考文章: