第一篇blog,发现这是个记录学习过程的好地方。从基础的开始吧。


NTLM:

  • 基本知识

telnet的一种验证身份方式,即Windows NT LAN Manager (NTLM);
NTLM 是为没有加入到域中的计算机(如独立服务器和工作组)提供的身份验证协议;
基于一种“提问 - 答复”机制来进行客户端验证;
使用http状态码和http头;

  • 工作流程

1、客户端首先在本地加密当前用户的密码成为密码散列
2、客户端向服务器发送自己的帐号,这个帐号是没有经过加密的,明文直接传输   C ---> S  GET...
3、服务器产生一个16位的随机数字发送给客户端,作为一个 challenge(挑战)
C <--- S  401 Unauthorized
WWW-???Authenticate: NTLM
4、客户端再用加密后的密码散列来加密这个 challenge ,然后把这个返回给服务器。作为 response(响应)
C ---> S  GET...
Authorization: NTLM <base64-encoded type-1-message>
5、服务器把用户名、给客户端的challenge 、客户端返回的 response 这三个东西,发送域控制器
6、域控制器用这个用户名在 SAM密码管理库中找到这个用户的密码散列,然后使用这个密码散列来加密 challenge。
7、域控制器比较两次加密的 challenge ,如果一样,那么认证成功。

  • 验证选项

NTLM身份验证选项有三个值。默认是2。可以有下面这些值:
0: 不使用 NTLM 身份验证。
1: 先尝试 NTLM 身份验证,如果失败,再使用用户名和密码。
2: 只使用 NTLM 身份验证。

  • 编辑选项

对NTLM身份验证选项值的改变可以使用Win2000为我们提供Telnet服务器管理程序tlntadmn.exe;其实Win2000同时为我们提供了Telnet客户机和服务器程序:Telnet.exe是客户机程序(Client),tlntsvr.exe是服务器程序(server),及Telnet服务器管理程序tlntadmn.exe。若我们不需要NTLM身份验证可以按以下步骤设置:
1、单击“开始”—>“运行“,键入tlntadmn,然后确定
2、在弹出的选项中选择Display,再选择Change Registry Settings。
3、选择NTLM。
4、改变NTLM值为0不使用NTML身份验证
5、重新启动Telnet服务器。
其实也可以使用tlntadmn.exe对Telnet服务的其他默认设置来进行配置,配置后需要重新启动Telnet服务。
AllowTrustedDomain:是否允许域用户访问。默认值是1,允许信任域用户访问。可以改为0:不允许域用户访问(只允许本地用户)。
DefaultDomain:可以对与该计算机具有信任关系的任何域设置。默认值是"."。
DefaultShell:显示shell安装的路径位置。默认值是:%systemroot%\System32\Cmd.exe /q /k
MaxFailedLogins:在连接终止之前显示尝试登录失败的最大次数。默认是3。
LoginScript:显示Telnet服务器登录脚本的路径位置。默认的位置就是“%systemroot%\System32\login.cmd”,你可以更改脚本内容,这样登录进Telnet的欢迎屏幕就不一样了。
TelnetPort:显示telnet服务器侦听telnet请求的端口。默认是:23。你也可以更改为其他端口。

  • 突破NTLM

常见的有以下几种方法:
1、通过修改远程注册表更改telnet服务器配置,将验证方式从2改为1或0;
2、使用NTLM.exe,上传后直接运行,可将telnet服务器验证方式从2改为1;
3、在本地建立扫描到的用户,以此用户身份开启telnet客户机并进行远程登录;
4、使用软件,比如opentelnet.exe(需要管理员权限且开启IPC管道)
5、使用脚本,如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

  • 实验

1.打开一台window2000虚拟机,

2.开始运行,tlntadmn,选择Display/Change Registry Settings,选择NTLM。

3.可查看到当前值为2;使用机器telent ip(打开telnet可以使用services.msc手动开启),提示”您将要把您的密码信息送到Internet区内的一台远程计算机上,这可能不安全,您还要送吗“

NTLM选项为2

4.更改NTLM的值,依次登陆