我爱电脑技术论坛's Archiver

tianshiren 发表于 2008-6-8 14:53

黑客技术:Telnet高级入侵详细解析

什么是Telnet8B0YGRF[:E1\ z

%] RR:yHe'NTj *y:ph3|~s g5x ? u]
对于Telnet的认识,不同的人持有不同的观点,可以把Telnet当成一种通信协议,但是对于入侵者而言,Telnet只是一种远程登录的工具。一旦入侵者与远程主机建立了Telnet连接,入侵者便可以使用目标主机上的软、硬件资源,而入侵者的本地机只相当于一个只有键盘和显示器的终端而已。
5D }9[!u [ n3w~K
L/X,h r9d0y Telnet被入侵者用来做什么 ?.u!jYt-x/\a-n
Q/N(p"R,d!s
(1)Telnet是控制主机的第一手段
7_1E6D!Ee|'x kuakD'n2V9g
在前几节介绍过,如果入侵者想要在远程主机上执行命令,需要建立IPC$连接,然后使用net time命令查看系统时间,最后使用at命令建立计划任务才能完成远程执行命令。虽然这种方法能够远程执行命令,但相比之下,Telnet方式对入侵者而言则会方便得多。入侵者一旦与远程主机建立Telnet连接,就可以像控制本地计算机一样来控制远程计算机。可见,Telnet方式是入侵者惯于使用的远程控制方式,当他们千方百计得到远程主机的管理员权限后,一般都会使用Telnet方式进行登录。 Mx#V5A-x)b3pBjVz

!Pw;~]4m&m'z+{9i#t (2)用来做跳板
&t zN{/?} (@ Xq2T#rb9M5QX
入侵者把用来隐身的肉鸡称之为“跳板”,他们经常用这种方法,从一个“肉鸡”登录到另一个“肉鸡”,这样在入侵过程中就不会暴露自己的IP地址,这一过程将在第5章中详细介绍。
-S Li%TH,\!a |P
6O}otVn (3)关于NTLM验证 GYW1s v-U;A
\e6a4? W F[r
由于Telnet功能太强大,而且也是入侵者使用最频繁的登录手段之一,因此微软公司为Telnet添加了身份验证,称为NTLM验证,它要求Telnet终端除了需要有Telnet服务主机的用户名和密码外,还需要满足NTLM验证关系。NTLM验证大大增强了Telnet主机的安全性,就像一只拦路虎把很多入侵者拒之门外。 8C5x{%G6Pm iJx
t`k fA-L
(4)使用Telnet登录
:?+^_(OF b4|'e;H 3@\HwW9Ez:\ An
登录命令:telnet HOST [PORT]
YB a'lJ#I0?0N(In
!A(g } y!a-k 断开Telnet连接的命令:exit
V;`5`#J3V pT8D9U'N 5\|2QL RwV
成功地建立Telnet连接,除了要求掌握远程计算机上的账号和密码外,还需要远程计算机已经开启“Telnet服务”,并去除NTLM验证。也可以使用专门的Telnet工具来进行连接,比如STERM,CTERM等工具。
*vc{8o-C C@.M3f8MC
Telnet典型入侵ruk;X_A:[H

UF ho E7e
$K+IW5aSZZ (1)Telnet典型入侵步骤 2d V(E kVO"J
o;@R'{ |O7PC$r;l
步骤一:建立IPC$连接。其中sysback是前面建立的后门账号。
A+q!@l6yj 3EM4D8D9a*HpYyo
步骤二:开启远程主机中被禁用的Telnet服务。
AMe~,AV *S [Az]g2M
步骤三:断开IPC$连接。
kGp?i.f9t
%Q0D9l8Y)P5a 步骤四:去掉NTLM验证。如果没有去除远程计算机上的NTLM验证,在登录远程计算机的时候就会失败。 :H} Mm1H:xV|e

wM,y-A5^TihDf 不过入侵者会使用各种方法使NTLM验证形同虚设。解除NTLM的方法有很多,下面列出一些常用的方法,来看看入侵者如何去除NTLM验证。
'JrUu1p7XGid6N*O qB'J/pf&g
方法一 .I.A0W tF]![$M

D!b)x W`\c*M 首先,在本地计算机上建立一个与远程主机上相同的账号和密码。
Ju2[X8~ k;d T(XE.z
然后,通过“开始”→“程序”→“附件”找到“命令提示符”,使用鼠标右键单击“命令提示符”,然后选择“属性”,打开后如图所示
8@!n G"J4zX&K z $?*I;?5C|*N8i"J2N7z
在“以其他用户身份运行(U)”前面“打钩”,然后单击“确定”按钮。接着,仍然按照上述路径找到“命令提示符”,用鼠标左键单击打开,得到如图所示对话框,键入“用户名”和“密码”。
e*]"]L)Ke0H&hV
4?HEi'TC e 单击“确定”按钮后,得到MS-DOS界面,然后用该MS-DOS进行Telnet登录,如图所示。
.k$rB yj
v0DF|z{9o}Y*`G,by 键入“telnet 192.168.27.128”命令并回车后,在得到的界面中键入“y”表示发送密码并登录。 6qHpS;K m8R-W"V"l
2sQT}YTJZ
远程主机为Telnet终端用户打开的Shell,在该Shell中输入的命令将会直接在远程计算机上执行。
u3K.|"M8^W8[x"v`
N5y g0NH)Q 比如,键入“net user”命令来查看远程主机上的用户列表,如图所示。   Y5W~2ItTt2o
C5c9b"f%PKo[V6lK
方法二
pK)B;VoW S6O4w$XW^(tG@
该方法使用工具NTLM.EXE来去除NTLM验证。首先与远程主机建立IPC$连接,然后将NTLM.EXE拷贝至远程主机,最后通过at命令使远程计算机执行NTLM.EXE。 6m)~gO!wS!~:Y/t

3q*F&T#Pi-P n 计划任务执行NTLM.EXE后,便可键入“telnet 192.168.27.128”命令来登录远程计算机。 ` \h2A hl)c
B o`-H w8{
在该登录界面中键入用户名和密码,如果用户名和密码正确,便会登录到远程计算 机,得到远程计算机的Shell。
'D-q HjO i%A@GIq$x-oK
另外,还可以使用与opentelnet.exe相配套的程序resumetelnet.exe来恢复远程主机的NTLM验证,命令格式为“ResumeTelnet.exe \\\\server sername password”。 5y&MzMF}T~4Puo
8X/c!GH5}*f7a6o2NvI
resumetelnet.exe关闭了目标主机的Telnet服务,恢复了NTLM验证。
\ai$^'N9j loC
%q%mu ~N 从前面的介绍可以看出,即使计算机使用了NTLM验证,入侵者还是能够轻松地去除NTLM验证来实现Telnet登录。如果入侵者使用23号端口登录,管理员便可以轻易地发现他们,但不幸的是,入侵者通常不会通过默认的23号端口进行Telnet连接。那么入侵者究竟如何修改Telnet端口,又如何修改Telnet服务来隐蔽行踪呢?下面举一些常见的例子来说明这一过程,并介绍一下完成这一过程所需要的工具。
J9r4]xihj"N ux$rD ^cDRn
è X-Scan:用来扫出存在NT弱口令的主机。
6WRh[6_3KF)lT$O
+@F j2Y1U:[ è opentelnet:用来去NTLM验证、开启Telnet服务、修改Telnet服务端口。
D5Tt1a\;eYm"t9I uO
Qz&d"~[O2a è AProMan:用来查看进程、杀死进程。 5Ib:s.N"g E
5I6m}3} l VF im9e
è instsrv:用来给主机安装服务。 -u7^I~X\ _"^3Y9c r
e\9}&bB{Io
(1)AProMan简介 2]X:D$| K9@k
)KA?X*q aO/e2P
AproMan以命令行方式查看进程、杀死进程,不会被杀毒软件查杀。举个例子,如果入侵者发现目标主机上运行有杀毒软件,会导致上传的工具被杀毒软件查杀,那么他们就会要在上传工具前关闭杀毒防火墙。使用方法如下:
*o#M$V;E#TZ:K
IHS$[ iC c:\\AProMan.exe -a 显示所有进程 *A)\&?P3c+o#]

e4jPh tD'K%K c:\\AProMan.exe -p 显示端口进程关联关系(需Administrator权限) ?g.OE ~

EaC*|/YcL QH c:\\AProMan.exe -t [PID] 杀掉指定进程号的进程 -w-LG&p? Mm/~
p:va2D$d2V_oe$|
c:\\AProMan.exe -f [FileName] 把进程及模块信息存入文件
,j-m c*X?9V9n
W[`Q)Z (2)instsrv简介 (z%PN1S'`"rN5D|

cE!iV/C T(|@ instsrv是一款用命令行就可以安装、卸载服务的程序,可以自由指定服务名称和服务所执行的程序。instsrv的用法如下。 +`9j z-e k3TT+r
hR{ pkT{"y P
安装服务:instsrv <服务名称> <执行程序的位置>
/E,QW4U3x}5Pq
2d-wiS"_Acm3s:| 卸载服务:instsrv <服务名称> REMOVE
a5wbr"wK6}y
C6EN/Ftg 还有另一款优秀的远程服务管理工具SC。它属于命令行工具,可以在本地对远程计算机上的服务进行查询、启动、停止和删除。它的用法很简单,这里不作介绍了。下面通过实例来介绍入侵者如何实现Telnet登录并留下Telnet后门的过程。 E4Yi c0Z v"u c

W0y[_ A p 步骤一:扫出有NT弱口令的主机。在X-Scan的“扫描模块”中选中“NT-SERVER弱口令”,如图所示。
A"vFh4Va4^;{ 9c9q.l g)_-I6k[%O0l$|/m
然后在“扫描参数中”指定扫描范围为“192.168.27.2到192.168.27.253”,如图2所示。
R%V7g5M&E*c
0BN!F)S8qQB 等待一段时间后。
?lY5dZSB )EQ _4bfipU
步骤二:用opentelnet打开远程主机Telnet服务、修改目标主机端口、去除NTLM验证。 mW1|^qJ4TE

%E@%e(O S L%FM 无论远程主机是否开启“Telnet服务”,入侵者都可以通过工具opentelnet来解决。比如,通过“opentelnet \\\\192.168.27.129 administrator "" 1 66”命令为IP地址为192.168. 27.129的主机去除NTLM认证,开启Telnet服务,同时又把Telnet默认的23号登录端口改成66号端口。 Fy_ S8bF.m~

H2N/b8c3gQ,I)Q 步骤三:把所需文件(instsrv.exe、AProMan.exe)拷贝到远程主机。 %I,NZch u2{`

t-Ch ^0[ LI 首先建立IPC$,然后通过映射网络硬盘的方法把所需文件拷贝、粘贴到远程计算机的c:\\winnt文件夹中。   
3An/_ N[6|;W.[e(@
_#@ Ez2a D 步骤四:Telnet登录。 ^#D5D q!m0@2H#f

/}(B)Dw[R 在MS-DOS中键入命令“telnet 192.168.27.129 66”来登录远程主机192.168.27.129。 ]5M!r3u;g)h5g

I'\(q/a{gkt 步骤五:杀死防火墙进程。 [O Z H)RegP V,d5y
!vM,f.c j|%[ v-_;Y
如果入侵者需要把类似木马的程序拷贝到远程主机并执行,那么他们会事先关闭远程主机中的杀毒防火墙。虽然这里没有拷贝类似木马的程序到远程主机,但还是要介绍一下这一过程。当入侵者登录成功后,他们会进入到c:\\winnt目录中使用AProMan程序。首先通过命令AProMan –A查看所有进程,然后找到杀毒防火墙进程的PID,最后使用AProMan –t [PID]来杀掉杀毒防火墙。 ;G3\ \"Um&S]*J1[
.]zJA6WI8i]1f
步骤六:另外安装更为隐蔽的Telnet服务。 A [!{ A%~+} qz
8H8Gz8y j
为了事后仍然能登录到该计算机,入侵者在第一次登录之后都会留下后门。这里来介绍一下入侵者如何通过安装系统服务的方法来让Telnet服务永远运行。在安装服务之前,有必要了解一下Windows操作系统是如何提供“Telnet服务”的。打开“计算机管理”,然后查看“Telnet服务”属性。 B'o5o6fHr A(E3E
Pl;y;b)h
在“Telnet的属性”窗口中,可以看到其中“可执行文件的路径”指向“C:\\WINNT\\ SYSTEM32\\tlntsvr.exe”。可见,程序tlntsvr.exe就是Windows系统中专门用来提供“Telnet服务”的。也就是说,如果某服务指向该程序,那么该服务就会提供Telnet服务。因此,入侵者可以自定义一个新服务,将该服务指向tlntsvr.exe,从而通过该服务提供的Telnet服务登录,这样做后,即使远程主机上的Telnet服务是被禁用的,入侵者也可以毫无阻碍的登录到远程计算机,这种方法被称之为Telnet后门。下面就介绍一下上述过程是如何实现的。首先进入instsrv所在目录。
!us^x|&F7^.B&p
%~+s)O e,W)G 然后使用instsrv.exe建立一个名为“SYSHEALTH”的服务,并把这个服务指向C:\\WINNT z\\SYSTEM32\\tlntsvr.exe,根据instsrv.exe的用法,键入命令“instsrv.exe SYSHEALTH C:\\WINNT\\SYSTEM32\\tlntsvr.exe”。
`.z9g{!@
V;O%eK!m*hkY 一个名为“SYSHEAHTH”的服务就这样建立成功了。虽然从表面看上去该服务与远程连接不存在任何关系,但是实际上该服务是入侵者留下的Telnet后门服务。 .y/y4m+aHZ2X#X3]

C+O+[#N/LQ T 通过“计算机管理”可以看到该服务已经添加在远程计算机上。入侵者一般会把这个服务的启动类型设置成“自动”,把原来的“Telnet服务”停止并禁用。
x-~ bv$lrM{wk W
)amoyh0U 通过验证可知,虽然远程主机上的Telnet服务已经被停止并禁用,但入侵者仍然能够通过Telnet来控制远程主机。通过这些修改,即使管理员使用“netstat –n”命令来查看开放端口号也看不出66端口正在提供Telnet服务。
$w*e/?%i9gEs,p
Y,ln)}V:Sy;E 另外,这里顺便介绍一下netstat –n命令。该命令用来查看本地机当前连接情况,如图所示。其中,“Proto”列为当前连接的协议类型,如TCP协议和UDP协议。“Local Address”列为本地主机的IP地址,从图可见,本地主机有两个IP地址,分别为“192.168.0.2”和“192.168.27.1”。“Foreign Address”列为远程主机IP地址。“State”列为当前连接状态,其中包括ESTABLISHED(已经建立),TIME_WAIT(等待),SYN_SENT(正在连接)等状态。
4k9Jo\*X
p&C'Aj:Zh^ 常见问题与解答 A(X+S9@R+Ds8m
],i|PS6BV
1.问:虽然获得远程主机的用户名和密码,但是使用opentelnet连接的时候失败,如图所示,为什么?
'@N R7f?/q2e
IA4t B+QIe$m 答:根据返回的错误号“53”可知,目标主机没有启动Server服务,或者没有开放IPC$。 DW8LW{zDv

t7F/cOOS:zJr*L!K4v 2.问:如何才能抵御Telnet入侵? t W!Ab4Y Q*\#yR
pBCcwb A
答: ;_Y/JZ E3J:V&n4]y
U&IL H2@IB,D
保证账号密码的强壮性,防止被暴力破解。 s Cy9Sw6Uy,B

8h;O?yV!b 禁用Telnet服务。
8kp;F+A%Tdt5P,S
f9?_VF"TS]q!D 由于opentelnet是通过IPC$来实现的,所以关闭IPC$也可以防止一些情况的发生。
-xb!|{+[.{ o2H i/L"Z1^j
安装网络防火墙。

页: [1]
   

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.