收藏 分销(赏)

的设计与实现.doc

上传人:天**** 文档编号:3328092 上传时间:2024-07-02 格式:DOC 页数:53 大小:531.54KB 下载积分:14 金币
下载 相关 举报
的设计与实现.doc_第1页
第1页 / 共53页
的设计与实现.doc_第2页
第2页 / 共53页


点击查看更多>>
资源描述
毕 业 设 计 题 目: Telnet 的设计与实现 学院: 计算机与通信学院 专业: 网络工程班级: 0901学号: 学生姓名: 葛志 导师姓名: 刘铁武 完毕日期: 2023年6月3日 诚 信 声 明 本人声明: 1、本人所呈交的毕业设计(论文)是在老师指导下进行的研究工作及取得的研究成果; 2、据查证,除了文中特别加以标注和致谢的地方外,毕业设计(论文)中不包含其别人已经公开发表过的研究成果,也不包含为获得其他教育机构的学位而使用过的材料; 3、我承诺,本人提交的毕业设计(论文)中的所有内容均真实、可信。 作者署名: 日期: 年 月 日 毕业设计(论文)任务书 题目: 姓名 葛志 系 计算机与通信学院 专业 网络工程 班级 0901 学号 指导老师 刘铁武 职称 讲 师 教研室主任 刘 洞 波 一、 基本任务及规定: 二、 进度安排及完毕时间: 第1周 老师集中指导,分析并明确课题任务与规定,学习资料收集检索方法,并搜索收集所需中英文资料。 第2~3周 阅读资料、书籍,学习所需知识,撰写文献综述。 第4~5周 毕业实习、完毕毕业实习报告撰写。 第6周 建立毕业设计实验环境;初步拟订设计方案;完毕开题报告。 第7周 完毕总体设计。 第8~13周 具体设计、调试、修改、实现。 第14~15周 撰写毕业论文(说明书)。 第16周 完毕毕业答辩资格审查、毕业答辩准备 第17周 毕业答辩 目 录 第1章 TELNET综述 4 1.1 TELNET协议简介 4 1.1.1基本内容 4 1.1.2 适应异构 4 1.1.3 传送远地命令 5 1.1.4 数据流向 5 1.1.5 强制命令 6 1.1.6 选项协商 6 1.2 TELNET的产生和发展 7 1.3 TELNET工作过程 8 第2章 需求分析 12 2.1 功能需求 12 2.2 配置需求 12 3.1 基本规定 16 3.2 结构设计 16 3.2.1等待连接模块 16 3.2.2登陆模块 16 3.2.3命令模块 16 3.2.4接受字符模块 16 第4章 TELNET的具体设计 18 4.1 虚拟终端 18 4.2 远程登录协议 20 4.3 远程登录的实现方法 21 4.4 远程登录的最终完毕 25 第5章 系统测试 34 5.1 测试过程 34 5.1.1连接测试 34 5.2 效果与评价 34 结 束 语 36 致谢 37 参考文献 38 TELNET的设计与实现 摘 要:Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和重要方式。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运营,就像直接在服务器的控制台上输入同样。要开始一个telnet会话,必须输入用户名和密码来登录服务器。本文简朴设计了远程登录虚拟终端,使得个人电脑的用户可以使他的个人电脑来与大型计算机联系,而不必使用专门的终端。 关键词:TELNET ;虚拟终端 ;协议;服务器;客户端 Desianation and implementation of Telnet Abstract: TELNET is one of protocols of the TCP/IP,it is the standard and major way of the Inernet remote login Serve.It offers the capability for the local computer to finish the job of the long-distance. On the terminal user's computer using Telnet program, use it to connect to the server. End users can type the commands in the Telnet program, these commands will be running on the server, like directly in the server's console input can control on the local server to start a Telnet session, you must enter a user name and passwords to login server. This paper simply designs virtual terminal remote login, making personal computer users will be able to make his personal computer to contact with large computer, without having to use special terminal. Keywords:Telnet ;NVT;Protocol;Server;Client 前 言 Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),那么就让我们来结识一下远程登录。 它最初是由ARPANET开发的,但是现在它重要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。起初,它只是让用户的本地计算机与远程计算机连接,从而成为远程主机的一个终端。它的一些较新的版本在本地执行更多的解决,于是可以提供更好的响应,并且减少了通过链路发送到远程主机的信息数量。 远程登录是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。 文本重要介绍客户机建立一个本地机到服务器的TCP连接,使用Telnet协议进行远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的IP地址或域名;必须知道登录标记与口令。Telnet远程登录服务分为以下4个过程:本地与远程主机建立连接。该过程事实上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程事实上是从本地主机向远程主机发送一个IP数据包;将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,涉及输入命令回显和命令执行结果;最后,本地终端对远程主机进行撤消连接。该过程是撤消一个TCP连接。 第1章 TELNET综述 1.1 TELNET协议简介 我们知道telnet服务器软件是我们最常用的远程登录服务器软件,是一种典型的客户机/服务器模型的服务,它应用telnet协议来工作.那么,什么是telnet协议?它都具有哪些特点呢? 1.1.1基本内容 Telnet服务是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议.应用telnet协议可以把本地用户所使用的计算机变成远程主机系统的一个终端.它提供了三种基本服务: telnet定义一个网络虚拟终端为远的系统提供一个标准接口.客户机程序不必具体了解远的系统,他们只需构造使用标准接口的程序; telnet涉及一个允许客户机和服务器协商选项的机制,并且它还提供一组标准选项; telnet对称解决连接的两端,即telnet不逼迫客户机从键盘输入,也不逼迫客户机在屏幕上显示输出. 1.1.2 适应异构 为了使多个操作系统间的telnet交互操作成为也许,就必须具体了解异构计算机和操作系统.比如,一些操作系统需要每行文本用ASCII回车控制符(CR)结束,另一些系统则需要使用ASCII换行符(LF),尚有一些系统需要用两个字符的序列回车-换行(CR-LF);再比如,大多数操作系统为用户提供了一个中断程序运营的快捷键,但这个快捷键在各个系统中有也许不同(一些系统使用CTRL+C,而另一些系统使用ESCAPE).假如不考虑系统间的异构性,那么在本地发出的字符或命令,传送到远地并被远地系统解释后很也许会不准确或者出现错误.因此,telnet协议必须解决这个问题. 为了适应异构环境,telnet服务定义了数据和命令在Internet上的传输方式,此定义被称作网络虚拟终端NVT(Net Virtual Terminal).它的应用过程如下: 对于发送的数据:客户机软件把来自用户终端的按键和命令序列转换为NVT格式,并发送到服务器,服务器软件将收到的数据和命令,从NVT格式转换为远地系统需要的格式; 对于返回的数据:远地服务器将数据从远地机器的格式转换为NVT格式,而本地客户机将将接受到的NVT格式数据再转换为本地的格式. 对于NVT格式的具体定义,有爱好的朋友可以去查找相关资料. 1.1.3 传送远地命令 我们知道绝大多数操作系统都提供各种快捷键来实现相应的控制命令,当用户在本地终端键入这些快捷键的时候,本地系统将执行相应的控制命令,而不把这些快捷键作为输入.那么对于telnet来说,它是用什么来实现控制命令的远地传送呢? telnet同样使用NVT来定义如何从客户机将控制功能传送到服务器.我们知道USASCII字符集涉及95个可打印字符和33个控制码.当用户从本地键入普通字符时,NVT将按照其原始含义传送;当用户键入快捷键(组合键)时,NVT将把它转化为特殊的ASCII字符在网络上传送,并在其到达远地机器后转化为相应的控制命令.将正常ASCII字符集与控制命令区分重要有两个因素: TCP/IP协议专题 TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备. 这种区分意味着telnet具有更大的灵活性:它可在客户机与服务器间传送所有也许的ASCII字符以及所有控制功能; 这种区分使得客户机可以无二义性的指定信令,而不会产生控制功能与普通字符的混乱. 1.1.4 数据流向 上面我们提到过将telnet设计为应用级软件有一个缺陷,那就是:效率不高.这是为什么呢?下面给出telnet中的数据流向: 数据信息被用户从本地键盘键入并通过操作系统传到客户机程序,客户机程序将其解决后返回操作系统,并由操作系统通过网络传送到远地机器,远地操作系统将所接受数据传给服务器程序,并经服务器程序再次解决后返回到操作系统上的伪终端入口点,最后,远地操作系统将数据传送到用户正在运营的应用程序,这便是一次完整的输入过程;输出将按照同一通路从服务器传送到客户机. 由于每一次的输入和输出,计算机将切换进程环境好几次,这个开销是很昂贵的.还好用户的键入速率并不算高,这个缺陷我们仍然可以接受. 1.1.5 强制命令 我们应当考虑到这样一种情况:假设本地用户运营了远地机器的一个无休止循环的错误命令或程序,且此命令或程序已经停止读取输入,那么操作系统的缓冲区也许因此而被占满,假如这样,远地服务器也无法再将数据写入伪终端,并且最终导致停止从TCP连接读取数据,TCP连接的缓冲区最终也会被占满,从而导致阻止数据流流入此连接.假如以上事情真的发生了,那么本地用户将失去对远地机器的控制. 为了解决此问题,telnet协议必须使用外带信令以便强制服务器读取一个控制命令.我们知道TCP用紧急数据机制实现外带数据信令,那么telnet只要再附加一个被称为数据标记(date mark)的保存八位组,并通过让TCP发送已设立紧急数据比特的报文段告知服务器便可以了,携带紧急数据的报文段将绕过流量控制直接到达服务器.作为对紧急信令的相应,服务器将读取并抛弃所有数据,直到找到了一个数据标记.服务器在碰到了数据标记后将返回正常的解决过程. 1.1.6 选项协商 由于telnet两端的机器和操作系统的异构性,使得telnet不也许也不应当严格规定每一个telnet服务连接的具体配置,否则将大大影响telnet的适应异构性.因此,telnet采用选项协商机制来解决这一问题. telnet选项的范围很广:一些选项扩充了大方向的功能,而一些选项制涉及一些微小细节.例如:有一个选项可以控制telnet是在半双工还是全双工模式下工作(大方向);尚有一个选项允许远地机器上的服务器决定用户终端类型. telnet选项的协商方式也很故意思,它对于每个选项的解决都是对称的,即任何一端都可以发出协商申请;任何一端都可以接受或拒绝这个申请.此外,假如一端试图协商另一端不了解的选项,接受请求的一端可简朴的拒绝协商.因此,有也许将更新,更复杂的telnet客户机服务器版本与较老的,不太复杂的版本进行交互操作.假如客户机和服务器都理解新的选项,也许会对交互有所改善.否则,它们将一起转到效率较低但可工作的方式下运营.所有的这些设计,都是为了增强适应异构性,可见telnet的适应异构性对其的应用和发展是多么重要. 1.2 TELNET的产生和发展 我们可以先构想一个提供远程文字编辑的服务,这个服务的实现需要一个接受编辑文献请求和数据的服务器以及一个发送此请求的客户机。客户机将建立一个从本地机到服务器的TCP连接,当然这需要服务器的应答,然后向服务器发送键入的信息(文献编辑信息),并读取从服务器返回的输出。以上便是一个标准而普通的客户机/服务器模型的服务。 似乎有了客户机/服务器模型的服务,一切远程问题都可以解决了。然而实际并非你想象的那样简朴,假如我们仅需要远程编辑文献,那么刚才所构想的服务完全可以胜任,但假如我们的规定并不是这么简朴,我们还想实现远程用户管理,远程数据录入,远程系统维护,想实现一切可以在远程主机上实现的操作,那么我们将需要大量专用的服务器程序并为每一个可计算服务都使用一个服务器进程,随之而来的问题是:远程机器会不久对服务器进程应接不暇,并淹没在进程的海洋里(我们在这里排除最专业化的远程机器)。 那么有没有办法解决呢?当然有,我们可以用远程登录来解决这一切。我们允许用户在远地机器上建立一个登录会话,然后通过执行命令来实现更一般的服务,就像在本地操作同样。这样,我们便可以访问远地系统上所有可用的命令,并且系统设计员不需提供多个专用地服务器程序。 问题发展到这里仿佛前程一片光明了,用远程登录总应当解决问题了吧,但要实现远程登录并不简朴。不考虑网络设计的计算机系统盼望用户只从直接相连的键盘和显示器上登录,在这种机器上增长远程登录功能需要修改机器的操作系统,这是极其艰巨也是我们尽量避免的。因此我们应当集中力量构造远程登录服务器软件,虽然这样也是比较困难的。为什么说这样做也比较困难呢? 举个例子来说:一般,操作系统会为一些特殊按键分派特殊的含义,比如本地系统将'Ctrl+C'解释为:'终止当前运营的命令进程'。但假设我们已经运营了远程登录服务器软件,'Ctrl+C'也有也许无法被传送到远地机器,假如客户机真的将'Ctrl+C'传到了远地机器,那么'Ctrl+C'这个命令有也许不能终止本地的进程,也就是说在这里很也许会产生混乱。并且这仅仅是碰到的难题之一。 但尽管有技术上的困难,系统编程人员还是设法构造了可以应用于大多数操作系统的远程登录服务器软件,并构造了充当客户机的应用软件。通常,客户机软件取消了除一个键以外的所有键的本地解释,并将这些本地解释相应的转换成远地解释,这就使得客户机软件与远地机器的交互,就如同坐在远程主机面前同样,从而避免了上述所提到的混乱。而那个唯一例外的键,可以使用户回到本地环境。 将远程登录服务器设计为应用级软件,尚有另一个规定,那就是需要操作系统提供对伪终端(pseudo terminal)的支持。我们用伪终端描述操作系统的入口点,它允许像Telnet服务器同样的程序向操作系统传送字符,并且使得字符像是来自本地键盘同样。只有使用这样的操作系统,才干将远程登录服务器设计为应用级软件(比如Telnet服务器软件),否则,本地操作系统和远地系统传送将不能辨认从对方传送过来的信息(由于它们仅能辨认从本地键盘所键入的信息),远程登录将宣告失败。 将远程登陆服务器设计为应用级软件虽然有其显著的优点:比将代码嵌入操作系统更易修改和控制服务器。但其也有效率不高的缺陷(后面的内容将会给予解释),好在用户键入信息的速率不高,这种设计还是可以接受的。 1.3 TELNET工作过程 使用Telnet协议进行远程登录时需要满足以下条件:在本地计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的IP地址或域名;必须知道登录标记与口令。  Telnet远程登录服务分为以下4个过程:  1. 本地与远程主机建立连接。该过程事实上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名; 2. 将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程事实上是从本地主机向远程主机发送一个IP数据包;  3. 将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,涉及输入命令回显和命令执行结果;  4. 最后,本地终端对远程主机进行撤消连接。该过程是撤消一个TCP连接。 当你用Telnet登录进入远程计算机系统时,你事实上启动了两个程序,一个叫Telnet客户程序,它运营在你的本地机上;另一个叫Telnet服务器程序,它运营在你要登录的远程计算机上。本地机上的客户程序要完毕如下功能: 建立与服务器的TCP 联接; 从键盘上接受你输入的字符; 把你输入的字符串变成标准格式并送给远程服务器; 从远程服务器接受输出的信息; 把该信息显示在你的屏幕上。 远程计算机的“服务”程序通常被称为“精灵”,它平时不声不响地候在远 程计算机上,一接到你的请求,就立即活跃起来,并完毕如下功能: 告知你的计算机,远程计算机已经准备好了; 等候你输入命令; 对你的命令作出反映(如显示目录内容,或执行某个程序等); 把执行命令的结果送回给你的计算机; 重新等候你的命令。 在Internet中,很多服务都采用这样一种客户/ 服务器结构。对Internet的使用者来讲,通常只要了解客户端的程序就够了。 命令: Telnet>,这是告知Telnet在等待键入命令,比如键入问号"?"那么就得到一个有用的命令表: telnet:? Commandsmaybeabbreviated,Commandare: openconnecttoasite closeclosecurrectconnection quitexittelnet displaydisplayoperatingparameters sendtransmitspecialcharacters( send? formore) setsetoperatingparameters( set? formore) statusprintstatusinformation toggletoggleoperatingparameters( toggle? formore) modetrytoenterline-by-lineorcharacter-at-a-timemode ?printhelpinformation 虽然命令很多,甚至尚有子命令,但只有一些是常用的。现在介绍以下的几个: Close: 该命令用语终止连接。它自动切断与远程系统的连接,也可以用它退出Telnet,在冒失的进入一个网络主机时,想退出的话,就可以用到这个命令。 open: 用它来与一个命名机器连接,规定给出目的机器的名字或IP地址。假如未给出机器名,Telnet就将要你选择一个机器名。必须注意,在使用"Open"命令之前应当先用"close"来关闭任何已经存在的连接。 SetECHO: 用于本地的响应是On或是Off。作用是是否把输出的内容显示在屏幕上。和DOS的ECHO基本上是同样。假如机器是处在ECHOON的话,想改变为OFF,那么就可以输入SETECHO,想再改变回ECHOOFF,那么就再键入SETECHO就可以了。 Setescapechar: 建立"escape"字符到某个特殊的符号,若想用某种控制符号来代替,可以用"asis"或者键入符号"^"加字母b(如:^b)。在正常工作时,是不需要用"escape"这个字符的,并且这个被用作"escape"的符号不应当再被使用。这类似于许多程序中对键盘上的每一个键设定其真正的涵义。但假如正在运营一个daisy-chained应用系统,那么可以重新议定"escape"字符的特性便是很有用的。例如:用Telnet从系统A到系统B,接着又用Telnet注册进入系统C。假如正在系统C上工作时出了故障,那么当"escape"代表符是相同时,就没法中断系统B到系统C的连接。键入"escape"代表符,将总是处在系统A的命令模式。假如在每个Telnet部分使用不同的"escape"代表符,便可以通过键入适当的符号,来选择其中一个命令模式,这也可以用于其他的应用中(像终端仿真)。 Quit: 用它可顺利地推出Telnet程序。 Z: 用语保存Telnet但暂时回到本地系统执行其他命令。并且在Telnet中的连接以及其他的选择在Telnet恢复时仍被保存。 CarriageReturn: 用于不具体的一个命令从命令模式返回到所连接的远程机器上。此外,尚有许多其他的命令可以推出命令模式。下面举一个例子,是从注册进入到porky.math.ukans.edu,然后进入命令模式,然后返回porky:: telnetporky.math.ukans.edu Trying129.237.128.11... Connectedtoporky.math.ukans.edu. Escapecharacteris ^] . SunOSUNIX(porky) login:wl password: LastLogin:TueMar2805: SunOSRelease4.1.3_U1(SLIPPERY1)#3:SunNov2023:47:23CST1999 Nomatch. if:Expressionsyntax. porky/serv/wl%cd/ porky/%CTRL-] telnet:? Commandsmaybeabbreviated,Commandare: openconnecttoasite closeclosecurrectconnection quitexittelnet displaydisplayoperatingparameters sendtransmitspecialcharacters( send? formore) setsetoperatingparameters( set? formore) statusprintstatusinformation toggletoggleoperatingparameters( toggle? formore) modetrytoenterline-by-lineorcharacter-at-a-timemode ?printhelpinformation telnet:setescape^b escapecharacteris’^b’ porky/%logout % 第2章 需求分析 2.1 功能需求 telnet重要完毕以下功能:telnet客户程序;telnet服务程序。 telnet客户程序,它运营在你的本地机上,重要完毕如下功能:建立与服务器的TCP 联接; 从键盘上接受你输入的字符; 把你输入的字符串变成标准格式并送给远程服务器; 从远程服务器接受输出的信息; 把该信息显示在你的屏幕上。 telnet服务程序,它运营在你要登录的远程计算机上,重要完毕如下功能:告知你的计算机,远程计算机已经准备好了; 等候你输入命令; 对你的命令作出反映(如显示目录内容,或执行某个程序等); 把执行命令的结果送回给你的计算机; 重新等候你的命令。 2.2 配置需求 其实从应用层面上,Win2023的Telnet服务并没有什么可说的,绝大部分内容你都可以从HELP文献中得到,我在此只是把它稍微整理一下而已。 Win2023为我们提供了Telnet客户机和服务器程序:Telnet.exe是客户机程序(Client),tlntsvr.exe是服务器程序(server),同时它还为我们提供了Telnet服务器管理程序tlntadmn.exe。 Windows 2023 默认安装了 Telnet 服务,但是并没有默认启动。下面给出HELP文献中 Telnet 服务的一部分默认设立: AllowTrustedDomain:是否允许域用户访问。默认值是1,允许信任域用户访问。可以改为0: 不允许域用户访问(只允许本地用户)。 DefaultDomain:可以对与该计算机具有信任关系的任何域设立。默认值是"."。 DefaultShell:显示 shell 安装的途径位置。默认值是:%systemroot%\System32\Cmd.exe /q /k MaxFailedLogins:在连接终止之前显示尝试登录失败的最大次数。默认是3。 LoginScript:显示 Telnet 服务器登录脚本的途径位置。默认的位置就是“%systemroot%\System32\login.cmd”,你可以更改脚本内容,这样登录进Telnet的欢迎屏幕就不同样了。 NTLM:NTLM身份验证选项。默认是2。可以有下面这些值: 0: 不使用 NTLM 身份验证。 1: 先尝试 NTLM 身份验证,假如失败,再使用用户名和密码。 2: 只使用 NTLM 身份验证。 TelnetPort:显示 telnet 服务器侦听 telnet 请求的端口。默认是:23。你也可以更改为其他端口。 以上各项设立你可以使用tlntadmn.exe(Telnet服务器管理程序)来进行非常方便的配置,配置后需要重新启动Telnet服务。如图1 NTLM 提到了telnet就不能不提NTLM,我想这也是让入侵者最为头痛的一件事,哪怕你获得了管理员帐号和密码,想简朴通过NTLM也并非易事,况且win2023中的telnet默认仅以NTLM方式验证身份,这就让我们不得不关注NTLM这个东东,那么什么是NTLM呢? 初期的SMB协议在网络上明文传输口令,后来出现了"LAN Manager Challenge/Response"验证机制,简称LM,它十分简朴以至很容易被破解,微软随后提出了WindowsNT挑战/响应验证机制,即NTLM。现在已有了更新的NTLMv2以及Kerberos验证体系。 工作流程如下客户端一方面在本地加密当前用户的密码成为密码散列;客户端向服务器发送自己的帐号,这个帐号是没有通过加密的,明文直接传输;服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战);客户端再用加密后的密码散列来加密这个challenge ,然后把这个返回给服务器。作为 response(响应)服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器;域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge;域控制器比较两次加密的 challenge ,假如同样,那么认证成功。 从上面的过程我们可以看出,NTLM是以当前用户的身份向Telnet服务器发送登录请求的,而不是用你扫到的对方管理员的帐户和密码登录,显然,你的登录将会失败。举个例子来说,你家的机器名为A(本地机器),你入侵的机器名为B(远地机器),你在A上的帐户是xinxin,密码是1234,你扫到B的管理员帐号是Administrator,密码是5678,当你想Telnet到B时,NTLM将自动以当前用户的帐号和密码作为登录的凭据来进行上面的7项操作,即用xinxin和1234,而并非用你扫到的Administrator和5678,且这些都是自动完毕的,主线不给你插手的机会,因此你的登录操作将失败。 由于Telnet服务器对NTLM的使用有3个选项,所以当你Telnet远地机器时,会显示下面情况中的一种: 1)身份验证选项=0时 ===================================== Microsoft (R) Windows (TM) Version 5.00 (Build 2195) Welcome to Microsoft Telnet Service Telnet Server Build 5.00.99201.1 login: password: \为0时不使用NTML身份验证,直接输入用户名和密码,比如你可以输入扫到的Administrator和5678 2)身份验证选项=1时 ===================================== NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password Microsoft (R) Windows (TM) Version 5.00 (Build 2195) Welcome to Microsoft Telnet Service Telnet Server Build 5.00.99201.1 login: password: \先尝试 NTLM 身份验证,假如失败,再使用用户名和密码,其实这种方式对于我们来说,与上一种方式没什么区别 3)身份验证选项=2时 ===================================== NTLM Authentication failed due to insufficient credentials. Please login withclear text username and password Server allows NTLM authentication only Server has closed connection 遗失对主机的连接。 C:\> \仔细看看上面的显示,主线没有给你输入用户名和密码的机会,直接断开连接,扫到了密码也是白扫 所以对于入侵者来说,NTLM是横在我们面前的一座大山,必须要除掉它,一般我们有如下几种方法:通过修改远程注册表更改telnet服务器配置,将验证方式从2改为1或0;使用NTLM.exe,上传后直接运营,可将telnet服务器验证方式从2改为1;在本地建立扫描到的用户,以此用户身份启动telnet客户机并进行远程登录;使用软件,比如opentelnet.exe(需要管理员权限且启动IPC管道)使用脚本,如RTCS,(需要管理员权限但不依赖IPC管道). 基本上是以上的5种,其中后两种是我们比较常用的开telnet的手法,并且使用方法十分简朴,命令如下: OpenTelnet.exe \server username password NTLMAuthor telnetport OpenTelnet.exe \服务器地址 管理员用户名 密码 验证方式(填0或1) telnet端口 cscript RTCS.vbe targetIP username password NTLMAuthor telnetport cscript RTCS.vbe <;目的IP> <;管理员用户名> <;密码> <;验证方式> <tlnet端口> 第3章 概要设计 3.1 基本规定 使用基本的套接口函数进行开发,即使用socket()、bind()、listen()、accept()等   不使用图形界面,只要能用文本显示相关信息即可,此外,需要把这些相关信息写入到一日记文献中(文献名为:学号.txt)   客户端通过Telnet连接后,服务器返回系统的一些信息(自己定义,至少应当涉及程序作者的学号),之后显示提醒符"login:"提醒用户输入用户名进行登录   规定对用户名和密码进行验证。用户名和密码均为学号的后3位。假如用户名和密码错误则返
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服