靶机下载
搭建好靶机环境之后,进行全端口扫描,该靶机开放了22和5000端口
然后进行对端口进行服务扫描,得到一个python环境下搭建的web框架,版本是Werkzeug httpd 0.14.1,Werkzeug是一个WSGI工具包,也可以作为一个Web框架的底层库
然后在浏览器中访问该地址端口,并没有什么可以利用的;然后对隐藏目录进行扫描,得到一个admin目录
然后访问admin目录,得到一个可以执行代码的文本框
简单测试普通代码可以执行代码
接着我们可以在网上找一段利用Python代码进行反弹shell,在kali攻击机上开启监听后成功反弹
虽然获得的是root权限,但是这是一个docker容器
然后对docker这个容器主机查看ip,发现ip为172.17.0.3,该网段可以看作内网网段,然后对改内网进行主机发现,利用脚本进行循环ping完该网段,发现只有172.17.0.1、172.17.0.2和172.17.0.3存活
脚本语句:for i in $(seq 20); do ping -1 172.17.0.$i; done
(这里ping20个)
所以这里需要设置隧道代理,这里用Venom工具,先在kali上面开启服务端
并在该目录下启动一个python的服务器
然后再利用靶机上获取venom的文件,用于连接kali上的venom的服务器端,连接成功
再开启一个socks5代理,可以进行数据传输和工具使用等
同时也需要在kali机上配置vi /etc/proxychains4.conf文件,配置好proxychains后就可以直接使用工具了
搭建好代理之后,对内网的这三个ip进行nmap扫描,得到如下信息,发现172.17.0.2上面开了Elasticsearch服务,通过百度之后发现这个版本的服务上面存在漏洞
然后再攻击机上搜索Elasticsearch有关的漏洞,发现有远程代码执行漏洞
利用远程代码执行exp得到root权限
并且发现了一个passwords文件,查看文件得到一些账号密码,并将其解码得到密码(john:1337hack;test:1234test;admin:1111pass;root:1234pass;jane:1234jane)
发现只有john的账号可以登陆,但是不能直接提升为root权限
可以从上面信息得到Linux的内核版本为3.13,可以查找是否有漏洞,经过searchexploit之后,发现有可以利用的exp,可以根据上面的方法进行下载,但是靶机上没有gcc编译环境,所以无法编译
这里通过查看代码,我们可以看到,定义了一个变量调用了system函数,通过函数执行了一条命令,而这条系统命令当中又再次调用了gcc生成一个动态链接库进行使用。了解到这一点后,我们就理清楚了,即使我们在本地进行编译后生成的二进制文件拿到宿主机上去运行,运行的时候它依旧会出错;
最方便的是直接在kali当中找到这个生成的二进制文件,然后直接修改源代码,让程序执行到这里的时候不再执行编译,直接调用二进制文件。
删除之后直接在本机使用gcc进行编译
要执行这个文件还需要一个已经编译生成好的二进制库文件,寻找文件名为ofs-lib.so的动态链接库,直接使用locate ofs-lib.so对文件进行定位
然后启动web服务将这两个文件上传到靶机上
然后将这两个文件移动到/tmp/文件下,因为所有的用户在该目录下都有执行的权限,执行exp之后得到root权限
总结:在admin的目录下得知了python环境和代码执行漏洞,于是执行了python的反弹shell,拿到了权限,但是这个权限为docker容器下的权限,于是对docker容器的内网进行扫描,得到了三个主机,从三个主机中的一个主机中有Elasticsearch有关的漏洞,通过搜索漏洞库并进行利用得到该主机的权限,并且从中得到一份passwords文件,记录了用户的账号密码,然后对开放了ssh服务进行远程登录,得到了john用户,发现该用户没有root权限,通过Linux版本较低的情况下,搜索该版本的漏洞进行提权,但靶机没有gcc编译环境,只有在攻击机上把编译好的二进制文件上传到靶机运行,于是需要删除一些代码,上传一个库文件进行编译,从而在/tmp目录下执行文件得到root权限。
Vulnhub-medium_socnet
最新推荐文章于 2024-07-12 14:26:12 发布