当黑客入侵一台主机后,会想方设法保护自己的劳动成果,因此会在肉鸡上留下种种后门来长时间得控制肉鸡,其中使用最多的就是账户隐藏技术。在肉鸡上建立一个隐藏的账户,以备需要的时候使用。账户隐藏技术可谓是最隐蔽的后门,一般用户很难发现系统中隐藏账户的存在,因此危害性很大,本文就对隐藏账户这种黑客常用的技术进行揭密。
在隐藏系统账户之前,我们有必要先来了解一下如何才能查看系统中已经存在的账户。在系统中可以进入命令提示符,控制面板的计算机管理,注册表中对存在的账户进行查看,而管理员一般只在命令提示符和计算机管理中检查是否有异常,因此如何让系统账户在这两者中隐藏将是本文的重点。
一、命令提示符中的阴谋
其实,制作系统隐藏账户并不是十分高深的技术,利用我们平时经常用到的命令提示符就可以制作一个简单的隐藏账户。
点击开始→运行,输入CMD运行命令提示符,输入netuserpiao$123456/add,回车,成功后会显示命令成功完成。接着输入netlocalgroupadministratorspiao$/add回车,这样我们就利用命令提示符成功得建立了一个用户名为piao$,密码为123456的简单隐藏账户,并且把该隐藏账户提升为了管理员权限。
我们来看看隐藏账户的建立是否成功。在命令提示符中输入查看系统账户的命令netuser,回车后会显示当前系统中存在的账户。从返回的结果中我们可以看到刚才我们建立的piao$这个账户并不存在。接着让我们进入控制面板的管理工具,打开其中的计算机,查看其中的本地用户和组,在用户一项中,我们建立的隐藏账户piao$暴露无疑。
可以总结得出的结论是:这种方法只能将账户在命令提示符中进行隐藏,而对于计算机管理则无能为力。因此这种隐藏账户的方法并不是很实用,只对那些粗心的管理员有效,是一种入门级的系统账户隐藏技术。
二、在注册表中玩转账户隐藏
从上文中我们可以看到用命令提示符隐藏账户的方法缺点很明显,很容易暴露自己。那么有没有可以在命令提示符和计算机管理中同时隐藏账户的技术呢?答案是肯定的,而这一切只需要我们在注册表中进行一番小小的设置,就可以让系统账户在两者中完全蒸发。
1、峰回路转,给管理员注册表操作权限
在注册表中对系统账户的键值进行操作,需要到HKEY_LOCAL_MACHINE\SAM\SAM处进行修改,但是当我们来到该处时,会发现无法展开该处所在的键值。这是因为系统默认对系统管理员给予写入DAC和读取控制权限,没有给予修改权限,因此我们没有办法对SAM项下的键值进行查看和修改。不过我们可以借助系统中另一个注册表编辑器给管理员赋予修改权限。
点击开始→运行,输入regedt32.exe后回车,随后会弹出另一个注册表编辑器,和我们平时使用的注册表编辑器不同的是它可以修改系统账户操作注册表时的权限(为便于理解,以下简称regedt32.exe)。在regedt32.exe中来到HKEY_LOCAL_MACHINE\SAM\SAM处,点击安全菜单→权限,在弹出的SAM的权限编辑窗口中选中administrators账户,在下方的权限设置处勾选完全控制,完成后点击确定即可。然后我们切换回注册表编辑器,可以发现HKEY_LOCAL_MACHINE\SAM\SAM下面的键值都可以展开了。
提示:上文中提到的方法只适用于WindowsNT/2000系统。在WindowsXP系统中,对于权限的操作可以直接在注册表中进行,方法为选中需要设置权限的项,点击右键,选择权限即可。
2、偷梁换柱,将隐藏账户替换为管理员
成功得到注册表操作权限后,我们就可以正式开始隐藏账户的制作了。来到注册表编辑器的HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names处,当前系统中所有存在的账户都会在这里显示,当然包括我们的隐藏账户。点击我们的隐藏账户piao$,在右边显示的键值中的类型一项显示为0x3e9,向上来到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\处,可以找到000003E9这一项,这两者是相互对应的,隐藏账户piao$的所有信息都在000003E9这一项中。同样的,我们可以找到administrator账户所对应的项为000001F4。
将piao$的键值导出为piao$.reg,同时将000003E9和000001F4项的F键值分别导出为user.reg,admin.reg。用记事本打开admin.reg,将其中F值后面的内容复制下来,替换user.reg中的F值内容,完成后保存。接下来进入命令提示符,输入netuserpiao$/del将我们建立的隐藏账户删除。最后,将piao$.reg和user.reg导入注册表,至此,隐藏账户制作完成。
3、过河拆桥,切断删除隐藏账户的途径
虽然我们的隐藏账户已经在命令提示符和计算机管理中隐藏了,但是有经验的系统管理员仍可能通过注册表编辑器删除我们的隐藏账户,那么如何才能让我们的隐藏账户坚如磐石呢?
打开regedt32.exe,来到HKEY_LOCAL_MACHINE\SAM\SAM处,设置SAM项的权限,将administrators所拥有的权限全部取消即可。当真正的管理员想对HKEY_LOCAL_MACHINE\SAM\SAM下面的项进行操作的时候将会发生错误,而且无法通过regedt32.exe再次赋予权限。这样没有经验的管理员即使发现了系统中的隐藏账户,也是无可奈何的。
三.专用工具,使账户隐藏一步到位
虽然按照上面的方法可以很好得隐藏账户,但是操作显得比较麻烦,并不适合新手,而且对注册表进行操作危险性太高,很容易造成系统崩溃。因此我们可以借助专门的账户隐藏工具来进行隐藏工作,使隐藏账户不再困难,只需要一个命令就可以搞定。
我们需要利用的这款工具名叫HideAdmin,下载下来后解压到c盘。然后运行命令提示符,输入HideAdminpiao$123456即可,如果显示CreateahidenAdministratorpiao$Successed!,则表示我们已经成功建立一个账户名为piao$,密码为123456的隐藏账户。利用这款工具建立的账户隐藏效果和上文中修改注册表的效果是一样的。
四、把隐藏账户请出系统
隐藏账户的危害可谓十分巨大。因此我们有必要在了解了账户隐藏技术后,再对相应的防范技术作一个了解,把隐藏账户彻底请出系统
1、添加$符号型隐藏账户
对于这类隐藏账户的检测比较简单。一般黑客在利用这种方法建立完隐藏账户后,会把隐藏账户提升为管理员权限。那么我们只需要在命令提示符中输入netlocalgroupadministrators就可以让所有的隐藏账户现形。如果嫌麻烦,可以直接打开计算机管理进行查看,添加$符号的账户是无法在这里隐藏的。
2、修改注册表型隐藏账户
由于使用这种方法隐藏的账户是不会在命令提示符和计算机管理中看到的,因此可以到注册表中删除隐藏账户。来到HKEY_LOCAL_MACHINE\SAM\SAM\Domains\Account\Users\Names,把这里存在的账户和计算机管理中存在的账户进行比较,多出来的账户就是隐藏账户了。想要删除它也很简单,直接删除以隐藏账户命名的项即可。
3、无法看到名称的隐藏账户
如果黑客制作了一个修改注册表型隐藏账户,在此基础上删除了管理员对注册表的操作权限。那么管理员是无法通过注册表删除隐藏账户的,甚至无法知道黑客建立的隐藏账户名称。不过世事没有绝对,我们可以借助组策略的帮助,让黑客无法通过隐藏账户登陆。点击开始→运行,输入gpedit.msc运行组策略,依次展开计算机配置→Windows设置→安全设置→本地策略→审核策略,双击右边的审核策略更改,在弹出的设置窗口中勾选成功,然后点确定。对审核登陆事件和审核过程追踪进行相同的设置。
4、开启登陆事件审核功能
进行登陆审核后,可以对任何账户的登陆操作进行记录,包括隐藏账户,这样我们就可以通过计算机管理中的事件查看器准确得知隐藏账户的名称,甚至黑客登陆的时间。即使黑客将所有的登陆日志删除,系统还会记录是哪个账户删除了系统日志,这样黑客的隐藏账户就暴露无疑了。
5、通过事件查看器找到隐藏帐户
得知隐藏账户的名称后就好办了,但是我们仍然不能删除这个隐藏账户,因为我们没有权限。但是我们可以在命令提示符中输入netuser隐藏账户名称654321更改这个隐藏账户的密码。这样这个隐藏账户就会失效,黑客无法再用这个隐藏账户登陆。