banner
soapffz

soapffz

github
steam
bilibili
douban

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

image

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

image

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

image

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

image

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

image

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

image

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

信息收集总结#

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

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

0x02 OpenNetAdmin 漏洞#

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

exploit-db:

image

image

searchsploit:

image

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

image

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

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

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

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

image

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

image

成功获取到meterpreter会话

0x03 普通用户提权#

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

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

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

image

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

image

在网站目录,我们刚才不能访问的/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生成密码字典:

image

再使用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查看当前用户的权限

image

发现可以以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

image

这个时候我们来到/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

image

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

image

从邮件得知了用户密码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

image

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

image

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

image

本文完。

参考文章:

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.