2

样本下载

样本原文件 不见了
我的分析过程包括提取的文件以及idb等 不见了
提示:请勿实体机分析

样本信息

文件名称:样本一.zip,解压后有两个快捷方式

显示隐藏文件后,总共有6个文件

依次查看这几个文件,bbs.bmp就是一张空白图,nvwsrds.dll是自写的一个动态库,temp中包含一堆数据,png.bat中内容是

(1). mkdir "%programfiles%"-创建目录
(2). rundll32.exe nvwsrds.dll,avmode -fn wmmmnbjhgigh-使用nvwsrds.dll中的avmode函数,并且传入参数wmmmnbjhgigh

IDA加载nvwsrd.dll,定位到avmode函数,静态分析不友好,因为程序包含大量花指令,并且字符串时动态解密的

释放文件

nvwimg.dll
创建目录 C:\Users\py\AppData\Roaming\avmode,然后创建文件
C:\Users\py\AppData\Roaming\avmode\nvwimg.dll,最后将nvwseds.dll中的内容拷贝到nvwimg.dll中

temp
创建文件 C:\Users\py\AppData\Roaming\avmode\temp,将原目录下的Temp文件内容复制到C:\Users\py\AppData\Roaming\avmode\temp

decrypt
当拷贝nvwimg.dll函数之后程序会加载C:\....\avmode\nvwimg.dll,并且退出当前的
nvwsrds.dll,进入nvwimg.dll之后程序会运行到解密temp的区域,首先读取temp文件到内存,然后将数据以异或再相加的方式解密,解密之后程序直接跳转到解密区域继续执行

avmode.inf
之后程序调用解密后PE程序的Run函数,在Run函数中,创建文件
C:\Users\py\AppData\Roaming\avmode\avmode.inf,并且写入数据

具体写入的数据为:

[Version]
Signature="$CHICAGO$"
Provider=t@t.com, 2002
[DefaultInstall]
; DelReg=run_DelReg
AddReg=run_AddReg
[run_DelReg]
[run_AddReg]
hkcu,"Software\Microsoft\Windows\CurrentVersion\Run","Update",,"rundll32.exe ""C:\Users\py\AppData\Roaming\avmode\Bitavmode.dll"",avmode"
[Strings]

网络特征

获取IP地址(1)
使用InternetOpenA初始化WinINet,InternetOpenUrlA连接到ip查询网站ip38.com

获取IP地址(2)
使用InternetOpenUrlA访问http://t.qq.com/xiaokanrenshe...,然后InternetReadFile读取返回的页面代码,strtok以”IP=”为分割字符分割源码字符串,从而得到IP地址

建立套接字并通信
和上面得到的IP地址建立套接字连接与之通信,并建立线程后台接收数据

注册表变化

HKCU\Software\Microsoft\Windows\CurrentVersion\Run
快捷方式2会调用LaunchINFSectionEx函数读取avmode.inf添加注册表键值

还有很多写注册表的操作,但是需要服务端发送命令再执行相应的操作,详见功能描述

其它行为

创建互斥体
使用CreateMutex创建互斥体

多次调用ShellExcute
在nvwsrds.dll中调用两次ShellExcute函数来运行rundll32.exe,第一次传入打开图片的函数来打开bbs.bmp,具体参数为:”rundll32.exe shimgvw.dll,ImageView_Fullscreen c:\users\py\desktop\图片\bbs.bmp”,第二次运行加载C盘nvwimg.dll中的avmode函数

在Run函数中调用一次ShellExcute来打开pdf.bmp

开启线程对抗杀软
枚举系统进程,通过字符串比较,判断是否含有杀毒进程

开启线程发送本机系统信息
在线程中会获取主机名,操作系统版本信息,套接字信息,当前系统信息,磁盘类型信息,磁盘大小容量,本地时间等等,某些信息或通过查询注册表项获得,然后发送给服务端

远控功能描述

本地程序会根据服务端传来的数据,执行相应的操作

获取系统信息
使用GetVolumeInformation,GetLogicalDriveStrings,GetDiskFreeSpaceEx,GetDriveTypeA等API获取磁盘相关信息

