XSS 攻防实践
XSS 跨站脚本攻击实战:攻击原理、防御方法与安全编码最佳实践
提权*,或 *特权升级 是指攻击者在系统中寻找访问敏感信息或者受限功能的访问权限的行为。一般指利用安全缺陷绕过限定的访问限制,拿到更高的访问权限。
在 Linux 上,有几种方法可以做到用户提权,包括利用配置缺陷,利用程序漏洞,和失效的访问控制。
弱口令是一个不安全配置的例子。攻击者通常会尝试至少下面这几个密码:
password 123456 123456789 admin administrator root toor
攻击者通常会利用自动化脚本,尝试下列口令库:
为了杜绝弱密码,建议使用密码管理器来管理密码。在 Linux 系统上,使用 PAM(Pluggable Authentication Modules) 来设置密码强度。另外,也可以使用 fail2ban 来自动频闭登录错误次数太多的IP地址。
一个使用 /etc/security/passwdqc.conf 管理密码强度的例子如下:
min=disabled,24,11,8,7 max=72 passphrase=3 match=4 similar=deny random=47 enforce=everyone retry=3
访问控制配置的原则是最小权限原则:赋予用户能满足工作要求的最小权限。例如,一个用户要运行一个web服务器,就不应该赋予管理员权限。
当一个 redis 权限拿到,攻击者就可以获得写文件的权限,然后获得 webshell。
config set dir /var/www/html/ config set dbfilename shell.php set xxx "<?php eval($_POST[whoami]);?>" save
权限配置是繁复的工作,系统管理员需要经常检查。
攻击者可以利用服务器上程序的漏洞来提权。例如, 2019 年 vsftpd 2.3.4 CVE-2011-2523 的漏洞,允许攻击者利用软件的后门控制 FTP 服务器。更新软件程序、渗透测试可以一定程度避免这样的缺陷。恰当的权限设置可以限制漏洞的影响范围。
Linux 上,一个程序可以被设定以其它账号运行 (SUID),或者以其它组运行
(SGID)。例如,passwd 需要需要修改 /etc/shadow 文件,但这个文件只有
root 用户可写,正常情况下普通用户调用 passwd 会失败,因此这个程序被赋予了 SUID 权限,让它可以修改 /etc/shadow 。类似需要权限转移的程序还有许多。
攻击者可以利用此类程序来提权。
GTFOBins 列举了利用着用权限来攻击的方法,这里列举一例:
TF=$(mktemp) echo 'os.execute("/bin/sh")' > $TF nmap --script=$TF
最后, cron 程序也可能被利用来提权,这通常是不合理的权限配置造成的。例如,一个脚本被赋予其它用户写权限:
ls -la /opt/backup.sh -rw-rw-rw- 1 root root 0 Jan 17 15:07 backup.sh
然后 cron 配置以root权限运行它:
crontab -l * * * * * /opt/backup.sh
这样攻击者就可以修改 /opt/bashup.sh 来获得特权。
定期更新系统和软件是防范漏洞的主要方法。一旦程序的漏洞被发现,通常很快会发布更新,只要跟随版本升级,就可以避免漏洞引起的安全问题。
日志和监控记录用户行为,网络连接和系统错误。这样就可以识别出异常的行为,检测是否存在提权。
赋予用户所需的最小权限,防止它们访问不应被访问的文件或程序,也是防止提权的重要方法。
By Liao Tonglang.
把当前热点继续串成多页阅读,而不是停在单篇消费。
XSS 跨站脚本攻击实战:攻击原理、防御方法与安全编码最佳实践
你的容器能调用 reboot()。是的,现在就能。除非有人拦住它。Capabilities 拆分 root 权限,Seccomp-BPF 过滤系统调用——两道防线,缺一不可。本文用 C 代码拆解这两套机制,看看 Docker 到底替你挡住了什么。
如何在 Libevent 中实现双向 TLS 认证 (mTLS)。从证书生成、SSL_CTX 配置到 bufferevent 集成,构建零信任网络基础。
Seccomp 只能说 yes or no,但攻击者早就学会了在 yes 里面做文章。是时候让 eBPF 接管安全审计了。