边界设备注入提权

admin 2025年3月5日21:11:50评论14 views字数 2866阅读9分33秒阅读模式

提权缘由

当我们拿到设备的时候实际的上防火墙提供的shell是cli,权限过低,无法去做调试和测试,所以需要在实体设备上进行提权拿到sh。并且直接使用busybox官网提供的busybox会显示内核版本过低,所以需要手动编译。

思路

由于设备的内核版本是2.6.0版本过于老旧,目前成功的思路是通过docker拉起centos5编译busybox和shell文件达到注入

拉取docker

替换镜像(因为contos5官方源已经无了)

docker pull daocloud.io/centos:centos5

运行docker

docker run -it --name centos5 daocloud.io/centos:centos5 /bin/bash

docker换源因为官方源已经废(无)了(

# 删除现有的repo文件rm -f /etc/yum.repos.d/*.repo# 使用阿里云的CentOS 5.11存档仓库cat <<EOF > /etc/yum.repos.d/CentOS-Base.repo[base]name=CentOS-5.11 - Basebaseurl=http://mirrors.aliyun.com/centos-vault/5.11/os/x86_64/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-5[updates]name=CentOS-5.11 - Updatesbaseurl=http://mirrors.aliyun.com/centos-vault/5.11/updates/x86_64/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-5[extras]name=CentOS-5.11 - Extrasbaseurl=http://mirrors.aliyun.com/centos-vault/5.11/extras/x86_64/gpgcheck=1gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-5[centosplus]name=CentOS-5.11 - Plusbaseurl=http://mirrors.aliyun.com/centos-vault/5.11/centosplus/x86_64/gpgcheck=1enabled=0gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-5EOF# 导入GPG密钥rpm --import http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-5

安装开发工具和gcc和make

# 更新yum缓存yum clean all# 更新系统yum update -y# 安装开发工具组yum groupinstall "Development Tools" -y# 确保安装gccyum install -y gccyum install -y make

安装缺失的解压工具

yum install -y bzip2

制作busybox和shell

busybox实际是linux下的指令库,基本拥有linux常见的所有指令。

busybox制作

下载busybox源码

wget https://busybox.net/downloads/busybox-1.1.2.tar.bz2tar xjf busybox-1.1.2.tar.bz2

安装库

yum install -y ncurses ncurses-develyum install -y glibc-devel.i386 libgcc.i386

这里我们要把busybox编译成静态的,根据设备情况确定需要编译的架构。

设置为静态链接

  • 在菜单中选择 Busybox Settings -> Build Options -> Build BusyBox as a static binary (no shared libs).
  • 将其设置为 [*](选中状态)。

启用 32 位编译支持

  • 确保使用 -m32 编译选项来生成 32 位可执行文件。退出菜单配置后,请手动编辑生成的 .config 文件,添加 -m32 到 EXTRA_CFLAGS
echo"EXTRA_CFLAGS=-m32" >> .config
make cleanmake ARCH=i386 CROSS_COMPILE="" -j4

shell制作

shell源码如下

#include<stdio.h>voidshell(){  system("/bin/busybox ls"00);  system("/bin/busybox id"00);  system("/bin/busybox telnetd -l /bin/sh -b 0.0.0.0 ""-p 9090",00);  system("/bin/busybox ash"00);  system("/bin/busybox sh"00);return;}intmain(int argc, charconst *argv[]){  shell();return0;}

执行以下命令进行编译,shell也需要编译成静态的

gcc -m32 -static shell.c -o cli

执行以下命令copy到宿主机

docker cp centos5:/busybox-1.1.2/busybox ./busyboxdocker cp centos5:/cli ./cli

利用busybox和shell

1.准备gdbserver

gdbserver就自己编译一个或者网上去下载一个就行

https://github.com/hugsy/gdb-static

2.进行上传登陆

通过设备的cf卡上传shell,cli替换usr/bin/cli下的shell文件。

busybox上传到/bin。这里替换和上传一定要通过命令行传,并且修改权限。

3.链接

执行以下命令进行链接

ln -s busybox shln -s busybox ashln -s busybox bash

4.登陆

这样修改只能通过consle串口登录

波特率是115200

边界设备注入提权

设备提权

目前是只拿到了设备的用户权限,还没有root。

其实到这一步了root很简单,通过修改busybox权限即可,命令如下

chmod 4755 busybox #这里修改busybox以root权限运行
busybox su #输入密码即可

文末:

欢迎师傅们加入我们:

星盟安全团队纳新群1:222328705

星盟安全团队纳新群2:346014666

有兴趣的师傅欢迎一起来讨论!

PS:团队纳新简历投递邮箱:

[email protected]

责任编辑:@Elite

边界设备注入提权
边界设备注入提权

原文始发于微信公众号(星盟安全):边界设备注入提权

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月5日21:11:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   边界设备注入提权https://cn-sec.com/archives/3795100.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息