QUESTION 1
What are this malware’s imports and strings?
通过 PEiD 这个软件分析这个病毒:

发现这个病毒使用了 PEncrypt 3.1 加壳了。所以我们并不知道它实际的导入函数。
于是我们通过 strings 命令分析里面的可见字符串:
| |
可见加壳后还有一些注册表位置、域名等字符串。
QUESTION 2
What are the malware’s host-based indicators?
下面将通过动态技术分析这个病毒的网络状态,因此我们需要将虚拟机的网络设置为主机模式:

在主机中扫描局域网,可以看到虚拟机的网络号:
| |
先使用 Process Explorer 这个工具分析这个病毒。分析这个病毒导入的 dll 中,我们发现了与网络相关的动态链接库 mswsock.dll:

我们恢复虚拟机快照,重启虚拟机再在虚拟机中打开 Procmon,添加 Process Name - is - lab03-01.exe 的过滤器,然后运行这个病毒,我们可以在 Procmon 中检测到病毒的行为特征:

可见在 Operation 一栏中,在 Procmon 记录了从 Process Start 开始病毒调用的所有 API 函数。分析这一栏调用的 API 函数,发现这个病毒大量地调用了 CreateFile 函数和 RegOpenKey 这两个 API 函数。并没有发现与网络请求相关的函数调用。
所以被感染的主机会有以上分析出的不寻常文件的创建、以上注册表项的更改、可能与 www.practicalmalwareanalysis.com 建立了连接这些特征。
QUESTION 3
Are there any useful network-based signatures for this malware? If so, what are they?
ApateDNS
为了分析这个病毒的网络请求,使用 ApateDNS 这个工具,可以用于劫持本地的所有 DNS 请求,下载以及介绍地址。
但是这个工具似乎并不可以在 Windows XP 虚拟机上运行(年代久远的系统还有很多网络不兼容的问题),于是我在南开大学正版软件上下载了 Windows 7 的镜像。然后在虚拟机上运行 ApateDNS 劫持本地的所有 DNS 请求,打开浏览器测试:

但是这个病毒竟然无法在 Windows 7 上运行。
于是我决定同时打开 Windows XP 和 Windows 7 系统,使用 vmware 中的 NAT 中,使得两个虚拟机位于同一局域网中,关闭 Windows 7 的防火墙,让 Windows XP 的 DNS 流量流向 Windos 7。同时,为了处理病毒可能会请求的 HTTP 流量,我们打开 Kali Linux,也用同样的方式至于局域网中。我们先通过 nmap & ipconfig 查看 DHCP 服务器分配给三个虚拟机的 IP:
| |
这其中 192.168.32.128 是 Windows XP 的局域网 IP、192.168.32.129 是 Windows 7 的局域网 IP。我们保持 Windows 7 的 ApateDNS 处于运行状态,并且设置 Windows XP 的 DNS 地址:

使用 nslookup 以确定我们已经正确地设置了 DNS 地址:
| |
很显然这个 127.0.0.1 的应答是我们的 Win7 系统给出的。为了避免病毒直接通过 IP 访问,我们简单地把主机的网络切断。至此我们已经设置好了 DNS 的环境,于是我们可以愉快地分析病毒了。
运行病毒,我们再 Windows 7 上发现,这个病毒尝试解析 www.practicalmalwareanalysis.com 这个域名:

Python HTTP&HTTPS
接着我们在 Kali Linux 搭建一个简单的 WEB 服务器:
| |
然后我们呢在 Win7 中,把 DNS 解析的结果指向 Kali,然后再在 XP 中运行病毒:我们发现 Win7 中有 DNS 的解析结果,但是 Kali 中却没有来自病毒的访问记录。
于是开始怀疑病毒访问的不是标准端口,因为 Kali 是默认安装了 wireshark 的,我们使用下面的过滤器直接使用 wireshark 抓包:
| |

如上图,我们发现它竟然访问的是 443 端口,于是我们先尝试把 HTTP 服务部署在 443 端口:

发现这个病毒是真实使用的 HTTPS 服务进行访问。我们再搭建一个简单的 HTTPS 服务:
| |
再用 wireshark 抓包,发现服务器拒绝了病毒的连接申请:

这说明病毒访问的根本不是真正的 HTTPS 服务,但是 HTTP 同样也无法处理这个请求。
INetSim
我们也可以用 INetSim 这个工具在 Kali Linux 中部署一个 WEB 服务(这个工具在 Kali 是默认安装的)。因为这个工具默认开启在本地端口,因此需要更改 /etc/inetsim/inetsim.conf 这个配置文件,加入下面的配置:
| |
然后运行以下命令:
| |
在日志文件 /usr/share/inetsim/log/service.log 中可以查看访问的所有访问的日志记录。
结论
病毒运行之后首先会请求解析 www.practicalmalwareanalysis.com 的 IP,与目标主机建立了 TCP 连接之后,以一个非 HTTPS & HTTP 协议访问目标服务器的 443 端口。