恶意代码分析实战-lab01
1-1
- 略
- PE结构中IMAGE_FILE_HEADER子属性TimeDateStamp可查看编译时间
- 根据书中思路,strings查看函数名称完整,字符数量较多
PEiD,DIE等无显示加壳痕迹
判定为无壳
4,5,6:查看导入表
lab01-01.exe
有几个敏感函数CreateFile、FindNextFile、FindFirstFile、CopyFile,是恶意程序常用的函数
lab01-01.dll
调用了WS2_32.dll,该dll常用于联网操作
- 观察strings中有意义的字符
dll:
!This program cannot be run in DOS mode. Rich CloseHandle Sleep CreateProcessA CreateMutexA OpenMutexA KERNEL32.dll WS2_32.dll strncmp MSVCRT.dll free malloc exec sleep hello 127.26.152.13
127.26.152.13是IP地址,exec和sleep可能存在执行恶意文件操作
exe:
CloseHandle UnmapViewOfFile IsBadReadPtr MapViewOfFile CreateFileMappingA CreateFileA FindClose FindNextFileA FindFirstFileA CopyFileA KERNEL32.dll malloc exit MSVCRT.dll _exit _XcptFilter __p___initenv __getmainargs _initterm __setusermatherr _adjust_fdiv __p__commode __p__fmode __set_app_type _except_handler3 _controlfp _stricmp kerne132.dll kernel32.dll .exe C:\* C:\windows\system32\kerne132.dll Kernel32. Lab01-01.dll C:\Windows\System32\Kernel32.dll WARNING_THIS_WILL_DESTROY_YOUR_MACHINE
存在文件搜索和复制函数,包含Lab01-01.dll
综上大胆猜测,exe运行后搜索文件调用dll,联网获取恶意代码到本地执行
1-2
- 略
- DIE检测出UPX加壳
解壳:upx -d
- 脱壳后分析
导入了
kernel32.dll敏感函数:openmutex、createmutex,这些函数常用于互斥对象访问、检测进程存在
ADVAPI32.dll创建了服务,为程序运行创造环境
注意到还导入了WININET.dll,这个链接库通常利用InternetOpenUrlA函数实现一些http,ftp等高层面网络协议。
- 通过string程序发现存在一个网址和浏览器名称
http://www.malwareanalysisbook.com Internet Explorer 8.0
猜测其利用场景,运行程序,打开浏览器,定位到目标网址
1-3
- 略
程序被FSG打包,LinxerUnpacker脱壳
- 分析脱壳后程序
ole32.dll使用CoCreateInstance函数创建了COM实例化对象
- 字符串中存在网址,猜测程序功能实例化对象接口访问该网址
1-4
- 略
- 无壳
KERNEL32.dll:GetProcAddress和LoadLibraryA允许程序访问系统中任意的函数,WinExec执行程序,CreateFile、WriteFile,MoveFileA创建写入移动文件,还有CreateRemoteThread、OpenProcess、GetCurrentProcess有操作进程的函数
ADVAPI32.dll: OpenProcessToken访问进程令牌,LookupPrivilegeValueA和AdjustTokenPrivileges可以提升自己的运行权限
- 查看字符串,调用了SeDebugPrivilege进行权限提升
调用了urlmod.dll中的URLDownloadToFile进行链接下载
对应到后面出现的程序连接和system32
- 用resource hacker浏览资源分节,是个PE文件
用DIE也有相应选项查看资源
提取出来再导入到DIE,查看导入表发现是刚才字符串urlmod.dll的由来
下载文件到目录执行
综上,推测恶意程序首先提权权,然后下载目标文件保存到system32下执行。