替换linux系统文件etc下passwd文件的字段获取真正的root权限

sudo与root


很多人都知道使用linux可以利用sudo来执行一些root权限执行的事情,但是sudo和root还是有很大的区别的。

  • 区别一:sudo可以执行的命令是root账户利用/etc/sudoers文件中的配置限制其他用户执行的,即便执行了sudo su -,也不是正在意义上的root账户;
  • 区别二:sudo执行命令的时候使用的环境变量仍然是其他用户自己的;
    所以,为了能够真正的获取到root权限,去做你想做的任何事情,需要拿到真正的root权限。

前提基础


1、获取root的权限,也并不是没有前提的,至少具备/etc/password和/etc/shadow的其中一个文件的修改权限,这个并非root本身才能执行,一般拿到了账号密码的普通账号都可以做到,对于非root的账号的sudo权限限制,并不是做的那么好。2、具备密码hash生成机,这个很简单,可以用c语言编写一个,编译后,随处可用。和密码爆破机的原理一模一样。

  • 源代码:
#include <stdio.h>
#include <crypt.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char *argv[]){
    //const char *userPassword = "1234";
    //const char *saltString = "$6$UaS4js6$";
    printf("%s\n",crypt((const char*)argv[1], (const char*)argv[2]));
    //printf("%s\n", hashString);
}

+  使用方法:

./crack 1234 $6$UaS4js6$


+  效果:
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921113107423-542887066.png)


##  覆盖密码:
***
###  1、配置ubuntu的root密码为toor1234

bobac@ubuntu:~$ sudo passwd root
[sudo] password for bobac:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
```

2、root登录验证一下

1070321-20180921114224190-1399704997.png

3、验证root的密码

1070321-20180921114323229-1980475257.png
1070321-20180921114512542-205662904.png

4、生成新密码

1070321-20180921114556600-1614107809.png

5、替换/etc/passwd

1070321-20180921114717818-1362452504.png

6、尝试使用新密码1234 登录:

1070321-20180921114806793-443963213.png

转载于:https://www.cnblogs.com/KevinGeorge/p/9685815.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值