主机探测
ip为192.168.31.195
端口扫描
查看web页面,目录遍历
/how_to.txt
爆破密码登录Joomla后台
/joomla
Joomla是一套自由、开放源代码的内容管理系统,以PHP编写,通常被用来搭建商业网站、个人博客、信息管理系统、Web 服务等。
使用joomscan工具扫描,收集版本等信息
得知,版本信息为:Joomla 3.7.3rc1
[!Ps]
/administrator/manifests/files/joomla.xml
中可以看到版本信息
尝试了sql注入的测试,无果 https://www.exploit-db.com/exploits/42033
找到后台登录页面,尝试爆破密码登录后台
爆破账号密码通常需要从网站信息入手,用cewl
工具根据网页信息生成字典
cewl http://192.168.31.195/joomla -m 5 -d 1 -w joker.txt
cewl
:这是一个用于从网页上抓取内容生成自定义词汇表的工具。-m 5
:指定词汇表中单词的最小长度为 5 个字符。-d 1
:表示抓取的深度级别为 1,这通常意味着cewl
只会从指定的 URL 抓取内容,不会跟随外部网站的链接。
用户名我尝试了几个,admin
,joker
,Joker
,joomla
,Joomla
,Rob
,都是根据之前的信息猜测的
然后用脚本进行爆破,得到一组账号密码joomla/Gotham
成功登录到后台
RCE
登录之后,参考这个payload进行rce
|
|
[!attention] 在php文件中写入的那句代码要在最前面写,不然会进入
die
函数从而无法执行到payload反弹shell的命令需要经过url编码再传入
|
|
成功反弹shell
查看家目录,可以看到每个目录都需要对应用户才可以进入查看
提权
方法一:pwnkit提权
查询SUID文件的时候,发现存在这个文件,可以尝试用pwnkit进行提权
准备好工具
|
|
运气比较好,这个靶机可以下载文件,把PwnKit下载到靶机中然后赋予权限执行。成功提权
方法二
第一种提权方法显然是非预期hh
在靶机中收集信息时,发现了数据库的密码
/var/www/joomla2/configuration.php
登录rob账户
登录数据库之后,继续收集信息,发现了一些账户和密码
这里有个rob
,之前反弹shell之后,在家目录下也看到过这个用户,base64解密得其密码为:???AllIHaveAreNegativeThoughts???
ssh登录rob
拿下第一个flag
在rob
的家目录下有个hint
是凯撒密码,对其使用偏移量为1的加密,得到hint
直接解密hint末尾的看上去是base64的字符串,发现是不可见字符,但是加密之后的字符串,能够成功base64解密:
I33hope99my0death000makes44more8cents00than0my0life0
登录abner账户
用这个作为abner
的登录密码,成功ssh登录abner
拿下第二个flag
查看bash历史,发现有切换到penguin
用户,解压了一个zip文件
找到这个文件,查看其权限,当前用户abner
是可以读取这个zip文件的
解压需要密码,就是abner
的登录密码
登录penguin账户
末尾的字符串scf4W7q4B4caTMRhSFYmktMsn87F35UkmKttM5Bz
作为penguin
用户的登录密码,ssh登录penguin
账户
登录penguin账户之后发现hint
意思是对方正在编写软件,软件仅以 root 权限运行,完成后会将其复制到此文件夹。
反弹root shell
此处需要用pspy工具来监控进程
[!note]
pspy
是一个轻量级的Linux进程审计工具,用于监视系统上的进程活动和审计信息。它能够捕获和显示关键的进程活动,如进程创建、文件访问、网络连接等,从而帮助系统管理员或安全人员进行实时监控和分析。
把pspy传上到靶机,赋予权限,运行。发现root用户通过定时任务定时运行目录下的.trash_old
写入反弹shell的语句,注意需要将末尾的exit 0
注释掉
成功反弹shell,获取到root权限shell
查看root下的flag
总结
1、如果遇见爆破密码的地方,留意网站信息,针对性的制作字典来进行爆破(工具:cewl
)
2、登录cms后台之后,可以考虑寻找上传点来上传木马,或者寻找编辑文件的点,看能不能插入payload
3、预期提权方式有些绕,作者留下了很多hint,一环接一环的。最开始有用命令查看计划任务,但没有发现。后面发现其实还是有计划任务的,只是不是通过配置文件来设置的。
4、监控Linux进程的工具——pspy