Vulnhub-LAMPSecurity:CTF5

0x00 Introduction

打得最快的一个靶机。

0x01 端口扫描

首先对所有端口进行 TCP 扫描:

然后详细扫描以上端口:

这个靶机开放的端口很多,首先还是从最熟悉的80端口开始探索。

0x02 CMS 渗透

按照导航栏逐个探索之后,发现 Blog 处暴露了 CMS 是 NanoCMS:

于是搜索该CMS有没有什么公开的漏洞,看到了一个远程命令执行的漏洞,但是需要经过认证。

发现该 CMS 是开源的,于是进行代码审计。通过代码中与登录相关的语句找到了以下文件,发现存在密码泄露:

猜测是 MD5 加密:

但是解密之后的密码不正确。后来才反应过来,真是傻了,程序员改默认密码了呗!

既然已经知道路径了,于是访问 http://192.168.86.136/~andy/data/pagesdata.txt

用该密码成功登录后台。接下来按照常规思路找文件上传或代码执行点。在 New Page 新建了一个页面之后,发现它创建了一个 php 文件:

把 kali 自带的反弹 shell php 内容复制过去:

本机开启 888 端口监听,然后访问该文件:

成功执行反弹 shell :

0x03 提权

查看 /etc/passwd:

存在好几个有 bash 环境的用户,而我们拿到的用户权限很低。

之前接触过的 suid,crontab 都试过之后没找到可以利用的信息,用 msf 又感觉没必要,接下来就无从下手了。

看了 wp 之后学到个思路。既然有这么多有 bash 环境的用户,那么会不会存在管理员,其文件夹下存放了其他用户或者 root 用户的密码?

在 /home 目录搜索一下包含 ‘pass’ 字符串的文件有哪些,命令如下:

grep -R -i pass /home/* 2>/dev/null
# grep: 是一个用于在文件中搜索指定模式的命令。
# -R: 表示递归搜索,将在指定目录及其子目录下搜索文件。
# -i: 表示忽略大小写,在搜索时不区分大小写。
# pass: 是要搜索的字符串模式。
# /home/*: 搜索的目录路径,/home/表示在/home/目录下搜索,*表示搜索所有子目录和文件。
# 2>/dev/null: 将标准错误输出重定向到/dev/null设备

最终发现一个文件内包含 ‘Root password’字符:

查看这个文件:

切换 root 用户,试试这个密码。

提权成功:

0x04 Conclusion

这个靶场挺简单的,可能是因为太老了,09年的靶机了。给我的启发就是以后要善于用 findgrep等搜索命令。