打靶日记——prime1

2025-04-11 7 0

前期信息搜集

先发现目标主机

打靶日记——prime1插图

对目标主机进行初步的端口扫描,只有两个端口,ssh肯定是放到后面再说的,先试试80端口看看有什么

打靶日记——prime1插图1

渗透阶段

打开后发现是一张图片没有任何有用的信息于是决定对该网址进行目录爆破

打靶日记——prime1插图2

还是扫出来不少好东西的,既有隐藏的目录信息还知道了靶机上部署的有wordpress

打靶日记——prime1插图3

我们一个个看,先是 /dev目录(一个linux上比较重要的目录)发现里面是一句类似于提示的话,翻译过来大概是让我们继续挖掘网站的信息

打靶日记——prime1插图4

想到对方可能放的有文本提示或者是网站备份文件等东西,于是进一步进行文件扫描(这里用的是dirb因为dirb对文件比较敏感),虽然只找到了一个但是一看就很有用

打靶日记——prime1插图5

访问找到的文件,发现是让我们去做一下php页面的Fuzz(模糊测试)而且还给了一个工具和目标文件

打靶日记——prime1插图6

于是我们先明确当前目录下有哪些php文件,发现只有两个

打靶日记——prime1插图7

于是去访问了一下github页面发现不是工具而是工具的命令

打靶日记——prime1插图8

于是尝试在kali下进行扫描,但是image.php扫到的参数都是一个返回结果显然没用

打靶日记——prime1插图9

对index.php进行Fuzz,找到了一个参数的回显不同似乎可以用(这里可以一个个看,也可以直接用wfuzz自带的过滤器去过滤)

打靶日记——prime1插图10

尝试用该参数带着location.txt访问index.php,发现似乎是把location.txt给包含出来了,他让我们试着用secrettier360这个参数试试看

打靶日记——prime1插图11

这里尝试用file进行文件包含但是失败了打靶日记——prime1插图12

于是用他给的参数带上并带上location.txt这个值但是什么都没有

打靶日记——prime1插图13

由于在刚刚的页面有类似文件包含的漏洞合理猜测这个参数可能才是用来文件包含的具体参数,于是对其他php页面尝试用这个参数进行文件包含,发现在image.php页面有反应

打靶日记——prime1插图14

于是进行文件包含的测试,发现可以进行文件包含

打靶日记——prime1插图15

在包含出来的测试文件(/etc/passwd)里发现了线索于是对目标文件进行文件包含

打靶日记——prime1插图16

得到一个密码,想到刚刚找到了wordpress的cms所以准备用这个密码去登录后台页面

打靶日记——prime1插图17

但是用admin用户名去登录失败

打靶日记——prime1插图18

于是查看主页发现了已有用户,尝试用这个用户进行登录

打靶日记——prime1插图19

登录到后台页面

打靶日记——prime1插图20

wordpress的常用手法是上传插件和用主题页面写入phpshell,先看看主题编辑能不能写入shell,发现了一个可写的php文件

打靶日记——prime1插图21

写入kali自带的shell

打靶日记——prime1插图22

通搜索后得到了wordpress的默认主题存储路径

打靶日记——prime1插图23

然后通过观察页面可以得到文件名和文件路径

打靶日记——prime1插图24

在kali上开个监听端口后访问相应页面得到shell

打靶日记——prime1插图25

提权

依据靶机的描述我们需要拿到一个用户的flag和一个root的flag

打靶日记——prime1插图26

所以我们先去家目录看看有没有读取用户flag的权限,在/home/saket目录下发现用户flag

打靶日记——prime1插图27

接下来就是得到root权限,先试试常规的手法(SUID,内核,自动任务),进行find看是否能SUID提权

发现没有可用于SUID提权的文件

打靶日记——prime1插图28

接下来是内核提权,发现是一个很老的内核,可以尝试进行内核提权

打靶日记——prime1插图29

找到一个可以用的提权脚本

打靶日记——prime1插图30

下载到本地,根据描述直接编译后运行就行了

打靶日记——prime1插图31

所以直接传到靶机上编译运行,发现在 /tmp目录下我们的权限较高于是进入 /tmp目录进行提权

打靶日记——prime1插图32

发现nc用不了但是wget能用,于是决定在kali上开一个简易服务器用来传输文件

打靶日记——prime1插图33

因为靶机上有PHP环境于是我们也用PHP开一个服务器

打靶日记——prime1插图34

得到提权文件

打靶日记——prime1插图35

提权成功(编译最好在靶机上编译,靶机不能编译再在攻击机编译)

打靶日记——prime1插图36

得到flag

打靶日记——prime1插图37

提取2

