| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> vulnhub The Planets: Mercury -> 正文阅读 |
|
[网络协议]vulnhub The Planets: Mercury |
渗透思路:nmap扫描 ---- 从404页面获取网站路径 ---- sql注入获取系统用户名和密码 ---- base64解码得到另一个系统用户密码 ---- sudo SETENV提权 环境信息:靶机:192.168.101.52 攻击机:192.168.101.34 具体步骤:1、nmap扫描
扫描到22端口ssh,以及8080端口,http-proxy,从扫描结果可以看到,状态码404和200的时候,响应报文的内容有显著不同。 2、404页面泄露网站路径访问http://192.168.101.52:8080,没什么收获,只是说网站还在搭建 访问一个不存在的页面,比如我这次误打误撞根据nikto的扫描结果访问了http://192.168.101.52:8080/SilverStream,触发了404页面,根据该页面的信息,只有三种链接是可以访问的:
第一个链接看过了,没啥营养,dirb扫描也没扫出什么鬼; 第二个如下所示,也没什么营养 访问http://192.168.101.52:8080/mercuryfacts/试试,终于看到点像样的东西了 点击Load a fact,来到http://192.168.101.52:8080/mercuryfacts/1/ 注意url,一开始我想到的是既然有1就可能有2,3,4……没准哪个文件中有敏感信息,然后发现果然1~8都有,不过很可惜,都是关于水星的知识,没啥有用的。 点击See list,来到http://192.168.101.52:8080/mercuryfacts/todo 这里面有两个重要信息:
3、sql注入获得系统用户名和密码浏览器地址栏尝试输入发现有sql报错信息,并且非常详细 从下图的sql语句可以知道3件事: 1、sql语句拼接用户输入参数,存在sql注入(虽然已经知道了)。 2、不需要闭合引号。 3、 http://192.168.101.52:8080/mercuryfacts/1/显示的查询结果只有一列。下面开始进行sql注入,目标是获得用户名和密码,没准可以用于ssh登录。 由于已经知道存在users表,因此首先浏览器输入如下payload获得users表的所有列名 ?从上图可知users表的列有id,password和username。 再在浏览器中输入如下payload得到users表中的所有username和对应的password 得到几对用户名密码: john:johnny1987 laura:lovemykids111 sam:lovemybeer111 webmaster:mercuryisthesizeof0.056Earths 进行ssh登录尝试,发现只有webmaster能登录
webmaster家目录下user_flag.txt中得到一个flag 4、base64解码得到linuxmaster用户密码进入/home/webmaster/mercury_proj目录,发现有个文件叫notes.txt 查看到其内容如下 看起来像是用户名和密码,除了当前用户webmaster的,还有linuxmaster的。 密码像是base64编码的,解码一下linuxmaster的密码:
得到linuxmaster的密码为mercurymeandiameteris4880km 尝试用linuxmaster用户进行ssh登录,登录成功 5、sudo SETENV提权linuxmaster用户shell下输入
并输入密码mercurymeandiameteris4880km,发现其sudo权限是
看一下/usr/bin/check_syslog.sh的内容 内容很简单,就是用tail命令看/var/log/syslog的尾部10行。 之前没见过sudoers中配置SETENV的。 网上查了一下,发现sudo运行时默认会启用env_reset选项将命令行设置的环境变量复原,而SETENV会允许用户禁用env_reset选项,允许sudo使用当前用户命令行中设置的环境变量(sudo+SETENV(环境变量)提权 - 隐念笎 - 博客园)。 这样一来,就可以自己写个提权的脚本,命名为tail,然后将其所在目录设置在$PATH的最前面,这样使用sudo命令执行/usr/bin/check_syslog.sh的时候,系统调用的tail命令实际上是我自己写的提权脚本。 提权脚本很简单,内容就是/bin/bash
然后给它可执行的权限
然后设置环境变量,把当前目录(linuxmaster的家目录,也是提权脚本tail所在目录)放在$PATH变量最前面
最后sudo执行/usr/bin/check_syslog.sh
立刻提权到root 获得root的flag 题外话:虽然网站目录扫描对这个靶机没啥意义,但是这次遇到了gobuster的一个之前没遇到过的功能,所以想记录一下。 简单来说,gobuster默认只不显示404的扫描结果,但这次显示了太多的301,其实是无意义的结果,可以用-b把无意义的状态码排除掉,就像下面这样:
|
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 5:48:49- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |