信息收集

arp-scan 用来发现系统和指纹识别的命令行工具。

从结果中可以看到node的ip是"192.168.92.129"

使用nmap对端口进行探测,如下图所示:

可知开放的端口有2个,分别是:22和3000,其中3000是个web服务;

详细banner信息,如下图所示:

访问3000端口,有如下界面:

该web界面使用node.js编写,通过审计js源码,在“assets/js/app/controllers/home.js”这个文件中可以获取到存储敏感信息的位置/api/users/latest/ ,如下图所示:

访问该位置,获取到用户名和密码,如下图所示:

使用hash-identifier判断加密方式,为SHA-256,如下图所示:

接下来,就是破解出这个密码,使用在线工具,获得密码如下:

使用任意一个口令登录,登陆后如下图所示,没有获取到任何有价值的信息:

这里面说Only admin users have access to the control panel currently, but check back soon to test the standard user functionality!只有管理员用户才能访问这个界面,猜想应该还有另外的管理员帐号,直接访问/api/users/ 获取到了另外一个用户(myP14ceAdm1nAcc0uNT),如下图所示:

解出该用户的密码(manchester)后,登录可以下载该网站的备份源码,如下图所示:

审计源码

下载源码后,发现不能直接打开,首先对其进行base64解码,如下图所示:

发现是个加密文件,需要先进行破解,可以使用kali自带工具fcrackzip进行破解,该工具支持暴力破解和字典猜解两种方式,如下图所示:

fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip
参数 描述
-D 指定方式为字典猜解
-p 指定猜解字典的路径
-u 表示只显示破解出来的密码,其他错误的密码不显示出

通过字典猜解出密码为magicword:

解压出源代码,如下图所示:

熟悉nodejs的同学了解app.js的作用,项目入口及程序启动文件,里面存储着重要配置信息,从该文件中,获取到mongodb的配置信息,如下图所示:

使用mark的用户信息,成功登录到ssh,如下图所示:

当前用户(mark)没有root权限,需要进行提权操作。

权限提升

确定当前系统的内核版本和系统版本,如下图所示:

命令 描述
lsb-release 查看发行的系统版本信息
arch 机器的体系架构

通过查看版本信息,使用searchsploit(漏洞查询工具) 查找,可以知道该内核版本存在漏洞可以直接提权,如下图所示:

使用scp命令(远程文件拷贝)将payload上传至靶机,如下图所示:

对上传的文件进行编译,如下图所示:

执行该文件,可成功提权,如下图所示;

最终将会获取到两个flag:

一个是在/root/root.txt ;

另一个是在/home/tom/user.txt;

参考链接

Vulnhub walkthrough

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