vulnhub靶场之momentum-2

前言

靶机采用virtual box虚拟机,桥接网卡

攻击采用VMware虚拟机,桥接网卡

靶机:momentum-2 192.168.1.40

攻击:kali 192.168.1.16

主机发现

使用arp-scan -l扫描

信息收集

使用namp扫描

这里的命令对目标进行vulner中的漏洞数据库进行对比,有的话,会给出漏洞编号及链接,和危害等级

shell 复制代码
nmap -sV 192.168.1.40 -O --script=vulners --script-args mincvss=5.0

不过这里只进行简单的扫描即可

网站探测

访问网站

momentum-1差不多,都是图片,不过这里页面源代码中并没有调用js函数等,不过图片放在/img目录,至少确定是目录型网站。

尝试指纹识别

网站目录扫描

使用dirsearch、gobuster、ffuf、dirb、dirbuster都可以

看到几个目录,尝试访问查看,首先访问js,可以看到是一个文件上传的js函数,并且调用ajax.php文件,采用post

访问ajax.php文件,全是后端php语言

访问css,是网站的样式,无其他内容

访问dashboard.html页面,有文件上传页面,并且查看页面源代码后,发现与之前js中的获取file的id对应上了,并且点击提交,调用了js的函数。并且上传后的文件也给出提示,在owls

OK,到这里网站的信息基本上了解了,下面就是进行总结一下,首先在80端口网站中,有js目录,其中有一个函数,该函数与dashboard.html联合在一起,并且涉及到ajax.php文件以及POST提交方式。

文件上传--->JS函数---->ajax.php

漏洞寻找

上传php中的反弹shell脚本文件进行测试,直接上传发现不行

这里建议了解一下XMLHttpRequest,参考链接https://blog.csdn.net/abraham_ly/article/details/113526496

js 复制代码
function uploadFile() {
    var files = document.getElementById("file").files;
    if(files.length > 0 ){
       var formData = new FormData();
       formData.append("file", files[0]);
       var xhttp = new XMLHttpRequest();
       // Set POST method and ajax file path
       xhttp.open("POST", "ajax.php", true);
       // call on request changes state
       xhttp.onreadystatechange = function() {
          if (this.readyState == 4 && this.status == 200) {
 
            var response = this.responseText;
            if(response == 1){
               alert("Upload successfully.");
            }else{
               alert("File not uploaded.");
            }
          }
       };
       // Send request with data
       xhttp.send(formData);
    }else{
       alert("Please select a file");
    }
 }

根据上面上传后的提示,以及代码来看,主要是在response==1这个条件出错

测试上传图片,还是出错

使用burp抓包分析,对请求修改也没有效果,返回都是0,无法进入上传成功,怀疑可能是网站目录没有扫全,再检测一遍,这次多加后缀名测试,结果还真出来一些东西,不能太依赖dirsearch的默认扫描,毕竟有的后缀名还是挺重要的。

使用gobustrt扫描,-x表示扩展名,-d表示对备份进行检测,也就是自己加上常见的扩展备份名,-b过滤包含状态码400-404的结果

这里对于dirsearch不太清楚了,加上备份文件的格式,也无法扫描出来

或者使用ffuf也是能够扫描出来的

漏洞利用

这里知道有备份,下载备份文件审计代码

直接测试,先直接上传txt文件看看,是否有该逻辑性.上传成功,说明正确

上传php反弹sehll的脚本。使用burp抓包进行修改,然后注意,在代码审计时,有一个注释说,在cookie的末尾添加一个大写字母,所以,这就需要构造好准备的数据,然后进行爆破

把该数据包发送到intruder模块,先在末尾加入一个A,用于知道爆破位置

构造payload然后攻击测试

得出Cookie的最后一位为R

反弹shell

此时在kali中开启监听,这里我在php脚本设置的是1234端口

在浏览器访问

点击脚本文件后,kali获取反弹shell

登录成功,查看/home目录,获取到一个密码,不知道是否可用

ssh登录

测试该内容myvulnerableapp[Asterisk]是否是ssh的密码,测试发现并不是,寻找其他可用

找了一圈,没有可用,就网上查了一下,说[Asterisk]*,我真服了,这在英语词典中确实有*的含义

所以上面文本应该是myvulnerableapp*,再次登录测试,登录成功

因为之前不知道密码的时候,我把其他方法都看了一下,这里直接find寻找具有SUID的文件

提权

然后使用sudo -l列出

首先查看该py文件,发现无写权限,查看导入的包有哪些

导入三个包,查看这三个包的权限

看了都无写权限,我就再看看代码。

首先用户输入seed,然后生成cookie,然后就是执行写入内容到log.txt,传参是输入的seed,然后子进程打开这个cmd。运行py脚本,然后输入可执行命令

这里通过nc执行/bin/bash然后给kali,但是这里不行,没有提权成功

查看发现,其他人也有执行的权限,所以不能直接变为root

但是吧,突然想到,我是用sudo获取该文件的,怎么就没有使用sudo执行呢。

啧啧啧啧啧啧啧啧啧啧啧

重新使用sudo执行

提权成功

清除痕迹

总结

  1. 代码审计,知道满足哪些条件才能执行
  2. 对于网站目录,可以多测几遍,不要错过关键信息
  3. 多了解点英语单词吧
  4. python代码要有一定基础
  5. nc命令的一些参数了解
相关推荐
Cici_ovo14 分钟前
wlan和vlan
网络·智能路由器
hunter20620614 分钟前
用opencv生成视频流,然后用rtsp进行拉流显示
人工智能·python·opencv
飞的肖1 小时前
日志(elk stack)基础语法学习,零基础学习
学习·elk
Johaden2 小时前
EXCEL+Python搞定数据处理(第一部分:Python入门-第2章:开发环境)
开发语言·vscode·python·conda·excel
小虎牙^O^3 小时前
2024春秋杯密码题第一、二天WP
python·密码学
dal118网工任子仪3 小时前
66,【6】buuctf web [HarekazeCTF2019]Avatar Uploader 1
笔记·学习
02苏_3 小时前
2025/1/21 学习Vue的第四天
学习
羊小猪~~4 小时前
MYSQL学习笔记(四):多表关系、多表查询(交叉连接、内连接、外连接、自连接)、七种JSONS、集合
数据库·笔记·后端·sql·学习·mysql·考研
约定Da于配置4 小时前
uniapp封装websocket
前端·javascript·vue.js·websocket·网络协议·学习·uni-app
梦魇梦狸º4 小时前
mac 配置 python 环境变量
chrome·python·macos