当电脑被黑客入侵后,通常会留下后门程序,方便下一次入侵。下面以一些常见的后门程序创建为例,介绍后门程序的功能与防范措施。
放大镜(magnifty.exe)是Window系统集成的一个小工具,它是为方便视力障碍用户而设计的。在用户登录系统前可以通过快捷键Win+U调用该工具,攻击者用精心构建的magnify.exe同名文件替换放大镜程序,从而达到控制服务器的目的。
通常情况下,攻击者通过构造的magnify .exe程序创建一个管理员账户, 然后登录系统。有时会通过其直接调用命令提示符( cmd.exe)或者系统shell (explorer.exe )创建。需要说明的是,这样调用的程序都是system权限,即系统最高权限。不过,为防止管理员在运行放大镜程序时发现破绽,攻击者一般通过该构造程序完成所需的操作后,会运行真正的放大镜程序,以蒙骗管理员。
1.构造批处理脚本
@echoof
Net user bdtest$ test /add
Net localgroup administrator bdtest /add
%Windir%system32nagnify.exe
exit
将上面的脚本程序保存为magnify.bat,其作用是创建一个密码为test的管理员账户bdtest$,最后运行改名后的放大镜程序nagnify.exe
2.文件格式转换
因为批处理文件magnify bat的后缀是bat,必须要将其转换为同名的exe文件才可以通过快捷键Win+U调用。攻击者般可以利用WinRar构造一个自动解压的exe压缩文件, 当然也可以利用bat2com.、com2exe进行文件格式的转换。
打开命令行,进入bat2com、com2exe工具所在的目录,然后运行命令bat2commagnify.bat将magnify. bat转换成magnify.com,继续运行命令com2exemagnifty com将magnify .com转換成magnify. exe,这样就把批处理文件转换成和放大镜程序同名的程序文件了。
3.放大镜文件替换
下面用构造的magnify exe替换同名的放大镜程序文件。由于windows对系统文件的自我保护,因此不能直接替换,不过Windows提供了一个命令replace.exe,通过它可以替换系统文件。另外,由于系统文件在%Windir%system32llcache中有备份,为了防止文件替换后又重新还原,首先要替换该目录下的magnify.exe文件。假设构造的magnify.exe文件在%Windir%目录下,可以通过一个批处理实现文件的替换。
@echooff
Copy %Windir%system32 d11cache magnify.exe nagnify.exe
Copy %Windir%system32 magnify.exe nagnify.exe
replace.exe %Windir% magnify.exe %Windir%system32 dllcache
replace.exe %Windir%magnify.exe %Windir%system32
exit
在上面的批处理文件中,首先将放大镜程序备份为nagnify.exe,然后用同名的构造程序将其替换。
4.攻击利用
当完成上述操作后,一个放大镜后门就做成了。攻击者通过远程桌面连接服务器,在登录界面窗口按下快捷键Win+U,选择运行其中的"放大镜",即可在服务器上创建一个管理员用户bdtest并打开放大镜工具,然后攻击者就通过该帐户登录服务器。当然,攻击者在断开登录前会删除所有与该账户相关的信息,以防被管理员发现。
5.防范措施:
进入%Windir%system32l查看magnify.exe的文件图标是否是原来的放大镜程序的图标,如果不是的话,极有可能被植入了放大镜后门。当然,有的时候攻击者也会将其文件图标更改为和原放大镜程序的图标一样。此时可以查看magnify .exe文件的大小和修改时间。如果这两项有一项不符,就需要慎重检查了。可以先运行magnify .exe,然后运行lusrmgr.msc,查看是否有可疑的用户。如果确定服务器被放置了放大镜后门,首先要删除该文件,然后恢复正常的放大镜程序。当然,也可以做得更彻底一些,用一个无关紧要的程序替换放大镜程序。
与放大镜后门类似的还有"粘滞键" 后门,按Shit键五次可以启动粘滞键功能,其利用和防范措施与放大镜后门类似,只是将magnity .exe换成了sethc exe。
相对来说,组策略后门更加隐蔽。向注册表中添加相应键值以实现随系统启动而运行时木马常用的伎俩,也为大家熟知。其实,在组策略中也可以实现该功能,还可以实现在系统关机时进行某些操作。这是通过组策略的" 脚本(启动/关机)"项来实现。具体位置在"计算机配置——Windows设置"项下。因为其极具隐蔽性,常常被攻击者用来做服务器后门。
只要攻击者获得了电脑的控制权,就可以通过这个后门实施对主机的长期控制。它可以通过这个后门运行某些程序或者脚本,比如创建一个管理员用户。
1.创建脚本
创建一个批处理文件add.bat,名为bdtest$ ,密码为test。
@echo off & net user bdtest$ test /add && netlocalgroup administratrators gbtes$t /add & exit
2.后门利用
在"运行"对话框中输入gpedit.msc,定位到"计算机配置——Windows设置——脚本(启动/关机)",双击右边窗口的"关机",在其中添加add bat,可在系统关机时创建bdtest用户。一般的用户根本不知道系统中有一个隐藏用户,就算看见并且删除了该帐户,当系统关机时又会创建该帐户。所以说,如果用户不知道组策略中的这个地方,那一定会感到莫名其妙。
其实,对于组策略中的这个"后门"还有很多利用方法。攻击者通过它来运行脚本或者程序,嗅探管理员密码等。当获取了管理员的密码后,就不用在系统中创建帐户了,可以直接利用管理员帐户远程登录系统。因此它也是"双刃剑"。当用户因被攻击而莫名其妙时,说不定攻击者就是通过它实现的。
后门防范操作是很重要的,使用组策略后门的攻击者利用了管理员的疏忽心理,因为组策略中的"(启动/关机)脚本"项往往被大家忽略,有些管理员甚至不知道组策略中的这个选项。防范这类后门,也非常简单,只需打开组策略工具,定位到"脚本(启动/关机)"项下进行检查。当然也可以进入system32GroupPolicymachineScriptsStartup和GroupPolicyMachineScriptsShutdown目录检查是否有可疑的脚本。
Rootkit是一个或者多个用于隐藏、控制系统的工具包,该技术被越来越多地应用于一些恶意软件中,当然攻击者也往往通过它来制作后门。
1.创建一般帐户
在命令提示符( cmd.exe )下输入命令net user bdtest$ test /add。
通过上面的命令建立了一个用户名为bdtest$,密码为test的普通用户。为了实现初步隐藏,在用户名的后面加了$符号,这样在命令提示符下通过netuser是看不到该用户的,当然在"本地用户和组"及其注册表的SAM项下可以看到。
2.帐户非常规提权
下面通过注册表对bdtest$帐户进行提权,使其成为一个比较隐蔽(在命令行和" 本地用户和组"中看不到)的管理员用户。
打开注册表编辑器,定位到HKEY_ LOCAL_ MACHINESAMSAM项。由于默认情况下管理员组对SAM项是没有操作权限的,因此要赋权。右击该键值,在弹出的快捷菜单中执行"权限"命令,然后添加administrators组,赋予其"完全控制"权限,最后刷新注册表,就能进入SAM项下的相关键值了。
定位到注册表HKEY_LOCAL_MACHINESAMSAMDomainsAccountUsers项,单击000001F4注册表项,双击其右键的F键值,复制其值,然后单击00000404注册表项(该项不一定相同),双击其右侧的F键值,用刚才复制的键值进行替换键值。
分别导出bdtest$、00000404注册表项为1.reg和2.reg。在命令行下输入命令net user bdtest$/del删除bdtes$用户,然后分别双击1.reg和2.reg导入注册表,最后取消administrators对SAM注册表项的访问权限。这样就把bdtest$用户提升为管理员,并且该用户非常隐蔽,除了注册表,在命令下及"本地用户和组"是看不到的。这样隐藏的超级管理员用户是入侵者经常使用的,对于一个水平不是很高的管理员来说,很难发现这样的用户。这样的用户不属于任何组,但有管理员权限,是可以进行登录的。
3.高级隐藏账户
前面创建的botest$用户虽然比较隐蔽,但是通过注册表可以看见。下面利用RootKit工具进行高级隐藏,即在注册表中隐藏该用户。
可用的RootKit工具非常多。以Hackerdefende为例进行演示,它是个工具包,其中包含很多工具,隐藏注册表键值只需其中的两个文件: hxdef100.exe和hxdef100.ini其中hxdef100.ini是配置文件,hxde100 exe是程序文件。打开hxdef100.in文件, 定位到[HiddenRegKeys]项下,添加要隐藏的注册表键值bdtest$和00000404即用户在注册表的项,然后保存退出。
运行hxdef100. exe,可以看到bdtest$用户在注册表中的键值"消失"了,同时这两个文件也"不见"了。这样就利用RootKit实现了高级管理员用户的彻底隐藏,管理员是无从知晓在系统中存在一个管理员用户的。
4.防范措施:
通过RootKit创建的后门是极其隐蔽的,除非清除RootKit,不然用其创建的管理员用户永远不可能被管理员发现。下面以清除上面的Hackerdefende为例介绍防范措施。
(1)驱动级的扫描
RootKit往往是驱动级别的,因此它比一般的应用程序更加靠近底层,清除起来更加棘手。清除该进程时扫描是必要的。RootKitHookAnalyzer是一款Rookit分析查询工具, 利用它可以扫描分析出系统中存在的RooKit程序。该工具是英文程序,安装并运行,单击界面下方的Analyze按钮进行扫描分析,列出系统中的RooKit程序,勾选Showhookedservicesonly复选框,可以筛选出RooKitservices。当然,类似的工具还有很多,用户可以根据自己的需要进行选择。
(2)查看隐藏进程
RootKit的程序进程往往是隐藏或者嵌入的,通过Windows的"任务管理器"是无法看到的。可以利用强大的进程工具lceSword (冰刃)查看。运行lceSword,单击"进程" 按钮,就可以列出当前系统中的进程,其中红色显示的是可疑进程,包括hxdef100.exe, 这是刚才运行的RootKit。 在该进程上右击,在弹出的快捷菜单中执行"结束"命令。这时hxdef100 exe和hxdef100.ini文件出现了,再刷新并查看注册表,刚才消失的两个键值又重现了。
(3)专业工具查杀
利用lceSword对RooKit进行分析并结束其进程是反RooKit的一种有效方法,但有的时候冰刃并不能分析出RootKit,因此需要比较专业的工具,如卡巴斯基、超级巡警等。
TeInet是命令行下的远程登录工具,不过在服务器管理时使用不多,也常为管理员所忽视。攻击者在控制一台服务器后,如果开启"远程桌面"进行远程控制,非常容易被管理员察觉,但是启动TeInet进行远程控制却不容易被察觉。TeInet的默认端口是23,如果开启,很容易被扫描到,因此攻击者会更改TeInet端口,从而独享该服务器的控制权。
1.修改端口
本地修改电脑telnet端口的方法是:执行"开始运行"命令,输入cmd,打开命令提示符,然后运行命令tintadmn config port=800 ( 800是修改后的telnet端口,为了避免端口冲突不用设置成已知服务的端口)。当然,也可以远程修改服务器的Telnet端口,在命令提示符下输入命令:
tlntadmn config \ 192.168.1.10 port=800 -u bdtest$ -P test
\192. 168.1.10对方IP,port=800要修改为的telnet端口,-u指定对方的用户名,-D指定对方用户的密码。
2.远程登录
攻击者在本地运行命令提示符(cemd.exe),输入命令telnet 192.168.1.10 800,然后输入用户名及其密码,记录Telnet到服务器。
3.防范措施:
防范Telnet后门的方法非常简单,可以通过tlntadmn config port=n命令更改其端口。更彻底的措施是: 运行services.msc,打开服务管理器,禁用Telnet服务。
这类后门是攻击者在控制了服务器之后,并不创建新的帐户,而是在服务器上安装嗅探工具以窃取管理员的密码。由于此类后门并不创建新的帐户,而是通过嗅探获取的管理员密码登录系统,因此隐蔽性极高。如果管理员的安全意识不高并缺乏足够的安全技能,根本发现不了。
1.安装嗅探工具
攻击者将相应的嗅探工具上传或者下载到对方电脑,然后安装即可。需要说明的是,这些嗅探工具的体积一般很小,并且功能单一,但是往往被做成驱动形式的,所以隐蔽性极高,很难发现,也不易清除。
2.获取管理员密码
嗅探工具对系统进行实时监控。当管理员登录服务器时,其密码也就被窃取,然后嗅探工具会将管理员密码保存到一个txt文件中。当攻击者下一次登录服务器后,就可以打开该txt文件并获取管理员密码。此后如果登录服务器,就不用重新创建帐户,而是直接用合法的管理员帐户登录服务器。如果服务器是一个Web,攻击者就会将该txt文件放置到某个Web目录下,然后在本地就可以浏览查看该文件了。
3.防范措施:
嗅探后门攻击者以正常的管理员帐户登录服务器,因此很难发现。不过,任何入侵都会留下蛛丝马迹,可以启用组策略中的"审核策略",对用户的登录情况进行记录,然后通过事件查看器查看是否有可疑的非法登录。一个高明的攻击者通常会删除或者修改系统日志,因此最彻底的措施是:清除安装在服务器上的嗅探工具,然后更改管理员密码。