(参考自 https://www.bilibili.com/video/BV1wD4y1C7Da?t=629.0红队笔记师傅的思路)

看了B站上红队笔记师傅对靶机的另一种处理方式(可能也是作者设想的解题方式)感觉用这种出来方式来处理这台靶机会更好的体现靶机考察信息收集的目的,首先在我们拿到靶机的初始权限后(www-data用户)在拿到用户flag的用户目录下可以看到还有一个enc文件而且可以执行就可以想到可能跟OpenSLL有关

打靶日记——prime1插图38

所以我们先执行一下这个文件看看效果,发现需要密码用前面得到的密码进行尝试,发现没有任何提示或在当前目录产生效果,合理推测密码不正确或者效果没看到

打靶日记——prime1插图39

于是接下来我们就可以从密码下手,由于密码常见文件名都有passwd,password,passlicense等我们无法确定具体是哪一个甚至可能作者在做密码文件时还会有其他命名,但是一般密码类文件都会带有“pass”这个字段

于是我们尝试进行 find看看能不能找到有用的信息

打靶日记——prime1插图40

进过筛选有用的大概就是图片里面的这几个,文件也不多那就一个个看

打靶日记——prime1插图41

做到这里才想起来没看 /etc/shadow 果然没权限,还是老老实实看文件算了

打靶日记——prime1插图42

得到密码,而且看路径作者应该是想让我们通过找备份文件找到这里

打靶日记——prime1插图43

文件执行成功,但是发现权限不够要root权限

打靶日记——prime1插图44

查看当前用户能不能用sudo去执行文件,发现可以,于是sudo去执行

打靶日记——prime1插图45

发现在当前目录下创建了两个文件

打靶日记——prime1插图46

发现一个是类似base64的加密文件另一个是关于key的提示,那第一个文件大概率就不是base64的加密了

打靶日记——prime1插图47

于是先把秘钥搞出来,依据提示对 ippsec 进行MD5加密

打靶日记——prime1插图48

虽然得到了秘钥但是我们对密文的加密方式并不清楚所以,可以进行爆破尝试是哪一种加密方式(太多了手工比较麻烦)

打靶日记——prime1插图49

给出脚本(shell脚本不会写直接用python代替一下)

import os # 先对可能的方法进行处理 method = ''' aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc aes-256-ecb aria-128-cbc aria-128-cfb aria-128-cfb1 aria-128-cfb8 aria-128-ctr aria-128-ecb aria-128-ofb aria-192-cbc aria-192-cfb aria-192-cfb1 aria-192-cfb8 aria-192-ctr aria-192-ecb aria-192-ofb aria-256-cbc aria-256-cfb aria-256-cfb1 aria-256-cfb8 aria-256-ctr aria-256-ecb aria-256-ofb base64 bf bf-cbc bf-cfb bf-ecb bf-ofb camellia-128-cbc camellia-128-ecb camellia-192-cbc camellia-192-ecb camellia-256-cbc camellia-256-ecb cast cast-cbc cast5-cbc cast5-cfb cast5-ecb cast5-ofb des des-cbc des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb des-ofb des3 desx rc2 rc2-40-cbc rc2-64-cbc rc3-cbc rc2-cfb rc2-ecb rc2-ofb rc4 rc4-40 seed seed-cbc seed-cfb seed-ecb seed-ofb sm4-cbc sm4-cfb sm4-ctr sm4-ecb sm4-ofb zlib zstd ''' #去重 method_list = list(set(method.replace('\n',' ').split(' ')))[1::] text = 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj'\
'8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' f = open('./a','w') f.write(text) f.close() # ippsec的md5值 p2 = '366a74cb3c959de17d61db30591c39d1' # 生成16进制的key payload = [] for i in p2: payload.append(hex(ord(i))[2::]) fin_paylaod = ''.join(payload) for i in method_list: m = '-'+i print('\n\n\n') os.system(f'openssl enc -d {m} -a -K {fin_paylaod} -in a') print('\n\n')

得到解密结果,给了一个密码

打靶日记——prime1插图50

想到靶机开的有ssh端口而且在 /home 目录里面还有一个用户到现在也没用使用,于是想着用 ssh 登录相关账户,结果不行

打靶日记——prime1插图51

仔细阅读得到的东西发现是 victor写给 saket的,所以说这个密码应该是 saket的,尝试用 saket登录 ssh

成功登录

打靶日记——prime1插图52

登录后先查看 saket是否有 root权限,发现只有一个文件可以 sudo以 root权限执行

打靶日记——prime1插图53

尝试执行,结果是一句垃圾话和一个文件没有找到的提示

打靶日记——prime1插图54

于是去 /tmp 目录下面创建一个相应文件,再次执行文件结果显示 /tmp/challenge 权限确认,猜测可能是用root权限去运行 /tmp/challenge 文件,向文件写入一个 shell 再执行试试(记得给文件加上执行权限)

打靶日记——prime1插图55

打靶日记——prime1插图56

得到 root权限与 rootflag

打靶日记——prime1插图57

PS

这个靶机适合当信息收集和fuzz的靶机,深刻体会到信息搜集才是渗透测试的精髓


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

不是哥们,北大被”RCE”了?
WAF开发之防护HTTP洪水攻击
Fenjing 作者的 Jinja SSTI 完全进阶教程
“剪贴板劫持”攻击:黑客利用虚假验证码通过入侵网站窃取数据
护网还没开始,电脑先中毒了,那就实战
【THM】offensive-Steel Mountain

发布评论