恶意代码——实践作业5.2 初步动态分析
实践作业5.2 初步动态分析
以静态分析为基础,对相应代码进行初步动态分析,要求体现出:
1.静态分析确定的线索
- 首先,仿照上次使用PEView来查看IMPORT Address Table中的导入函数:
- REG很多函数,修改注册表键值、删除、创建等等操作
- GetEnvironmentStrings这个函数来获取环境,这个函数为当前进程返回当前系统的环境变量。
- ShellExecuteA函数调用,进行某项操作。
- Createfile函数打开对象,CreateServiceA这个函数一般是用作创建一个服务的,说明这个恶意代码会当做一个服务运行在Windows的机器里面。
- 其次,上面是能够直接看到的信息,但是仍然存在一些无法查看到的线索,因此使用
strings -a Lab09-01.exe
查看信息- 参数参考:
-a - --all Scan the entire file, not just the data section [default]
-d --data Only scan the data sections in the file
-f --print-file-name Print the name of the file before each string
-n --bytes=[number] Locate & print any NUL-terminated sequence of at
-<number> least [number] characters (default 4).
-t --radix={o,d,x} Print the location of the string in base 8, 10 or 16
-w --include-all-whitespace Include all whitespace as valid string characters
-o An alias for --radix=o
-T --target=<BFDNAME> Specify the binary file format
-e --encoding={s,S,b,l,B,L} Select character size and endianness:
s = 7-bit, S = 8-bit, {b,l} = 16-bit, {B,L} = 32-bit
-s --output-separator=<string> String used to separate strings in output.
@<file> Read options from <file>
-h --help Display this information
-v -V --version Print the program's version number
- 我们同样能观察到在PEView里面的引入函数,除此之外,我们还发现了
cmd.exe
调用了命令行- 有
http1.1
超文本传输协议,使用GET
包,NOTHING, CMD, DOWNLOAD, UPLOAD, SLEEP
操作,与上网有关 /c del
会删除,结合起来是运行完后会删除自身,以达到隐身的效果- 有一个网址,有上网的操作,和该网址应该有交互,可以在后续进行抓包
- 没有文件名的.exe的,有一个系统环境变量和
-cc -re -in
应该是命令后面的参数
2.动态分析对上述线索的验证分析过程
-
使用
process explorer
来监测我们的进程,第一张为运行Lab09-01.exe前的截图,第二张为运行Lab09-01.exe后的截图(由于Lab09-1.exe运行结束快,无法截到)
-
分析:看到这个绿色标记的PE文件,双击它,选择string栏,里面的详情前面是无法识别的字符,后面是很多函数和dll文件,最后是一段XML格式的内容,这可能是Lab09-01.exe修改生成后得到的可执行文件。
-
使用
promon
- 使用
工具
中的进程树
,监测到Lab09-01.exe进行的操作,其中包含了cmd.exe的一个进程,点击查看详情,能够看到C:\WINDOWS\system32\cmd.exe" /c del C:\DOCUME~1\ADMINI~1\桌面\Lab09-01.exe >> NUL
,这显然是恶意PE文件在运行结束后通过cmd来删除自身。而且整个运行时间非常的短,只有1秒钟,也就是我们很难在process explorer中截到它运行的图的原因。
- 设置过滤条件为
进程 is Lab09-01.exe
,然后确定
- 打开时,未运行PE文件,界面即为空,运行PE文件,界面一下子就出现许多操作,主要是关于进程、文件的操作和注册表的操作,例如
process start
、create file
、close file
(运行进行、创建关闭文件等等操作)、querydirectory
查询目录、Regopenkey
、Regclosekey
、Regquerykey
等等对注册表的一系列操作。 - 我们推测Lab09-01.exe会对进程的操作,会创建关闭文件,创建的文件去具体路径下查看,使用记事本打开其中一个.pf文件,其中的内容无法看懂,得到的注册表也会被修改,表项在图片中能看到详细信息。
- 我们点击其中一条查看详情,这里面有两个模块
Lab09-01.exe
和ntdll.dll
包含它们 的地址、大小和路径。
- 使用
-
由于之前线索能看到有一个网址,并且提示有一系列操作,我们对其进行监测。
- 首先,
ping www.practicalmalwareanalysis.com
得到网址的ip地址
- 然后,我在wireshark中设置ip地址的过滤条件,运行Lab09-01.exe,可是没有抓到包,推测是这个网址并不是实际交互的网址的ip地址。
- 首先,
3.动态分析的结论
- 这个PE文件与老师上课分析的例子不大相同,我们没有多个直接观测到被调用的.exe文件,也没有资源节需要我们去观测分析。
- 它会在运行时创建注册表项,PE文件会打开某个服务,修改注册表,创建一个服务的,说明这个恶意代码会当做一个服务运行在Windows的机器里面,会与网络上的网站www.practicalmalwareanalysis.com有一定的操作,但是无法抓包,从静态分析中能看到NOTHING, CMD, DOWNLOAD, UPLOAD, SLEEP的操作,没有得到验证。
- 运行结束后,调用cmd,使用/c del命令删除Lab09-01.exe
4.动态分析中尚不能确定,有待进一步分析的内容
- 关于上网,与网址进行的交互的操作,我们并不是很清楚,NOTHING, CMD, DOWNLOAD, UPLOAD, SLEEP的操作,没有得到验证。
- 在静态分析中在线杀毒中心看到的报告中的Conhost.exe和svchost.exe没有很明显的变化
- PE文件运行完成,是否会清理自己新增的注册表和修改过的值,将变化复原,尽可能避免被发现,完成后自动删除自己,还是仅仅删除自己。