一:目录
1 .示例信息
2 .行为分析
3 .样本分析
4 .详细分析
(2)样本信息
1 .样品名称:样品. exe (脱壳后为样品dump.exe ) )。
2.MD5:5b8bc 92296 c2fa 60 fecc 6316 ad 73 f1 e 2
3 .是否装壳:装壳UPX
4 .编译语言: visual C
三.行为分析
1 )确定注册表中的系统是否感染
2 )获取windows目录,实现定时器随机命名,将病毒副本隐藏在windows目录中
3 )删除示例文件
4 )创建服务,实现自我启发
5 )链接指定网址,执行后门行为。
四.详细分析
1 .用1.PEID检查外壳,发现用UPX添加了外壳,偏离了ESP的法则
2 .病毒首先链接currentcontrolservices和15654656,使用RegOpenKey打开此注册表。 目的是确定是否创建了此服务,即系统中是否存在病毒
3 .如果此服务不存在,病毒将运行405A25并打开服务管理器。 然后获取windows目录,比较c://windows,然后通过GetTick获取计数器,并将其exe文件复制到windows目录中。 目的是实现自身隐藏,然后调用CreateService创建病毒服务。 确定服务是否打开,然后打开服务。 最后,获取目录信息,然后获取当前进程信息。 目的是获取示例文件的信息,准备删除,然后调用shell x以cmd可执行文件/c del nul删除示例文件并设置进程优先级。 之后为了准备破坏
4。 如果此服务存在,请执行后续操作。
调用StartServiceCtrlDispatcher函数执行线程
6 .分析服务线程
1 )获取closesocket和SDetServiceStatus等函数的地址
2 )创建互斥体,确保系统中只有一个病毒实例运行
3 )创建线程,枚举资源列表并更新文件。
a )与之前的)2)一样,打开15654656注册表以确定病毒是否正常运行。
b )获取文件属性,创建文件,读取文件,替换文件资源
c )加载刚刚更换的资源文件hra%u.dll
4 )分析第一个线程:
a )获取网络主机名和地址
b )比较用户名和密码:
c )获取当前文件路径并将文件分别复制到c、d、e磁盘(E:g1fd.exe )【调用copyfile函数执行】
d )在c、d、e上获取当前时间并运行程序,否则将文件复制到f驱动器,休眠500ms后创建下一个线程。
5 )分析第二个线程:
a )初始化网络配置,休眠100ms,获取本地时间,将其转换为int类型,如果小于20030221,则一直运行,然后创建CreateStartFun线程(本质上是调用StartAddress函数)
b )在StartAddress内部访问短地址aa.re67das.com,获取IP地址并使用套接字链接。
c )获取计算机的基本配置,然后单击load hra%u.dll
d ) send ) )发送刚刚获取的设备信息。
e )利用名为SelectAndRev3的函数,不断从服务器端接收控制信息,
f )输入第16号控制代码:
g )输入18号控制码(行动见脑图) :
6 )分析第三个线程:
a )获取本地时间,并且线程在小于2013.02.21时继续运行
b )否则,执行线程,如c :
c )如上所述,分析线程2匹配。 只有比2多一个文件写入函数
7 )分析第四个线程:
a ) MainFun4只比MainFun3连接到特定url的函数更多,但未分析此解密过程。 但是,可以通过apadns获取相关信息。