Vulnhub打靶记录:funbox2
相关信息
kali:10.0.0.9/24
靶机:10.0.0.7/24
靶机下载:https://download.vulnhub.com/funbox/Funbox2.ova
目标:root
权限
难度:低
未提及的相关知识点,命令和代码等等可以查看我其他三个blog:
-
渗透相关知识补充 - CC-HL - 博客园 (cnblogs.com)
当然我也只是记录了我认为有必要的。
文字思路
全流程思路:
- 主机发现 端口扫描
- 信息搜集:
ftp
的匿名登陆 - FTP服务漏洞:漏洞利用没有成功,关键是里面的隐藏文件发现和下载
- 密码爆破 SSH公钥认证
- rbash逃逸 本地提权:逃逸的同时就进行了本地提权
下意识的操作
- 部分
ssh
服务是有用户枚举漏洞的,在端口发现后可以对这个点进行尝试。 - 登陆
ftp
后记得尝试../../
来看是否能够跳出ftp
的根目录。
主要的知识点
rbash
提权,非常的简单一个知识点
具体流程
信息搜集
-
主机发现,端口扫描,服务确定。可知
21/ftp
服务是允许进行匿名的登陆的,22/ssh
的服务版本也是没有大的漏洞,80/http
具有一个/logs
目录的。 -
通过访问
web
页面,目录爬取,非常惊讶的发现没有任何可以渗透的点,就是一个简单的默认的web
页面。所以将目标重点放在ftp
上,可以直接通过匿名登陆ftp
。注意:用户名就是
anonymous
-
同过
ftp
命令的使用,发现两个隐藏文件,然后使用mget
命令将所有文件包括隐藏文件进行下载,然后进行获取阅读。 -
文件的解读
-
welcome.msg
:一个类似于欢迎文本的模板,用来欢迎用户。同时可以发现消息中也说明了这个ftp
服务是不安全的。 -
.@admins
:是个base64
加密的文件。解密后为:保管好你的秘钥,它就在以你命名的压缩文件中。再结合ftp
中的众多压缩文件,不难做出联想猜想。
-
边界突破
-
但是解压下载下来的
zip
文件时,发现是需要密码的。通过zip2john
将压缩文件进行处理:zip2john tom.zip > tom.hash
,然后使用john
进行爆破.。重复这个步骤,最后只有tom,cathrine
能够成功的进行密码破解。 -
通过爆破获取的密码,解压完成后不难发现解压文件名和
ssh
公钥进行登陆的私钥密码一样的命名。不妨通过键入ssh -i id_rsa tom@10.0.0.10
来进行公钥登陆,果不其然成功的登陆。然后进行基本的信息搜集,发现在.mysql_history
中发现tom
创建了个数据库,并在其中插入了一个用户和密码:tom : xx11yy22!
。注意:通过
mysql
命令的特性,不难发现\40
可能是个特殊的没有意义的符号。
提权
-
通过获取的
xx11yy22!
使用sudo -l
进行密码验证,发现改密码就是tom
的。同时也分析该用户具有所有的sudo
权限,直接sudo -s
为root
,然后访问/root
用户。但是不可思议的是居然被拒绝了,提示我们这是个rbash
。(就是功能受限的shell),通过查看环境变量SHELL
也能得到验证。
rbash逃逸
技术还是比较简单的,网上资料很多。
-
由于目标靶机上肯定存在
mysql
,通过后台程序的查看不难发现是是root
用户起的mysql
-
利用刚刚的密码复用尝试登陆
mysql
,然后利用mysql
直接启用一个bash
。可以发现能够成功的进行flag
的阅读,完成打靶。但是注意即使环境变量依然为rbash
,但是并不意味着目前获取的shell
是rbash
。
命令
ftp
-
what?
用于连接
ftp
服务 -
具体使用
ftp 10.0.0.1
:直接连接目标服务的ftp
mget
相当于wget
,是用来下载ftp
中文件的
cpfr / cpto
在linux
登陆ftp
的用来复制,链贴文件的命令,eg:
cpfr /etc/1.txt # 复制1.txt
cpto /tmp # 将1.txt链贴到 /tmp目录
复盘/相关知识
复盘
ftp的exp试错
我们搜索的
proftpd
版本是1.3.5
和靶机上真实的1.3.5e
是有一定区别的,基本上注定exp
利用会出现问题,但是并不以为意味着不需要进行尝试。 返回
-
搜索
proftpd
相关的漏洞,可以发现三个远程执行的漏洞脚本都是基于一个漏洞mod_copy
。通过对36803.py
代码的阅读,我们可以大致的了解漏洞的产生原因和条件。 -
36803.py
解析:这个漏洞必须在开启
proftpd
的同时必须开放web
服务。本质上是利用ftp
可以在靶机相关文件进行复制,粘贴,从而在web
的文件目录中写入后门代码。21
:提示这个脚本的使用格式:ip
+web
+shell
的命令23~25
:对输入的参数进行赋值26
:利用PHP
将shell
命令封装成可被PHP
执行的命令27
:这个代码验证的了21
行代码中,需要输入的是ip
参数30~35
:利用ftp
复制,粘贴命令将恶意代码写入到infogen.php
中,并将该恶意文件移动到相关web
的目录下面41
:访问这个恶意的infogen.php
文件,进行恶意代码执行。
-
由于不知道网页的具体的根目录是什么,暂且猜测为常见的
/var/www/html
,尝试连接后依然是没有任何反应的,尝试失败。 -
更换脚本,使用
msfconsole
漏洞利用模块来进行更便捷的渗透测试,很显然4
模块是对上面的同一个漏洞利用。use 4
后键入info
来查看该模块的相关描述,该描述符合我们对36803.py
的解读。 -
键入
show payloads
查看靶机上可以利用的脚本,由于不确定靶机上的具体环境建议先选择基于系统的反弹脚本/unix/generic
。然后键入set payload payload/cmd/unix/generic
来确定脚本,在set cmd id
为脚本确定参数值 -
运行后依然是无法成功利用漏洞的,至此漏洞
exp
利用失败。