浅谈安全策略之Busybox,内附多个0DAY

释放双眼,带上耳机,听听看~!

1. 简介

BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如lscatecho等等,还包含了一些更大、更复杂的工具,例grepfindmount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了Android 系统的自带的shell。这个软件在嵌入式开发中比较常见,很多厂商包括华为、瑞星等部分设备都会使用。在如今物联网发展迅速的趋势下,越来越多受到人们的关注。但是由于一些厂商配置Busybox疏忽,并且结合一些Web漏洞,能够导致物联网设备、网络设备产生命令执行甚至代码执行的漏洞。已经公开一些案例比如Huawei HG532 系列路由器远程命令执行漏洞等等。

2. 安装

在聊聊BusyBox之前需要先安装所需的环境,俗话说磨刀不误砍柴工,搭建必要的环境乃是“砍柴”前的必备。

2.1.  环境准备

操作系统:ubuntu-18.04.1-desktop-amd64

虚拟机:VMware Workstation 15 Pro

安装文件:busyboxaptitudelibncurses5-devGCC

2.2.   环境搭建

第一步安装完成乌班图操作系统,如图1所示。

1 乌班图操作系统 

第二步使用apt install aptitude命令 安装完成aptitude组件,如图2所示。

2 aptitude组件 

第三步使用apt install libncurses5-dev命令 安装完成libncurses5-dev组件,如图3所示。

3 libncurses5-dev组件 

第四步使用apt install gcc 命令 安装完成GCC组件,如图4所示。

4 GCC组件 

第五步使用apt install busybox 命令 安装完成busybox组件,如图5所示。

5 busybox组件 

到此busybox的环境已经搭建完成,我们如何来使用这个环境?

3. 使用简介

在使用busybox 时我们只要在通常的LINUX命令前加入“busybox”这个命令。由于busybox 中集成相关的系统命令,只要busybox中存在的命令都能够执行,如图6所示。

6 busybox中执行命令 

我们可以通过busybox –list命令查看busybox中所支持的命令,如图7所示。

7 查看busybox支持命令

4. BusyBox工作原理

BusyBox 这个程序是非常复杂的,包含init、根文件系统等等。由于篇幅有限并且本次重点不是详解原理。所以可以简单概括为:BusyBox利用shell传递给C语言main()函数的参数,回想下C语言main()函数的定义:Int main(int atgc,char *argv[])

根据原理,只要改变这种传参方式就可能会产生安全隐患,安全隐患并不仅仅是限于传参方式,权限限制也有可能会导致安全隐患。下面对于此类理论进行举例说明。

5. 安全隐患

由于busybox中集成很多常用命令以及工具所以受到很多嵌入式开发的喜爱,并且常见于安卓设备、路由器、防火墙之中。既然busybox中的常用命令众多,我们就应该对于高风险、不常用的命令进行精简,并且加强LINUX权限的划分,杜绝Web方面的漏洞,提高设备的整体安全水平。

5.1.   ENV 命令安全问题(0day)

在使用root权限安装好busybox之后,来到linux用户权限下。目前的权限如图8所示。

8 admin987权限

busybox一般情况下是无法执行bash命令,如图9所示。

9 无法执行bash命令

但是在ENV命令中执行就可以执行bash命令,如图10所示。

10 env之中能够执行bash

env命令执行的语法为:

env [  -i | – ] [Name=Value ]… [Command [ Argument… ] ]

在最后的参数可以接受命令,从而能够导致命令执行的问题。

5.2.   basename命令安全隐患(0day)

Basename通常被用做查看不包含后缀的文件名,在一些条件下也能够导致命令执行问题。如图11所示。

11 basename命令执行

这个安全隐患存在一些不完美,无法执行某些回显多行数据的特殊命令,比如ifconfig

5.3.   wget命令安全隐患

如果用户权限限制不够完善,那么可以使用wget命令能够用来下载文件到web根目录下,可能导致GETShell问题。如图12所示。

12 下载文件

如果用户权限限制完善的情况下,依然能够将文件下载到tmp目录中,同样可能会带来安全隐患。

6. 安全策略

通过以上的案例能够看出busybox存在安全隐患,那么应该如何加固?

 

6.1.   权限限制

权限限制是linux安全防护策略中最常见的一种,可以有效限制访问的范围以及使用,能够大幅度提高系统的安全指数。不妨尝试将使用者权限限制到最低,但是需要注意不能影响正常使用。

6.2.   命令裁剪

下面是Busybox源码目录结构图,接下来说说各个目录的作用,方便对Busybox做裁剪的时候参考。

13 Busybox源码目录结构图

首先将coreutils目录中的命令进行删除,然后将configs配置文件中相关命令也一并删除,最后进行编译安装,用于一些不常用的命令裁剪。

 

 

声明:本文章来自团队成员vr_system投稿,仅供安全爱好者研究学习,对于用于非法途径的行为,作者不承担任何责任。

如果有想投稿的可以在公众号联系我,有技术含量的文章如果通过可获得稿费及加入我们的核心团队,成员大部分为各大公司安全负责人和安全行业专家,0day多多内部资料多多,欢迎来撩。

 

人已赞赏
安全工具

那些年我们遇到的开源扫描器

2019-10-11 17:04:31

安全工具

逐鹿安全沙龙-银行与APT

2019-10-11 17:04:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索