2004年12月14日,Cytkk成功取得了北京某广告公司创意部门计算机的Shell,准备窃取某个重要商业资料。在搜寻到的一份项目进度报告书中,他发现原本需要的创意设计被推迟到两天后由设计部门提交。Cytkk只得想办法在此台计算机上留下后门,以待两天后重回旧地守株待兔……
完美后门
因为这是笔大买卖,所以不容有闪失。作为商业间谍的Cytkk知道,信誉非常重要。
凭借着职业的敏锐感,Cytkk开始飞快思索后门的“人选”。普通的木马程序当然是不能用的,因为防病毒软件可不是吃素的……正在难于抉择之际,一款商业软件的名字跃然闪现在Cytkk的脑海——Radmin!一款商业化的远程控制软件。
既然Radmin有着商业软件的外衣,那自然杀毒软件也就不会与它为难!但Radmin虽说不会被查杀,但却有着先天的不足——服务端运行后在任务栏有图标显示,且服务端由3个文件组成(1个EXE文件,2个DLL文件),需要人工在服务端填写口令才可以正常连接并操控,而且最令人头痛的是服务端不具备自启动功能。
想到这些,Cytkk眉头微皱,但凭借着多年的技术敏锐感,一款改造后的Radmin服务端形象出现在脑海里,一个完美的木马后门:服务端由单一EXE文件组成,运行后无明显痕迹、无需人工干涉即可自动填写注册信息到注册表,添加自身到系统服务启动项……Cytkk就这么一边构想着,一边将鼠标移到了自己电脑的“开始”菜单上……
改造Radmin
1.Cytkk决定先去除Radmin在服务端运行后的任务栏标志。进入Radmin“服务端设置”中的“设置参数”(见图1),在“隐藏状态栏图标”前打上√,这样原本在服务端运行后会在状态栏有图标的弊端就剔除了。
2.然后根据自己的需要,更改连接端口号,设置成不常用的1986端口。其它地方可不作修改(值得注意的是“日志”选项,千万不要因为错选“保留记录文件”从而留下“罪证”),点击“确定”退出。
3.点选“设置密码”来设置连接时的密码******。
4.一切设置妥当后,Cytkk先在自己机子上安装了服务(因为Radmin工作原理的特殊性,配置信息并非记录在服务端程序内,而是在相关的注册表键值内)。待软件提示成功安装服务后,Cytkk打开注册表编辑器,找到:HKEY_LOCAL_MACHINESYSTEMRAdmin 键值,点击“导出注册表”并保存成单独的r_server.reg文件,用记事本打开后,发现其中内容如下(根据设置的不同,参数会略有出入):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINESYSTE
MRAdmin]
[HKEY_LOCAL_MACHINESYSTE
MRAdminv2.0]
[HKEY_LOCAL_MACHINESYSTE
MRAdminv2.0Server]
[HKEY_LOCAL_MACHINESYSTE
MRAdminv2.0Serveriplist]
[HKEY_LOCAL_MACHINESYSTE
MRAdminv2.0ServerParameters]
"NTAuthEnabled"=hex:00,00,00,00
"Parameter"=hex:9c,ee,06,f2,9b,05,13,f8,6e,66,9a,06,00,24,5b,4b(这里是连接密码!其它信息不影响操作,所以不需要掌握)
"Port"=hex:c2,07,00,00(连接服务端时用的端口)
"Timeout"=hex:0a,00,00,00
************************
"LogFilePath"="c:logfile.txt"
"FilterIp"=hex:00,00,00,00
"DisableTrayIcon"=hex:01,00,00,00(01表示隐藏系统右下角的图标,如改成00图标就会被显示)
"AutoAllow"=hex:00,00,00,00
"AskUser"=hex:00,00,00,00
"EnableEventLog"=hex:00,00,00,00
5.最后Cytkk麻利地在桌面新建了一个setup.bat批处理文件,在里面添加如下脚本:
@echo off
***********************(自动安装Radmin服务端)
regedit.exe -s %SystemRoot%system32
del %0
注意:文中代码后括号内的内容为注释,勿输入。
超级捆绑
由于Radmin并不是“木马型”监控软件,所以它的服务端是由r_server.exe、raddrv.dll、AdmDll.dll三个文件组成,而一般的“木马”服务端通常只有一个可执行文件。这是个比较麻烦的硬伤,但这难不倒Cytkk,他熟练地运行了一款名为“超级捆绑”的软件。
1.在界面点击右边白色图标,将Radmin服务端的三个文件添加进文件列表,捆绑方式设置成“按文件捆绑方式”,然后点击右边的“高级”按钮进入详细设置,在“常规”选项内(图2),将图标自定义为一个文本文件以增加更好的隐蔽性,文件大小则采用默认。
2.随后,Cytkk又将“属性”中的“只读”、“隐藏”和“系统”三项全部选中,这样就使捆绑后的文件更具隐蔽和安全性。
3.Cytkk点击“运行”标签,出现捆绑程序运行设置,将文件分解运行目录设置成 “在捆绑后的文件所在目录中运行”,窗口状态则设为“隐藏窗口”。
4.他将“参数”页面内的全部个性化设置选项前面的√取消。点击“确定”退回上级窗口,最后设置好捆绑文件输出路径。为了增强隐蔽性,可以将捆绑后的执行文件更名,Cytkk将它命名为svchosts.exe。
5.点击“合并”就完成了服务端的文件捆绑工作。现在的Radmin已经基本上从一款商业化的远程控制软件变成了一个不折不扣的木马了。
善后
到此,Cytkk认为整个改造工作差不多完成了,马上进行关键的收尾工作,即将编辑好的setup.bat以及最先导出的r_server.reg连同捆绑后的svchosts.exe这三个文件用WinRAR打包成自解压程序。
Cytkk进行了如下设置:在“高级自释放选项”中的“常规”选项内释放路径一栏填入“%systemroot%system32,在“释放后运行”里则需要把setup.bat(注意填写文件扩展名)写上,这样在解压后才会自动执行该批处理程序(如图3)。在“模式”选项里,把第一个模式设置成“全部隐藏”,覆盖方式设置成“跳过现有文件”,最后将“自释放模块”设置成DOS.SFX的DOS命令行RAR自释放格式(因为取得系统CMD Shell后默认的Windows图形控制台不能正常工作)。点击“确定”完成收尾工作。Cytkk最后检查了一下RAR自释放包内的注释(右边灰色窗口内),看到自解压脚本如下:
Path=%systemroot%system32
**************
Silent=1
Overwrite=2
所有工作已经完成,Cytkk满意地笑了笑,将制作好的打包程序上传到目标计算机运行,随后在自己机子上打开Radmin的客户端,输入目标机IP→连接→输入密码……(陈一天)
编后语:
整个改造过程看似简单,其实不然,说到底还是个思路问题。身边的很多事例只需要我们动动脑筋,利用一切可以利用的资源就可以实现化腐朽为神奇。例如本文中的批处理程序+自释放包的结合就完美地解决了添加注册表信息的问题,整个过程均在后台进行,在保证隐蔽性和安全性的前提下,巧妙地利用捆绑工具将原本分散的客户端整合到一起,最后又有机地将它们全部结合。这样,一个原本不具备木马功能的商业远程控制软件服务端,就被改造成了百分百木马。这种改造思路带来的启发是值得思考和学习的。
注:本文提供以上内容完全是为了让大家明白黑客攻击思路也好加强防范,并无其它目的,任何人不得利用文章中介绍的技术做违法的事情,同时因为有一定的危险性,所以对文章中的某些代码进行了处理,没有为大家提供完全正确的代码,敬请原谅。