截屏
使用GetDesktopWindow,GetDC获取设备上下文,GetSystemMetrics获取主屏宽高,CreateCompatibleDC,CreateDIBSection,SelectObject创建位图,SetRect,BitBlt重写位图实现截屏功能

开启摄像头
创建线程并使用capGetDriverDescription,capCreateCaptureWindow获取摄像头信息,之后使用IsWindow,SendMessage实现摄像头监控,使用ICSendMessage,
ICSeqCompressFrameStart压缩捕获的视频数据,后续发送给服务端

监控键盘输入
先写了一个完整的窗口程序包括注册窗口类,创建窗口,刷新窗口以及窗口回调函数,在窗口回调函数中,使用GetForegroundWindow监控最前端的窗口并获取窗口输入框文本,使用GetKeyState获取按键状态,最后将获取的输入数据写入C:\Windows\wininfo.dat

之后会有个线程读取wininfo.dat并发送给服务端

录音
建立线程,在线程中使用waveInGetNumDevs,waveInPrepareHeader,waveInOpen,
waveInStart打开录音设备,录音后保存在文件中并发送到服务端

远程调用cmd
使用CreatePipe创建匿名管道,然后创建cmd.exe的进程,用管道完成进程间的通信(因为远控端只能控制这个进程需要管道与本进程外的进程通信)

远程关机
设置shutdown的权限后,调用ExitWindowsEx实现远程关机

下载程序并执行
调用火狐或者IE之类的浏览器,打开特定的网页(网址由参数给定),然后InternetOpenUrlA下载,InternetReadFile读取下载数据,使用WriteFile写入文件,最后CreateProcess创建进程运行下载文件

清空系统日志
使用OpenEventLogA,ClearEventLogA清理系统日志

开启IE浏览器
打开注册表” HKEY_CLASSES_ROOT\Applications\iexplore.exe\shell\open\command”获取value,即得到IE的完整路径,然后CreateProcess创建进程运行

获取所有进程ID
CreateToolhelp32Snapshot创建进程快照,Process32First,Process32Next遍历进程然后获取进程信息包括进程名进程ID发送给服务端

获取输入框文字
使用EnumWindows配合WindowText枚举所有窗口并获得编辑框文字,然后直接发送给服务端

开启服务
使用OpenSCManagerA,OpenServiceA,StartServiceA以及CloseServiceHandle开启任意服务

写注册表
写注册表:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService
Value:Start=2
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
Value:Keeprasconnect=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
Value:Fdenytsconnect=0
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Licensing Core
Value:Enableconcurre=1
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService\Parameters
Value:Servicedll=%SystemRoot%system32termsrvhack.dll

弹窗
使用MessageBox弹窗

控制执行Userinit.exe
枚举系统进程,当不存在explorer.exe是,调用cmd执行Userinit.exe

远程关闭资源管理器
枚举系统进程关闭explorer.exe资源管理器

总结

该样本是一个远控木马,两个快捷方式是为了释放文件到C盘并且添加注册表启动,核心的木马功能代码隐藏得很深,需要加载nvwsrds.dll释放运行nvwimg.dll,然后在nvwimg.dll中加载temp数据解密到内存然后跳转到解密后的代码区域。在核心木马代码中首先非常隐蔽的获取了远控端的IP地址然后与之建立套接字,再开启线程接收远控端发来的指令从而执行对应的操作,最后还开线程清理系统常见的杀毒软件进程从而实现长久驻留!

该木马实现的功能有:获取本机系统信息(包括磁盘类型,磁盘容量,文件属性,系统版本,本地时间等),截取当前屏幕,开启摄像头,监控键盘输入,录音,遍历本地可执行文件的所有模块(module),远程调用cmd,远程关机,远程下载任意文件到本机,清空系统日志,打开IE浏览器,写注册表关键位置,创建可执行文件并运行,发送本机所有进程名及进程ID,枚举所有窗口程序的输入框获取输入文字,开启任意服务,获取特定进程的空闲时间,弹窗,远程执行Userinit.exe,远程关闭资源管理器explorer.exe

END


无限期停更
111 声望22 粉丝