信息安全 SEED Lab7 Race Condition Vulnerability Lab

本文详细介绍了如何利用竞态条件攻击在Linux系统中添加拥有root权限的用户,通过修改/etc/passwd文件。首先展示了如何禁用系统对可写目录符号链接的保护,然后通过示例代码解释攻击过程。在攻击过程中,通过不断尝试替换符号链接以篡改文件。同时,提出了防御措施,包括在文件操作时临时降低权限和启用系统粘滞符号链接保护。实验结果显示,防御措施能有效防止攻击,确保系统安全。
摘要由CSDN通过智能技术生成

整个实验主要是实施竞态攻击。先用下面的命令禁止使用全局可写目录的符号连接

// On Ubuntu 12.04, use the following:
$ sudo sysctl -w kernel.yama.protected_sticky_symlinks=0

// On Ubuntu 16.04, use the following:
$ sudo sysctl -w fs.protected_symlinks=0

有漏洞的示例代码如下:

/* vulp.c */
#include <stdio.h>
#include<unistd.h>

int main()
{
    char * fn = "/tmp/XYZ";
    char buffer[60];
    FILE *fp;

    /* get user input */
    scanf("%50s", buffer );

    if(!access(fn, W_OK)){
        fp = fopen(fn, "a+");
        fwrite("\n", sizeof(char), 1, fp);
        fwrite(buffer, sizeof(char), strlen(buffer), fp);
        fclose(fp);
    }
    else 
        printf("No permission \n");

    return 0;
}

编译并设为root  set-uid 程序

gcc -o vulp vulp.c
sudo chown root vulp
sudo chmod 4755 vulp

 

1. Task 1

由于后面要用竞态攻击来向系统添加新的拥有root权限的用户,这就涉及到到在/etc/passwd文件中新增内容,这个部分主要是确定添加的内容。

root用户对应的内容为,第一个字段为用户名,第二个字段为密码的哈希,如为x则表示密码在/etc/shadow文件中,其他就不细说了。

root:x:0:0:root:/root:/bin/bash

空密码的哈希值为 U6aMy0wojraho,所以要添加的一行如下,将其保存到passwd_input文件中

test:U6aMy0wojraho:0:0:test:/root:/bin/bash

同时将这一行添加到/etc/passwd文件的最后,尝试用test用户进行登录,可以发现可以无密码登录,且有root权限。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值