入侵之后──3389端口与Windows漏洞的利用
网络通信
轰轰烈烈的《黑客营传奇》已经结束几期了,通过这部精彩的黑客技术小说相信大家一定都或多或少地了解了很多网络安全的知识。但是很多读者在了解了常用的黑客知识之后仍然无法了解黑客们通常是如何利用自己的技术的,所以本文向大家介绍一下《黑客营传奇》中一些技术入侵后的扩展利用,算是对《黑客营传奇》的一个补充。
偷天换日:溢出后的远程控制
在《黑客营传奇》中,鹿采薇采用Windows 2000/XP/2003中的MS04-11这个漏洞溢出攻击了留香客栈的雪柔。阅读了这篇文章后我也作了测试,发现溢出那些没有打补丁的Windows操作系统的确很简单,但是在溢出成功后装木马时却遇到了很大的麻烦,因为现在多数电脑都装有病毒防火墙,常见的木马在上传之后就会立刻被杀掉。
如何在溢出后实现真正的远程控制让我思索了很久,后来经过不断的测试,我发现还是利用Windows系统自带的3389端口最好。
但是3389端口远程控制最大的缺点是端口太明显了,一旦管理员发现或者其他的黑客发现你设定的3389端口开放,会造成很多不必要的麻烦,特别是系统提醒连接数的时候。所以我建议大家在开放3389端口后,将3389的端口改掉,改称例如1200什么之类的端口。在Windows 2000 Server中,修改3389端口很简单(在服务中你是无法修改的,但是我们可以通过注册表进行3389端口的修改):
首先我们在开始菜单的运行中输入Regedit命令,调出注册表编辑器,然后依次打开HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDPTcp主键,再在该主键中找到ProtNumber键值。此时你会发现,凡是打开3389远程控制服务的电脑,该主键的健值均为3389,你此时就可以把3389这个健值修改成任意一个其他的数值,例如1389等等。Windows XP中3389的服务健值与Windows 2000又略有不同:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RDPTcp,同样要修改该主键的3389端口数值。不过所有数值的修改都要注意一个问题,那就是系统TCP的保留端口不能被占用。在更改完成后,只要你帮助对方,或者对方自己重新启动计算机后,3389的端口就会自动更新成为新的端口,你所更改的新的数值也就是3389端口远程服务的新的连接端口。
绝不放过:开启Windows 2000 Professional的3389端口
很多人会有疑问,使用3389端口当然好了。可是Windows 2000 Professional(专业版)是没有3389的功能的,你怎么开?如果你能够思考到这一步就说明你已经具有相当的黑客天赋了。Windows 2000 Professional的确没有3389的功能,所以我们在使用MS04-11溢出成功后想要开3389端口作为自己的远程控制,就需要再多费一番功夫了。首先利用MS04-11漏洞溢出之后我们至少可以使用Telnet之类的服务,如果你直接输入Ver命令只能够看到它的Windows的补丁版本号,是无法看到具体的系统版本号,因此我们必须通过使用type命令打开系统中的Boot.ini文件,判断一下操作系统的Windows版本,在Boot.ini中的最后会显示:
[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT=“Microsoft Windows 2000 Professional” /fastdetect /noguiboot
我们可以轻松地判断出该操作系统是Windows 2000 Professional。在确定是Professional版本后,先不要伤心,Windows 2000 Professional一样可以通过手段让其打开3389服务。其实Windows 2000中,无论任何一个版本,它们的多数程序都是一样的,Server版本的Windows 2000和Professional版的更为相似,它们的唯一不同仅仅局限在注册表上,我们只要在Professional版的注册表中动一下手脚就可以让Professional变成Server版。3am Laboratories公司制作的NTSwitch就是一个可以让Windows 2000 Professional变成Server版的好工具。
如果手头上没有工具我们也可以进行手动的修改。首先我们需要自己生成一个注册表升级文件。先将自己的操作系统安装为Windows 2000 Professional,使用注册表照相机Regsnap这个工具对注册表和整个系统生成报告,然后再找到Windows 2000 Server的安装光盘,将Windows 2000 Professional操作系统升级为Windows 2000 Server。在操作系统升级完成后,再一次使用Regsnap对注册表照相,然后下载RegShot这个注册表分析软件将照相的注册表提取分析,输出分析出的变化结果的差别文件并保存为yu.reg。再一次用Telnet登录溢出的目标计算机,然后上传我们保存好的差别注册表,在对方的操作系统中输入“regedit.exe /s yu.reg”这串命令,此时对方的计算机就升级为Windows 2000 Server了,而你也可以顺利地开启对方的3389服务了。
在成功的开启了3389服务后,我们可以利用3389端口连接工具对目标计算机进行远程连接。不过此时你也许会感到不方便,因为3389的远程管理不支持复制粘贴形式的文件传输,只能够复制粘贴本机的一些字符。对付这个问题我们只需要在网上找一个小型的FTP开启工具,将对方的FTP开启就可以了。即便此时正有人乘虚而入抢你的“猎物”,你可以使用“logout”命令将对方踢下去,然后删除对方溢出的账号和口令,开启之后再根据前面所说的修改端口,帮助“猎物”打好补丁,防止其他的入侵者破坏你的“猎物”。一套完美的3389控制就做好了。
最高权限:用MS04019漏洞提升本地用户权限
在《黑客营传奇》中曾经提到过微软最新的三个漏洞,但是作者并没有详细地介绍这三个漏洞的使用方法。其实这三个漏洞都是简单的溢出漏洞,可以通过系统的溢出提升本地用户的权限。
很多人可能会想,本地溢出漏洞通常需要亲手接触到计算机才能够实现,肯定没有太多的用处。如果你这么想,就失去了作为一个黑客最为基本的思考问题的能力。其实网络中,特别是一些大的企业和校园中,很多服务器的最高管理员权限都很容易获得,而为了方便其它人登录,User权限的用户往往会有很多,而且密码通常不会很复杂。我们完全可以利用流光等扫描工具找到一些User用户,然后通过User的权限进行权限提升。
首先在一台本地计算机上做一个MS04019的试验。我们用User权限的用户登录本地系统成功后,需要开启CMD提示窗口,然后使用“net user 用户名”这个命令查看自己的用户权限和其它的一些信息,在确定自己的权限后,使用“Win+U”组合键开启辅助工具管理器(见图)。然后再打开一个CMD窗口,运行溢出程序,这时你再用“net user 用户名”检查一下自己的用户名,你会发现自己的用户已经提升为管理员了。有了使用MS04019的经历,你就可以很轻松地理解MS04020和MS04024的大致操作方法。根据我的使用感觉,MS04020完全可以配合扫描器作远程的本地溢出使用,不过限于文章的篇幅我们就不详细介绍了。
