标题：空格幽灵病毒
病毒简介
该病毒是一个仿图片的病毒，实质是一个远程控制程序。用户一旦打开查看此“图片”，远控程序就会在计算机后台悄然运行，为黑客打开便利之门。黑客可以 像控制自己电脑一样控制中毒电脑，这可能会导致用户隐私信息泄漏和虚拟财产被盗，甚至黑客可以利用其组建僵尸网络，对目标计算机进行攻击。这个病毒的特点 是使用空格键为启动快捷键，每按一次空格，就激活病毒程序运行，空格幽灵由此得名。病毒外观如下图，可以看出病毒外观极具迷惑性。
  
样本信息
2.1 母体信息
文件名：YqbYbx.exe
类  型：EXE程序
大  小：52,224 字节
文件名：YqbYbx.jpg
类  型：jpg空白图片
大  小：396,445 字节
2.2 释放文件信息
文件名：twain32.dll
类  型：DLL文件
大  小：393,382 字节
路 径: %SystemRoot%\ twain32.dll
文件名：.lnk
类  型：快捷方式
大  小：424 字节
路 径：%开始菜单目录%\ .lnk 和 %我的文档目录%\ .lnk
文件名:  .vbs
类 型:  vbs脚本文件
大 小：139 字节
路 径：%我的文档目录%\ .lnk
2.3 内存dump文件信息
文件名：Region00E40000-00E91000.dmp
类 型：PE内存dump文件
大 小：331,776 字节
母体行为分析
3.1 母体行为概述
该母体并没有太大的危险性行为，其作用更贴切来说是作为一个Loder，作为病毒程序运行的垫脚石和对迷惑用户感官判断进行迷惑。
3.2 母体YqbYbx.exe行为分析
3.2.1 解密释放出病毒DLL文件：twain32.dll
a) 打开同文件夹下YqbYbx.jpg文件。
b) 定位到文件头偏移 0xBF7 位置处，读取 0x600A6 字节，通过简单的异解密出一个PE文件数据。
c) 将这段数据保存成一个DLL文件，路径在C:\WINDOWS\twain32.dll。
d) 利用rundll32.exe带参数 fuck007启动twain32.dll
启动格式：rundll32.exe "C:\WINDOWS\twain32.dll" fuck007
3.2.2 打开图片YqbYbx.jpg迷惑用户
a) 打开图片YqbYbx.jpg（此图片的文件已经损坏，打开是一个空白的图片）
释放文件行为分析
4.1 释放文件行为概述
释放文件有4个，一个DLL，两个个快捷方式和一个vbs程序。Vbs程序为病毒的再次启动提供多一个路径：通过快捷键启动。DLL文件就是在内存中生成病毒代码，连接远程控制服务器端，和远程控制服务器端交流信息。
4.2 twain32.dll行为分析
4.2.1 再内存进行病毒代码构造
运行的过程中，在内存分配了一个长度为 331776 字节的空间，通过大量数据解密，在这个空间里构造了一个DLL文件结构，然后跳转到这个结构中的代码来运行（已经dump出来了在压缩包中），这个DLL文件是一个远控。并且，远控服务器端域名作为参数传递进去。
（针对远控的功能在第五章：远控功能分析）
4.3 .vbs行为分析
4.3.1 vbs脚本内容及其解析
SET objShell=Wscript.CreateObject("Wscript.Shell")
On error resume Next
iReturnCode=objShell.Run("rundll32.exe twain32.dll Run",0,TRUE)
此脚本就是利用rundll32.exe 来启动twain32.dll，其执行的时机在下面.lnk文件的分析里
4.4 .lnk行为分析
如下图，是.lnk文件的属性，可以看出，这个快捷方式可以随着空格“space”启动
  五 远控功能分析
5.1 远控功能概述
这是一个功能比较完善的远程控制客户端，可以为服务器端提供查看本机信息，查看本机注册表，查看本地硬盘，上传、下载文件，运行程序，结束程序，及其3389远程桌面多用户登陆，记录键盘等一系列远程功能。
5.2与服务器端建立连接
(1) 查询域名的IP地址xxx
(2) 建立TCP连接到xxx地址的1234端口
(3) 建立连接后发送本机系统消息进行上线确认
(关于获取本机系统详细信息在5.3)
5.3获取本机系统详细信息
(1) 通过HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\~MHz
获得CPU的主频
(2) 通过HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\ProcessorNameString 获得CPU的型号
(3) 通过 API函数 GetSystemInfo 获得系统版本信息
(4) GetDriveTypeA 检测从A盘到Z盘是否为可用盘，若果是可用盘，
(5) GeDiskFreeSpaceExA 获得每个盘的大小和可用空间
(6) 打包成一段数据包，发送给服务器端，作为上线信号
5.4记录键盘消息
(1) 接收到服务端的键盘消息指令
(2)  通过自己建立一个键盘表(全部键盘信息)
(3)  不断循环使用API函数GetKeyState测试每个键盘是否按下
(4) 将键盘信息保存到 “病毒路径\keylog.dat” 文件中
(5)  调用文件上传功能把keylog.dat上传
(6) 删除keylog.dat
5.5远程命令行功能
(1) 接收到服务端的远程命令行指令
(2) 后台运行cmd.exe
(3) 新建一个匿名管道，绑定到cmd.exe的输入输出
(4) 通过Tcp连接发送和接收cmd命令，让控制端自由操作
5.6查看进程列表功能，结束进程功能
(1) 接收到服务端的查看进程列表的功能
(2) 利用进程系统快照遍历系统进程
(3) 发送系统快照到服务器
(4) 如果服务器要求结束某进程，先使用（SeDebugPrivilege、LookupPrivilegeValueA、AdjustTokenPrivileges获得系统的权限）再用API函数TerminateProcess结束进程，如果无法结束，则调用调用系统的taskkill.exe /f /pid %d来结束进程。
5.7 DOS攻击功能
(1) 接收到服务端的DDOS攻击指令
(2) 接收到要攻击的IP地址或网站
(3) 创建一个线程，死循环的访问对应的网站或死循环的对IP地址发出连接邀请
(4) 直到收到了结束攻击的指令，才结束刚才创建的攻击进程。
5.8使电脑无法正常关机的功能
(1) 接收到服务端的使电脑无法正常关机的指令
(2) 使用API函数PrivilegeOpera设置SeShutdownPrivilege的属性使得电脑无法正常关机。
(3) 直到收到解除指令才还原设置
5.9设置系统成为可以多用户使用的3389端口远程桌面
(1) 接收到服务器端的设置远程桌面的消息
(2) 对如下注册表进行操作
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon中
KeepRASConnections设置为REG_SZ值为1
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server中
fDenyTSConnections设置为REG_DWORD值为0
HKLM\SYSTEM\CurrentControlSet\control\terminal server\Licensing中
EnableConcurrentSessions设置为REG_DWORD值为1
HKLM\SYSTEM\CurrentControlSet\Services\TermService\Parameters中
serviceDll设置为REG_EXPAND_SZ值为%SystemRoot%\system32\termsrvhack.dll
(3) 用文件接收功能，接收termsrvhack.dll到文件到C盘根目录下
(termsrvhack.dll这是网上广为流传的用户多用户3389的DLL文件)
(3) 复制c:\termsrvhack.dll到c:\windows\system32\dllcache\termsrvhack.dll
(4) 复制c:\termsrvhack.dll到c:\windows\system32\termsrvhack.dll
6.0 其他功能
其他远控常见功能，如上传下载文件，远程运行文件，删除文件，清除系统记录，查看系统服务，修改IE主页等功能，不做说明。