Telnet是常用的远程登录手段,有两种 *** 作模式::Telnet命令模式和Telnet会话模式。连接到 Telnet服务器后,Telnet客户端会自动进入Telnet会话模式,此模式最常见。在会话模式下,所有击键将通过网络发送到 Telnet服务器,并可在 Telnet服务器上由在该处运行的任何程序进行处理。
Telnet命令模式允许在本地将命令发送到 Telnet客户端服务本身,例如打开到远程主机的连接、关闭到远程主机的连接、显示 *** 作参数、设置终端选项、打印状态信息和退出程序。
1、什么是Telnet?对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具。一旦入侵者与远程主机建立了Telnet连接,入侵者便可以使用目标主机上的软、硬件资源,而入侵者的本地机只相当于一个只有键盘和显示器的终端而已。
2、Telnet被入侵者用来做什么
(1)Telnet是控制主机的第一手段
如果入侵者想要在远程主机上执行命令,需要建立IPC$连接,然后使用net time命令查看系统时间,最后使用at命令建立计划任务才能完成远程执行命令。虽然这种方法能够远程执行命令,但相比之下,Telnet方式对入侵者而言则会方便得多。入侵者一旦与远程主机建立Telnet连接,就可以像控制本地计算机一样来控制远程计算机。可见,Telnet方式是入侵者惯于使用的远程控制方式,当他们千方百计得到远程主机的管理员权限后,一般都会使用Telnet方式进行登录。
(2)用来做跳板
入侵者把用来隐身的肉鸡称之为“跳板”,他们经常用这种方法,从一个“肉鸡”登录到另一个“肉鸡”,这样在入侵过程中就不会暴露自己的IP地址。
3.关于NTLM验证
由于Telnet功能太强大,而且也是入侵者使用最频繁的登录手段之一,因此微软公司为Telnet添加了身份验证,称为NTLM验证,它要求Telnet终端除了需要有Telnet服务主机的用户名和密码外,还需要满足NTLM验证关系。NTLM验证大大增强了Telnet主机的安全性,就像一只拦路虎把很多入侵者拒之门外。
4、Telnet语法
telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]]
-a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。
-e 跳过字符来进入 telnet 客户提示。
-f 客户端登录的文件名
-l 指定远程系统上登录用的用户名称。
要求远程系统支持 TELNET ENVIRON 选项。
-t 指定终端类型。
支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。
host 指定要连接的远程计算机的主机名或 IP 地址。
port 指定端口号或服务名。
5.使用Telnet登录
登录命令:telnet HOST [PORT] 例如:telnet 61.152.158.132 23(默认端口)
断开Telnet连接的命令:exit
成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。
6.Telnet典型入侵(如果以下内容不太了解,可以简单了解)
1.Telnet典型入侵步骤
步骤一:建立IPC$连接。其中sysback是前面建立的后门账号。
步骤二:开启远程主机简禅者中被禁用的Telnet服务。
步骤三:断开IPC$连接。
步骤四:去掉NTLM验证。如果没有去除远程计算机上的NTLM验证,在登录远程计算机的时候就会失败。
不过入侵者会使用各种方法使NTLM验证形同虚设。解除NTLM的方法有很多,下面列出一些常用的方法,来看看入侵者如何去除NTLM验证。
(1)方法一
首先,在本地计算机上建立一个与远程主机上相同的账号和密码。
然后,通过“开始”→“程序”→“附件”找到“命令提示符”,使用鼠标右键单击“命令提示符”,然后选择“属性”
在“以其他用户身份运行(U)”前面“打钩”,然后单击“确定”按钮。接着,仍然按照上述路径找到“拦薯命令提示符”,用鼠标左键单击打开,得到如图所示对话框。
如图所示,键入“用户名”和“密码”。
单击“确定”按钮后,得到MS-DOS界面,然后用该MS-DOS进行Telnet登录。
键入“telnet 192.168.27.128”命令并回车后,在得到的界面中键入“y”表示发送密码并登录,如图所示。
最后得到就是远程主机为Telnet终端用户打开的Shell,在该Shell中输入的命令将会直接在远程计算机上执行。
比如,键入“net user”命令来查看远程主机上的用户列表。
(2)方法二袭困
该方法使用工具NTLM.EXE来去除NTLM验证。首先与远程主机建立IPC$连接,然后将NTLM.EXE拷贝至远程主机,最后通过at命令使远程计算机执行NTLM.EXE。
计划任务执行NTLM.EXE后,便可键入“telnet 192.168.27.128”命令来登录远程计算机。
最后得到登录界面
在该登录界面中键入用户名和密码,如果用户名和密码正确,便会登录到远程计算 机,得到远程计算机的Shell。
成功登录。
另外,还可以使用与opentelnet.exe相配套的程序resumetelnet.exe来恢复远程主机的NTLM验证,命令格式为“ResumeTelnet.exe \\server sername password”。
执行后回显可知,resumetelnet.exe关闭了目标主机的Telnet服务,恢复了NTLM验证。
Telnet高级入侵全攻略
从前面的介绍可以看出,即使计算机使用了NTLM验证,入侵者还是能够轻松地去除NTLM验证来实现Telnet登录。如果入侵者使用23号端口登录,管理员便可以轻易地发现他们,但不幸的是,入侵者通常不会通过默认的23号端口进行Telnet连接。那么入侵者究竟如何修改Telnet端口,又如何修改Telnet服务来隐蔽行踪呢?下面举一些常见的例子来说明这一过程,并介绍一下完成这一过程所需要的工具。
X-Scan:用来扫出存在NT弱口令的主机。
opentelnet:用来去NTLM验证、开启Telnet服务、修改Telnet服务端口。
AProMan:用来查看进程、杀死进程。
instsrv:用来给主机安装服务。
(1)AProMan简介
AproMan以命令行方式查看进程、杀死进程,不会被杀毒软件查杀。举个例子,如果入侵者发现目标主机上运行有杀毒软件,会导致上传的工具被杀毒软件查杀,那么他们就会要在上传工具前关闭杀毒防火墙。使用方法如下:
c:\AProMan.exe -a 显示所有进程
c:\AProMan.exe -p 显示端口进程关联关系(需Administrator权限)
c:\AProMan.exe -t [PID] 杀掉指定进程号的进程
c:\AProMan.exe -f [FileName] 把进程及模块信息存入文件
(2)instsrv简介
instsrv是一款用命令行就可以安装、卸载服务的程序,可以自由指定服务名称和服务所执行的程序。instsrv的用法如下:
安装服务:instsrv <服务名称><执行程序的位置>
卸载服务:instsrv <服务名称>REMOVE
还有另一款优秀的远程服务管理工具SC。它属于命令行工具,可以在本地对远程计算机上的服务进行查询、启动、停止和删除。它的用法很简单,这里不作介绍了。下面通过实例来介绍入侵者如何实现Telnet登录并留下Telnet后门的过程。
步骤一:扫出有NT弱口令的主机。在X-Scan的“扫描模块”中选中“NT-SERVER弱口令”。
然后在“扫描参数中”指定扫描范围为“192.168.27.2到192.168.27.253”。
等待一段时间后,得到扫描结果。
步骤二:用opentelnet打开远程主机Telnet服务、修改目标主机端口、去除NTLM验证。
无论远程主机是否开启“Telnet服务”,入侵者都可以通过工具opentelnet来解决。比如,通过“opentelnet \\192.168.27.129 administrator "" 1 66”命令为IP地址为192.168. 27.129的主机去除NTLM认证,开启Telnet服务,同时又把Telnet默认的23号登录端口改成66号端口。
步骤三:把所需文件(instsrv.exe、AProMan.exe)拷贝到远程主机。
首先建立IPC$,然后通过映射网络硬盘的方法把所需文件拷贝、粘贴到远程计算机的c:\winnt文件夹中。
拷贝成功后。
步骤四:Telnet登录。
在MS-DOS中键入命令“telnet 192.168.27.129 66”来登录远程主机192.168.27.129。
步骤五:杀死防火墙进程。
如果入侵者需要把类似木马的程序拷贝到远程主机并执行,那么他们会事先关闭远程主机中的杀毒防火墙。虽然这里没有拷贝类似木马的程序到远程主机,但还是要介绍一下这一过程。当入侵者登录成功后,他们会进入到c:\winnt目录中使用AProMan程序。首先通过命令 AProMan –A查看所有进程,然后找到杀毒防火墙进程的PID,最后使用AProMan –t [PID]来杀掉杀毒防火墙。
步骤六:另外安装更为隐蔽的Telnet服务。
为了事后仍然能登录到该计算机,入侵者在第一次登录之后都会留下后门。这里来介绍一下入侵者如何通过安装系统服务的方法来让Telnet服务永远运行。在安装服务之前,有必要了解一下Windows *** 作系统是如何提供“Telnet服务”的。打开“计算机管理”,然后查看“Telnet服务”属性。
在“Telnet 的属性”窗口中,可以看到其中“可执行文件的路径”指向“C:\WINNT\ SYSTEM32\tlntsvr.exe”。可见,程序tlntsvr.exe就是Windows系统中专门用来提供“Telnet服务”的。也就是说,如果某服务指向该程序,那么该服务就会提供Telnet服务。因此,入侵者可以自定义一个新服务,将该服务指向tlntsvr.exe,从而通过该服务提供的Telnet服务登录,这样做后,即使远程主机上的Telnet服务是被禁用的,入侵者也可以毫无阻碍的登录到远程计算机,这种方法被称之为 Telnet后门。下面就介绍一下上述过程是如何实现的。首先进入instsrv所在目录。
然后使用instsrv.exe建立一个名为“SYSHEALTH”的服务,并把这个服务指向C:\WINNT z\SYSTEM32\tlntsvr.exe,根据instsrv.exe的用法,键入命令“instsrv.exe SYSHEALTH C:\WINNT\SYSTEM32\tlntsvr.exe”。
一个名为“SYSHEAHTH”的服务就这样建立成功了。虽然从表面看上去该服务与远程连接不存在任何关系,但是实际上该服务是入侵者留下的Telnet后门服务。
通过“计算机管理”可以看到该服务已经添加在远程计算机上。入侵者一般会把这个服务的启动类型设置成“自动”,把原来的“Telnet服务”停止并禁用。
通过验证可知,虽然远程主机上的Telnet服务已经被停止并禁用,但入侵者仍然能够 通过Telnet来控制远程主机。通过这些修改,即使管理员使用“netstat –n”命令来查看开放端口号也看不出66端口正在提供Telnet服务,此命令平常还可以拿来判断端口的连接情况。
监控和截获远程计算机的登录信息随着计算机的普及,企业局域网中的计算机越来越多。许多计算机具备用telnet、rlogin、ftp、rcmd等远程登录方式进入服务器的能力。而在实际工作中各联网计算机之间相互远程登录进行业务处理的情况也是日益频繁,如何对这些登录计算机进行监控呢?
问题的提出
网宏数络监管是各种服务器管理的重中之重。如果有一款简捷实用的Unix网络监控软件,该软件能迅速截获并显示所有远程登录计算机的IP地址、以太网地址、远程登录方式、远程登录的用户身份、远程登录的具体时间以及远程登录的进程号,打入命令后即可全方位监控远程登录计算机的各种关键信息,将会给网管人员的工作带来极大的方便。经过一段时间的试验,我们用Shell语言编制了这款监控和截获远程登录计算机的全方位信息的程序,实践效果较好。运行后,所有远程登录计算机的全部关键信息都一目了然地显示出来。一旦发现有非法远程登衫没录者,只须用kill命令杀掉本程序显示的相应的进程号即可迅速清除该非法远程入侵者。
问题的解决
以下是该程序的具体代码,其中netstat命令用于获取远程登录计算蔽塌首机的IP地址,arp命令用于获取远程登录计算机的以太网地址。
rm jlog.*
#检查有无远程登录的计算机
ps -ef|grep rlogind|grep -v grep >jlog.tmp
ps -ef|grep telnetd|grep -v grep>>jlog.tmp
ps -ef|grep ftpd|grep -v grep >>jlog.tmp
if [ -f jlog.tmp ]
then
echo “您的电脑已被下列计算机远程登录: ”
echo “IP地址 以太网地址 登录方式 登录用户 进程号 登录时间”
sort +4 jlog.tmp >jlog.ps
rm jlog.tmp
cat jlog.ps|grep -v ftpd >jlog.pnet
cat jlog.ps|grep ftpd >jlog.pftp
#区分远程登录方式
netstat -n |grep ESTABLISHED>jlog.net
if [ -f jlog.net ]
then
nsum=丶wc jlog.net|awk ‘{print $1}'丶
i=0
while [ $i -lt $nsum ]
do
i=丶expr $i + 1丶
na=丶head -$i jlog.net|tail -1丶
nmode=丶echo $na |awk ‘{print $4}'|cut -f5 -d.丶
if [“$nmode” -eq 21 -o “$nmode” -eq 23 -o “$nmode” -eq 513 ]
then
echo $na >>jlog.tmp
fi
done
fi
#获取以telnet、rlogin远程登录的计算机的登录关键信息
if [ -f jlog.pnet ]
then
cat jlog.tmp|grep -v “.21 ”|awk ‘{print $5}'|cut -f1,2,3,4 -d. >jlog.nett
who |sort +4 |grep ttyp|awk ‘{print $1}'>jlog.who
#获取远程登录计算机的总数
tsum=丶wc jlog.pnet|awk ‘{print $1};'丶
i=0
while [ $i -lt $tsum ]
do
i=丶expr $i + 1丶
ta=丶head -$i jlog.pnet|tail -1丶
#获取远程登录的计算机的用户
tuser=丶head -$i jlog.who|tail -1丶
#获取远程登录的计算机的IP地址
tip=丶tail -$i jlog.nett|head -1丶
tb=丶head -$i jlog.pnet|tail -1|awk ‘{print $8}'丶
#获取远程登录的计算机的登录方式
if [“$tb” = “telnetd” ]
then
tmode=“telnet”
else
tmode=“rlogin”
fi
#获取远程登录的计算机的登录时间
tpro=丶echo $ta|awk ‘{print $2}'丶
#获取远程登录的计算机的进程号
ttime=丶echo $ta|awk ‘{print $5}'丶
#获取远程登录的计算机的以太网地址
teth=丶arp -a|grep $tip |head -1|awk ‘{print $4}'丶
if [“$teth” = “” ]
then
teth=“ ”
fi
echo “$tip $teth $tmode $tuser $tpro $ttime”
done
fi
#获取以ftp远程登录的计算机关键信息
if [ -f jlog.pftp ]
then
cat jlog.tmp|grep “.21” |awk ‘{print $5}'|cut -f1,2,3,4 -d. >jlog.netf
#获取以ftp远程登录的计算机的总数
fsum=丶wc jlog.pftp|awk ‘{print $1}'丶
i=0
while [ $i -lt $fsum ]
do
i=丶expr $i + 1丶
fa=丶head -$i jlog.pftp|tail -1丶
#获取以ftp远程登录的计算机的用户
fuser=丶echo $fa|awk ‘{print $1}'丶
#获取以ftp远程登录的计算机的登录时间
ftime=丶echo $fa|awk ‘{print $5}'丶
#获取以ftp远程登录的计算机的IP地址
fip=丶tail -$i jlog.netf|head -1丶
#获取以ftp登录的计算机的登录方式
fb=丶echo $fa|awk ‘{print $8}'丶
fmode=“ftp”
#获取以ftp登录的计算机的进程号
fpro=丶echo $fa|awk ‘{print $2}'丶
#获取以ftp登录的计算机以太网地址
feth=丶arp -a|grep $fip |head -1|awk ‘{print $4}'丶
if [“$feth” = “” ]
then
feth=“ ”
fi
echo “$fip $feth $fmode $fuser $fpro $ftime”
done
fi
else
echo “未发现远程登录的计算机!”
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)