☆ rlogin -l -froot漏洞 历史上rlogin服务存在过两种风格的实现。最早rlogind等待入连接请求,分配伪终 端,然后直接调用login,由login进程处理rlogin协议。后来的rlogind等待入连接 请求,分配伪终端,处理rlogin协议;如果rlogin协议认证通过,rlogind调用 exec*()执行"login -f server_user ....";如果rlogin协议认证未通过,rlogind 调用exec*()执行"login server_user ..."。 以新风格的rlogind实现为例,假设请求报文中server_user等于"-froot",rlogin协 议认证无法通过,最终执行"login -froot ..."。 某些OS上的login实现支持-f参数: -f user Identifies a user who has already been authenticated. -f Used to skip a second login authentication. 以第一种"-f user"为例,此时"login -froot ..."将被解释成"login -f root ..."。 总结一下这个漏洞的两个前提条件: a. 新风格的的rlogind实现 b. login支持"-f user"参数 以前一直没有深究过该漏洞,总觉得是个玩笑,想不到还真是有根有据的。可以这样 利用: rlogin -l -froot 某些版本的AIX存在本节描述的漏洞([2]): 3.2.5 3.2.4 3.2 3.1