靶机难度:初级 +
工具及漏洞信息#
- 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
:
本文完。
参考文章: