vulnhub渗透测试之node

这次我要进入vulnhub中著名的node靶机试试了。

先提一下,靶机下载地址为

https://www.vulnhub.com/entry/node-1,252/

靶场设置是将攻击机kali与靶机均放在vmware下的NAT网段10.1.1.0/24。

kali的ip为

10.1.1.128

从vulnhub下载并且用vmware打开node后,还是看看是否已经给出ip地址,如果没有,就在我的kali攻击机执行买了arp-scan -l 扫描,看能否扫描出相应的ip。如果不能,通过所谓拯救模式进行操作,找出ip地址。

可见靶机IP为 10.1.1.139

检测该靶机的端口信息

nmap -A -p- 10.1.1.139

开放的端口是22和3000.。3000有关web服务hadoop-datanode Apache Hadoop,用于可靠,可扩展的分布式计算的开源项目,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。

该端口有很大尝试的必要。我们可以直接上网站10.1.1.139:3000访问

 

点击右上角LOGIN,发现一个login界面

首先想到的,是用弱密码和万能密码都试试。试了半天,没有效果。

右键查看源代码,该web界面使用node.js编写,我们将精力放在测试可能获取敏感信息的node.js 上。

 

 一个个的去试着打开,看看有什么东西。渗透测试最不缺的应该就是耐心,仔细一些,都去试试,天道酬勤,可能就会有所收获!

打开assets/js/app/controllers/home.js这个js文件,发现源码中有一个get请求

 

 访问 http://10.1.1.139:3000/api/users/latest

这些可能就是3个用户名和密码

[{"_id":"59a7368398aa325cc03ee51d","username":"tom","password":"f0e2e750791171b0391b682ec35835bd6a5c3f7c8d1d0191451ec77b4d75f240","is_admin":false},{"_id":"59a7368e98aa325cc03ee51e","username":"mark","password":"de5a1adf4fedcce1533915edc60177547f1057b61b7119fd130e1f7428705f73","is_admin":false},{"_id":"59aa9781cced6f1d1490fce9","username":"rastating","password":"5065db2df0d4ee53562c650c29bacf55b97e231e3fe88570abc9edd8b78ac2f0","is_admin":false}]

这些用户都标明不是管理员"is_admin":"false"。我们再访问

http://10.1.1.139:3000/api/users

其中就包括了管理员

{"_id":"59a7365b98aa325cc03ee51c","username":"myP14ceAdm1nAcc0uNT","password":"dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af","is_admin":true}

对每个密码用hash-identifier判断加密方式或者直接去解密网站

 

 最可能是为SHA-256,通过在线破解工具,可以得到下列密码

 

 也可以选择著名的MD5破解网站

 

 用管理员myP14ceAdm1nAcc0uNT和密码manchester登录

进入了管理员账户

按照网页提示,下载备份文件文件并且复制到kali工作目录

 

 猜测此文件类型

myplace.backup文件类型可能为base64编码,只有一行。

我们用base64编码解码

 发现是个加密文件,

需要先进行破解,可以使用fcrackzip进行破解。

我的kali没有fcrackzip,需要先下载安装,再执行解密

apt-get update
apt-get install fcrackzip

fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt myplace.zip

破解出文件解压密码为magicword

现在解压文件myplace.zip

 

 得到解压文件目录var,为网站源代码及相关文件

 

 

 

 发现有文件app.js。.实际上,app.js是项目入口及程序启动文件,里面存储着重要配置信息。查看本地js文件app.js,获取到了mongodb的配置信息。3000端口web服务hadoop-datanode Apache Hadoop即用于可靠,可扩展的分布式计算的开源项目,mongodb是基于分布式文件存储的数据库

登录ssh即靶机,用户及密码为

mark:5AYRft73VtFpc84k

 

 用户没有root权限,需要提权

 

 查看系统内核版本及相关信息

 

 使用searchsploit(漏洞查询工具) 查找是否可以提权

符合条件的Linux Kernel < 4.4.0-116 (Ubuntu 16.04.4) - Local Privilege Escalation   ,相应payload为

/usr/share/exploitdb/exploits/linux/local/44298.c

远程scp上传到目标靶机10.1.1.139

scp /usr/share/exploitdb/exploits/linux/local/44298.c mark@10.1.1.139:/tmp/

 

 到靶机看看,已经有了44298.c这个文件

 

 编译该c文件为payload:

gcc 44298.c -o payload

 

 执行该payload就能够提权

 

 我们在目录 /root发现root.txt,在 /home/tom发现user.txt,打开两个文件,发现都有flag:

 

posted on 2021-08-07 11:06  miraitowa666  阅读(462)  评论(0)    收藏  举报

导航