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登录验证一下
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114224190-1399704997.png) ### 3、验证root的密码
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114323229-1980475257.png)
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114512542-205662904.png) ### 4、生成新密码
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114556600-1614107809.png) ### 5、替换/etc/passwd
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114717818-1362452504.png) ### 6、尝试使用新密码1234 登录:
![](https://img2018.cnblogs.com/blog/1070321/201809/1070321-20180921114806793-443963213.png)

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

  1. 在本机eclipse中创建maven项目,查看linux中hadoop下的文件、在本机搭建hadoop环境

    注意 第一次建立maven项目时需要在联网情况下,因为他会自动下载一些东西,不然突然终止 需要手动删除断网前建立的文件 在eclipse里新建maven项目步骤 直接新建maven项目出了错      ...

  2. [转帖]linux /proc目录下的文件为何无法用vi编辑保存

    linux /proc目录下的文件为何无法用vi编辑保存 https://blog.51cto.com/xlogin/1216914 学习一下 之前看过书 这一点 没太仔细看.. xlogin关注8人 ...

  3. Linux系统根目录下各文件夹介绍

    参考自:[1]Linux 系统根目录下各个文件夹的作用 https://www.cnblogs.com/jiangfeilong/p/10538795.html[2]了解Linux根目录"/ ...

  4. LINUX用户管理——/etc/passwd文件详解

      输入vi /etc/passwd 可以查看此文件的内容 .本机内容如下: [root@localhost ~]# vi /etc/passwdroot:x:0:0:root:/root:/bin/ ...

  5. linux或者windows下的文件拷贝

    #  上代码 #!/usr/bin/env python # -*- coding:utf-8 -*- import os import shutil import tarfile base_dir ...

  6. linux下利用C或C++ 语言调用需要root权限的函数

    1.setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序).也可直接将普通用户加入root组中,那么编译程序不用来回切换用户.(2)登录root ...

  7. Ubuntu下获取Nexus7的Root权限

    一.准备 下载获取Root权限的工具包. 下载地址: http://downloadandroidrom.com/file/Nexus7/rooting/Nexus7Root.zip 二.解锁 Ubu ...

  8. linux 查找目录下的文件内容并替换(批量)

    2.sed和grep配合 命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./` 作用:将当前目录(包括子目录)中 ...

  9. linux /boot目录下的文件分析

    一. Linux 启动流程 首先说一下Linux系统大概的启动过程: 1. 主机加电后, 系统首先加载BIOS, 这个BIOS是以写在主板上的. 2. BIOS启动后,执行一些例如开机自检,硬件初始化 ...

随机推荐

  1. [转]十个 iOS 面试问题

    原文地址:http://onevcat.com/2013/04/ios-interview/ 不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘 ...

  2. getIsDebuggable

    /* * if set  android:debuggable="true" in  Manifest, return true. * if set android:debugga ...

  3. spring测试junit事务管理及spring面向接口注入和实现类单独注入(无实现接口),实现类实现接口而实现类单独注入否则会报错。

    1.根据日志分析,spring junit默认是自动回滚,不对数据库做任何的操作. 18:16:57.648 [main] DEBUG o.s.j.d.DataSourceTransactionMan ...

  4. MLE、MAP、贝叶斯三种估计框架

    三个不同的估计框架. MLE最大似然估计:根据训练数据,选取最优模型,预测.观测值D,training data:先验为P(θ). MAP最大后验估计:后验概率. Bayesian贝叶斯估计:综合模型 ...

  5. multiselect2side:jQuery多选列表框插件

    http://blog.csdn.net/rosanu_blog/article/details/8550723 http://www.bkjia.com/jQuery/449193.html < ...

  6. Ubuntu16.04下安装CUDA8.0和tensorflow

    GPU版的Tensorflow无疑是深度学习的一大神器,当然caffe之类的框架也可以用GPU来加速训练. 注意:以下安装默认为python2.7 1. 安装依赖包 $ sudo apt-get in ...

  7. matplotlib使用GridSpec调整子图位置大小 (非对称的子图)

    用matplotlib.pyplot的subplots命令可以很方便的画对称的子图,但是如果要画非对称的子图(如下)就需要用GridSpec命令来控制子图的位置和大小: 而上图的结构可以用一下两种方式 ...

  8. LINQ to Entities does not recognize the method 'Int32 ToInt32(System.String)' method, and this method cannot be translated into a store expression

    if (!string.IsNullOrEmpty(FarmWorkId)) { data = data.Where(p => p.TypeId == Convert.ToInt32(FarmW ...

  9. iOS使用NSURLConnection发送同步和异步HTTP Request

    1. 同步发送 - (NSString *)sendRequestSync { // 初始化请求, 这里是变长的, 方便扩展 NSMutableURLRequest *request = [[NSMu ...

  10. NetBpm 配置篇(2)

    转载注明出处:http://www.cnblogs.com/anbylau2130/p/3877353.html 上一篇中介绍了Netbpm在IIS和CassiniWebServer服务器的安装 通过 ...