<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.0.5" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Solaris 10 Telnet漏洞</title>
	<link>http://blog.zhaoke.com/82.html</link>
	<description>第二人生, Buzz世界, BuzzWorlds, 易思项目, Islab, Second Life, 新闻, 工具, 帮助, 中文注册, 虚拟世界平台等</description>
	<pubDate>Thu, 21 Aug 2008 17:18:34 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.5</generator>

	<item>
		<title>by: pczou</title>
		<link>http://blog.zhaoke.com/82.html#comment-989</link>
		<pubDate>Fri, 16 Feb 2007 02:17:40 +0000</pubDate>
		<guid>http://blog.zhaoke.com/82.html#comment-989</guid>
					<description>这个bug有些过于小儿科，叫SUN很没面子。看看SUN的人自己写的从发现bug到给出补丁的全过程，SUN的响应速度还是满快的：&lt;a href="http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit" target="_blank" rel="nofollow"&gt;http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>这个bug有些过于小儿科，叫SUN很没面子。看看SUN的人自己写的从发现bug到给出补丁的全过程，SUN的响应速度还是满快的：<a href="http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit" target="_blank" rel="nofollow">http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit</a>
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: zhaoke</title>
		<link>http://blog.zhaoke.com/82.html#comment-960</link>
		<pubDate>Thu, 15 Feb 2007 09:48:46 +0000</pubDate>
		<guid>http://blog.zhaoke.com/82.html#comment-960</guid>
					<description>To lcosu:

1399 case 'f':
1400 /*
1401 * Must be root to bypass authentication
1402 * otherwise we exit() as punishment for trying.
1403 */
1404 if (getuid() != 0 &#124;&#124; 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;

主要问题在安全设计上面, 1399至1412代码段: 如果root用户使用-f参数, 将无需任何密码验证. 而其它用户使用将直接被punishment(similar to rejected, 拒绝), 并返回错误值. in.telnetd程序使用的是tcp 23号端口, 我们知道进程使用1024以下的端口号需要root权限, 而且in.telnetd进程在调用/bin/login程序的时候并没有释放root权限, 所以当远程系统用户通过telnet程序登陆系统使用-f参数(无论是指定root或其它用户), 在代码段1404处, getuid()和geteuid()取得的有效UID和UID皆为0, 这样一来任何用户都将可以获得他们需要的用户身份.</description>
		<content:encoded><![CDATA[<p>To lcosu:</p>
<p>1399 case &#8216;f&#8217;:<br />
1400 /*<br />
1401 * Must be root to bypass authentication<br />
1402 * otherwise we exit() as punishment for trying.<br />
1403 */<br />
1404 if (getuid() != 0 || geteuid() != 0) {<br />
1405 audit_error = ADT_FAIL_VALUE_AUTH_BYPASS;<br />
1406<br />
1407 login_exit(1); /* sigh */<br />
1408 /*NOTREACHED*/<br />
1409 }<br />
1410 /* save fflag user name for future use */<br />
1411 SCPYL(user_name, optarg);<br />
1412 fflag = B_TRUE;</p>
<p>主要问题在安全设计上面, 1399至1412代码段: 如果root用户使用-f参数, 将无需任何密码验证. 而其它用户使用将直接被punishment(similar to rejected, 拒绝), 并返回错误值. in.telnetd程序使用的是tcp 23号端口, 我们知道进程使用1024以下的端口号需要root权限, 而且in.telnetd进程在调用/bin/login程序的时候并没有释放root权限, 所以当远程系统用户通过telnet程序登陆系统使用-f参数(无论是指定root或其它用户), 在代码段1404处, getuid()和geteuid()取得的有效UID和UID皆为0, 这样一来任何用户都将可以获得他们需要的用户身份.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: zhaoke</title>
		<link>http://blog.zhaoke.com/82.html#comment-954</link>
		<pubDate>Thu, 15 Feb 2007 09:03:12 +0000</pubDate>
		<guid>http://blog.zhaoke.com/82.html#comment-954</guid>
					<description>&lt;strong&gt;受影响的系统:&lt;/strong&gt;
如果你使用"Full Install(完整安装)方式"安装S10, S10u1或S10u2, 系统将自动运行in.telnetd服务程序. 不过最新的S10u3, 如果你选择了"secure by default(默认安全模式)"选项安装, 系统将启动sshd守护进程来替代telnetd.

注: S10u3首次提供"secure by default(默认安全模式)"选项.

&lt;strong&gt;临时解决办法:&lt;/strong&gt;
1. 防止root登陆
注释/etc/default/login文件的CONSOLE=行.
或:
# cp /bin/login /bin/login.new 
# perl -pi -e 
's/u:s:R:f:h:r:pad:t:U:z:/u:s:R:F:h:r:pad:t:U:z:/' 
/bin/login.new 
# mv /bin/login /bin/login.bad.save 
# mv /bin/login.new /bin/login

2. 防止其它用户登陆
在sun公司提供正式的补丁之前, 关闭telnet服务:
# svcadm disable svc:/network/telnet:default

更多有关该漏洞和补丁的信息, 可参考Alan Hargreaves(Sun公司系统技术支持中心雇员)的&lt;a href="http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit" target="_blank" rel="nofollow"&gt;网志&lt;/a&gt;.</description>
		<content:encoded><![CDATA[<p><strong>受影响的系统:</strong><br />
如果你使用&#8221;Full Install(完整安装)方式&#8221;安装S10, S10u1或S10u2, 系统将自动运行in.telnetd服务程序. 不过最新的S10u3, 如果你选择了&#8221;secure by default(默认安全模式)&#8221;选项安装, 系统将启动sshd守护进程来替代telnetd.</p>
<p>注: S10u3首次提供&#8221;secure by default(默认安全模式)&#8221;选项.</p>
<p><strong>临时解决办法:</strong><br />
1. 防止root登陆<br />
注释/etc/default/login文件的CONSOLE=行.<br />
或:<br />
# cp /bin/login /bin/login.new<br />
# perl -pi -e<br />
&#8217;s/u:s:R:f:h:r:pad:t:U:z:/u:s:R:F:h:r:pad:t:U:z:/&#8217;<br />
/bin/login.new<br />
# mv /bin/login /bin/login.bad.save<br />
# mv /bin/login.new /bin/login</p>
<p>2. 防止其它用户登陆<br />
在sun公司提供正式的补丁之前, 关闭telnet服务:<br />
# svcadm disable svc:/network/telnet:default</p>
<p>更多有关该漏洞和补丁的信息, 可参考Alan Hargreaves(Sun公司系统技术支持中心雇员)的<a href="http://blogs.sun.com/tpenta/entry/the_in_telnetd_vulnerability_exploit" target="_blank" rel="nofollow">网志</a>.
</p>
]]></content:encoded>
				</item>
	<item>
		<title>by: lcosu</title>
		<link>http://blog.zhaoke.com/82.html#comment-936</link>
		<pubDate>Thu, 15 Feb 2007 02:43:41 +0000</pubDate>
		<guid>http://blog.zhaoke.com/82.html#comment-936</guid>
					<description>SCPYL(user_name, optarg);
这段代码出了问题吧</description>
		<content:encoded><![CDATA[<p>SCPYL(user_name, optarg);<br />
这段代码出了问题吧
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
